Closed kriegaex closed 5 months ago
I did not look into this for a while, being busy with non-AspectJ stuff. Reminder to myself or anyone else implementing this: Writing additional information into a CompressingDataOutputStream
also means that later it must be read from a VersionedDataInputStream
, i.e. older AspectJ versions would trip over unexpected additional data in the latter. That would mean either of
BCException
, see e.g. here: https://github.com/eclipse/org.aspectj/blob/a8a2f82fda825b36acade534f876f595b6566919/org.aspectj.matcher/src/main/java/org/aspectj/weaver/patterns/ExactTypePattern.java#L281-L285
When a
WildTypePattern
in converted into anExactTypePattern
, type variables are currently ignored. I.e., the exact type pattern will have no type variable list. The only existingExactTypePattern
constructor does not even take aTypePatternList
parameter and hence also not pass it on to the super constructor.Consequently, when traversing the corresponding node with a pattern visitor, e.g. in order to also check type parameters for something illegal like
void[]
or primitive types in general - see also #216, #217 - with an empty type pattern list there will be no traversal and therefore no check at all. I would almost consider this a bug.