summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraclement <aclement>2010-07-05 22:52:07 +0000
committeraclement <aclement>2010-07-05 22:52:07 +0000
commit00c400c7b67c4d5cec0bc3bc3e187fe73972fa26 (patch)
tree4e62a261585c85270c6710ab8cb8b40b94468cec
parent6b02aaf5929ea866dc9ed9e20c77613118fdfcca (diff)
downloadaspectj-00c400c7b67c4d5cec0bc3bc3e187fe73972fa26.tar.gz
aspectj-00c400c7b67c4d5cec0bc3bc3e187fe73972fa26.zip
318884: incremental: parameterization change on method/ctor
-rw-r--r--tests/multiIncremental/pr318884_3/base/src/A.java7
-rw-r--r--tests/multiIncremental/pr318884_3/base/src/B.java7
-rw-r--r--tests/multiIncremental/pr318884_3/inc1/src/B.java7
-rw-r--r--tests/multiIncremental/pr318884_4/base/src/A.java6
-rw-r--r--tests/multiIncremental/pr318884_4/base/src/B.java6
-rw-r--r--tests/multiIncremental/pr318884_4/inc1/src/B.java6
-rw-r--r--tests/multiIncremental/pr318884_5/base/src/A.java7
-rw-r--r--tests/multiIncremental/pr318884_5/base/src/B.java5
-rw-r--r--tests/multiIncremental/pr318884_5/inc1/src/B.java6
-rw-r--r--tests/src/org/aspectj/systemtest/incremental/tools/IncrementalCompilationTests.java44
10 files changed, 101 insertions, 0 deletions
diff --git a/tests/multiIncremental/pr318884_3/base/src/A.java b/tests/multiIncremental/pr318884_3/base/src/A.java
new file mode 100644
index 000000000..d11d1677d
--- /dev/null
+++ b/tests/multiIncremental/pr318884_3/base/src/A.java
@@ -0,0 +1,7 @@
+import java.util.*;
+
+public class A extends B {
+ public List<String> foo() {
+ return null;
+ }
+}
diff --git a/tests/multiIncremental/pr318884_3/base/src/B.java b/tests/multiIncremental/pr318884_3/base/src/B.java
new file mode 100644
index 000000000..6ccf181da
--- /dev/null
+++ b/tests/multiIncremental/pr318884_3/base/src/B.java
@@ -0,0 +1,7 @@
+import java.util.*;
+
+public class B {
+ public List<String> foo() {
+ return null;
+ }
+}
diff --git a/tests/multiIncremental/pr318884_3/inc1/src/B.java b/tests/multiIncremental/pr318884_3/inc1/src/B.java
new file mode 100644
index 000000000..e96d963da
--- /dev/null
+++ b/tests/multiIncremental/pr318884_3/inc1/src/B.java
@@ -0,0 +1,7 @@
+import java.util.*;
+
+public class B {
+ public List<Integer> foo() {
+ return null;
+ }
+}
diff --git a/tests/multiIncremental/pr318884_4/base/src/A.java b/tests/multiIncremental/pr318884_4/base/src/A.java
new file mode 100644
index 000000000..292362ff6
--- /dev/null
+++ b/tests/multiIncremental/pr318884_4/base/src/A.java
@@ -0,0 +1,6 @@
+import java.util.*;
+
+public class A extends B {
+ public void foo(List<String> ls) {
+ }
+}
diff --git a/tests/multiIncremental/pr318884_4/base/src/B.java b/tests/multiIncremental/pr318884_4/base/src/B.java
new file mode 100644
index 000000000..94fbe3738
--- /dev/null
+++ b/tests/multiIncremental/pr318884_4/base/src/B.java
@@ -0,0 +1,6 @@
+import java.util.*;
+
+public class B {
+ public void foo(List<String> ls) {
+ }
+}
diff --git a/tests/multiIncremental/pr318884_4/inc1/src/B.java b/tests/multiIncremental/pr318884_4/inc1/src/B.java
new file mode 100644
index 000000000..c30445f97
--- /dev/null
+++ b/tests/multiIncremental/pr318884_4/inc1/src/B.java
@@ -0,0 +1,6 @@
+import java.util.*;
+
+public class B {
+ public void foo(List<Integer> ln) {
+ }
+}
diff --git a/tests/multiIncremental/pr318884_5/base/src/A.java b/tests/multiIncremental/pr318884_5/base/src/A.java
new file mode 100644
index 000000000..ea488672a
--- /dev/null
+++ b/tests/multiIncremental/pr318884_5/base/src/A.java
@@ -0,0 +1,7 @@
+import java.util.*;
+
+public class A extends B {
+ A(List<String> ls) {
+ super(ls);
+ }
+}
diff --git a/tests/multiIncremental/pr318884_5/base/src/B.java b/tests/multiIncremental/pr318884_5/base/src/B.java
new file mode 100644
index 000000000..4114654fe
--- /dev/null
+++ b/tests/multiIncremental/pr318884_5/base/src/B.java
@@ -0,0 +1,5 @@
+import java.util.*;
+
+public class B {
+ B(List<String> ls) {}
+}
diff --git a/tests/multiIncremental/pr318884_5/inc1/src/B.java b/tests/multiIncremental/pr318884_5/inc1/src/B.java
new file mode 100644
index 000000000..becd8b6d3
--- /dev/null
+++ b/tests/multiIncremental/pr318884_5/inc1/src/B.java
@@ -0,0 +1,6 @@
+import java.util.*;
+
+public class B {
+ B(List<Integer> ln) {
+ }
+}
diff --git a/tests/src/org/aspectj/systemtest/incremental/tools/IncrementalCompilationTests.java b/tests/src/org/aspectj/systemtest/incremental/tools/IncrementalCompilationTests.java
index 38e6b48b4..15c894ea9 100644
--- a/tests/src/org/aspectj/systemtest/incremental/tools/IncrementalCompilationTests.java
+++ b/tests/src/org/aspectj/systemtest/incremental/tools/IncrementalCompilationTests.java
@@ -51,4 +51,48 @@ public class IncrementalCompilationTests extends AbstractMultiProjectIncremental
assertEquals(1, getErrorMessages(p).size());
assertContains("B.java:4:0::0 Unhandled exception type Exception", getErrorMessages(p).get(0));
}
+
+ // changing method return type parameterization
+ public void testModifiedGenericParameterTypeShouldTriggerError_318884_3() throws Exception {
+ String p = "pr318884_3";
+ initialiseProject(p);
+ build(p);
+ checkWasFullBuild();
+ checkCompileWeaveCount(p, 2, 2);
+ alter(p, "inc1");
+ build(p);
+ checkWasntFullBuild();
+ assertEquals(1, getErrorMessages(p).size());
+ assertContains("The return type is incompatible with B.foo()", getErrorMessages(p).get(0));
+ }
+
+ // changing method parameter type parameterization
+ public void testModifiedGenericParameterTypeShouldTriggerError_318884_4() throws Exception {
+ String p = "pr318884_4";
+ initialiseProject(p);
+ build(p);
+ checkWasFullBuild();
+ checkCompileWeaveCount(p, 2, 2);
+ alter(p, "inc1");
+ build(p);
+ checkWasntFullBuild();
+ assertEquals(1, getErrorMessages(p).size());
+ assertContains(
+ "Name clash: The method foo(List<String>) of type A has the same erasure as foo(List<Integer>) of type B but does not override it",
+ getErrorMessages(p).get(0));
+ }
+
+ // changing constructor parameter type parameterization
+ public void testModifiedGenericParameterTypeShouldTriggerError_318884_5() throws Exception {
+ String p = "pr318884_5";
+ initialiseProject(p);
+ build(p);
+ checkWasFullBuild();
+ checkCompileWeaveCount(p, 2, 2);
+ alter(p, "inc1");
+ build(p);
+ checkWasntFullBuild();
+ assertEquals(1, getErrorMessages(p).size());
+ assertContains("The constructor B(List<String>) is undefined", getErrorMessages(p).get(0));
+ }
}