aboutsummaryrefslogtreecommitdiffstats
path: root/tests/bugs
diff options
context:
space:
mode:
authorjhugunin <jhugunin>2003-07-02 23:12:18 +0000
committerjhugunin <jhugunin>2003-07-02 23:12:18 +0000
commitba41fae6547688e8714d01be27bc81dbbe850f55 (patch)
tree942e8dfd6ff41b9c2c7d64485734020d9b38b48d /tests/bugs
parent2e3c9191a9cb753ff54cf20592dcd0ef14bfc83a (diff)
downloadaspectj-ba41fae6547688e8714d01be27bc81dbbe850f55.tar.gz
aspectj-ba41fae6547688e8714d01be27bc81dbbe850f55.zip
tests and fixes for two awful error message bugs:
[Bug 39458] New: Compiler crash in ajc 1.1 [Bug 39460] New: Missing import crashes compiler
Diffstat (limited to 'tests/bugs')
-rw-r--r--tests/bugs/MissingImport.java22
-rw-r--r--tests/bugs/NewVoid.java33
2 files changed, 55 insertions, 0 deletions
diff --git a/tests/bugs/MissingImport.java b/tests/bugs/MissingImport.java
new file mode 100644
index 000000000..c70129e50
--- /dev/null
+++ b/tests/bugs/MissingImport.java
@@ -0,0 +1,22 @@
+import org.aspectj.lang.*;
+import org.aspectj.lang.reflect.*;
+import java.lang.reflect.Method;
+//import java.lang.reflect.InvocationTargetException; <- crash with this line commented out
+
+public aspect MissingImport {
+ Object around() :
+ call(* *(..)) && !within(ImposterProcessing+) {
+ MethodSignature sig = (MethodSignature)thisJoinPoint.getSignature();
+ try {
+ Method meth = ImposterProcessing.class.getMethod("dynamicThrow", new Class[] { Throwable.class });
+ meth.invoke(this, new Object[] { null });
+ } catch (InvocationTargetException e) { // expect CE
+ throw new RuntimeException("framework error in throwing test exception ", e);
+ } catch (IllegalAccessException e) {
+ throw new RuntimeException("framework error in throwing test exception ", e);
+ }
+ return null;
+ }
+}
+
+class ImposterProcessing { } \ No newline at end of file
diff --git a/tests/bugs/NewVoid.java b/tests/bugs/NewVoid.java
new file mode 100644
index 000000000..0162b5313
--- /dev/null
+++ b/tests/bugs/NewVoid.java
@@ -0,0 +1,33 @@
+import org.aspectj.lang.*;
+import org.aspectj.lang.reflect.*;
+import java.lang.reflect.Method;
+
+public aspect NewVoid {
+ Object around() :
+ call(new(..)) {
+ return proceed();
+ }
+
+
+ Object around() :
+ call(* *(..)) {
+ MethodSignature sig = (MethodSignature)thisJoinPoint.getSignature();
+ Class returnType = sig.getReturnType();
+ if (returnType == java.lang.Void.TYPE) {
+ return new java.lang.Void(); // expect CE here
+ } else {
+ String s = "hi";
+ Xyz xyz = null; // expect CE here
+ int x = s.count; // expect CE here
+ return proceed();
+ }
+ }
+}
+privileged aspect PrivCheck {
+ Object around() : call(* *(..)) {
+ Xyz xyz = null; // expect CE here
+ Object o = new Void(); // expect warning here
+ int x = "goo".count; // expect warning here
+ return null;
+ }
+} \ No newline at end of file