X10ClassDef_c.classInvariant is wrong, i.e., it doesn't include X10ClassDecl_c.classInvariant.
I see similar code for traversing the superclass and superinterface in both:
{code}
X10ClassDecl_c.postBuildTypes
and
X10ClassDef_c.getRootClause()
{code}
However, no code piece actually adds X10ClassDecl_c.classInvariant to X10ClassDef_c.classInvariant

Also, there are circularity issues when calculating the real clause.

Finally, {{ConstrainedType_c}} doesn't pass its constraint to the fields in method {{fields}}

X10ClassDef_c.classInvariant is wrong, i.e., it doesn't include X10ClassDecl_c.classInvariant.
I see similar code for traversing the superclass and superinterface in both:
{code}
X10ClassDecl_c.postBuildTypes
and
X10ClassDef_c.getRootClause()
{code}
However, no code piece actually adds X10ClassDecl_c.classInvariant to X10ClassDef_c.classInvariant

Also, there are circularity issues when calculating the real clause.

Finally, {{ConstrainedType_c}} doesn't pass its constraint to the fields in method {{fields}}

Vijay Saraswat
added a comment - 16/Mar/11 2:47 AM Fixed rootClause and postBuildTypes relationship. There is none. ClassInvariant and realClause are maintained separately because in some places one is needed,and not the other.
Work left to be done is ensuring that the types of fields of constrained type T
{c}
reflect c.