### Eclipse Workspace Patch 1.0 #P org.aspectj.ajdt.core Index: src/org/aspectj/ajdt/internal/compiler/lookup/EclipseResolvedMember.java =================================================================== RCS file: /cvsroot/tools/org.aspectj/modules/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseResolvedMember.java,v retrieving revision 1.8 diff -u -r1.8 EclipseResolvedMember.java --- src/org/aspectj/ajdt/internal/compiler/lookup/EclipseResolvedMember.java 7 Jul 2008 22:32:43 -0000 1.8 +++ src/org/aspectj/ajdt/internal/compiler/lookup/EclipseResolvedMember.java 30 Jul 2008 16:38:14 -0000 @@ -23,10 +23,13 @@ import org.aspectj.org.eclipse.jdt.internal.compiler.ast.TrueLiteral; import org.aspectj.org.eclipse.jdt.internal.compiler.ast.TypeDeclaration; import org.aspectj.org.eclipse.jdt.internal.compiler.impl.IntConstant; +import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding; +import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.AnnotationHolder; import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding; import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.FieldBinding; import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.MethodBinding; import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding; +import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding; import org.aspectj.weaver.AnnotationX; import org.aspectj.weaver.BCException; import org.aspectj.weaver.MemberKind; @@ -85,6 +88,53 @@ } + public AnnotationX[][] getParameterAnnotations() { + throw new BCException("EclipseResolvedMember.getParameterAnnotations() not-yet-implemented. Please raise a bug and turn off pipelining as a workaround"); + } + + public ResolvedType[][] getParameterAnnotationTypes() { + if (parameterAnnotationTypes!=null) return parameterAnnotationTypes; + ResolvedType[][] paramAnnos = null; + if (realBinding instanceof MethodBinding) { + MethodBinding mb = (MethodBinding)realBinding; + MethodBinding originalMethod = mb.original(); + if (originalMethod.declaringClass instanceof SourceTypeBinding) { + SourceTypeBinding sourceType = (SourceTypeBinding) originalMethod.declaringClass; + if (sourceType.scope != null) { + AbstractMethodDeclaration methodDeclaration = originalMethod.sourceMethod(); + sourceType.scope.referenceContext.resolve(); +// if (methodDeclaration != null) { +// methodDeclaration.resolve(sourceType.scope); +// } + } + } + + + long abits = realBinding.getAnnotationTagBits(); // ensure resolved + TypeBinding[] params = mb.parameters; + if (params!=null) { + paramAnnos = new ResolvedType[params.length][]; + for (int i=0;i