Browse Source

tests for pr62606 - itdcs don't run field initialisers in target type. Largely updates to existing tests to cope with new Lint warning.

tags/V1_5_0RC1
acolyer 18 years ago
parent
commit
9025e8b418
43 changed files with 117 additions and 65 deletions
  1. 2
    1
      tests/base/test103/Driver.java
  2. 1
    1
      tests/base/test115/Driver.java
  3. 5
    5
      tests/base/test118/Driver.java
  4. 1
    1
      tests/base/test121/Driver.java
  5. 1
    1
      tests/bugs/DecwInitializationITD.java
  6. 1
    1
      tests/bugs/WithincodeNPE01.java
  7. 1
    1
      tests/bugs150/PR82570_1.java
  8. 35
    0
      tests/bugs150/Pr62606.aj
  9. 1
    0
      tests/bugs150/pr111481.aj
  10. 1
    0
      tests/bugs150/pr113073.java
  11. 1
    1
      tests/bugs150/pr59397.aj
  12. 3
    3
      tests/design/intro/Simple.java
  13. 1
    1
      tests/incremental/initialTests/classWAroundClosureRemoved/AdviceOnIntroduced.delete.20.java
  14. 1
    1
      tests/incremental/initialTests/classWAroundClosureRemoved/AdviceOnIntroduced.java
  15. 1
    1
      tests/incrementalju/initialTests/classWAroundClosureRemoved/src/AdviceOnIntroduced.java
  16. 1
    1
      tests/java5/annotations/aspectMembers/a/AnnotatedAspect03.aj
  17. 3
    3
      tests/java5/annotations/binding/BindingWithAnnotatedItds3.aj
  18. 3
    3
      tests/java5/annotations/binding/BindingWithDeclaredAnnotationItds4.aj
  19. 4
    4
      tests/java5/annotations/itds/AnnotationsAndITDs.aj
  20. 3
    3
      tests/java5/ataspectj/annotationGen/ITDTest.aj
  21. 1
    1
      tests/java5/generics/itds/GenericCtorITD1.aj
  22. 1
    1
      tests/java5/generics/itds/GenericCtorITD2.aj
  23. 1
    0
      tests/java5/generics/itds/GenericCtorITD3.aj
  24. 1
    1
      tests/java5/generics/itds/Parse3.java
  25. 1
    1
      tests/java5/generics/itds/Parse6.java
  26. 2
    2
      tests/java5/generics/itds/sharing/CtorA.aj
  27. 1
    1
      tests/java5/generics/itds/sharing/CtorC.aj
  28. 1
    1
      tests/java5/generics/itds/sharing/CtorD.aj
  29. 1
    1
      tests/java5/generics/itds/sharing/CtorE.aj
  30. 1
    1
      tests/java5/generics/itds/sharing/CtorF.aj
  31. 3
    3
      tests/java5/generics/itds/sharing/CtorG.aj
  32. 1
    1
      tests/java5/generics/itds/sharing/CtorH.aj
  33. 1
    1
      tests/java5/generics/itds/sharing/CtorI.aj
  34. 3
    3
      tests/java5/generics/itds/visibility/PackageITDs.aj
  35. 3
    3
      tests/java5/generics/itds/visibility/PrivateITDs.aj
  36. 3
    3
      tests/java5/generics/itds/visibility/PublicITDs.aj
  37. 3
    3
      tests/java5/generics/itds/visibility/PublicITDsErrors.aj
  38. 1
    1
      tests/new/AdviceOnIntroduced.java
  39. 1
    1
      tests/new/DeclareAspectConstructorCE.java
  40. 1
    1
      tests/new/DeclareOnlyAspectConstructorCE.java
  41. 4
    0
      tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java
  42. 8
    2
      tests/src/org/aspectj/systemtest/ajc150/ajc150.xml
  43. 4
    1
      tests/src/org/aspectj/systemtest/base/baseTests-tests.xml

+ 2
- 1
tests/base/test103/Driver.java View File

