};
} else if (!onTypeBinding.isInterface()) {
MethodBinding writeMethod = world.makeMethodBinding(
- AjcMemberMaker.interFieldSetDispatcher(sig,aspectType));
+ AjcMemberMaker.interFieldSetDispatcher(sig,aspectType),munger.getTypeVariableAliases());
// For the body of an intertype field initalizer, generate a call to the inter field set dispatcher
// method as that casts the shadow of a field set join point.
if (Modifier.isStatic(declaredModifiers)) {
} else {
//XXX something is broken about this logic. Can we write to static interface fields?
MethodBinding writeMethod = world.makeMethodBinding(
- AjcMemberMaker.interFieldInterfaceSetter(sig, sig.getDeclaringType().resolve(world.getWorld()), aspectType));
+ AjcMemberMaker.interFieldInterfaceSetter(sig, sig.getDeclaringType().resolve(world.getWorld()), aspectType),munger.getTypeVariableAliases());
if (Modifier.isStatic(declaredModifiers)) {
this.statements = new Statement[] {
new KnownMessageSend(writeMethod,
{
MethodBinding binding;
if (isGetter) {
- binding = world.makeMethodBinding(AjcMemberMaker.interFieldGetDispatcher(sig, aspectType));
+ binding = world.makeMethodBinding(AjcMemberMaker.interFieldGetDispatcher(sig, aspectType),munger.getTypeVariableAliases(),munger.getSignature().getDeclaringType());
} else {
- binding = world.makeMethodBinding(AjcMemberMaker.interFieldSetDispatcher(sig, aspectType));
+ binding = world.makeMethodBinding(AjcMemberMaker.interFieldSetDispatcher(sig, aspectType),munger.getTypeVariableAliases(),munger.getSignature().getDeclaringType());
}
classFile.generateMethodInfoHeader(binding);
int methodAttributeOffset = classFile.contentsOffset;
codeStream.reset(this, classFile);
FieldBinding classField = world.makeFieldBinding(
- AjcMemberMaker.interFieldClassField(sig, aspectType));
+ AjcMemberMaker.interFieldClassField(sig, aspectType),munger.getTypeVariableAliases());
codeStream.initializeMaxLocals(binding);
if (isGetter) {
ResolvedType declaringRTX = world.getWorld().resolve(declaringTX,munger.getSourceLocation());
MethodBinding readMethod = world.makeMethodBinding(
AjcMemberMaker.interFieldInterfaceGetter(
- sig, declaringRTX, aspectType));
+ sig, declaringRTX, aspectType),munger.getTypeVariableAliases());
generateInterfaceReadBody(binding, readMethod, codeStream);
} else {
generateClassReadBody(binding, classField, codeStream);
if (onTypeBinding.isInterface()) {
MethodBinding writeMethod = world.makeMethodBinding(
AjcMemberMaker.interFieldInterfaceSetter(
- sig, world.getWorld().resolve(sig.getDeclaringType(),munger.getSourceLocation()), aspectType));
+ sig, world.getWorld().resolve(sig.getDeclaringType(),munger.getSourceLocation()), aspectType),munger.getTypeVariableAliases());
generateInterfaceWriteBody(binding, writeMethod, codeStream);
} else {
generateClassWriteBody(binding, classField, codeStream);
// Work out the real method binding that we can use for comparison
EclipseFactory world = EclipseFactory.fromScopeLookupEnvironment(scope);
- MethodBinding realthing = world.makeMethodBinding(munger.getSignature());
+ MethodBinding realthing = world.makeMethodBinding(munger.getSignature(),munger.getTypeVariableAliases());
boolean reportError = true;
// Go up the hierarchy, looking for something we override
ResolvedMember me =
myMunger.getInterMethodBody(aspectType);
this.selector = binding.selector = me.getName().toCharArray();
-
return new EclipseTypeMunger(factory, myMunger, aspectType, this);
}
ResolvedMember dispatchMember =
AjcMemberMaker.interMethodDispatcher(signature, aspectType);
- MethodBinding dispatchBinding = world.makeMethodBinding(dispatchMember);
+ MethodBinding dispatchBinding = world.makeMethodBinding(dispatchMember,munger.getTypeVariableAliases(),munger.getSignature().getDeclaringType());
MethodBinding introducedMethod =
- world.makeMethodBinding(AjcMemberMaker.interMethod(signature, aspectType, onTypeBinding.isInterface()));
+ world.makeMethodBinding(AjcMemberMaker.interMethod(signature, aspectType, onTypeBinding.isInterface()),munger.getTypeVariableAliases());
classFile.generateMethodInfoHeader(dispatchBinding);
int methodAttributeOffset = classFile.contentsOffset;