Browse Source

@override with ITDs - testcases.

tags/V1_5_0M3
aclement 19 years ago
parent
commit
4aacf20ad0

+ 27
- 0
tests/java5/generics/itds/AtOverride.aj View File

@@ -0,0 +1,27 @@
// should give *no* errors....
class Parent {
// declared in Parent, overridden in Child
public void parent_child() {} // AAA

// declared in Parent, overridden in Injector
public void parent_injector() {} // BBB
}

class Child extends Parent {
// works
@Override public void parent_child() {} // AAA

// must override a superclass method
@Override public void injector_child() {} // CCC
}

aspect Injector {
public void Parent.injector_child() {} // CCC
public void Parent.injector_injector() {} // DDD

// must override a superclass method
@Override public void Child.parent_injector() {} // BBB

// must override a superclass method
@Override public void Child.injector_injector() {} // DDD
}

+ 13
- 0
tests/java5/generics/itds/AtOverride1.aj View File

@@ -0,0 +1,13 @@
// 1. child specifies override but there was no parent (error)

class Parent {

}

class Child extends Parent {

@Override public void method() {} // ERROR, doesnt override anything

}

aspect Injector { }

+ 15
- 0
tests/java5/generics/itds/AtOverride2.aj View File

@@ -0,0 +1,15 @@
// 2. child specifies override and there was a parent (no error)

class Parent {
public void method() {}
public Object method2() {return null;}
}

class Child extends Parent {

@Override public void method() {} // OK
@Override public String method2() {return null;} // OK, covariance at work

}

aspect Injector { }

+ 20
- 0
tests/java5/generics/itds/AtOverride3.aj View File

@@ -0,0 +1,20 @@
// 3. child specifies override and parent was placed via ITD (no error)


class Parent {
}

class Child extends Parent {

@Override public void method() {} // OK
@Override public String method2() {return null;} // OK, covariance at work

}

aspect Injector {

public void Parent.method() {}

public Object Parent.method2() {return null;}

}

+ 17
- 0
tests/java5/generics/itds/AtOverride4.aj View File

@@ -0,0 +1,17 @@
// 4. parent and child placed by ITD, @override on child (no error)

class Parent {
}

class Child extends Parent {
}

aspect Injector {

public void Parent.method() {}
@Override public void Child.method() {} // OK, parent ITD'd

public Object Parent.method2() {return null;}
@Override public String Child.method2() {return null;} // OK, parent ITD'd, covariance

}

+ 13
- 0
tests/java5/generics/itds/AtOverride5.aj View File

@@ -0,0 +1,13 @@
// 5. child placed by ITD, @override on child, no parent (error)

class Parent {
}

class Child extends Parent {
}

aspect Injector {

@Override public void Child.method() {} // ERROR, no parent

}

+ 28
- 0
tests/java5/generics/itds/AtOverride6.aj View File

@@ -0,0 +1,28 @@
import java.util.*;

class Parent {

Object method1() {return null;}
void method2(String a) {}
void method3(List l,String b) {}

}

class Child extends Parent {

@Override String method1() {return null;}
@Override void method2(String b) {}
@Override void method3(List l,String b) {}

}

class Child2 extends Parent {
}

aspect Injector {

@Override public String Child2.method1() {return null;}
@Override public void Child2.method2(String s) {}
@Override public void Child2.method3(List l,String b) {}

}

Loading…
Cancel
Save