]> source.dussan.org Git - aspectj.git/commitdiff
145391: take parameterized types into account
authoraclement <aclement>
Wed, 20 Aug 2008 20:47:55 +0000 (20:47 +0000)
committeraclement <aclement>
Wed, 20 Aug 2008 20:47:55 +0000 (20:47 +0000)
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/SuperFixerVisitor.java

index 3e5256b5f337d48c5c9b02d23ee9d791f3f5002b..227b5b4d1b0910e61f90f558a0371295d1d6622d 100644 (file)
@@ -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();