Summary: | NPE compiling inter-type declaration on inner generic interface | ||
---|---|---|---|
Product: | [Tools] AspectJ | Reporter: | Joshua Caplan <jcaplan> |
Component: | Compiler | Assignee: | aspectj inbox <aspectj-inbox> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | major | ||
Priority: | P2 | CC: | aclement, jcaplan |
Version: | DEVELOPMENT | ||
Target Milestone: | 1.5.4 | ||
Hardware: | PC | ||
OS: | Windows XP | ||
Whiteboard: |
Description
Joshua Caplan
2007-09-17 15:56:14 EDT
removing some noise from test program: // fails interface I { interface J< T > {} } public aspect InnerGenericInterface { public void I.J< T >.intro() {} } // succeeds interface J< T > {} public aspect InnerGenericInterface { public void J< T >.intro() {} } ok - i've committed fixes for this. If you go further with ITDs on generic types, we still break, but I think that may need some parsing rule changes. For example: interface I1<A> { interface I2<B> {} } aspect X { public void I1<X>.I2<Y>.foo(X x,Y y) {} } could be possible but doesn't compile at the moment: ajc -1.5 Cool.java Cool.java:8 [error] Syntax error on token(s), misplaced construct(s) public void I1<X>.I2<Y>.foo(X x,Y y) {} ^^^ 1 error bug 208991 raised to cover the double type parameterization case, closing this issue as fixed in 1.5.4 |