--- /dev/null
+
+abstract aspect GenAsp<T> {
+ public abstract T transform(T x);
+ T around() : execution(T *(*)) {return transform(proceed());}
+}
+
+aspect IntAsp extends GenAsp<Integer> {
+
+ public Integer transform(Integer x) {return x;} // identity transformation
+}
+
+public class IntAspTest {
+ static Integer mylength(String x) {return x.length();}
+
+ public static void main(String[] args) {
+ try {
+ System.out.println(mylength(""));
+ } catch (StackOverflowError soe) {
+
+ }
+ }
+}
+
public class Ajc161Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
// AspectJ1.6.1
+ public void testGenericAspectAroundAdvice_pr226201() { runTest("generic aspect around advice");}
public void testCrazyGenericsInnerTypes_pr235829() { runTest("crazy generics and inner types");}
public void testAnnotationExposureGenerics_pr235597() { runTest("annotation exposure and generics");}
public void testIncorrectRelationship_pr235204() {
<!-- AspectJ v1.6.1 Tests -->
<suite>
+ <ajc-test dir="bugs161/pr226201" title="generic aspect around advice">
+ <compile files="IntAspTest.java" options="-1.5"/>
+ <run class="IntAspTest">
+ </run>
+ </ajc-test>
+
+
<ajc-test dir="bugs161/pr235829" title="crazy generics and inner types">
<compile files="Main.java a/Adapter.java a/b/Adapter.java" options="-1.5"/>
<run class="Main"/>