Browse Source

makes fromBinding in EclipseFactory an instance rather than static method. This paves the way for fromBinding to return a ResolvedType (which needs the world that the instance contains) rather than an UnresolvedType.

tags/V1_5_0M3
acolyer 19 years ago
parent
commit
cad71c760d
17 changed files with 69 additions and 60 deletions
  1. 3
    2
      org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AdviceDeclaration.java
  2. 2
    2
      org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectClinit.java
  3. 6
    6
      org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java
  4. 3
    3
      org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/IfMethodDeclaration.java
  5. 7
    7
      org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeConstructorDeclaration.java
  6. 4
    4
      org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeFieldDeclaration.java
  7. 4
    4
      org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeMethodDeclaration.java
  8. 8
    5
      org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/PointcutDeclaration.java
  9. 3
    1
      org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/PointcutDesignator.java
  10. 6
    5
      org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/SuperFixerVisitor.java
  11. 6
    3
      org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/ValidateAtAspectJAnnotationsVisitor.java
  12. 1
    1
      org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/AjLookupEnvironment.java
  13. 5
    6
      org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java
  14. 3
    3
      org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseScope.java
  15. 3
    3
      org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseShadow.java
  16. 3
    3
      org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseSourceType.java
  17. 2
    2
      weaver/src/org/aspectj/weaver/NameMangler.java

+ 3
- 2
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AdviceDeclaration.java View File