@@ -46,7 +46,8 @@ aspect Foo {
return other;
}
Pos.new(MagicKey key) {
Pos.new(MagicKey key) {
this();
other = id;
id = getOther();
}

+ 1
- 1
tests/base/test115/Driver.java View File

@@ -19,7 +19,7 @@ class SubClass extends Class {}
aspect Aspect {
static int count = 0;
//introduction subtypes(Class) {
Class.new(int i) {count++;}
Class.new(int i) {this(); count++;}
SubClass.new(int i) {super(2); count++;}
//}
}

+ 5
- 5
tests/base/test118/Driver.java View File

@@ -53,11 +53,11 @@ aspect A1 {

C1.new() {
c1Count++;
}
C1.new(int x) {
c1IntCount++;
}
}
}
C1.new(int x) {
c1IntCount++;
}
}

aspect Verify {


+ 1
- 1
tests/base/test121/Driver.java View File

@@ -74,7 +74,7 @@ aspect A pertarget(target(Foo)){
// System.out.println(thisJoinPoint.className +"."+
// thisJoinPoint.methodName);
}
Foo.new(int n) { ranIntroducedConstructor = true; }
Foo.new(int n) { this(); ranIntroducedConstructor = true; }

// make sure advice doesn't go on the toString() method
// this would result in an infinite recursion

+ 1
- 1
tests/bugs/DecwInitializationITD.java View File

@@ -8,7 +8,7 @@
// initialization(HW.new(String)) will not match !

aspect A {
HW.new(String s) {}
HW.new(String s) { this(); }
declare warning : initialization(HW.new(String,A)) : "Funky ctor found!";
}


+ 1
- 1
tests/bugs/WithincodeNPE01.java View File

@@ -1,5 +1,5 @@
aspect B {
public A.new(String s) { }
public A.new(String s) {this(); }
public void A.foo() { int i = 1; }
declare warning: withincode(void main(..)): "X"; // Would NPE without the fix for PR67774

+ 1
- 1
tests/bugs150/PR82570_1.java View File

@@ -12,7 +12,7 @@ public class PR82570_1 {
aspect X {
public PR82570_1.new(String p) {}
public PR82570_1.new(String p) { this(); }
public int PR82570_1.itdField;

+ 35
- 0
tests/bugs150/Pr62606.aj View File

@@ -0,0 +1,35 @@
import org.aspectj.lang.annotation.*;

public aspect Pr62606 {
// xlint
public Target.new() {}
// no xlint
public Target.new(String s) {
this(1);
}
// no xlint
@SuppressAjWarnings
public Target.new(double d) {}
// no xlint
@SuppressAjWarnings({"noExplicitConstructorCall"})
public Target.new(float f) {}
// no xlint
@SuppressAjWarnings({"adviceDidNotMatch","noExplicitConstructorCall"})
public Target.new(short s) {}
}

class Target {
int x = 5;
int y;
public Target(int z) {
this.y = z;
}
}

+ 1
- 0
tests/bugs150/pr111481.aj View File

@@ -8,6 +8,7 @@ public class pr111481 {
}
aspect A {
public pr111481.new(Object... names) {
this();
System.out.println(names[0]);
}


+ 1
- 0
tests/bugs150/pr113073.java View File

@@ -9,6 +9,7 @@ class C {

aspect D {
public C.new(String s) {
this();
}
public void C.anotherMethod(String s) {
}

+ 1
- 1
tests/bugs150/pr59397.aj View File

@@ -1,5 +1,5 @@
aspect A {
HW.new(String s) {}
HW.new(String s) {this();}
declare warning : initialization(HW.new(String,A)) : "should not match";
declare warning : initialization(HW.new(String)) : "should match";
}

+ 3
- 3
tests/design/intro/Simple.java View File

@@ -56,10 +56,10 @@ aspect A {
return new C(2).m();
}
public C.new(String s) { }
public C.new(String s) { this(); }

private C.new(int i) {
Tester.note("new A.C");
this(); Tester.note("new A.C");
}
}

@@ -75,6 +75,6 @@ aspect B {
}

private C.new(int i) {
Tester.note("new B.C");
this(); Tester.note("new B.C");
}
}

+ 1
- 1
tests/incremental/initialTests/classWAroundClosureRemoved/AdviceOnIntroduced.delete.20.java View File

@@ -8,7 +8,7 @@ public aspect AdviceOnIntroduced {
}
int Foo.foo(int n) { return n; }
Foo.new(int w) {}
Foo.new(int w) {this();}
int around(int n):
within(AdviceOnIntroduced) &&

+ 1
- 1
tests/incremental/initialTests/classWAroundClosureRemoved/AdviceOnIntroduced.java View File

@@ -8,7 +8,7 @@ public aspect AdviceOnIntroduced {
}
int Foo.foo(int n) { return n; }
Foo.new(int w) {}
Foo.new(int w) { this(); }
int around(int n):
within(AdviceOnIntroduced) &&

+ 1
- 1
tests/incrementalju/initialTests/classWAroundClosureRemoved/src/AdviceOnIntroduced.java View File

@@ -8,7 +8,7 @@ public aspect AdviceOnIntroduced {
}
int Foo.foo(int n) { return n; }
Foo.new(int w) {}
Foo.new(int w) {this();}
int around(int n):
within(AdviceOnIntroduced) &&

+ 1
- 1
tests/java5/annotations/aspectMembers/a/AnnotatedAspect03.aj View File

@@ -9,7 +9,7 @@ public aspect AnnotatedAspect03 {
@MethodAnnotation private int ITDMe.getGoo() { return goo; }
@ConstructorAnnotation public ITDMe.new(int x) { goo = x; }
@ConstructorAnnotation public ITDMe.new(int x) { this(); goo = x; }
}


+ 3
- 3
tests/java5/annotations/binding/BindingWithAnnotatedItds3.aj View File

@@ -5,11 +5,11 @@ import java.lang.annotation.*;

public aspect BindingWithAnnotatedItds3 {

@Fruit("pear") A.new(String s) { }
@Fruit("pear") A.new(String s) { this(); }

private @Fruit("orange") A.new(int i) { }
private @Fruit("orange") A.new(int i) { this(); }

public @Fruit("tomato") A.new(boolean b) { }
public @Fruit("tomato") A.new(boolean b) { this(); }
public static void main(String[]argv) {
A instance1 = new A("a");

+ 3
- 3
tests/java5/annotations/binding/BindingWithDeclaredAnnotationItds4.aj View File

@@ -5,11 +5,11 @@ import java.lang.annotation.*;

public aspect BindingWithDeclaredAnnotationItds4 {

A.new(String s) { }
A.new(String s) { this(); }

private A.new(int i) { }
private A.new(int i) { this(); }

public A.new(boolean b) { }
public A.new(boolean b) { this(); }
public static void main(String[]argv) {
A instance1 = new A("a");

+ 4
- 4
tests/java5/annotations/itds/AnnotationsAndITDs.aj View File

@@ -14,10 +14,10 @@ public aspect AnnotationsAndITDs {
// annotated ITD constructors
@SomeAnnotation(s="hello",clazz=AnnotationsAndITDs.class)
public ITDMe.new(String s) {}
public ITDMe.new(String s) { this(); }
@SomeAnnotation(s="goodbye",clazz=String.class)
private ITDMe.new(int x) {}
private ITDMe.new(int x) { this(); }

// annotated ITD methods
@@ -42,8 +42,8 @@ public aspect AnnotationsAndITDs {
declare @constructor : ITDMe2.new(..) : @SomeAnnotation(s="@cons",clazz=String.class);
public ITDMe2.new(String s) {}
private ITDMe2.new(int x) {}
public ITDMe2.new(String s) { this(); }
private ITDMe2.new(int x) { this(); }

// annotated ITD methods

+ 3
- 3
tests/java5/ataspectj/annotationGen/ITDTest.aj View File

@@ -12,11 +12,11 @@ public aspect ITDTest {

int A.c(String s) { return 1; }

public A.new(String s) {}
public A.new(String s) { this(); }

private A.new(String s,String s2) {}
private A.new(String s,String s2) { this(); }
A.new(String s, Object o) {}
A.new(String s, Object o) { this(); }

public int A.f ;


+ 1
- 1
tests/java5/generics/itds/GenericCtorITD1.aj View File

@@ -14,5 +14,5 @@ public class GenericCtorITD1 {


aspect X {
<T> Base.new(List<T> elements) { }
<T> Base.new(List<T> elements) { this(); }
}

+ 1
- 1
tests/java5/generics/itds/GenericCtorITD2.aj View File

@@ -18,5 +18,5 @@ public class GenericCtorITD2 {

aspect X {
// wildcards, argh!
<T> Base.new(List<T> one,List<? extends T> two) { }
<T> Base.new(List<T> one,List<? extends T> two) { this(); }
}

+ 1
- 0
tests/java5/generics/itds/GenericCtorITD3.aj View File

@@ -38,6 +38,7 @@ public class GenericCtorITD3 {

aspect X {
<T> Sorter.new(List<T> elements,Comparator<? super T> comparator) {
this();
Collections.sort(elements,comparator);
l = elements;
}

+ 1
- 1
tests/java5/generics/itds/Parse3.java View File

@@ -2,5 +2,5 @@
public class Parse3 { }

aspect X {
<T> Parse3.new(T cupOf) {}
<T> Parse3.new(T cupOf) {this();}
}

+ 1
- 1
tests/java5/generics/itds/Parse6.java View File

@@ -11,7 +11,7 @@ class Base<N> {
aspect X {

public Base<Z>.new(Z aNumber) {
;
this() ;
}
public List<Z> Base<Z>.f2;

+ 2
- 2
tests/java5/generics/itds/sharing/CtorA.aj View File

@@ -8,10 +8,10 @@ public class CtorA {
}

class Base<N extends Number> {
//public Base(List<N> sn) {}
public Base() {}
<Y extends Number> Base(Set<N> sn, List<Y> ys) {}
}

aspect X {
public Base<Z>.new(List<Z> lz) {}; // OK, Z becomes N in parameter
public Base<Z>.new(List<Z> lz) { this(); } // OK, Z becomes N in parameter
}

+ 1
- 1
tests/java5/generics/itds/sharing/CtorC.aj View File

@@ -11,5 +11,5 @@ class Base<N extends Number> {
}

aspect X {
public Base<Z>.new(List<List<Z>> llz) {}; // ok - nested but OK
public Base<Z>.new(List<List<Z>> llz) { this(); }; // ok - nested but OK
}

+ 1
- 1
tests/java5/generics/itds/sharing/CtorD.aj View File

@@ -10,5 +10,5 @@ class Base<N extends Number,S> {
}

aspect X {
public Base<A,B>.new(Map<A,B> mabs) {}; // ok multiple
public Base<A,B>.new(Map<A,B> mabs) { this(); }; // ok multiple
}

+ 1
- 1
tests/java5/generics/itds/sharing/CtorE.aj View File

@@ -12,5 +12,5 @@ class Base<N extends Number> {
}

aspect X {
public Base<Z>.new(List<String> ls) {}; // ok - specified type variable but didnt use it (could put a lint warning on this case?)
public Base<Z>.new(List<String> ls) { this(); }; // ok - specified type variable but didnt use it (could put a lint warning on this case?)
}

+ 1
- 1
tests/java5/generics/itds/sharing/CtorF.aj View File

@@ -11,5 +11,5 @@ class Base<P,N extends Number,S> {
}

aspect X {
public Base<A,B,C>.new(Map<C,A> lc,Map<B,A> lb) {} // ok multiple in funny orders
public Base<A,B,C>.new(Map<C,A> lc,Map<B,A> lb) { this(); } // ok multiple in funny orders
}

+ 3
- 3
tests/java5/generics/itds/sharing/CtorG.aj View File

@@ -3,9 +3,9 @@ import java.util.*;
public aspect CtorG {

// visibility options...
public Base<Z>.new(List<Z> lz,int i) {}
private Base<Z>.new(List<Z> lz,String s) {}
Base<Z>.new(List<Z> lz,boolean b) {}
public Base<Z>.new(List<Z> lz,int i) { this();}
private Base<Z>.new(List<Z> lz,String s) { this();}
Base<Z>.new(List<Z> lz,boolean b) {this();}

public static void main(String []argv) {
List<Integer> intList = new ArrayList<Integer>();

+ 1
- 1
tests/java5/generics/itds/sharing/CtorH.aj View File

@@ -15,5 +15,5 @@ public class CtorH {
class Base<N> { }

aspect X {
public Base<Z>.new(List<Z> lz) {} // OK, Z becomes N in first case, S in the second ;)
public Base<Z>.new(List<Z> lz) {this();} // OK, Z becomes N in first case, S in the second ;)
}

+ 1
- 1
tests/java5/generics/itds/sharing/CtorI.aj View File

@@ -10,5 +10,5 @@ public class CtorI {
class Base<N extends Number> { }

aspect X {
public Base<Z>.new(List<Z> lz) {}
public Base<Z>.new(List<Z> lz) {this();}
}

+ 3
- 3
tests/java5/generics/itds/visibility/PackageITDs.aj View File

@@ -23,8 +23,8 @@ public aspect PackageITDs {
<R extends Number> void Base.packageMethod2(List<R> lr1,List<R> lr2) {}

// ctor
<P extends Number> Base.new(List<P> lr) {}
<P extends Number> Base.new(List<P> lr1,List<P> lr2) {}
<P,Q extends Number> Base.new(List<P> lp,Map<Q,P> m1) {}
<P extends Number> Base.new(List<P> lr) { this(); }
<P extends Number> Base.new(List<P> lr1,List<P> lr2) { this(); }
<P,Q extends Number> Base.new(List<P> lp,Map<Q,P> m1) { this(); }

}

+ 3
- 3
tests/java5/generics/itds/visibility/PrivateITDs.aj View File

@@ -23,8 +23,8 @@ public aspect PrivateITDs {
private <R extends Number> void Base.privateMethod2(List<R> lr1,List<R> lr2) {}

// ctor
private <P extends Number> Base.new(List<P> lr) {}
private <P extends Number> Base.new(List<P> lr1,List<P> lr2) {}
private <P,Q extends Number> Base.new(List<P> lp,Map<Q,P> m1) {}
private <P extends Number> Base.new(List<P> lr) { this(); }
private <P extends Number> Base.new(List<P> lr1,List<P> lr2) { this(); }
private <P,Q extends Number> Base.new(List<P> lp,Map<Q,P> m1) { this(); }

}

+ 3
- 3
tests/java5/generics/itds/visibility/PublicITDs.aj View File

@@ -26,9 +26,9 @@ aspect X {
public <R extends Number> void Base.publicMethod2(List<R> lr1,List<R> lr2) {}

// ctor
public <P extends Number> Base.new(List<P> lr) {}
public <P extends Number> Base.new(List<P> lr1,List<P> lr2) {}
public <P,Q extends Number> Base.new(List<P> lp,Map<Q,P> m1) {}
public <P extends Number> Base.new(List<P> lr) { this(); }
public <P extends Number> Base.new(List<P> lr1,List<P> lr2) { this(); }
public <P,Q extends Number> Base.new(List<P> lp,Map<Q,P> m1) { this(); }

// what use is this next one??
// public <R extends Number> R Base.publicMethod3() { return null;}

+ 3
- 3
tests/java5/generics/itds/visibility/PublicITDsErrors.aj View File

@@ -23,7 +23,7 @@ aspect X {
public <R extends Number> void Base.publicMethod2(List<R> lr1,List<R> lr2) {}

// ctor
public <P extends Number> Base.new(List<P> lr) {}
public <P extends Number> Base.new(List<P> lr1,List<P> lr2) {}
public <P,Q extends Number> Base.new(List<P> lp,Map<Q,P> m1) {}
public <P extends Number> Base.new(List<P> lr) { this(); }
public <P extends Number> Base.new(List<P> lr1,List<P> lr2) { this(); }
public <P,Q extends Number> Base.new(List<P> lp,Map<Q,P> m1) { this(); }
}

+ 1
- 1
tests/new/AdviceOnIntroduced.java View File

@@ -8,7 +8,7 @@ public aspect AdviceOnIntroduced {
}
int Foo.foo(int n) { return n; }
Foo.new(int w) {}
Foo.new(int w) { this(); }
int around(int n):
within(AdviceOnIntroduced) &&

+ 1
- 1
tests/new/DeclareAspectConstructorCE.java View File

@@ -7,5 +7,5 @@ aspect A {
}

aspect B {
A.new(int i) {} // CE 10
A.new(int i) { this(); } // CE 10
}

+ 1
- 1
tests/new/DeclareOnlyAspectConstructorCE.java View File

@@ -7,5 +7,5 @@ aspect A {
}

aspect B {
A.new(int i) {} // CE 10
A.new(int i) { this(); } // CE 10
}

+ 4
- 0
tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java View File

@@ -655,6 +655,10 @@ public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
runTest("no verify error with two this pcds");
}
public void testITDCWithNoExplicitConsCall() {
runTest("ITDC with no explicit cons call");
}
// helper methods.....
public SyntheticRepository createRepos(File cpentry) {

+ 8
- 2
tests/src/org/aspectj/systemtest/ajc150/ajc150.xml View File

@@ -10,6 +10,12 @@
<ajc-test dir="bugs150" title="Problem with constructor ITDs">
<compile files="pr112783.aj" options="-1.5"/>
</ajc-test>

<ajc-test dir="bugs150" title="ITDC with no explicit cons call">
<compile files="Pr62606.aj" options="-1.5">
<message kind="warning" line="6" text="[Xlint:noExplicitConstructorCall]"/>
</compile>
</ajc-test>
<ajc-test dir="java5/generics/bugs" title="using same type variable in ITD">
<compile files="SameTypeVariable.aj" options="-1.5">
@@ -84,7 +90,7 @@
<ajc-test dir="bugs150/pr113947/case2" title="maws generic aspect - 2">
<compile files="AbstractListSupport.java,AnotherItem.java,Item.java,LinkedList.java,LinkedListItem.java,ListItem.java,StringList.java" options="-1.5"/>
</ajc-test>
<ajc-test dir="bugs150/pr113861" title="field-get problems with generic field">
<compile files="Test.java,TestAspect.java" options="-1.5"/>
<run class="com.Test"/>
@@ -131,7 +137,7 @@
<message kind="warning" text="void C.&lt;init&gt;(int) - already has an annotation of type Annotation, cannot add a second instance [Xlint:elementAlreadyAnnotated]"/>
</compile>
</ajc-test>
<ajc-test dir="bugs150/pr113630/case1" title="IncompatibleClassChangeError - errorscenario">
<compile files="Bean.java,BeanTestCase.java,javaBean.java,propertyChanger.java,PropertySupportAspect5.aj" options="-1.5">
<message kind="warning" line="9" text="Failing match because annotation 'javaBean' on type 'Bean' has SOURCE retention. Matching allowed when RetentionPolicy is CLASS or RUNTIME"/>

+ 4
- 1
tests/src/org/aspectj/systemtest/base/baseTests-tests.xml View File

@@ -116,7 +116,10 @@

<ajc-test dir="base/test118" title="DEPRECATED: Introduce of constructors"
keywords="from-base">
<compile files="Driver.java"/>
<compile files="Driver.java">
<message kind="warning" line="54" text="[Xlint:noExplicitConstructorCall]"/>
<message kind="warning" line="57" text="[Xlint:noExplicitConstructorCall]"/>
</compile>
<run class="Driver"/>
</ajc-test>


Loading…
Cancel
Save