From: wisberg Date: Sun, 15 Feb 2004 19:13:41 +0000 (+0000) Subject: @testcase PR#52107 declare [int | String | Object] field on interface X-Git-Tag: v_preCompileLoopAlteration~39 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=0d5ebc4e81463bf918585ebeaf4a3e01ab3db3ad;p=aspectj.git @testcase PR#52107 declare [int | String | Object] field on interface --- diff --git a/tests/ajcTestsFailing.xml b/tests/ajcTestsFailing.xml index 27079b95d..33a3a5d14 100644 --- a/tests/ajcTestsFailing.xml +++ b/tests/ajcTestsFailing.xml @@ -139,4 +139,25 @@ + + + + + + + + + + + + + + + diff --git a/tests/bugs/fieldsOnInterfaces/IntFieldOnInterface.java b/tests/bugs/fieldsOnInterfaces/IntFieldOnInterface.java new file mode 100644 index 000000000..9d9f7e205 --- /dev/null +++ b/tests/bugs/fieldsOnInterfaces/IntFieldOnInterface.java @@ -0,0 +1,37 @@ +import org.aspectj.testing.Tester; + +/** @testcase PR#52107 declare int field on interface */ +public class IntFieldOnInterface implements Runnable { + public static final int caseid = 2; + public static void main(String[] args) { + Tester.expectEvent("A name=2"); + Tester.expectEvent("R name=2"); + IntFieldOnInterface test + = new IntFieldOnInterface(); + test.run(); + test.blah(); + Tester.checkAllEvents(); + } + public void run() { + switch (name) { + case (IntFieldOnInterface.caseid) : + Tester.event("R name=" + name); + break; + default : + throw new Error("bad switch"); + } + } +} + +aspect A { + public int Runnable.name = IntFieldOnInterface.caseid; + public void Runnable.blah() { + switch (name) { + case (IntFieldOnInterface.caseid) : + Tester.event("A name=" + name); + break; + default : + throw new Error("bad switch"); + } + } +} \ No newline at end of file diff --git a/tests/bugs/fieldsOnInterfaces/ObjectFieldOnInterface.java b/tests/bugs/fieldsOnInterfaces/ObjectFieldOnInterface.java new file mode 100644 index 000000000..0bc84acf9 --- /dev/null +++ b/tests/bugs/fieldsOnInterfaces/ObjectFieldOnInterface.java @@ -0,0 +1,24 @@ + +import org.aspectj.testing.Tester; + +/** @testcase PR#52107 declare Object field on interface */ +public class ObjectFieldOnInterface implements Runnable { + public static void main(String[] args) { + Tester.expectEvent("class(A): java.lang.Object"); + Tester.expectEvent("class(R): java.lang.Object"); + ObjectFieldOnInterface test + = new ObjectFieldOnInterface(); + test.blah(); + Tester.event("class(R): " + test.object.getClass().getName()); + Tester.checkAllEvents(); + } + public void run() { + } +} + +aspect A { + public Object Runnable.object = new Object(); + public void Runnable.blah() { + Tester.event("class(A): " + object.getClass().getName()); + } +} \ No newline at end of file diff --git a/tests/bugs/fieldsOnInterfaces/StringFieldOnInterface.java b/tests/bugs/fieldsOnInterfaces/StringFieldOnInterface.java new file mode 100644 index 000000000..5f4a3c528 --- /dev/null +++ b/tests/bugs/fieldsOnInterfaces/StringFieldOnInterface.java @@ -0,0 +1,21 @@ + +import org.aspectj.testing.Tester; + +/** @testcase PR#52107 declare String field on interface */ +public class StringFieldOnInterface implements Runnable { + public static void main(String[] args) { + Tester.expectEvent("length=1"); + new StringFieldOnInterface().blah(); + Tester.checkAllEvents(); + } + public void run() { + } +} + +aspect A { + public String Runnable.name = "a"; + public void Runnable.blah() { + int i = name.length(); + Tester.event("length="+i); + } +} \ No newline at end of file