aboutsummaryrefslogtreecommitdiffstats
path: root/org.aspectj.ajdt.core
diff options
context:
space:
mode:
authorjhugunin <jhugunin>2002-12-23 19:39:22 +0000
committerjhugunin <jhugunin>2002-12-23 19:39:22 +0000
commitedbf43c6841313ebe0e7747407cfed9b11082065 (patch)
treea91ddf528883a0f9a23c94d50cfd8b005e06c9c1 /org.aspectj.ajdt.core
parentad22592b03d21deb506d38c86fe9253602b89cd6 (diff)
downloadaspectj-edbf43c6841313ebe0e7747407cfed9b11082065.tar.gz
aspectj-edbf43c6841313ebe0e7747407cfed9b11082065.zip
better errors for issingleton aspects advising own initializers
also correct typing for dynamic checks on parameters to if pcds
Diffstat (limited to 'org.aspectj.ajdt.core')
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java
index 26bf18d8b..a52d3cad1 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java
@@ -499,7 +499,17 @@ public class AspectDeclaration extends MemberTypeDeclaration {
// body starts here
codeStream.getstatic(world.makeFieldBinding(AjcMemberMaker.perSingletonField(
typeX)));
+ Label isNull = new Label(codeStream);
+ codeStream.dup();
+ codeStream.ifnull(isNull);
codeStream.areturn();
+ isNull.place();
+ codeStream.new_(world.makeTypeBinding(AjcMemberMaker.NO_ASPECT_BOUND_EXCEPTION));
+ codeStream.dup();
+ codeStream.invokespecial(world.makeMethodBindingForCall(
+ AjcMemberMaker.noAspectBoundExceptionInit()
+ ));
+ codeStream.athrow();
// body ends here
}});
}