Index: TypeBinding.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeBinding.java,v retrieving revision 1.65 diff -u -r1.65 TypeBinding.java --- TypeBinding.java 22 Nov 2004 14:37:03 -0000 1.65 +++ TypeBinding.java 24 Nov 2004 23:38:05 -0000 @@ -21,6 +21,7 @@ import org.eclipse.jdt.core.ICompilationUnit; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IMethod; import org.eclipse.jdt.core.IPackageFragment; import org.eclipse.jdt.core.IPackageFragmentRoot; import org.eclipse.jdt.core.IType; @@ -349,14 +350,18 @@ } } else if (referenceBinding.isTypeVariable()) { // type parameter + final String typeVariableName = new String(referenceBinding.sourceName()); Binding declaringElement = ((TypeVariableBinding) referenceBinding).declaringElement; IBinding declaringTypeBinding = null; - if (declaringElement instanceof MethodBinding) + if (declaringElement instanceof MethodBinding) { declaringTypeBinding = this.resolver.getMethodBinding((MethodBinding) declaringElement); - else + IMethod declaringMethod = (IMethod) declaringTypeBinding.getJavaElement(); + return declaringMethod.getTypeParameter(typeVariableName); + } else { declaringTypeBinding = this.resolver.getTypeBinding((org.eclipse.jdt.internal.compiler.lookup.TypeBinding) declaringElement); - IType declaringType = (IType) declaringTypeBinding.getJavaElement(); - return declaringType.getTypeParameter(new String(referenceBinding.sourceName())); + IType declaringType = (IType) declaringTypeBinding.getJavaElement(); + return declaringType.getTypeParameter(typeVariableName); + } } else { // member or top level type ITypeBinding declaringTypeBinding = getDeclaringClass();