diff --git a/src/main/jastadd/Analysis.jrag b/src/main/jastadd/Analysis.jrag index 941256ed7fbdcd994a9e0b1f5c4a3282fc885e9f..8f586cea6bbd0abd286b15a8fb618ff5660067f3 100644 --- a/src/main/jastadd/Analysis.jrag +++ b/src/main/jastadd/Analysis.jrag @@ -170,7 +170,9 @@ aspect Constructors { list.addAll(getSuper().decl().componentsTransitive()); } for (Component c: getComponents()) { - list.add(c); + if (c.inConstructor()) { + list.add(c); + } } return list; } @@ -186,6 +188,12 @@ aspect Constructors { && getSuper().decl() != null && getSuper().decl().needsConstructor(); } + + /** + * @return true, if the component should be added to the constructor (i.e., is not an NTA) + */ + syn boolean Component.inConstructor() = true; + eq NTAComponent.inConstructor() = false; } aspect Utils { diff --git a/src/test/jastadd/relations/Relations.relast b/src/test/jastadd/relations/Relations.relast index 51f3c621f8e71ec70412e8b88bc0802a6d37f7a0..6a5622902d79ebffe1b679c291fa84dd12b35f67 100644 --- a/src/test/jastadd/relations/Relations.relast +++ b/src/test/jastadd/relations/Relations.relast @@ -1,5 +1,5 @@ Root ::= A* B*; -A ::= <Name>; +A ::= <Name> /SomeNTA:A/; B ::= <Name>; rel A.Di1 -> B;