@@ -296,13 +296,14 @@ public class AdviceDeclaration extends AjMethodDeclaration {
// override, Called by ClassScope.postParse
public void postParse(TypeDeclaration typeDec) {
int adviceSequenceNumberInType = ((AspectDeclaration)typeDec).adviceCounter++;
AspectDeclaration aspectDecl = (AspectDeclaration)typeDec;
int adviceSequenceNumberInType = aspectDecl.adviceCounter++;
StringBuffer stringifiedPointcut = new StringBuffer(30);
pointcutDesignator.print(0,stringifiedPointcut);
this.selector =
NameMangler.adviceName(
EclipseFactory.fromBinding(typeDec.binding),
EclipseFactory.getName(typeDec.binding).replace('.', '_'),
kind,
adviceSequenceNumberInType,
stringifiedPointcut.toString().hashCode()).toCharArray();

+ 2
- 2
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectClinit.java View File

@@ -55,7 +55,7 @@ public class AspectClinit extends Clinit {

codeStream.invokestatic(world.makeMethodBindingForCall(
AjcMemberMaker.ajcPreClinitMethod(
EclipseFactory.fromBinding(classScope.referenceContext.binding)
world.fromBinding(classScope.referenceContext.binding)
)));
}
super.generateSyntheticCode(classScope, codeStream);
@@ -71,7 +71,7 @@ public class AspectClinit extends Clinit {

codeStream.invokestatic(world.makeMethodBindingForCall(
AjcMemberMaker.ajcPostClinitMethod(
EclipseFactory.fromBinding(classScope.referenceContext.binding)
world.fromBinding(classScope.referenceContext.binding)
)));
}

+ 6
- 6
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java View File

@@ -450,7 +450,7 @@ public class AspectDeclaration extends TypeDeclaration {
{
final EclipseFactory world = EclipseFactory.fromScopeLookupEnvironment(this.scope);
generateMethod(classFile, world.makeMethodBinding(AjcMemberMaker.perCflowPush(
EclipseFactory.fromBinding(binding))),
factory.fromBinding(binding))),
new BodyGenerator() {
public void generate(CodeStream codeStream) {
// body starts here
@@ -482,7 +482,7 @@ public class AspectDeclaration extends TypeDeclaration {
{
final EclipseFactory world = EclipseFactory.fromScopeLookupEnvironment(this.scope);
generateMethod(classFile, world.makeMethodBinding(AjcMemberMaker.ajcPreClinitMethod(
EclipseFactory.fromBinding(binding))),
world.fromBinding(binding))),
new BodyGenerator() {
public void generate(CodeStream codeStream) {
// body starts here
@@ -650,7 +650,7 @@ public class AspectDeclaration extends TypeDeclaration {
final TypeBinding interfaceType)
{
final EclipseFactory world = EclipseFactory.fromScopeLookupEnvironment(this.scope);
generateMethod(classFile, AjcMemberMaker.perObjectBind(EclipseFactory.fromBinding(binding)),
generateMethod(classFile, AjcMemberMaker.perObjectBind(world.fromBinding(binding)),
new BodyGenerator() {
public void generate(CodeStream codeStream) {
// body starts here
@@ -685,7 +685,7 @@ public class AspectDeclaration extends TypeDeclaration {
// PTWIMPL Generate getInstance method
private void generatePerTypeWithinGetInstanceMethod(ClassFile classFile) {
final EclipseFactory world = EclipseFactory.fromScopeLookupEnvironment(this.scope);
generateMethod(classFile, AjcMemberMaker.perTypeWithinGetInstance(EclipseFactory.fromBinding(binding)),
generateMethod(classFile, AjcMemberMaker.perTypeWithinGetInstance(world.fromBinding(binding)),
new BodyGenerator() {
public void generate(CodeStream codeStream) {
ExceptionLabel exc = new ExceptionLabel(codeStream,world.makeTypeBinding(UnresolvedType.JAVA_LANG_EXCEPTION));
@@ -728,7 +728,7 @@ public class AspectDeclaration extends TypeDeclaration {
private void generatePerTypeWithinCreateAspectInstanceMethod(ClassFile classFile) {
final EclipseFactory world = EclipseFactory.fromScopeLookupEnvironment(this.scope);
generateMethod(classFile, AjcMemberMaker.perTypeWithinCreateAspectInstance(EclipseFactory.fromBinding(binding)),
generateMethod(classFile, AjcMemberMaker.perTypeWithinCreateAspectInstance(world.fromBinding(binding)),
new BodyGenerator() {
public void generate(CodeStream codeStream) {
@@ -823,7 +823,7 @@ public class AspectDeclaration extends TypeDeclaration {
{
final EclipseFactory world = EclipseFactory.fromScopeLookupEnvironment(this.scope);
generateMethod(classFile, world.makeMethodBinding(AjcMemberMaker.ajcPostClinitMethod(
EclipseFactory.fromBinding(binding))),
world.fromBinding(binding))),
new BodyGenerator() {
public void generate(CodeStream codeStream) {
// body starts here

+ 3
- 3
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/IfMethodDeclaration.java View File

@@ -49,13 +49,13 @@ public class IfMethodDeclaration extends AjMethodDeclaration {
ifPointcut.extraParameterFlags |= tjp.removeUnusedExtraArguments();
//XXX this is where we should remove unavailable args if we're in a cflow
EclipseFactory factory = EclipseFactory.fromScopeLookupEnvironment(scope);
ifPointcut.testMethod = new ResolvedMember(
Member.METHOD,
EclipseFactory.fromBinding(binding.declaringClass),
factory.fromBinding(binding.declaringClass),
this.modifiers, ResolvedType.BOOLEAN,
new String(this.selector),
EclipseFactory.fromBindings(this.binding.parameters));
factory.fromBindings(this.binding.parameters));
}
}
}

+ 7
- 7
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeConstructorDeclaration.java View File

@@ -75,8 +75,8 @@ public class InterTypeConstructorDeclaration extends InterTypeDeclaration {
{
EclipseFactory world = EclipseFactory.fromScopeLookupEnvironment(scope);
UnresolvedType aspectTypeX = EclipseFactory.fromBinding(binding.declaringClass);
UnresolvedType targetTypeX = EclipseFactory.fromBinding(onTypeBinding);
UnresolvedType aspectTypeX = world.fromBinding(binding.declaringClass);
UnresolvedType targetTypeX = world.fromBinding(onTypeBinding);
ArrayBinding objectArrayBinding = scope.createArrayType(scope.getJavaLangObject(), 1);
@@ -96,7 +96,7 @@ public class InterTypeConstructorDeclaration extends InterTypeDeclaration {
pre.binding = world.makeMethodBinding(
AjcMemberMaker.preIntroducedConstructor(aspectTypeX, targetTypeX,
EclipseFactory.fromBindings(binding.parameters)));
world.fromBindings(binding.parameters)));
pre.bindArguments();
pre.bindThrownExceptions();
@@ -144,7 +144,7 @@ public class InterTypeConstructorDeclaration extends InterTypeDeclaration {
Expression arg = explicitConstructorCall.arguments[i];
ResolvedMember conversionMethod =
AjcMemberMaker.toObjectConversionMethod(EclipseFactory.fromBinding(explicitConstructorCall.binding.parameters[i]));
AjcMemberMaker.toObjectConversionMethod(world.fromBinding(explicitConstructorCall.binding.parameters[i]));
if (conversionMethod != null) {
arg = new KnownMessageSend(world.makeMethodBindingForCall(conversionMethod),
new CastExpression(new NullLiteral(0, 0),
@@ -158,7 +158,7 @@ public class InterTypeConstructorDeclaration extends InterTypeDeclaration {
LocalVariableBinding binding = pre.arguments[i].binding;
Expression arg = AstUtil.makeResolvedLocalVariableReference(binding);
ResolvedMember conversionMethod =
AjcMemberMaker.toObjectConversionMethod(EclipseFactory.fromBinding(binding.type));
AjcMemberMaker.toObjectConversionMethod(world.fromBinding(binding.type));
if (conversionMethod != null) {
arg = new KnownMessageSend(world.makeMethodBindingForCall(conversionMethod),
new CastExpression(new NullLiteral(0, 0),
@@ -234,7 +234,7 @@ public class InterTypeConstructorDeclaration extends InterTypeDeclaration {
this.selector = binding.selector =
NameMangler.postIntroducedConstructor(
EclipseFactory.fromBinding(binding.declaringClass),
world.fromBinding(binding.declaringClass),
declaringTypeX).toCharArray();
return new EclipseTypeMunger(world, myMunger, aspectType, this);
@@ -254,7 +254,7 @@ public class InterTypeConstructorDeclaration extends InterTypeDeclaration {
} else {
((NewConstructorTypeMunger)munger).setExplicitConstructor(
new ResolvedMember(Member.CONSTRUCTOR,
EclipseFactory.fromBinding(onTypeBinding.superclass()),
world.fromBinding(onTypeBinding.superclass()),
0, ResolvedType.VOID, "<init>", UnresolvedType.NONE));
}
return new AjAttribute.TypeMunger(munger);

+ 4
- 4
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeFieldDeclaration.java View File

@@ -69,7 +69,7 @@ public class InterTypeFieldDeclaration extends InterTypeDeclaration {
EclipseFactory world = EclipseFactory.fromScopeLookupEnvironment(upperScope);
ResolvedMember sig = munger.getSignature();
UnresolvedType aspectType = EclipseFactory.fromBinding(upperScope.referenceContext.binding);
UnresolvedType aspectType = world.fromBinding(upperScope.referenceContext.binding);
if (sig.getReturnType() == ResolvedType.VOID ||
(sig.getReturnType().isArray() && (sig.getReturnType().getComponentType() == ResolvedType.VOID)))
@@ -171,8 +171,8 @@ public class InterTypeFieldDeclaration extends InterTypeDeclaration {
//System.err.println("type: " + binding.returnType + ", " + returnType);
ResolvedMember sig =
new ResolvedMember(Member.FIELD, EclipseFactory.fromBinding(onTypeBinding),
declaredModifiers, EclipseFactory.fromBinding(binding.returnType),
new ResolvedMember(Member.FIELD, world.fromBinding(onTypeBinding),
declaredModifiers, world.fromBinding(binding.returnType),
new String(declaredSelector), UnresolvedType.NONE);
NewFieldTypeMunger myMunger = new NewFieldTypeMunger(sig, null);
@@ -205,7 +205,7 @@ public class InterTypeFieldDeclaration extends InterTypeDeclaration {
private void generateDispatchMethods(ClassScope classScope, ClassFile classFile) {
EclipseFactory world = EclipseFactory.fromScopeLookupEnvironment(classScope);
ResolvedMember sig = munger.getSignature();
UnresolvedType aspectType = EclipseFactory.fromBinding(classScope.referenceContext.binding);
UnresolvedType aspectType = world.fromBinding(classScope.referenceContext.binding);
generateDispatchMethod(world, sig, aspectType, classScope, classFile, true);
generateDispatchMethod(world, sig, aspectType, classScope, classFile, false);
}

+ 4
- 4
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/InterTypeMethodDeclaration.java View File

@@ -124,9 +124,9 @@ public class InterTypeMethodDeclaration extends InterTypeDeclaration {
if (isTargetAnnotation(classScope,"method")) return null; // Error message output in isTargetAnnotation
if (isTargetEnum(classScope,"method")) return null; // Error message output in isTargetEnum
ResolvedMember sig = new ResolvedMember(Member.METHOD, EclipseFactory.fromBinding(onTypeBinding),
declaredModifiers, EclipseFactory.fromBinding(binding.returnType), new String(declaredSelector),
EclipseFactory.fromBindings(binding.parameters),
ResolvedMember sig = new ResolvedMember(Member.METHOD, world.fromBinding(onTypeBinding),
declaredModifiers, world.fromBinding(binding.returnType), new String(declaredSelector),
world.fromBindings(binding.parameters),
world.fromEclipse(binding.thrownExceptions));
NewMethodTypeMunger myMunger = new NewMethodTypeMunger(sig, null);
@@ -163,7 +163,7 @@ public class InterTypeMethodDeclaration extends InterTypeDeclaration {
public void generateDispatchMethod(ClassScope classScope, ClassFile classFile) {
EclipseFactory world = EclipseFactory.fromScopeLookupEnvironment(classScope);
UnresolvedType aspectType = EclipseFactory.fromBinding(classScope.referenceContext.binding);
UnresolvedType aspectType = world.fromBinding(classScope.referenceContext.binding);
ResolvedMember signature = munger.getSignature();
ResolvedMember dispatchMember =

+ 8
- 5
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/PointcutDeclaration.java View File

@@ -47,6 +47,7 @@ public class PointcutDeclaration extends AjMethodDeclaration {
private int declaredModifiers;
private String declaredName;
private boolean generateSyntheticPointcutMethod = false;
private EclipseFactory world = null;
//private boolean mangleSelector = true;
private ResolvedPointcutDefinition resolvedPointcutDeclaration = null;
@@ -142,6 +143,7 @@ public class PointcutDeclaration extends AjMethodDeclaration {
}

public void resolvePointcut(ClassScope upperScope) {
this.world = EclipseFactory.fromScopeLookupEnvironment(upperScope);
super.resolve(upperScope);
}

@@ -166,20 +168,20 @@ public class PointcutDeclaration extends AjMethodDeclaration {
}
//System.out.println("resolved: " + getPointcut() + ", " + getPointcut().state);
makeResolvedPointcutDefinition();
makeResolvedPointcutDefinition(world);
resolvedPointcutDeclaration.setPointcut(getPointcut());
super.resolveStatements();
}

public ResolvedPointcutDefinition makeResolvedPointcutDefinition() {
public ResolvedPointcutDefinition makeResolvedPointcutDefinition(EclipseFactory inWorld) {
if (resolvedPointcutDeclaration != null) return resolvedPointcutDeclaration;
//System.out.println("pc: " + getPointcut() + ", " + getPointcut().state);
resolvedPointcutDeclaration = new ResolvedPointcutDefinition(
EclipseFactory.fromBinding(this.binding.declaringClass),
inWorld.fromBinding(this.binding.declaringClass),
declaredModifiers,
declaredName,
EclipseFactory.fromBindings(this.binding.parameters),
inWorld.fromBindings(this.binding.parameters),
getPointcut()); //??? might want to use null
resolvedPointcutDeclaration.setPosition(sourceStart, sourceEnd);
@@ -189,7 +191,7 @@ public class PointcutDeclaration extends AjMethodDeclaration {


public AjAttribute makeAttribute() {
return new AjAttribute.PointcutDeclarationAttribute(makeResolvedPointcutDefinition());
return new AjAttribute.PointcutDeclarationAttribute(makeResolvedPointcutDefinition(world));
}

@@ -199,6 +201,7 @@ public class PointcutDeclaration extends AjMethodDeclaration {
* method.
*/
public void generateCode(ClassScope classScope, ClassFile classFile) {
this.world = EclipseFactory.fromScopeLookupEnvironment(classScope);
if (ignoreFurtherInvestigation) return ;
classFile.extraAttributes.add(new EclipseAttributeAdapter(makeAttribute()));
if (generateSyntheticPointcutMethod) {

+ 3
- 1
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/PointcutDesignator.java View File

@@ -66,6 +66,8 @@ public class PointcutDesignator extends ASTNode {
if (pointcut.state == Pointcut.RESOLVED ||
pointcut.state == Pointcut.CONCRETE) return true;
EclipseFactory world = EclipseFactory.fromScopeLookupEnvironment(dec.scope);
TypeBinding[] parameters = method.parameters;
Argument[] arguments = dec.arguments;

@@ -73,7 +75,7 @@ public class PointcutDesignator extends ASTNode {
for (int i = 0, len = baseArgumentCount; i < len; i++) {
Argument arg = arguments[i];
String name = new String(arg.name);
UnresolvedType type = EclipseFactory.fromBinding(parameters[i]);
UnresolvedType type = world.fromBinding(parameters[i]);
bindings[i] = new FormalBinding(type, name, i, arg.sourceStart, arg.sourceEnd, "unknown");
}

+ 6
- 5
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/SuperFixerVisitor.java View File

@@ -67,22 +67,24 @@ public class SuperFixerVisitor extends ASTVisitor {
// }
// return;
}

EclipseFactory factory = ((AjLookupEnvironment)method.scope.environment()).factory;

char[] accessName;
if (call.isSuperAccess() && !call.binding.isStatic()) {
call.receiver = new ThisReference(call.receiver.sourceStart, call.receiver.sourceEnd);
accessName =
NameMangler.superDispatchMethod(EclipseFactory.fromBinding(targetClass),
NameMangler.superDispatchMethod(factory.fromBinding(targetClass),
new String(superBinding.selector)).toCharArray();
} else if (call.receiver.isThis() && call.binding.isProtected() && !call.binding.isStatic()) {
//XXX this is a hack that violates some binary compatibility rules
if (superBinding.declaringClass.equals(targetClass)) {
accessName =
NameMangler.protectedDispatchMethod(EclipseFactory.fromBinding(targetClass),
NameMangler.protectedDispatchMethod(factory.fromBinding(targetClass),
new String(superBinding.selector)).toCharArray();
} else {
accessName =
NameMangler.superDispatchMethod(EclipseFactory.fromBinding(targetClass),
NameMangler.superDispatchMethod(factory.fromBinding(targetClass),
new String(superBinding.selector)).toCharArray();
}
} else {
@@ -97,7 +99,6 @@ public class SuperFixerVisitor extends ASTVisitor {
AstUtil.replaceMethodBinding(call, superAccessBinding);
EclipseFactory factory = ((AjLookupEnvironment)method.scope.environment()).factory;
ResolvedMember targetMember = factory.makeResolvedMember(superBinding);
superMethodsCalled.add(targetMember);
}

+ 6
- 3
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/ValidateAtAspectJAnnotationsVisitor.java View File

@@ -301,12 +301,13 @@ public class ValidateAtAspectJAnnotationsVisitor extends ASTVisitor {
Pointcut pc = new PatternParser(pointcutExpression,context).parsePointcut();
FormalBinding[] bindings = buildFormalAdviceBindingsFrom(methodDeclaration);
pc.resolve(new EclipseScope(bindings,methodDeclaration.scope));
EclipseFactory factory = EclipseFactory.fromScopeLookupEnvironment(methodDeclaration.scope);
// now create a ResolvedPointcutDefinition,make an attribute out of it, and add it to the method
UnresolvedType[] paramTypes = new UnresolvedType[bindings.length];
for (int i = 0; i < paramTypes.length; i++) paramTypes[i] = bindings[i].getType();
ResolvedPointcutDefinition resPcutDef =
new ResolvedPointcutDefinition(
EclipseFactory.fromBinding(((TypeDeclaration)typeStack.peek()).binding),
factory.fromBinding(((TypeDeclaration)typeStack.peek()).binding),
methodDeclaration.modifiers,
"anonymous",
paramTypes,
@@ -344,6 +345,7 @@ public class ValidateAtAspectJAnnotationsVisitor extends ASTVisitor {
private FormalBinding[] buildFormalAdviceBindingsFrom(MethodDeclaration mDecl) {
if (mDecl.arguments == null) return new FormalBinding[0];
EclipseFactory factory = EclipseFactory.fromScopeLookupEnvironment(mDecl.scope);
String extraArgName = maybeGetExtraArgName();
if (extraArgName == null) extraArgName = "";
FormalBinding[] ret = new FormalBinding[mDecl.arguments.length];
@@ -351,7 +353,7 @@ public class ValidateAtAspectJAnnotationsVisitor extends ASTVisitor {
Argument arg = mDecl.arguments[i];
String name = new String(arg.name);
TypeBinding argTypeBinding = mDecl.binding.parameters[i];
UnresolvedType type = EclipseFactory.fromBinding(argTypeBinding);
UnresolvedType type = factory.fromBinding(argTypeBinding);
if (CharOperation.equals(joinPoint,argTypeBinding.signature()) ||
CharOperation.equals(joinPointStaticPart,argTypeBinding.signature()) ||
CharOperation.equals(joinPointEnclosingStaticPart,argTypeBinding.signature()) ||
@@ -460,12 +462,13 @@ public class ValidateAtAspectJAnnotationsVisitor extends ASTVisitor {
pcDecl.setGenerateSyntheticPointcutMethod();
TypeDeclaration onType = (TypeDeclaration) typeStack.peek();
pcDecl.postParse(onType);
EclipseFactory factory = EclipseFactory.fromScopeLookupEnvironment(methodDeclaration.scope);
int argsLength = methodDeclaration.arguments == null ? 0 : methodDeclaration.arguments.length;
FormalBinding[] bindings = new FormalBinding[argsLength];
for (int i = 0, len = bindings.length; i < len; i++) {
Argument arg = methodDeclaration.arguments[i];
String name = new String(arg.name);
UnresolvedType type = EclipseFactory.fromBinding(methodDeclaration.binding.parameters[i]);
UnresolvedType type = factory.fromBinding(methodDeclaration.binding.parameters[i]);
bindings[i] = new FormalBinding(type, name, i, arg.sourceStart, arg.sourceEnd, "unknown");
}
swap(onType,methodDeclaration,pcDecl);

+ 1
- 1
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/AjLookupEnvironment.java View File

@@ -74,7 +74,7 @@ import org.aspectj.weaver.patterns.DeclareParents;
* @author Jim Hugunin
*/
public class AjLookupEnvironment extends LookupEnvironment {
public EclipseFactory factory = null;
public EclipseFactory factory = null;
// private boolean builtInterTypesAndPerClauses = false;
private List pendingTypesToWeave = new ArrayList();

+ 5
- 6
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseFactory.java View File

@@ -70,7 +70,6 @@ public class EclipseFactory {
private LookupEnvironment lookupEnvironment;
private boolean xSerializableAspects;
private World world;
private AsmHierarchyBuilder asmHierarchyBuilder;
private Map/*UnresolvedType, TypeBinding*/ typexToBinding = new HashMap();
//XXX currently unused
@@ -140,7 +139,7 @@ public class EclipseFactory {
return ret;
}
private static String getName(TypeBinding binding) {
public static String getName(TypeBinding binding) {
if (binding instanceof TypeVariableBinding) {
// The first bound may be null - so default to object?
TypeVariableBinding tvb = (TypeVariableBinding)binding;
@@ -181,7 +180,7 @@ public class EclipseFactory {
* type - since we don't know it's a type variable we can't replace it with the type parameter.
*/
//??? going back and forth between strings and bindings is a waste of cycles
public static UnresolvedType fromBinding(TypeBinding binding) {
public UnresolvedType fromBinding(TypeBinding binding) {
if (binding instanceof HelperInterfaceBinding) {
return ((HelperInterfaceBinding) binding).getTypeX();
}
@@ -233,7 +232,7 @@ public class EclipseFactory {
//TODO asc generics - temporary guard....
if (!(binding instanceof SourceTypeBinding))
throw new RuntimeException("Cant get the generic sig for "+binding.debugName());
return UnresolvedType.forGenericType(getName(binding),tVars,
return ResolvedType.forGenericType(getName(binding),tVars,
CharOperation.charToString(((SourceTypeBinding)binding).genericSignature()));
}
@@ -241,7 +240,7 @@ public class EclipseFactory {
}

private static Map typeVariableBindingsInProgress = new HashMap();
private static UnresolvedType fromTypeVariableBinding(TypeVariableBinding aTypeVariableBinding) {
private UnresolvedType fromTypeVariableBinding(TypeVariableBinding aTypeVariableBinding) {
if (typeVariableBindingsInProgress.containsKey(aTypeVariableBinding)) {
return (UnresolvedType) typeVariableBindingsInProgress.get(aTypeVariableBinding);
}
@@ -260,7 +259,7 @@ public class EclipseFactory {
return ret;
}
public static UnresolvedType[] fromBindings(TypeBinding[] bindings) {
public UnresolvedType[] fromBindings(TypeBinding[] bindings) {
if (bindings == null) return UnresolvedType.NONE;
int len = bindings.length;
UnresolvedType[] ret = new UnresolvedType[len];

+ 3
- 3
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseScope.java View File

@@ -70,7 +70,7 @@ public class EclipseScope implements IScope {
//System.err.println("binding: " + b);
// Binding(tokens, bits & RestrictiveFlagMASK, this)
return EclipseFactory.fromBinding(b);
return world.fromBinding(b);
/*
computeImports();
@@ -193,7 +193,7 @@ public class EclipseScope implements IScope {
TypeBinding[] topTypes = cuScope.topLevelTypes;
for (int i = 0; i < topTypes.length; i++) {
importedNamesList.add(EclipseFactory.fromBinding(topTypes[i]).getName());
importedNamesList.add(world.fromBinding(topTypes[i]).getName());
}
importedNames =
@@ -208,7 +208,7 @@ public class EclipseScope implements IScope {
List importedPrefixesList)
{
if (binding == null) return;
importedPrefixesList.add(EclipseFactory.fromBinding(binding).getName()+"$");
importedPrefixesList.add(world.fromBinding(binding).getName()+"$");
addClassAndParentsToPrefixes(binding.superclass(), importedPrefixesList);
ReferenceBinding[] superinterfaces = binding.superInterfaces();

+ 3
- 3
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseShadow.java View File

@@ -50,9 +50,9 @@ public class EclipseShadow extends Shadow {

public UnresolvedType getEnclosingType() {
if (context instanceof TypeDeclaration) {
return EclipseFactory.fromBinding(((TypeDeclaration)context).binding);
return world.fromBinding(((TypeDeclaration)context).binding);
} else if (context instanceof AbstractMethodDeclaration) {
return EclipseFactory.fromBinding(((AbstractMethodDeclaration)context).binding.declaringClass);
return world.fromBinding(((AbstractMethodDeclaration)context).binding.declaringClass);
} else {
return ResolvedType.MISSING;
}
@@ -171,7 +171,7 @@ public class EclipseShadow extends Shadow {
} else if (astNode instanceof TypeDeclaration) {
return new EclipseShadow(world, Shadow.StaticInitialization,
new Member(Member.STATIC_INITIALIZATION,
EclipseFactory.fromBinding(((TypeDeclaration)astNode).binding), 0,
world.fromBinding(((TypeDeclaration)astNode).binding), 0,
ResolvedType.VOID, "<clinit>", UnresolvedType.NONE),
astNode, context);
} else {

+ 3
- 3
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseSourceType.java View File

@@ -133,7 +133,7 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
if (amd == null || amd.ignoreFurtherInvestigation) continue;
if (amd instanceof PointcutDeclaration) {
PointcutDeclaration d = (PointcutDeclaration)amd;
ResolvedPointcutDefinition df = d.makeResolvedPointcutDefinition();
ResolvedPointcutDefinition df = d.makeResolvedPointcutDefinition(factory);
declaredPointcuts.add(df);
} else if (amd instanceof InterTypeDeclaration) {
// these are handled in a separate pass
@@ -172,10 +172,10 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {

private ResolvedPointcutDefinition makeResolvedPointcutDefinition(AbstractMethodDeclaration md) {
ResolvedPointcutDefinition resolvedPointcutDeclaration = new ResolvedPointcutDefinition(
EclipseFactory.fromBinding(md.binding.declaringClass),
factory.fromBinding(md.binding.declaringClass),
md.modifiers,
new String(md.selector),
EclipseFactory.fromBindings(md.binding.parameters),
factory.fromBindings(md.binding.parameters),
null); //??? might want to use null
resolvedPointcutDeclaration.setPosition(md.sourceStart, md.sourceEnd);

+ 2
- 2
weaver/src/org/aspectj/weaver/NameMangler.java View File

@@ -111,10 +111,10 @@ public class NameMangler {
* The name of methods corresponding to advice declarations
* Of the form: "ajc$[AdviceKind]$[AspectName]$[NumberOfAdviceInAspect]$[PointcutHash]"
*/
public static String adviceName(UnresolvedType aspectType, AdviceKind kind, int adviceSeqNumber,int pcdHash) {
public static String adviceName(String nameAsIdentifier, AdviceKind kind, int adviceSeqNumber,int pcdHash) {
String newname = makeName(
kind.getName(),
aspectType.getNameAsIdentifier(),
nameAsIdentifier,
Integer.toString(adviceSeqNumber),
Integer.toHexString(pcdHash));
return newname;

Loading…
Cancel
Save