Community
Participate
Working Groups
Currently, the AspectsConvertingParser uses the keyword implements or extends in the declare parents declaration to determine whether the introduced relationship is an implements or an extends relationship. However, the compiler doesn't use these keywords for that purpose. Apparently, they are not used at all. Rather, the compiler applies the parent type in the declaration to the target type depending on whether parent and target are classes or interfaces. Eg- parent:= interface target:= inteface --> extends parent:= interface target:= class --> implements parent:= class target:= class --> extends parent:= class target:= inteface --> ERROR So, the AspectsConvertingParser needs to look at what the parent and target types actually are.
OK. Fixed with regression tests. Change in AspectsConvertingParser. Now when generating the extends/implements clause, we convert the parentType String into an IType. From here, we can compare the isClass() values of the parent IType and the target IType to determine if the declared parent should be implements or extends.
Should have been resolved as fixed.