diff --git a/.classpath b/.classpath index b505001f..f22b5e20 100644 --- a/.classpath +++ b/.classpath @@ -8,7 +8,12 @@ - + + + + + + @@ -42,7 +47,7 @@ - + diff --git a/src/org/rascalmpl/core/library/lang/rascalcore/check/AType.rsc b/src/org/rascalmpl/core/library/lang/rascalcore/check/AType.rsc index f5ce6708..46f84c08 100644 --- a/src/org/rascalmpl/core/library/lang/rascalcore/check/AType.rsc +++ b/src/org/rascalmpl/core/library/lang/rascalcore/check/AType.rsc @@ -154,7 +154,7 @@ bool asubtype(adt:aadt(str n, list[AType] l, SyntaxRole sr), AType b){ case aadt(n, list[AType] r, _): return asubtypeList(l, r); case aadt("Tree", _, _): - /*if(isConcreteSyntaxRole(sr))*/ return true; + if(isConcreteSyntaxRole(sr)) return true; case \start(AType t): if(isConcreteSyntaxRole(sr)) return asubtype(adt, t); } diff --git a/src/org/rascalmpl/core/library/lang/rascalcore/check/ATypeUtils.rsc b/src/org/rascalmpl/core/library/lang/rascalcore/check/ATypeUtils.rsc index 15a3ca92..5de7063f 100644 --- a/src/org/rascalmpl/core/library/lang/rascalcore/check/ATypeUtils.rsc +++ b/src/org/rascalmpl/core/library/lang/rascalcore/check/ATypeUtils.rsc @@ -1425,11 +1425,6 @@ bool isIterType(AType::\iter-star-seps(_,_)) = true; bool isIterType(AType::\opt(_)) = true; default bool isIterType(AType _) = false; -bool isIterStarType(aparameter(_,AType tvb)) = isIterStarType(tvb); -bool isIterStarType(AType::\iter-star(_)) = true; -bool isIterStarType(AType::\iter-star-seps(_,_)) = true; -default bool isIterStarType(AType _) = false; - AType getIterElementType(aparameter(_,AType tvb)) = getIterElementType(tvb); AType getIterElementType(AType::\iter(AType i)) = i; AType getIterElementType(AType::\iter-star(AType i)) = i; diff --git a/src/org/rascalmpl/core/library/lang/rascalcore/check/CollectType.rsc b/src/org/rascalmpl/core/library/lang/rascalcore/check/CollectType.rsc index dfa1be68..b019e38d 100644 --- a/src/org/rascalmpl/core/library/lang/rascalcore/check/CollectType.rsc +++ b/src/org/rascalmpl/core/library/lang/rascalcore/check/CollectType.rsc @@ -567,6 +567,10 @@ bool isIterSym((Sym) `{ }+`) = true; bool isIterSym((Sym) `{ }*`) = true; default bool isIterSym(Sym sym) = false; +bool isIterStarSym((Sym) `*`) = true; +bool isIterStarSym((Sym) `{ }*`) = true; +default bool isIterStarSym(Sym sym) = false; + bool isLexicalContext(Collector c){ adtStack = c.getStack(currentAdt); diff --git a/src/org/rascalmpl/core/library/lang/rascalcore/compile/Examples/Tst6.rsc b/src/org/rascalmpl/core/library/lang/rascalcore/compile/Examples/Tst6.rsc index a0bc1011..e565c503 100644 --- a/src/org/rascalmpl/core/library/lang/rascalcore/compile/Examples/Tst6.rsc +++ b/src/org/rascalmpl/core/library/lang/rascalcore/compile/Examples/Tst6.rsc @@ -1,3 +1,5 @@ module lang::rascalcore::compile::Examples::Tst6 -value main() = 1; \ No newline at end of file +data Content + = content(str id, str title=id) + ; \ No newline at end of file