summaryrefslogtreecommitdiffstats
path: root/org.aspectj.ajdt.core
diff options
context:
space:
mode:
Diffstat (limited to 'org.aspectj.ajdt.core')
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/SuperFixerVisitor.java6
1 files changed, 5 insertions, 1 deletions
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 3e5256b5f..227b5b4d1 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
@@ -100,7 +100,11 @@ public class SuperFixerVisitor extends ASTVisitor {
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)) {
+ ReferenceBinding superBindingDeclaringClass = superBinding.declaringClass;
+ if (superBindingDeclaringClass.isParameterizedType()) {
+ superBindingDeclaringClass = ((ParameterizedTypeBinding)superBindingDeclaringClass).type;
+ }
+ if (superBindingDeclaringClass.equals(targetClass)) {
accessName =
NameMangler.protectedDispatchMethod(factory.fromBinding(targetClass),
new String(superBinding.selector)).toCharArray();