]> source.dussan.org Git - aspectj.git/commitdiff
240693: test and fix: generic type defined inside around advice (mad)
authoraclement <aclement>
Tue, 19 Aug 2008 23:14:31 +0000 (23:14 +0000)
committeraclement <aclement>
Tue, 19 Aug 2008 23:14:31 +0000 (23:14 +0000)
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/PrivilegedHandler.java

index cb48e9b851de5621a09318e84e7fdb96fdf4f8aa..84f7d37b053181a06b06d7ccf0c6150a0e966698 100644 (file)
@@ -25,6 +25,7 @@ import org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode;
 import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.FieldBinding;
 import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.IPrivilegedHandler;
 import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.MethodBinding;
+import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ParameterizedFieldBinding;
 import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ParameterizedMethodBinding;
 import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding;
 import org.aspectj.weaver.AjcMemberMaker;
@@ -46,7 +47,10 @@ public class PrivilegedHandler implements IPrivilegedHandler {
                this.inAspect = inAspect;
        }
 
-       public FieldBinding getPrivilegedAccessField(FieldBinding baseField, ASTNode location) {                
+       public FieldBinding getPrivilegedAccessField(FieldBinding baseField, ASTNode location) {        
+               if (baseField instanceof ParameterizedFieldBinding) { 
+                       baseField = ((ParameterizedFieldBinding)baseField).originalField;
+               }
                ResolvedMember key = inAspect.factory.makeResolvedMember(baseField);
                if (accessors.containsKey(key)) return (FieldBinding)accessors.get(key);
                FieldBinding ret = new PrivilegedFieldBinding(inAspect, baseField);