Community
Participate
Working Groups
If an ITD uses an local anonymous type, it is a given a name based on the target, suffixed with an integer. If the target type also uses local anonymous types, the names may clash. The compiler won't detect this, instead whoever gets their classes put out 'last' gets their version of the classfile produced. The type names already in use are stored in a table in the CompilationUnitScope called constantPoolNameUsage. Because the aspect and the target are in different compilation units, they have different tables and thus don't see each other. There are a couple of possible fixes: 1) use a variant naming scheme for those coming from the aspect. 2) enable the compilation unit scopes to see each other when aspects are involved.
used option 1, now fixed. the name of the aspect is included ahead of the int.
committed