diff options
author | aclement <aclement> | 2008-08-20 20:47:55 +0000 |
---|---|---|
committer | aclement <aclement> | 2008-08-20 20:47:55 +0000 |
commit | 89fb0653b48f0fb9316ec48edca0308ff60281d0 (patch) | |
tree | b99d058ab5106c9606fbef58375866f594244358 /org.aspectj.ajdt.core | |
parent | 78ab379057f7456be3ea579f2a087a5a2cd494c3 (diff) | |
download | aspectj-89fb0653b48f0fb9316ec48edca0308ff60281d0.tar.gz aspectj-89fb0653b48f0fb9316ec48edca0308ff60281d0.zip |
145391: take parameterized types into account
Diffstat (limited to 'org.aspectj.ajdt.core')
-rw-r--r-- | org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/SuperFixerVisitor.java | 6 |
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(); |