aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAndy Clement <aclement@gopivotal.com>2014-11-17 18:32:25 -0800
committerAndy Clement <aclement@gopivotal.com>2014-11-17 18:32:25 -0800
commitec91e93ac09fa9a347a8e8d0f99db3585dd93060 (patch)
treecb10973d67f2cf852ac4d4a0cea7546f1e5e2fd4 /tests
parent934f0b86c5543737d4859131024cf73995fdc347 (diff)
downloadaspectj-ec91e93ac09fa9a347a8e8d0f99db3585dd93060.tar.gz
aspectj-ec91e93ac09fa9a347a8e8d0f99db3585dd93060.zip
Further 451966: privileged aspect and ITDs
Diffstat (limited to 'tests')
-rw-r--r--tests/bugs185/451966/Code2.java31
-rw-r--r--tests/src/org/aspectj/systemtest/ajc185/Ajc185Tests.java7
-rw-r--r--tests/src/org/aspectj/systemtest/ajc185/ajc185.xml7
3 files changed, 43 insertions, 2 deletions
diff --git a/tests/bugs185/451966/Code2.java b/tests/bugs185/451966/Code2.java
new file mode 100644
index 000000000..d40211725
--- /dev/null
+++ b/tests/bugs185/451966/Code2.java
@@ -0,0 +1,31 @@
+
+public class Code2 {
+ public static void main(String []argv) {
+ new Bar().foo();
+ }
+}
+interface Common { }
+
+interface Allergies extends Common {
+ default public void foo() {
+ }
+}
+
+class Bar implements Allergies { }
+
+aspect Y {
+ private boolean Common.instancesInvariant() {
+ return false;
+ }
+}
+
+privileged aspect AspectJMLRac_allergies_Allergies {
+ before(final Allergies object$rac): execution(* Allergies+.*(..)) && this(object$rac) {
+ Runnable r = new Runnable() {
+ public void run() {
+ boolean b = object$rac.instancesInvariant();
+ }
+ };
+ boolean b = object$rac.instancesInvariant();
+ }
+}
diff --git a/tests/src/org/aspectj/systemtest/ajc185/Ajc185Tests.java b/tests/src/org/aspectj/systemtest/ajc185/Ajc185Tests.java
index 9fefaa5eb..135eb8464 100644
--- a/tests/src/org/aspectj/systemtest/ajc185/Ajc185Tests.java
+++ b/tests/src/org/aspectj/systemtest/ajc185/Ajc185Tests.java
@@ -24,7 +24,12 @@ public class Ajc185Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
public void testITDInterface_451966() throws Exception {
runTest("itd interface");
}
-
+
+ public void testITDInterface_451966_2() throws Exception {
+ // call made from inner type
+ runTest("itd interface - 2");
+ }
+
// ---
public static Test suite() {
diff --git a/tests/src/org/aspectj/systemtest/ajc185/ajc185.xml b/tests/src/org/aspectj/systemtest/ajc185/ajc185.xml
index 5e8f8dc8a..7c30d7bf4 100644
--- a/tests/src/org/aspectj/systemtest/ajc185/ajc185.xml
+++ b/tests/src/org/aspectj/systemtest/ajc185/ajc185.xml
@@ -2,11 +2,16 @@
<suite>
-
<ajc-test dir="bugs185/451966" title="itd interface">
<compile files="Code.java" options="-1.8"/>
<run class="Code">
</run>
</ajc-test>
+<ajc-test dir="bugs185/451966" title="itd interface - 2">
+<compile files="Code2.java" options="-1.8"/>
+<run class="Code2">
+</run>
+</ajc-test>
+
</suite>