aboutsummaryrefslogtreecommitdiffstats
path: root/org.aspectj.ajdt.core
diff options
context:
space:
mode:
authoraclement <aclement>2011-12-02 00:56:44 +0000
committeraclement <aclement>2011-12-02 00:56:44 +0000
commite077d061cf225611d8e5ad7de507d708611249b7 (patch)
tree06bc031adcf522e7ead136c146f9360d18c2e2cd /org.aspectj.ajdt.core
parent866c5d1ab37df0d082b1fa7c0dcf3c3c2f755b31 (diff)
downloadaspectj-e077d061cf225611d8e5ad7de507d708611249b7.tar.gz
aspectj-e077d061cf225611d8e5ad7de507d708611249b7.zip
Java7 merge - in progress
Diffstat (limited to 'org.aspectj.ajdt.core')
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java6
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AccessForInlineVisitor.java2
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AdviceDeclaration.java15
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AjConstructorDeclaration.java2
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AjMethodDeclaration.java2
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectClinit.java13
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java100
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AstUtil.java6
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AtAspectJAnnotationFactory.java2
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/IfMethodDeclaration.java2
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeDeclaration.java2
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeFieldDeclaration.java27
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeMethodDeclaration.java11
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/KnownFieldReference.java4
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/KnownMessageSend.java7
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/Proceed.java6
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/ProceedVisitor.java2
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/SuperFixerVisitor.java4
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/ThisJoinPointVisitor.java2
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java2
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseTypeMunger.java2
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/HelperInterfaceBinding.java4
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/InterTypeScope.java2
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/problem/AjProblemReporter.java12
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java3
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java27
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java4
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/CompactTypeStructureRepresentation.java15
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/AjAST.java2
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/AjASTConverter.java2
-rw-r--r--org.aspectj.ajdt.core/testsrc/org/aspectj/tools/ajc/AjASTTest.java2
-rw-r--r--org.aspectj.ajdt.core/testsrc/org/aspectj/tools/ajc/AjASTTestCase.java2
32 files changed, 160 insertions, 134 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java
index ba5de1b90..583a4a773 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java
@@ -50,7 +50,7 @@ public class BuildArgParser extends Main {
private static boolean LOADED_BUNDLE = false;
static {
- Main.bundleName = BUNDLE_NAME;
+// Main.bundleName = BUNDLE_NAME;
ResourceBundleFactory.getBundle(Locale.getDefault());
if (!LOADED_BUNDLE) {
LOADED_BUNDLE = true;
@@ -237,12 +237,12 @@ public class BuildArgParser extends Main {
setDebugOptions();
buildConfig.getOptions().set(options);
- } catch (InvalidInputException iie) {
+ } catch (IllegalArgumentException iae) {
ISourceLocation location = null;
if (buildConfig.getConfigFile() != null) {
location = new SourceLocation(buildConfig.getConfigFile(), 0);
}
- IMessage m = new Message(iie.getMessage(), IMessage.ERROR, null, location);
+ IMessage m = new Message(iae.getMessage(), IMessage.ERROR, null, location);
handler.handleMessage(m);
}
return buildConfig;
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AccessForInlineVisitor.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AccessForInlineVisitor.java
index d46012bc9..91833c9e6 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AccessForInlineVisitor.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AccessForInlineVisitor.java
@@ -108,7 +108,7 @@ public class AccessForInlineVisitor extends ASTVisitor {
}
public void endVisit(FieldReference ref, BlockScope scope) {
- ref.binding = getAccessibleField(ref.binding, ref.receiverType);
+ ref.binding = getAccessibleField(ref.binding, ref.actualReceiverType);
}
public void endVisit(MessageSend send, BlockScope scope) {
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AdviceDeclaration.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AdviceDeclaration.java
index cfbf9d8ef..c5320f08a 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AdviceDeclaration.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AdviceDeclaration.java
@@ -32,6 +32,7 @@ import org.aspectj.org.eclipse.jdt.internal.compiler.ast.SingleTypeReference;
import org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeDeclaration;
import org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeReference;
import org.aspectj.org.eclipse.jdt.internal.compiler.codegen.CodeStream;
+import org.aspectj.org.eclipse.jdt.internal.compiler.codegen.Opcodes;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ArrayBinding;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ClassScope;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ExtraCompilerModifiers;
@@ -81,7 +82,7 @@ public class AdviceDeclaration extends AjMethodDeclaration {
l.add(new EclipseAttributeAdapter(makeAttribute()));
addDeclarationStartLineAttribute(l, classFile);
- return classFile.generateMethodInfoAttribute(binding, false, l);
+ return classFile.generateMethodInfoAttributes(binding, l);
}
private AjAttribute makeAttribute() {
@@ -109,7 +110,7 @@ public class AdviceDeclaration extends AjMethodDeclaration {
TypeBinding argTb = extraArgument.binding.type;
TypeBinding expectedTb = upperScope.getJavaLangThrowable();
if (!argTb.isCompatibleWith(expectedTb)) {
- scope.problemReporter().typeMismatchError(argTb, expectedTb, extraArgument);
+ scope.problemReporter().typeMismatchError(argTb, expectedTb, extraArgument,null);
ignoreFurtherInvestigation = true;
return;
}
@@ -190,7 +191,7 @@ public class AdviceDeclaration extends AjMethodDeclaration {
classFile.generateMethodInfoHeader(binding);
int methodAttributeOffset = classFile.contentsOffset;
- int attributeNumber = classFile.generateMethodInfoAttribute(binding, false, AstUtil.getAjSyntheticAttribute());
+ int attributeNumber = classFile.generateMethodInfoAttributes(binding, AstUtil.getAjSyntheticAttribute());
int codeAttributeOffset = classFile.contentsOffset;
classFile.generateCodeAttributeHeader();
CodeStream codeStream = classFile.codeStream;
@@ -219,7 +220,7 @@ public class AdviceDeclaration extends AjMethodDeclaration {
codeStream.load(type, index);
index += AstUtil.slotsNeeded(type);
if (type.isBaseType()) {
- codeStream.invokestatic(AjTypeConstants.getConversionMethodToObject(classScope, type));
+ codeStream.invoke(Opcodes.OPC_invokestatic, AjTypeConstants.getConversionMethodToObject(classScope, type), null);
}
codeStream.aastore();
@@ -228,11 +229,11 @@ public class AdviceDeclaration extends AjMethodDeclaration {
// call run
ReferenceBinding closureType = (ReferenceBinding) binding.parameters[nargs - 1];
MethodBinding runMethod = closureType.getMethods("run".toCharArray())[0];
- codeStream.invokevirtual(runMethod);
+ codeStream.invoke(Opcodes.OPC_invokevirtual, runMethod, null);
TypeBinding returnType = binding.returnType;
if (returnType.isBaseType()) {
- codeStream.invokestatic(AjTypeConstants.getConversionMethodFromObject(classScope, returnType));
+ codeStream.invoke(Opcodes.OPC_invokestatic, AjTypeConstants.getConversionMethodFromObject(classScope, returnType), null);
} else {
codeStream.checkcast(returnType);
}
@@ -240,7 +241,7 @@ public class AdviceDeclaration extends AjMethodDeclaration {
codeStream.recordPositionsFrom(0, 1);
classFile.completeCodeAttribute(codeAttributeOffset);
attributeNumber++;
- classFile.completeMethodInfo(methodAttributeOffset, attributeNumber);
+ classFile.completeMethodInfo(binding,methodAttributeOffset, attributeNumber);
}
// override
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AjConstructorDeclaration.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AjConstructorDeclaration.java
index 95ef3856b..8e9c04d16 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AjConstructorDeclaration.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AjConstructorDeclaration.java
@@ -40,7 +40,7 @@ public class AjConstructorDeclaration extends ConstructorDeclaration {
// add extra attributes into list then call 2-arg version of generateInfoAttributes...
List extras = new ArrayList();
addDeclarationStartLineAttribute(extras,classFile);
- return classFile.generateMethodInfoAttribute(binding,false,extras);
+ return classFile.generateMethodInfoAttributes(binding,extras);
}
protected void addDeclarationStartLineAttribute(List extraAttributeList, ClassFile classFile) {
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AjMethodDeclaration.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AjMethodDeclaration.java
index 62bb6dce2..0590df712 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AjMethodDeclaration.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AjMethodDeclaration.java
@@ -53,7 +53,7 @@ public class AjMethodDeclaration extends MethodDeclaration {
if (addAjSynthetic) {
extras.add(new EclipseAttributeAdapter(new AjAttribute.AjSynthetic()));
}
- return classFile.generateMethodInfoAttribute(binding,false,extras);
+ return classFile.generateMethodInfoAttributes(binding,extras);
}
protected int generateInfoAttributes(ClassFile classFile) {
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectClinit.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectClinit.java
index 61f695931..07d779258 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectClinit.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectClinit.java
@@ -20,6 +20,7 @@ import org.aspectj.org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants
import org.aspectj.org.eclipse.jdt.internal.compiler.codegen.BranchLabel;
import org.aspectj.org.eclipse.jdt.internal.compiler.codegen.CodeStream;
import org.aspectj.org.eclipse.jdt.internal.compiler.codegen.ExceptionLabel;
+import org.aspectj.org.eclipse.jdt.internal.compiler.codegen.Opcodes;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ClassScope;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.FieldBinding;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.LocalVariableBinding;
@@ -57,11 +58,10 @@ public class AspectClinit extends Clinit {
if (hasPre) {
final EclipseFactory world = EclipseFactory.fromScopeLookupEnvironment(classScope);
-
- codeStream.invokestatic(world.makeMethodBindingForCall(
+ codeStream.invoke(Opcodes.OPC_invokestatic,world.makeMethodBindingForCall(
AjcMemberMaker.ajcPreClinitMethod(
world.fromBinding(classScope.referenceContext.binding)
- )));
+ )),null);
}
super.generateSyntheticCode(classScope, codeStream);
}
@@ -73,11 +73,10 @@ public class AspectClinit extends Clinit {
super.generatePostSyntheticCode(classScope, codeStream);
if (hasPost) {
final EclipseFactory world = EclipseFactory.fromScopeLookupEnvironment(classScope);
-
- codeStream.invokestatic(world.makeMethodBindingForCall(
+ codeStream.invoke(Opcodes.OPC_invokestatic,world.makeMethodBindingForCall(
AjcMemberMaker.ajcPostClinitMethod(
world.fromBinding(classScope.referenceContext.binding)
- )));
+ )),null);
}
if (initFailureField != null) {
@@ -91,7 +90,7 @@ public class AspectClinit extends Clinit {
// CHECK THIS...
codeStream.addVariable(new LocalVariableBinding("caughtException".toCharArray(),initFailureField.type,ClassFileConstants.AccPrivate,false));
codeStream.aload_0();
- codeStream.putstatic(initFailureField);
+ codeStream.fieldAccess(Opcodes.OPC_putstatic, initFailureField, null);
endLabel.place();
}
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 07b42e6ab..6c6376cfa 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
@@ -38,6 +38,7 @@ import org.aspectj.org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants
import org.aspectj.org.eclipse.jdt.internal.compiler.codegen.BranchLabel;
import org.aspectj.org.eclipse.jdt.internal.compiler.codegen.CodeStream;
import org.aspectj.org.eclipse.jdt.internal.compiler.codegen.ExceptionLabel;
+import org.aspectj.org.eclipse.jdt.internal.compiler.codegen.Opcodes;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ClassScope;
@@ -67,6 +68,8 @@ import org.aspectj.weaver.patterns.PerFromSuper;
import org.aspectj.weaver.patterns.PerSingleton;
import org.aspectj.weaver.patterns.TypePattern;
+import com.sun.org.apache.xpath.internal.compiler.OpCodes;
+
/**
* Represents an aspect declaration.
*
@@ -428,9 +431,9 @@ public class AspectDeclaration extends TypeDeclaration {
List attrs = new ArrayList();
attrs.addAll(AstUtil.getAjSyntheticAttribute());
attrs.addAll(additionalAttributes);
- attributeNumber = classFile.generateMethodInfoAttribute(methodBinding, false, attrs);
+ attributeNumber = classFile.generateMethodInfoAttributes(methodBinding, attrs);
} else {
- attributeNumber = classFile.generateMethodInfoAttribute(methodBinding, false, AstUtil.getAjSyntheticAttribute());
+ attributeNumber = classFile.generateMethodInfoAttributes(methodBinding, AstUtil.getAjSyntheticAttribute());
}
int codeAttributeOffset = classFile.contentsOffset;
@@ -460,7 +463,7 @@ public class AspectDeclaration extends TypeDeclaration {
}
attributeNumber++;
- classFile.completeMethodInfo(methodAttributeOffset, attributeNumber);
+ classFile.completeMethodInfo(methodBinding,methodAttributeOffset, attributeNumber);
}
private void generatePerCflowAspectOfMethod(ClassFile classFile) {
@@ -468,8 +471,9 @@ public class AspectDeclaration extends TypeDeclaration {
generateMethod(classFile, aspectOfMethod, new BodyGenerator() {
public void generate(CodeStream codeStream) {
// body starts here
- codeStream.getstatic(world.makeFieldBinding(AjcMemberMaker.perCflowField(typeX)));
- codeStream.invokevirtual(world.makeMethodBindingForCall(AjcMemberMaker.cflowStackPeekInstance()));
+ codeStream.fieldAccess(Opcodes.OPC_getstatic,world.makeFieldBinding(AjcMemberMaker.perCflowField(typeX)),null);
+
+ codeStream.invoke(Opcodes.OPC_invokevirtual,world.makeMethodBindingForCall(AjcMemberMaker.cflowStackPeekInstance()),null);
codeStream.checkcast(binding);
codeStream.areturn();
// body ends here
@@ -483,8 +487,8 @@ public class AspectDeclaration extends TypeDeclaration {
generateMethod(classFile, hasAspectMethod, new BodyGenerator() {
public void generate(CodeStream codeStream) {
// body starts here
- codeStream.getstatic(world.makeFieldBinding(AjcMemberMaker.perCflowField(typeX)));
- codeStream.invokevirtual(world.makeMethodBindingForCall(AjcMemberMaker.cflowStackIsValid()));
+ codeStream.fieldAccess(Opcodes.OPC_getstatic,world.makeFieldBinding(AjcMemberMaker.perCflowField(typeX)),null);
+ codeStream.invoke(Opcodes.OPC_invokevirtual,world.makeMethodBindingForCall(AjcMemberMaker.cflowStackIsValid()),null);
codeStream.ireturn();
// body ends here
}
@@ -497,13 +501,13 @@ public class AspectDeclaration extends TypeDeclaration {
new BodyGenerator() {
public void generate(CodeStream codeStream) {
// body starts here
- codeStream.getstatic(world.makeFieldBinding(AjcMemberMaker.perCflowField(typeX)));
+ codeStream.fieldAccess(Opcodes.OPC_getstatic,world.makeFieldBinding(AjcMemberMaker.perCflowField(typeX)),null);
codeStream.new_(binding);
codeStream.dup();
- codeStream.invokespecial(new MethodBinding(0, "<init>".toCharArray(), TypeBinding.VOID, new TypeBinding[0],
- new ReferenceBinding[0], binding));
+ codeStream.invoke(Opcodes.OPC_invokespecial,new MethodBinding(0, "<init>".toCharArray(), TypeBinding.VOID, new TypeBinding[0],
+ new ReferenceBinding[0], binding),null);
- codeStream.invokevirtual(world.makeMethodBindingForCall(AjcMemberMaker.cflowStackPushInstance()));
+ codeStream.invoke(Opcodes.OPC_invokevirtual, world.makeMethodBindingForCall(AjcMemberMaker.cflowStackPushInstance()), null);
codeStream.return_();
// body ends here
}
@@ -519,8 +523,8 @@ public class AspectDeclaration extends TypeDeclaration {
// body starts here
codeStream.new_(world.makeTypeBinding(AjcMemberMaker.CFLOW_STACK_TYPE));
codeStream.dup();
- codeStream.invokespecial(world.makeMethodBindingForCall(AjcMemberMaker.cflowStackInit()));
- codeStream.putstatic(world.makeFieldBinding(AjcMemberMaker.perCflowField(typeX)));
+ codeStream.invoke(Opcodes.OPC_invokespecial,world.makeMethodBindingForCall(AjcMemberMaker.cflowStackInit()),null);
+ codeStream.fieldAccess(Opcodes.OPC_putstatic,world.makeFieldBinding(AjcMemberMaker.perCflowField(typeX)),null);
codeStream.return_();
// body ends here
}
@@ -558,7 +562,7 @@ public class AspectDeclaration extends TypeDeclaration {
.makeTypeBinding(UnresolvedType.JL_EXCEPTION));
anythingGoesWrong.placeStart();
codeStream.aload_0();
- codeStream.invokestatic(world.makeMethodBindingForCall(AjcMemberMaker.perTypeWithinGetInstance(typeX)));
+ codeStream.invoke(Opcodes.OPC_invokestatic,world.makeMethodBindingForCall(AjcMemberMaker.perTypeWithinGetInstance(typeX)),null);
codeStream.astore_1();
codeStream.aload_1();
codeStream.ifnonnull(instanceFound);
@@ -568,7 +572,7 @@ public class AspectDeclaration extends TypeDeclaration {
codeStream.ldc(typeX.getName());
codeStream.aconst_null();
- codeStream.invokespecial(world.makeMethodBindingForCall(AjcMemberMaker.noAspectBoundExceptionInit2()));
+ codeStream.invoke(Opcodes.OPC_invokespecial,world.makeMethodBindingForCall(AjcMemberMaker.noAspectBoundExceptionInit2()),null);
codeStream.athrow();
instanceFound.place();
codeStream.aload_1();
@@ -583,7 +587,7 @@ public class AspectDeclaration extends TypeDeclaration {
codeStream.dup();
// Run the simple ctor for NABE
- codeStream.invokespecial(world.makeMethodBindingForCall(AjcMemberMaker.noAspectBoundExceptionInit()));
+ codeStream.invoke(Opcodes.OPC_invokespecial,world.makeMethodBindingForCall(AjcMemberMaker.noAspectBoundExceptionInit()),null);
codeStream.athrow();
}
});
@@ -601,7 +605,7 @@ public class AspectDeclaration extends TypeDeclaration {
codeStream.ifeq(wrongType);
codeStream.aload_0();
codeStream.checkcast(interfaceType);
- codeStream.invokeinterface(world.makeMethodBindingForCall(AjcMemberMaker.perObjectInterfaceGet(typeX)));
+ codeStream.invoke(Opcodes.OPC_invokeinterface,world.makeMethodBindingForCall(AjcMemberMaker.perObjectInterfaceGet(typeX)),null);
codeStream.dup();
codeStream.ifnull(popWrongType);
@@ -613,7 +617,7 @@ public class AspectDeclaration extends TypeDeclaration {
wrongType.place();
codeStream.new_(world.makeTypeBinding(AjcMemberMaker.NO_ASPECT_BOUND_EXCEPTION));
codeStream.dup();
- codeStream.invokespecial(world.makeMethodBindingForCall(AjcMemberMaker.noAspectBoundExceptionInit()));
+ codeStream.invoke(Opcodes.OPC_invokespecial,world.makeMethodBindingForCall(AjcMemberMaker.noAspectBoundExceptionInit()),null);
codeStream.athrow();
// body ends here
}
@@ -632,7 +636,7 @@ public class AspectDeclaration extends TypeDeclaration {
codeStream.ifeq(wrongType);
codeStream.aload_0();
codeStream.checkcast(interfaceType);
- codeStream.invokeinterface(world.makeMethodBindingForCall(AjcMemberMaker.perObjectInterfaceGet(typeX)));
+ codeStream.invoke(Opcodes.OPC_invokeinterface,world.makeMethodBindingForCall(AjcMemberMaker.perObjectInterfaceGet(typeX)),null);
codeStream.ifnull(wrongType);
codeStream.iconst_1();
codeStream.ireturn();
@@ -655,7 +659,7 @@ public class AspectDeclaration extends TypeDeclaration {
BranchLabel leave = new BranchLabel(codeStream);
goneBang.placeStart();
codeStream.aload_0();
- codeStream.invokestatic(world.makeMethodBinding(AjcMemberMaker.perTypeWithinGetInstance(typeX)));
+ codeStream.invoke(Opcodes.OPC_invokestatic,world.makeMethodBinding(AjcMemberMaker.perTypeWithinGetInstance(typeX)),null);
codeStream.ifnull(noInstanceExists);
codeStream.iconst_1();
codeStream.goto_(leave);
@@ -683,7 +687,7 @@ public class AspectDeclaration extends TypeDeclaration {
codeStream.ifeq(wrongType); // XXX this case might call for screaming
codeStream.aload_0();
codeStream.checkcast(interfaceType);
- codeStream.invokeinterface(world.makeMethodBindingForCall(AjcMemberMaker.perObjectInterfaceGet(typeX)));
+ codeStream.invoke(Opcodes.OPC_invokeinterface,world.makeMethodBindingForCall(AjcMemberMaker.perObjectInterfaceGet(typeX)),null);
// XXX should do a check for null here and throw a NoAspectBound
codeStream.ifnonnull(wrongType);
@@ -691,9 +695,9 @@ public class AspectDeclaration extends TypeDeclaration {
codeStream.checkcast(interfaceType);
codeStream.new_(binding);
codeStream.dup();
- codeStream.invokespecial(new MethodBinding(0, "<init>".toCharArray(), TypeBinding.VOID, new TypeBinding[0],
- new ReferenceBinding[0], binding));
- codeStream.invokeinterface(world.makeMethodBindingForCall(AjcMemberMaker.perObjectInterfaceSet(typeX)));
+ codeStream.invoke(Opcodes.OPC_invokespecial,new MethodBinding(0, "<init>".toCharArray(), TypeBinding.VOID, new TypeBinding[0],
+ new ReferenceBinding[0], binding),null);
+ codeStream.invoke(Opcodes.OPC_invokeinterface,world.makeMethodBindingForCall(AjcMemberMaker.perObjectInterfaceSet(typeX)),null);
wrongType.place();
codeStream.return_();
@@ -715,7 +719,7 @@ public class AspectDeclaration extends TypeDeclaration {
ExceptionLabel exc = new ExceptionLabel(codeStream, world.makeTypeBinding(UnresolvedType.JL_EXCEPTION));
exc.placeStart();
codeStream.aload_0();
- codeStream.getfield(world.makeFieldBinding(AjcMemberMaker.perTypeWithinWithinTypeField(typeX, typeX)));
+ codeStream.fieldAccess(Opcodes.OPC_getfield,world.makeFieldBinding(AjcMemberMaker.perTypeWithinWithinTypeField(typeX, typeX)),null);
codeStream.areturn();
}
});
@@ -731,19 +735,19 @@ public class AspectDeclaration extends TypeDeclaration {
codeStream.aload_0();
codeStream.ldc(NameMangler.perTypeWithinLocalAspectOf(typeX));
codeStream.aconst_null();
- codeStream.invokevirtual(new MethodBinding(0, "getDeclaredMethod".toCharArray(),
+ codeStream.invoke(Opcodes.OPC_invokevirtual,new MethodBinding(0, "getDeclaredMethod".toCharArray(),
world.makeTypeBinding(UnresolvedType.forSignature("Ljava/lang/reflect/Method;")), // return type
new TypeBinding[] { world.makeTypeBinding(UnresolvedType.forSignature("Ljava/lang/String;")),
world.makeTypeBinding(UnresolvedType.forSignature("[Ljava/lang/Class;")) },
- new ReferenceBinding[0], (ReferenceBinding) world.makeTypeBinding(UnresolvedType.JL_CLASS)));
+ new ReferenceBinding[0], (ReferenceBinding) world.makeTypeBinding(UnresolvedType.JL_CLASS)),null);
codeStream.astore_1();
codeStream.aload_1();
codeStream.aconst_null();
codeStream.aconst_null();
- codeStream.invokevirtual(new MethodBinding(0, "invoke".toCharArray(), world.makeTypeBinding(UnresolvedType.OBJECT),
+ codeStream.invoke(Opcodes.OPC_invokevirtual,new MethodBinding(0, "invoke".toCharArray(), world.makeTypeBinding(UnresolvedType.OBJECT),
new TypeBinding[] { world.makeTypeBinding(UnresolvedType.OBJECT),
world.makeTypeBinding(UnresolvedType.forSignature("[Ljava/lang/Object;")) },
- new ReferenceBinding[0], (ReferenceBinding) world.makeTypeBinding(UnresolvedType.JAVA_LANG_REFLECT_METHOD)));
+ new ReferenceBinding[0], (ReferenceBinding) world.makeTypeBinding(UnresolvedType.JAVA_LANG_REFLECT_METHOD)),null);
codeStream.checkcast(world.makeTypeBinding(typeX));
codeStream.astore_2();
codeStream.aload_2();
@@ -766,12 +770,12 @@ public class AspectDeclaration extends TypeDeclaration {
codeStream.new_(world.makeTypeBinding(typeX));
codeStream.dup();
- codeStream.invokespecial(new MethodBinding(0, "<init>".toCharArray(), TypeBinding.VOID, new TypeBinding[0],
- new ReferenceBinding[0], binding));
+ codeStream.invoke(Opcodes.OPC_invokespecial,new MethodBinding(0, "<init>".toCharArray(), TypeBinding.VOID, new TypeBinding[0],
+ new ReferenceBinding[0], binding),null);
codeStream.astore_1();
codeStream.aload_1();
codeStream.aload_0();
- codeStream.putfield(world.makeFieldBinding(AjcMemberMaker.perTypeWithinWithinTypeField(typeX, typeX)));
+ codeStream.fieldAccess(Opcodes.OPC_putfield,world.makeFieldBinding(AjcMemberMaker.perTypeWithinWithinTypeField(typeX, typeX)),null);
codeStream.aload_1();
codeStream.areturn();
}
@@ -810,17 +814,17 @@ public class AspectDeclaration extends TypeDeclaration {
*/
// body starts here (see end of each line for what it is doing!)
FieldBinding fb = world.makeFieldBinding(AjcMemberMaker.perSingletonField(typeX));
- codeStream.getstatic(fb); // GETSTATIC
+ codeStream.fieldAccess(Opcodes.OPC_getstatic, fb, null);
BranchLabel isNonNull = new BranchLabel(codeStream);
codeStream.ifnonnull(isNonNull); // IFNONNULL
codeStream.new_(world.makeTypeBinding(AjcMemberMaker.NO_ASPECT_BOUND_EXCEPTION)); // NEW
codeStream.dup(); // DUP
codeStream.ldc(typeX.getNameAsIdentifier()); // LDC
- codeStream.getstatic(initFailureField); // GETSTATIC
- codeStream.invokespecial(world.makeMethodBindingForCall(AjcMemberMaker.noAspectBoundExceptionInitWithCause())); // INVOKESPECIAL
+ codeStream.fieldAccess(Opcodes.OPC_getstatic,initFailureField,null);
+ codeStream.invoke(Opcodes.OPC_invokespecial,world.makeMethodBindingForCall(AjcMemberMaker.noAspectBoundExceptionInitWithCause()),null); // INVOKESPECIAL
codeStream.athrow(); // ATHROW
isNonNull.place();
- codeStream.getstatic(fb); // GETSTATIC
+ codeStream.fieldAccess(Opcodes.OPC_getstatic,fb,null);
codeStream.areturn(); // ARETURN
// body ends here
}
@@ -832,7 +836,7 @@ public class AspectDeclaration extends TypeDeclaration {
generateMethod(classFile, hasAspectMethod, new BodyGenerator() {
public void generate(CodeStream codeStream) {
// body starts here
- codeStream.getstatic(world.makeFieldBinding(AjcMemberMaker.perSingletonField(typeX)));
+ codeStream.fieldAccess(Opcodes.OPC_getstatic,world.makeFieldBinding(AjcMemberMaker.perSingletonField(typeX)),null);
BranchLabel isNull = new BranchLabel(codeStream);
codeStream.ifnull(isNull);
codeStream.iconst_1();
@@ -853,10 +857,10 @@ public class AspectDeclaration extends TypeDeclaration {
// body starts here
codeStream.new_(binding);
codeStream.dup();
- codeStream.invokespecial(new MethodBinding(0, "<init>".toCharArray(), TypeBinding.VOID, new TypeBinding[0],
- new ReferenceBinding[0], binding));
+ codeStream.invoke(Opcodes.OPC_invokespecial,new MethodBinding(0, "<init>".toCharArray(), TypeBinding.VOID, new TypeBinding[0],
+ new ReferenceBinding[0], binding),null);
- codeStream.putstatic(world.makeFieldBinding(AjcMemberMaker.perSingletonField(typeX)));
+ codeStream.fieldAccess(Opcodes.OPC_putstatic, world.makeFieldBinding(AjcMemberMaker.perSingletonField(typeX)), null);
codeStream.return_();
// body ends here
}
@@ -870,7 +874,7 @@ public class AspectDeclaration extends TypeDeclaration {
// body starts here
codeStream.aload_0();
AstUtil.generateParameterLoads(accessMethod.parameters, codeStream, 1);
- codeStream.invokespecial(factory.makeMethodBinding(method));
+ codeStream.invoke(Opcodes.OPC_invokespecial,factory.makeMethodBinding(method),null);
AstUtil.generateReturn(accessMethod.returnType, codeStream);
// body ends here
}
@@ -894,10 +898,10 @@ public class AspectDeclaration extends TypeDeclaration {
public void generate(CodeStream codeStream) {
// body starts here
if (Modifier.isStatic(field.getModifiers())) {
- codeStream.getstatic(fieldBinding);
+ codeStream.fieldAccess(Opcodes.OPC_getstatic,fieldBinding,null);
} else {
codeStream.aload_0();
- codeStream.getfield(fieldBinding);
+ codeStream.fieldAccess(Opcodes.OPC_getfield,fieldBinding,null);
}
AstUtil.generateReturn(accessField.reader.returnType, codeStream);
@@ -911,11 +915,11 @@ public class AspectDeclaration extends TypeDeclaration {
// body starts here
if (Modifier.isStatic(field.getModifiers())) {
codeStream.load(fieldBinding.type, 0);
- codeStream.putstatic(fieldBinding);
+ codeStream.fieldAccess(Opcodes.OPC_putstatic,fieldBinding,null);
} else {
codeStream.aload_0();
codeStream.load(fieldBinding.type, 1);
- codeStream.putfield(fieldBinding);
+ codeStream.fieldAccess(Opcodes.OPC_putfield,fieldBinding,null);
}
codeStream.return_();
@@ -934,9 +938,9 @@ public class AspectDeclaration extends TypeDeclaration {
AstUtil.generateParameterLoads(accessMethod.parameters, codeStream);
if (Modifier.isStatic(method.getModifiers())) {
- codeStream.invokestatic(factory.makeMethodBinding(method));
+ codeStream.invoke(Opcodes.OPC_invokestatic,factory.makeMethodBinding(method),null);
} else {
- codeStream.invokevirtual(factory.makeMethodBinding(method));
+ codeStream.invoke(Opcodes.OPC_invokevirtual,factory.makeMethodBinding(method),null);
}
AstUtil.generateReturn(accessMethod.returnType, codeStream);
@@ -1135,7 +1139,7 @@ public class AspectDeclaration extends TypeDeclaration {
}
// may be unresolved if the aspect type binding was a BinaryTypeBinding
if (innerTypeBinding instanceof UnresolvedReferenceBinding) {
- innerTypeBinding = BinaryTypeBinding.resolveType(innerTypeBinding, world.getLookupEnvironment(), true);
+ innerTypeBinding = (ReferenceBinding)BinaryTypeBinding.resolveType(innerTypeBinding, world.getLookupEnvironment(), true);
}
if (innerTypeBinding == null) {
throw new IllegalStateException("Could not find inner type binding for '" + munger.getMemberTypeName() + "'");
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AstUtil.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AstUtil.java
index eb7810096..23c874795 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AstUtil.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AstUtil.java
@@ -116,7 +116,7 @@ public class AstUtil {
public static SingleNameReference makeLocalVariableReference(LocalVariableBinding binding) {
SingleNameReference ret = new SingleNameReference(binding.name, 0);
ret.binding = binding;
- ret.codegenBinding = binding;
+// ret.codegenBinding = binding;
ret.constant = Constant.NotAConstant;
ret.bits &= ~ASTNode.RestrictiveFlagMASK; // clear bits
ret.bits |= Binding.VARIABLE;
@@ -126,7 +126,7 @@ public class AstUtil {
public static SingleNameReference makeResolvedLocalVariableReference(LocalVariableBinding binding) {
SingleNameReference ret = new SingleNameReference(binding.name, 0);
ret.binding = binding;
- ret.codegenBinding = binding;
+// ret.codegenBinding = binding;
ret.constant = Constant.NotAConstant;
ret.bits &= ~ASTNode.RestrictiveFlagMASK; // clear bits
ret.bits |= Binding.LOCAL;
@@ -300,7 +300,7 @@ public class AstUtil {
}
public static void replaceMethodBinding(MessageSend send, MethodBinding newBinding) {
- send.binding = send.codegenBinding = newBinding;
+ send.binding =/* send.codegenBinding =*/ newBinding;
send.setActualReceiverType(newBinding.declaringClass);
}
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AtAspectJAnnotationFactory.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AtAspectJAnnotationFactory.java
index 965eef3a3..3a9d499f9 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AtAspectJAnnotationFactory.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AtAspectJAnnotationFactory.java
@@ -251,7 +251,7 @@ public class AtAspectJAnnotationFactory {
NormalAnnotation ann = new NormalAnnotation(annType,pos);
Expression targetExpr = new StringLiteral(targetTypeName,pos,pos,1);
Expression nameExpr = new StringLiteral(name,pos,pos,1);
- Expression modsExpr = new IntLiteral(Integer.toString(modifiers).toCharArray(),pos,pos);
+ Expression modsExpr = IntLiteral.buildIntLiteral(Integer.toString(modifiers).toCharArray(),pos,pos);
MemberValuePair[] mvps = new MemberValuePair[3];
mvps[0] = new MemberValuePair("targetType".toCharArray(),pos,pos,targetExpr);
mvps[1] = new MemberValuePair("name".toCharArray(),pos,pos,nameExpr);
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/IfMethodDeclaration.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/IfMethodDeclaration.java
index 65115429c..24e463fe3 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/IfMethodDeclaration.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/IfMethodDeclaration.java
@@ -38,7 +38,7 @@ public class IfMethodDeclaration extends AjMethodDeclaration {
}
protected int generateInfoAttributes(ClassFile classFile) {
- return classFile.generateMethodInfoAttribute(binding, false, AstUtil.getAjSyntheticAttribute());
+ return classFile.generateMethodInfoAttributes(binding, AstUtil.getAjSyntheticAttribute());
}
public void resolveStatements() {
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeDeclaration.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeDeclaration.java
index 4c3eeff06..e17aa5d3d 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeDeclaration.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeDeclaration.java
@@ -324,7 +324,7 @@ public abstract class InterTypeDeclaration extends AjMethodDeclaration {
}
addDeclarationStartLineAttribute(l,classFile);
- return classFile.generateMethodInfoAttribute(binding, false, l);
+ return classFile.generateMethodInfoAttributes(binding, l);
}
protected abstract Shadow.Kind getShadowKindForBody();
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeFieldDeclaration.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeFieldDeclaration.java
index aa67fc2ef..d4f45dbc3 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeFieldDeclaration.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeFieldDeclaration.java
@@ -30,6 +30,7 @@ import org.aspectj.org.eclipse.jdt.internal.compiler.ast.ReturnStatement;
import org.aspectj.org.eclipse.jdt.internal.compiler.ast.Statement;
import org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeReference;
import org.aspectj.org.eclipse.jdt.internal.compiler.codegen.CodeStream;
+import org.aspectj.org.eclipse.jdt.internal.compiler.codegen.Opcodes;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ArrayBinding;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ClassScope;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.FieldBinding;
@@ -323,8 +324,7 @@ public class InterTypeFieldDeclaration extends InterTypeDeclaration {
}
classFile.generateMethodInfoHeader(binding);
int methodAttributeOffset = classFile.contentsOffset;
- int attributeNumber = classFile.generateMethodInfoAttribute(binding, false,
- makeEffectiveSignatureAttribute(sig, isGetter ? Shadow.FieldGet : Shadow.FieldSet, false));
+ int attributeNumber = classFile.generateMethodInfoAttributes(binding, makeEffectiveSignatureAttribute(sig, isGetter ? Shadow.FieldGet : Shadow.FieldSet, false));
int codeAttributeOffset = classFile.contentsOffset;
classFile.generateCodeAttributeHeader();
CodeStream codeStream = classFile.codeStream;
@@ -377,18 +377,18 @@ public class InterTypeFieldDeclaration extends InterTypeDeclaration {
classFile.completeCodeAttribute(codeAttributeOffset);
attributeNumber++;
- classFile.completeMethodInfo(methodAttributeOffset, attributeNumber);
+ classFile.completeMethodInfo(binding,methodAttributeOffset, attributeNumber);
}
private void generateInterfaceReadBody(MethodBinding binding, MethodBinding readMethod, CodeStream codeStream) {
codeStream.aload_0();
- codeStream.invokeinterface(readMethod);
+ codeStream.invoke(Opcodes.OPC_invokeinterface,readMethod,null);
}
private void generateInterfaceWriteBody(MethodBinding binding, MethodBinding writeMethod, CodeStream codeStream) {
codeStream.aload_0();
codeStream.load(writeMethod.parameters[0], 1);
- codeStream.invokeinterface(writeMethod);
+ codeStream.invoke(Opcodes.OPC_invokeinterface, writeMethod, null);
}
private void generateClassReadBody(MethodBinding binding, FieldBinding field, CodeStream codeStream) {
@@ -407,18 +407,18 @@ public class InterTypeFieldDeclaration extends InterTypeDeclaration {
PrivilegedFieldBinding fBinding = (PrivilegedFieldBinding) handler.getPrivilegedAccessField(field, null);
if (field.isStatic()) {
- codeStream.invokestatic(fBinding.reader);
+ codeStream.invoke(Opcodes.OPC_invokestatic,fBinding.reader,null);
} else {
codeStream.aload_0();
- codeStream.invokestatic(fBinding.reader);
+ codeStream.invoke(Opcodes.OPC_invokestatic,fBinding.reader,null);
}
return;
}
if (field.isStatic()) {
- codeStream.getstatic(field);
+ codeStream.fieldAccess(Opcodes.OPC_getstatic,field,null);
} else {
codeStream.aload_0();
- codeStream.getfield(field);
+ codeStream.fieldAccess(Opcodes.OPC_getfield,field,null);
}
}
@@ -426,24 +426,23 @@ public class InterTypeFieldDeclaration extends InterTypeDeclaration {
if (field.isPrivate() || !field.canBeSeenBy(binding.declaringClass.fPackage)) {
PrivilegedFieldBinding fBinding = (PrivilegedFieldBinding) Scope.findPrivilegedHandler(binding.declaringClass)
.getPrivilegedAccessField(field, null);
-
if (field.isStatic()) {
codeStream.load(field.type, 0);
- codeStream.invokestatic(fBinding.writer);
+ codeStream.invoke(Opcodes.OPC_invokestatic,fBinding.writer,null);
} else {
codeStream.aload_0();
codeStream.load(field.type, 1);
- codeStream.invokestatic(fBinding.writer);
+ codeStream.invoke(Opcodes.OPC_invokestatic,fBinding.writer,null);
}
return;
}
if (field.isStatic()) {
codeStream.load(field.type, 0);
- codeStream.putstatic(field);
+ codeStream.fieldAccess(Opcodes.OPC_putstatic,field,null);
} else {
codeStream.aload_0();
codeStream.load(field.type, 1);
- codeStream.putfield(field);
+ codeStream.fieldAccess(Opcodes.OPC_putfield,field,null);
}
}
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeMethodDeclaration.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeMethodDeclaration.java
index 0cf8dabe1..bd234dd03 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeMethodDeclaration.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeMethodDeclaration.java
@@ -24,6 +24,7 @@ import org.aspectj.org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclarat
import org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeReference;
import org.aspectj.org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants;
import org.aspectj.org.eclipse.jdt.internal.compiler.codegen.CodeStream;
+import org.aspectj.org.eclipse.jdt.internal.compiler.codegen.Opcodes;
import org.aspectj.org.eclipse.jdt.internal.compiler.flow.FlowInfo;
import org.aspectj.org.eclipse.jdt.internal.compiler.flow.InitializationFlowContext;
import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ClassScope;
@@ -253,7 +254,7 @@ public class InterTypeMethodDeclaration extends InterTypeDeclaration {
// the dispatch binding attributes will include the annotations from the 'binding'.
// There is a chance that something else on the binding (e.g. throws clause) might
// damage the attributes generated for the dispatch binding.
- int attributeNumber = classFile.generateMethodInfoAttribute(binding, false, makeEffectiveSignatureAttribute(signature,
+ int attributeNumber = classFile.generateMethodInfoAttributes(binding, makeEffectiveSignatureAttribute(signature,
Shadow.MethodCall, false));
int codeAttributeOffset = classFile.contentsOffset;
classFile.generateCodeAttributeHeader();
@@ -291,12 +292,12 @@ public class InterTypeMethodDeclaration extends InterTypeDeclaration {
}
// TypeBinding type;
if (methodBinding.isStatic())
- codeStream.invokestatic(methodBinding);
+ codeStream.invoke(Opcodes.OPC_invokestatic,methodBinding,null);
else {
if (methodBinding.declaringClass.isInterface()) {
- codeStream.invokeinterface(methodBinding);
+ codeStream.invoke(Opcodes.OPC_invokeinterface, methodBinding, null);
} else {
- codeStream.invokevirtual(methodBinding);
+ codeStream.invoke(Opcodes.OPC_invokevirtual, methodBinding, null);
}
}
AstUtil.generateReturn(dispatchBinding.returnType, codeStream);
@@ -311,7 +312,7 @@ public class InterTypeMethodDeclaration extends InterTypeDeclaration {
}
classFile.completeCodeAttribute(codeAttributeOffset);
attributeNumber++;
- classFile.completeMethodInfo(methodAttributeOffset, attributeNumber);
+ classFile.completeMethodInfo(binding,methodAttributeOffset, attributeNumber);
}
protected Shadow.Kind getShadowKindForBody() {
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/KnownFieldReference.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/KnownFieldReference.java
index 1fc25ef75..d0a61e248 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/KnownFieldReference.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/KnownFieldReference.java
@@ -25,7 +25,7 @@ public class KnownFieldReference extends QualifiedNameReference {
public KnownFieldReference(FieldBinding binding, int startPos,int endPos) {
super(new char[][] {binding.name},new long[1], startPos, endPos);
- this.binding = this.codegenBinding = binding;
+ this.binding = /*this.codegenBinding = */binding;
this.constant = Constant.NotAConstant;
this.actualReceiverType = binding.declaringClass;
@@ -36,7 +36,7 @@ public class KnownFieldReference extends QualifiedNameReference {
//XXX handle source locations
public KnownFieldReference(FieldBinding binding, long pos) {
super(new char[][] {binding.name},new long[1], 0, 0);
- this.binding = this.codegenBinding = binding;
+ this.binding = /*this.codegenBinding = */binding;
this.constant = Constant.NotAConstant;
this.actualReceiverType = binding.declaringClass;
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/KnownMessageSend.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/KnownMessageSend.java
index 315d06fa0..6cf6527b6 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/KnownMessageSend.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/KnownMessageSend.java
@@ -9,8 +9,6 @@
* Contributors:
* PARC initial implementation
* ******************************************************************/
-
-
package org.aspectj.ajdt.internal.compiler.ast;
import org.aspectj.org.eclipse.jdt.internal.compiler.ast.Expression;
@@ -25,9 +23,10 @@ public class KnownMessageSend extends MessageSend {
public KnownMessageSend(MethodBinding binding, Expression receiver, Expression[] arguments) {
super();
- this.binding = this.codegenBinding = binding;
+ this.binding = binding;
this.arguments = arguments;
this.receiver = receiver;
+ this.actualReceiverType = binding.declaringClass;
this.selector = binding.selector;
constant = Constant.NotAConstant;
}
@@ -40,6 +39,7 @@ public class KnownMessageSend extends MessageSend {
BlockScope scope,
TypeBinding[] argumentTypes) {
// we've already resolved this
+
}
public String toStringExpression() {
@@ -51,6 +51,7 @@ public class KnownMessageSend extends MessageSend {
CodeStream codeStream,
boolean valueRequired) {
//System.out.println("about to generate: " +this + " args: " + Arrays.asList(arguments));
+// this.actualReceiverType = this.receiver.resolveType(currentScope);
super.generateCode(currentScope, codeStream, valueRequired);
}
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/Proceed.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/Proceed.java
index b9229657c..6e628431a 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/Proceed.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/Proceed.java
@@ -46,7 +46,7 @@ public class Proceed extends MessageSend {
this.selector = parent.selector;
this.arguments = parent.arguments;
this.binding = parent.binding;
- this.codegenBinding = parent.codegenBinding;
+ //this.codegenBinding = parent.codegenBinding;
this.syntheticAccessor = parent.syntheticAccessor;
this.expectedType = parent.expectedType;
@@ -72,7 +72,7 @@ public class Proceed extends MessageSend {
}
constant = Constant.NotAConstant;
- binding = codegenBinding = aroundDecl.proceedMethodBinding;
+ binding =/* codegenBinding = */aroundDecl.proceedMethodBinding;
this.actualReceiverType = binding.declaringClass;
@@ -163,7 +163,7 @@ public class Proceed extends MessageSend {
if (argType != null) {
TypeBinding paramType = binding.parameters[i];
if (!argType.isCompatibleWith(paramType)) {
- scope.problemReporter().typeMismatchError(argType, paramType, arg);
+ scope.problemReporter().typeMismatchError(argType, paramType, arg,null);
}
}
}
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/ProceedVisitor.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/ProceedVisitor.java
index 243fa0e85..d633ebba2 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/ProceedVisitor.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/ProceedVisitor.java
@@ -168,7 +168,7 @@ public class ProceedVisitor extends ASTVisitor {
//System.err.println("replace static ref");
NameReference receiver = (NameReference) call.receiver;
receiver.binding = thisJoinPointStaticPartDecLocal; //thisJoinPointStaticPartDec;
- receiver.codegenBinding = thisJoinPointStaticPartDecLocal;
+// receiver.codegenBinding = thisJoinPointStaticPartDecLocal;
call.binding.declaringClass =
(ReferenceBinding) thisJoinPointStaticPartDec.type;
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/SuperFixerVisitor.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/SuperFixerVisitor.java
index 11097ea59..96f0d3227 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/SuperFixerVisitor.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/SuperFixerVisitor.java
@@ -83,10 +83,10 @@ public class SuperFixerVisitor extends ASTVisitor {
public void endVisit(MessageSend call, BlockScope scope) {
// System.out.println("endVisit: " + call);
// an error has already occurred
- if (call.codegenBinding == null)
+ if (call.binding/*codegenBinding*/ == null)
return;
- MethodBinding superBinding = call.codegenBinding;
+ MethodBinding superBinding = call.binding/*codegenBinding*/;
if (superBinding instanceof ProblemMethodBinding) {
return;
}
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/ThisJoinPointVisitor.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/ThisJoinPointVisitor.java
index 9f4273fe3..994be09f3 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/ThisJoinPointVisitor.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/ThisJoinPointVisitor.java
@@ -188,7 +188,7 @@ public class ThisJoinPointVisitor extends ASTVisitor {
// System.err.println("replace static ref: " + receiver + " is " + System.identityHashCode(receiver));
receiver.binding = thisJoinPointStaticPartDecLocal; // thisJoinPointStaticPartDec;
- receiver.codegenBinding = thisJoinPointStaticPartDecLocal;
+// receiver.codegenBinding = thisJoinPointStaticPartDecLocal;
ReferenceBinding thisJoinPointStaticPartType = (ReferenceBinding) thisJoinPointStaticPartDec.type;
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java
index 5afa9875c..c9c078c81 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java
@@ -1016,7 +1016,7 @@ public class EclipseFactory {
// } else {
// declaringElement = makeTypeBinding((UnresolvedType)tVar.getDeclaringElement());
// }
- tvBinding = new TypeVariableBinding(tv.getName().toCharArray(), declaringElement, tv.getRank());
+ tvBinding = new TypeVariableBinding(tv.getName().toCharArray(), declaringElement, tv.getRank(),this.lookupEnvironment);
typeVariableToTypeBinding.put(tv.getName(), tvBinding);
if (tv.getSuperclass() != null
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseTypeMunger.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseTypeMunger.java
index 36ee073b6..e77c20a23 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseTypeMunger.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseTypeMunger.java
@@ -182,7 +182,7 @@ public class EclipseTypeMunger extends ConcreteTypeMunger {
}
// may be unresolved if the aspect type binding was a BinaryTypeBinding
if (innerTypeBinding instanceof UnresolvedReferenceBinding) {
- innerTypeBinding = BinaryTypeBinding.resolveType(innerTypeBinding, world.getLookupEnvironment(), true);
+ innerTypeBinding = (ReferenceBinding)BinaryTypeBinding.resolveType(innerTypeBinding, world.getLookupEnvironment(), true);
}
// rb = new InterTypeMemberClassBinding(world, munger, aspectType, aspectTypeBinding, onType, munger.getMemberTypeName(),
// sourceType);
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/HelperInterfaceBinding.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/HelperInterfaceBinding.java
index 616894dea..4abbc51ba 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/HelperInterfaceBinding.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/HelperInterfaceBinding.java
@@ -102,8 +102,8 @@ public class HelperInterfaceBinding extends SourceTypeBinding {
private void generateMethod(ClassFile classFile, MethodBinding binding) {
classFile.generateMethodInfoHeader(binding);
int methodAttributeOffset = classFile.contentsOffset;
- int attributeNumber = classFile.generateMethodInfoAttribute(binding);
- classFile.completeMethodInfo(methodAttributeOffset, attributeNumber);
+ int attributeNumber = classFile.generateMethodInfoAttributes(binding);
+ classFile.completeMethodInfo(binding,methodAttributeOffset, attributeNumber);
}
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/InterTypeScope.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/InterTypeScope.java
index f4e6e4df0..11dbebee2 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/InterTypeScope.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/InterTypeScope.java
@@ -87,7 +87,7 @@ public class InterTypeScope extends ClassScope {
int aliased = (aliases == null ? -1 : aliases.indexOf(variableName));
if (aliased != -1) {
if (aliased > sourceType.typeVariables.length || sourceType.typeVariables.length == 0) {
- TypeVariableBinding tvb = new TypeVariableBinding("fake".toCharArray(), null, 0);
+ TypeVariableBinding tvb = new TypeVariableBinding("fake".toCharArray(), null, 0,this.environment());
tvb.superclass = getJavaLangObject();
tvb.fPackage = new PackageBinding(environment());
return tvb;
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/problem/AjProblemReporter.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/problem/AjProblemReporter.java
index ce57bfe44..93c912a12 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/problem/AjProblemReporter.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/problem/AjProblemReporter.java
@@ -305,7 +305,9 @@ public class AjProblemReporter extends ProblemReporter {
if (severity != ProblemSeverities.Ignore && DUMP_STACK) {
Thread.dumpStack();
}
- super.handle(problemId, problemArguments, messageArguments, severity, problemStartPosition, problemEndPosition,
+ super.handle(problemId, problemArguments,
+ 0, // no message elaboration
+ messageArguments, severity, problemStartPosition, problemEndPosition,
referenceContext, unitResult);
}
@@ -357,7 +359,7 @@ public class AjProblemReporter extends ProblemReporter {
* Overrides the implementation in ProblemReporter and is ITD aware. To report a *real* problem with an ITD marked @override,
* the other methodMustOverride() method is used.
*/
- public void methodMustOverride(AbstractMethodDeclaration method) {
+ public void methodMustOverride(AbstractMethodDeclaration method, int complianceLevel) {
// ignore ajc$ methods
if (new String(method.selector).startsWith("ajc$"))
@@ -389,7 +391,7 @@ public class AjProblemReporter extends ProblemReporter {
supertypeToLookAt = supertypeToLookAt.getSuperclass();
}
// report the error...
- super.methodMustOverride(method);
+ super.methodMustOverride(method,complianceLevel);
}
private String typesAsString(boolean isVarargs, TypeBinding[] types, boolean makeShort) {
@@ -668,12 +670,12 @@ public class AjProblemReporter extends ProblemReporter {
}
}
- public void duplicateMethodInType(SourceTypeBinding type, AbstractMethodDeclaration methodDecl) {
+ public void duplicateMethodInType(SourceTypeBinding type, AbstractMethodDeclaration methodDecl, boolean equalParameters, int severity) {
if (new String(methodDecl.selector).startsWith("ajc$interMethod")) {
// this is an ITD clash and will be reported in another way by AspectJ (173602)
return;
}
- super.duplicateMethodInType(type, methodDecl);
+ super.duplicateMethodInType(type, methodDecl, equalParameters, severity);
}
// pr246393 - if we are going to complain about privileged, we clearly don't know what is going on, so don't
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java
index df537fa36..dfa878d96 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java
@@ -80,6 +80,7 @@ import org.aspectj.org.eclipse.jdt.internal.compiler.batch.FileSystem;
import org.aspectj.org.eclipse.jdt.internal.compiler.env.ICompilationUnit;
import org.aspectj.org.eclipse.jdt.internal.compiler.env.INameEnvironment;
import org.aspectj.org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
+import org.aspectj.org.eclipse.jdt.internal.compiler.impl.IrritantSet;
import org.aspectj.org.eclipse.jdt.internal.compiler.parser.Parser;
import org.aspectj.org.eclipse.jdt.internal.compiler.problem.AbortCompilation;
import org.aspectj.org.eclipse.jdt.internal.compiler.problem.DefaultProblemFactory;
@@ -845,7 +846,7 @@ public class AjBuildManager implements IOutputClassFileNameProvider, IBinarySour
bcelWorld.setXlazyTjp(buildConfig.isXlazyTjp());
bcelWorld.setXHasMemberSupportEnabled(buildConfig.isXHasMemberEnabled());
bcelWorld.setPinpointMode(buildConfig.isXdevPinpoint());
- bcelWorld.setErrorAndWarningThreshold(buildConfig.getOptions().errorThreshold, buildConfig.getOptions().warningThreshold);
+ bcelWorld.setErrorAndWarningThreshold(buildConfig.getOptions().errorThreshold.isSet(24), buildConfig.getOptions().warningThreshold.isSet(24));
BcelWeaver bcelWeaver = new BcelWeaver(bcelWorld);
bcelWeaver.setCustomMungerFactory(customMungerFactory);
state.setWorld(bcelWorld);
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java
index f07be6fcc..13d6f0ece 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java
@@ -16,6 +16,7 @@ import java.util.Map;
import org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode;
import org.aspectj.org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
+import org.aspectj.org.eclipse.jdt.internal.compiler.impl.IrritantSet;
import org.aspectj.weaver.Constants;
/**
@@ -49,16 +50,17 @@ public class AjCompilerOptions extends CompilerOptions {
public static final String OPTION_GenerateJavaDocsInModel = "org.aspectj.ajdt.core.compiler.model.GenerateJavaDocsInModel";
public static final String OPTION_Emacssym = "org.aspectj.ajdt.core.compiler.model.Emacssym";
+
// constants for irritant levels
- public static final long InvalidAbsoluteTypeName = ASTNode.Bit47L;
- public static final long InvalidWildCardTypeName = ASTNode.Bit48L;
- public static final long UnresolvableMember = ASTNode.Bit49L;
- public static final long TypeNotExposedToWeaver = ASTNode.Bit50L;
- public static final long ShadowNotInStructure = ASTNode.Bit51L;
- public static final long UnmatchedSuperTypeInCall = ASTNode.Bit52L;
- public static final long CannotImplementLazyTJP = ASTNode.Bit53L;
- public static final long NeedSerialVersionUIDField = ASTNode.Bit54L;
- public static final long IncompatibleSerialVersion = ASTNode.Bit55L;
+ public static final int InvalidAbsoluteTypeName = IrritantSet.GROUP2 | ASTNode.Bit8;
+ public static final int InvalidWildCardTypeName = IrritantSet.GROUP2 | ASTNode.Bit9;
+ public static final int UnresolvableMember = IrritantSet.GROUP2 | ASTNode.Bit10;
+ public static final int TypeNotExposedToWeaver = IrritantSet.GROUP2 | ASTNode.Bit11;
+ public static final int ShadowNotInStructure = IrritantSet.GROUP2 | ASTNode.Bit12;
+ public static final int UnmatchedSuperTypeInCall = IrritantSet.GROUP2 | ASTNode.Bit13;
+ public static final int CannotImplementLazyTJP = IrritantSet.GROUP2 | ASTNode.Bit14;
+ public static final int NeedSerialVersionUIDField = IrritantSet.GROUP2 | ASTNode.Bit15;
+ public static final int IncompatibleSerialVersion = IrritantSet.GROUP2 | ASTNode.Bit16;
public boolean terminateAfterCompilation = false;
public boolean xSerializableAspects = false;
@@ -128,7 +130,7 @@ public class AjCompilerOptions extends CompilerOptions {
*/
public Map getMap() {
Map map = super.getMap();
- // now add AspectJ additional options
+ // now add AspectJ additional options
map.put(OPTION_ReportInvalidAbsoluteTypeName, getSeverityString(InvalidAbsoluteTypeName));
map.put(OPTION_ReportInvalidWildcardTypeName, getSeverityString(InvalidWildCardTypeName));
map.put(OPTION_ReportUnresolvableMember, getSeverityString(UnresolvableMember));
@@ -290,8 +292,9 @@ public class AjCompilerOptions extends CompilerOptions {
* Add these warnings to the default set...
*/
private void setAspectJWarningDefaults() {
- super.warningThreshold = super.warningThreshold | InvalidAbsoluteTypeName | UnresolvableMember | TypeNotExposedToWeaver
- | UnmatchedSuperTypeInCall | CannotImplementLazyTJP | CompilerOptions.SwallowedExceptionInCatchBlock;
+ super.warningThreshold = new IrritantSet(super.warningThreshold);
+ super.warningThreshold.set(InvalidAbsoluteTypeName | UnresolvableMember | TypeNotExposedToWeaver
+ | UnmatchedSuperTypeInCall | CannotImplementLazyTJP | CompilerOptions.SwallowedExceptionInCatchBlock);
}
/*
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java
index 5e7f4a88d..e545814e9 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjState.java
@@ -1314,7 +1314,7 @@ public class AjState implements CompilerConfigurationChangeFlags, TypeDelegateRe
File sourceFile = new File(result.fileName());
CompilationResult cr = result.result();
- references.put(sourceFile, new ReferenceCollection(cr.qualifiedReferences, cr.simpleNameReferences));
+ references.put(sourceFile, new ReferenceCollection(cr.qualifiedReferences, cr.simpleNameReferences,cr.rootReferences));
UnwovenClassFile[] unwovenClassFiles = result.unwovenClassFiles();
for (int i = 0; i < unwovenClassFiles.length; i++) {
@@ -1936,7 +1936,7 @@ public class AjState implements CompilerConfigurationChangeFlags, TypeDelegateRe
existingCollection.addDependencies(typeNameDependencies);
return true;
} else {
- ReferenceCollection rc = new ReferenceCollection(null, null);
+ ReferenceCollection rc = new ReferenceCollection(null, null, null);
rc.addDependencies(typeNameDependencies);
references.put(sourceFile, rc);
return true;
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/CompactTypeStructureRepresentation.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/CompactTypeStructureRepresentation.java
index f54f6921d..3d8a4627a 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/CompactTypeStructureRepresentation.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/CompactTypeStructureRepresentation.java
@@ -37,6 +37,10 @@ public class CompactTypeStructureRepresentation implements IBinaryType {
char[] genericSignature;
char[] superclassName;
char[][] interfaces;
+
+ char[] enclosingMethod;
+
+ char[][][] missingTypeNames;
// this is the extra state that enables us to be an IBinaryType
char[] enclosingTypeName;
@@ -50,6 +54,7 @@ public class CompactTypeStructureRepresentation implements IBinaryType {
IBinaryMethod[] binMethods;
IBinaryNestedType[] memberTypes;
IBinaryAnnotation[] annotations;
+
public CompactTypeStructureRepresentation(ClassFileReader cfr, boolean isAspect) {
@@ -59,7 +64,9 @@ public class CompactTypeStructureRepresentation implements IBinaryType {
this.isMember = cfr.isMember();
this.sourceFileName = cfr.sourceFileName();
this.fileName = cfr.getFileName();
+ this.missingTypeNames = cfr.getMissingTypeNames();
this.tagBits = cfr.getTagBits();
+ this.enclosingMethod = cfr.getEnclosingMethod();
this.isBinaryType = cfr.isBinaryType();
this.binFields = cfr.getFields();
if (binFields == null) {
@@ -87,6 +94,10 @@ public class CompactTypeStructureRepresentation implements IBinaryType {
}
+ public char[][][] getMissingTypeNames() {
+ return missingTypeNames;
+ }
+
public char[] getEnclosingTypeName() {
return enclosingTypeName;
}
@@ -98,6 +109,10 @@ public class CompactTypeStructureRepresentation implements IBinaryType {
public char[] getGenericSignature() {
return genericSignature;
}
+
+ public char[] getEnclosingMethod() {
+ return enclosingMethod;
+ }
public char[][] getInterfaceNames() {
return interfaces;
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/AjAST.java b/org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/AjAST.java
index 2b0bd0bfb..99580a8a6 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/AjAST.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/AjAST.java
@@ -89,7 +89,7 @@ public class AjAST extends AST {
ast.setDefaultNodeFlag(ASTNode.ORIGINAL);
BindingResolver resolver = null;
if (isResolved) {
- resolver = new DefaultBindingResolver(compilationUnitDeclaration.scope, workingCopy.owner, new DefaultBindingResolver.BindingTables(), false);
+ resolver = new DefaultBindingResolver(compilationUnitDeclaration.scope, workingCopy.owner, new DefaultBindingResolver.BindingTables(), false,true);
ast.setFlag(AST.RESOLVED_BINDINGS);
} else {
resolver = new BindingResolver();
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/AjASTConverter.java b/org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/AjASTConverter.java
index 3082bf4b5..3a82cec53 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/AjASTConverter.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/org/eclipse/jdt/core/dom/AjASTConverter.java
@@ -2352,7 +2352,7 @@ public class AjASTConverter extends ASTConverter {
}
}
}
- buildBodyDeclarations(typeDeclaration, typeDecl);
+ buildBodyDeclarations(typeDeclaration, typeDecl,org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.kind(typeDeclaration.modifiers) == org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.INTERFACE_DECL);
if (this.resolveBindings) {
recordNodes(typeDecl, typeDeclaration);
recordNodes(typeName, typeDeclaration);
diff --git a/org.aspectj.ajdt.core/testsrc/org/aspectj/tools/ajc/AjASTTest.java b/org.aspectj.ajdt.core/testsrc/org/aspectj/tools/ajc/AjASTTest.java
index 2537a968a..ced2ecd8f 100644
--- a/org.aspectj.ajdt.core/testsrc/org/aspectj/tools/ajc/AjASTTest.java
+++ b/org.aspectj.ajdt.core/testsrc/org/aspectj/tools/ajc/AjASTTest.java
@@ -74,7 +74,7 @@ import org.aspectj.org.eclipse.jdt.core.dom.Type;
import org.aspectj.org.eclipse.jdt.core.dom.TypeCategoryTypePattern;
import org.aspectj.org.eclipse.jdt.core.dom.TypeDeclaration;
import org.aspectj.org.eclipse.jdt.core.dom.TypePattern;
-import org.aspectj.org.eclipse.jdt.internal.core.SourceRange;
+import org.aspectj.org.eclipse.jdt.core.SourceRange;
/**
* For each AspectJ ASTNode there is a test for:
diff --git a/org.aspectj.ajdt.core/testsrc/org/aspectj/tools/ajc/AjASTTestCase.java b/org.aspectj.ajdt.core/testsrc/org/aspectj/tools/ajc/AjASTTestCase.java
index c864f0f74..94d57c862 100644
--- a/org.aspectj.ajdt.core/testsrc/org/aspectj/tools/ajc/AjASTTestCase.java
+++ b/org.aspectj.ajdt.core/testsrc/org/aspectj/tools/ajc/AjASTTestCase.java
@@ -21,7 +21,7 @@ import org.aspectj.org.eclipse.jdt.core.dom.ASTParser;
import org.aspectj.org.eclipse.jdt.core.dom.AjAST;
import org.aspectj.org.eclipse.jdt.core.dom.AjASTVisitor;
import org.aspectj.org.eclipse.jdt.core.dom.CompilationUnit;
-import org.aspectj.org.eclipse.jdt.internal.core.SourceRange;
+import org.aspectj.org.eclipse.jdt.core.SourceRange;
public abstract class AjASTTestCase extends TestCase {