@@ -0,0 +1,28 @@ | |||
import org.aspectj.lang.*; | |||
public aspect PerCflow percflow(execution(* m(..))) { | |||
before(): execution(* Foo.*(..)) {} | |||
public static void main(String []argv) { | |||
print("before"); | |||
new Foo().m(); | |||
print("after"); | |||
} | |||
public static void print(String prefix) { | |||
System.err.println(prefix); | |||
boolean b1 = Aspects14.hasAspect(PerCflow.class); | |||
boolean b2 = PerCflow.hasAspect(); | |||
Object o1 = (b1?Aspects14.aspectOf(PerCflow.class):null); | |||
Object o2 = (b2?PerCflow.aspectOf():null); | |||
System.err.println("hasAspect? "+b1+" : "+b2); | |||
System.err.println("aspectOf? "+o1+" : "+o2); | |||
} | |||
public String toString() { return "PerCflowInstance"; } | |||
} | |||
class Foo { | |||
public void m() { PerCflow.print("during");} | |||
} |
@@ -0,0 +1,37 @@ | |||
import org.aspectj.lang.*; | |||
public aspect PerThis perthis(execution(* m(..))) { | |||
before(): execution(* Foo.*(..)) {} | |||
public static void main(String []argv) { | |||
print("before"); | |||
new Foo().m(); | |||
print("after"); | |||
} | |||
public static void print(String prefix) { | |||
System.err.println(prefix); | |||
boolean b1 = Aspects14.hasAspect(PerThis.class,null); | |||
boolean b2 = PerThis.hasAspect(null); | |||
Object o1 = (b1?Aspects14.aspectOf(PerThis.class,null):null); | |||
Object o2 = (b2?PerThis.aspectOf(null):null); | |||
System.err.println("hasAspect? "+b1+" : "+b2); | |||
System.err.println("aspectOf? "+o1+" : "+o2); | |||
} | |||
public String toString() { return "PerThisInstance"; } | |||
} | |||
class Foo { | |||
public void m() { print("during");} | |||
public void print(String prefix) { | |||
System.err.println(prefix); | |||
boolean b1 = Aspects14.hasAspect(PerThis.class,this); | |||
boolean b2 = PerThis.hasAspect(this); | |||
Object o1 = (b1?Aspects14.aspectOf(PerThis.class,this):null); | |||
Object o2 = (b2?PerThis.aspectOf(this):null); | |||
System.err.println("hasAspect? "+b1+" : "+b2); | |||
System.err.println("aspectOf? "+o1+" : "+o2); | |||
} | |||
} |
@@ -0,0 +1,41 @@ | |||
import org.aspectj.lang.*; | |||
public aspect PerTypeWithin pertypewithin(Foo) { | |||
before(): execution(* Foo.*(..)) {} | |||
public static void main(String []argv) { | |||
print("before"); | |||
new Foo().m(); | |||
print("after"); | |||
} | |||
public static void print(String prefix) { | |||
System.err.println(prefix); | |||
boolean b1 = Aspects14.hasAspect(PerTypeWithin.class,Goo.class); | |||
boolean b2 = PerTypeWithin.hasAspect(Goo.class); | |||
Object o1 = (b1?Aspects14.aspectOf(PerTypeWithin.class,Goo.class):null); | |||
Object o2 = (b2?PerTypeWithin.aspectOf(Goo.class):null); | |||
System.err.println("hasAspect? "+b1+" : "+b2); | |||
System.err.println("aspectOf? "+o1+" : "+o2); | |||
} | |||
public String toString() { return "PerTypeWithinInstance"; } | |||
} | |||
class Goo { | |||
} | |||
class Foo { | |||
public void m() { print("during");} | |||
public void print(String prefix) { | |||
System.err.println(prefix); | |||
boolean b1 = Aspects14.hasAspect(PerTypeWithin.class,this.getClass()); | |||
boolean b2 = PerTypeWithin.hasAspect(this.getClass()); | |||
Object o1 = (b1?Aspects14.aspectOf(PerTypeWithin.class,this.getClass()):null); | |||
Object o2 = (b2?PerTypeWithin.aspectOf(this.getClass()):null); | |||
System.err.println("hasAspect? "+b1+" : "+b2); | |||
System.err.println("aspectOf? "+o1+" : "+o2); | |||
} | |||
} |
@@ -0,0 +1,27 @@ | |||
import org.aspectj.lang.*; | |||
public aspect Singleton { | |||
before(): execution(* Foo.*(..)) {} | |||
public static void main(String []argv) { | |||
print(); | |||
new Foo().m(); | |||
print(); | |||
} | |||
public static void print() { | |||
boolean b1 = Aspects14.hasAspect(Singleton.class); | |||
boolean b2 = Singleton.hasAspect(); | |||
Object o1 = (b1?Aspects14.aspectOf(Singleton.class):null); | |||
Object o2 = (b2?Singleton.aspectOf():null); | |||
System.err.println("hasAspect? "+b1+" : "+b2); | |||
System.err.println("aspectOf? "+o1+" : "+o2); | |||
} | |||
public String toString() { return "SingletonInstance"; } | |||
} | |||
class Foo { | |||
public void m() { } | |||
} |
@@ -14,6 +14,70 @@ | |||
</stderr> | |||
</run> | |||
</ajc-test> | |||
<ajc-test dir="bugs152/pr122253" title="aspects14 - persingleton"> | |||
<compile files="Singleton.java"/> | |||
<run class="Singleton"> | |||
<stderr> | |||
<line text="hasAspect? true : true"/> | |||
<line text="aspectOf? SingletonInstance : SingletonInstance"/> | |||
<line text="hasAspect? true : true"/> | |||
<line text="aspectOf? SingletonInstance : SingletonInstance"/> | |||
</stderr> | |||
</run> | |||
</ajc-test> | |||
<ajc-test dir="bugs152/pr122253" title="aspects14 - percflow"> | |||
<compile files="PerCflow.java"/> | |||
<run class="PerCflow"> | |||
<stderr> | |||
<line text="before"/> | |||
<line text="hasAspect? false : false"/> | |||
<line text="aspectOf? null : null"/> | |||
<line text="during"/> | |||
<line text="hasAspect? true : true"/> | |||
<line text="aspectOf? PerCflowInstance : PerCflowInstance"/> | |||
<line text="after"/> | |||
<line text="hasAspect? false : false"/> | |||
<line text="aspectOf? null : null"/> | |||
</stderr> | |||
</run> | |||
</ajc-test> | |||
<ajc-test dir="bugs152/pr122253" title="aspects14 - perthis"> | |||
<compile files="PerThis.java"/> | |||
<run class="PerThis"> | |||
<stderr> | |||
<line text="before"/> | |||
<line text="hasAspect? false : false"/> | |||
<line text="aspectOf? null : null"/> | |||
<line text="during"/> | |||
<line text="hasAspect? true : true"/> | |||
<line text="aspectOf? PerThisInstance : PerThisInstance"/> | |||
<line text="after"/> | |||
<line text="hasAspect? false : false"/> | |||
<line text="aspectOf? null : null"/> | |||
</stderr> | |||
</run> | |||
</ajc-test> | |||
<ajc-test dir="bugs152/pr122253" title="aspects14 - pertypewithin"> | |||
<compile files="PerTypeWithin.java"/> | |||
<run class="PerTypeWithin"> | |||
<stderr> | |||
<line text="before"/> | |||
<line text="hasAspect? false : false"/> | |||
<line text="aspectOf? null : null"/> | |||
<line text="during"/> | |||
<line text="hasAspect? true : true"/> | |||
<line text="aspectOf? PerTypeWithinInstance : PerTypeWithinInstance"/> | |||
<line text="after"/> | |||
<line text="hasAspect? false : false"/> | |||
<line text="aspectOf? null : null"/> | |||
</stderr> | |||
</run> | |||
</ajc-test> | |||
<ajc-test dir="bugs152/pr126355" title="bizarre generic error with itds"> | |||
<compile files="Pair.java" options="-1.5"/> |