Index: codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java,v retrieving revision 1.247 diff -u -r1.247 CompletionEngine.java --- codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java 14 Jun 2005 19:25:45 -0000 1.247 +++ codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java 15 Jun 2005 14:07:35 -0000 @@ -214,7 +214,6 @@ return buffer.toString(); } } - private ObjectVector acceptedTypes; /** @@ -1714,6 +1713,7 @@ CharOperation.NO_CHAR_CHAR, CharOperation.NO_CHAR, CharOperation.NO_CHAR)); + //proposal.setOriginalSignature(null); //proposal.setUniqueKey(null); proposal.setDeclarationPackageName(currentType.qualifiedPackageName()); proposal.setDeclarationTypeName(currentType.qualifiedSourceName()); @@ -1907,6 +1907,10 @@ CompletionProposal proposal = this.createProposal(CompletionProposal.METHOD_REF, this.actualCompletionPosition); proposal.setDeclarationSignature(getSignature(currentType)); proposal.setSignature(getSignature(constructor)); + MethodBinding original = constructor.original(); + if(original != constructor) { + proposal.setOriginalSignature(getSignature(original)); + } proposal.setDeclarationPackageName(currentType.qualifiedPackageName()); proposal.setDeclarationTypeName(currentType.qualifiedSourceName()); proposal.setParameterPackageNames(parameterPackageNames); @@ -1988,6 +1992,10 @@ proposal.setDeclarationSignature(getSignature(currentType)); proposal.setDeclarationKey(currentType.computeUniqueKey()); proposal.setSignature(getSignature(constructor)); + MethodBinding original = constructor.original(); + if(original != constructor) { + proposal.setOriginalSignature(getSignature(original)); + } proposal.setKey(constructor.computeUniqueKey()); proposal.setDeclarationPackageName(currentType.qualifiedPackageName()); proposal.setDeclarationTypeName(currentType.qualifiedSourceName()); @@ -2015,6 +2023,10 @@ CompletionProposal proposal = this.createProposal(CompletionProposal.METHOD_REF, this.actualCompletionPosition); proposal.setDeclarationSignature(getSignature(currentType)); proposal.setSignature(getSignature(constructor)); + MethodBinding original = constructor.original(); + if(original != constructor) { + proposal.setOriginalSignature(getSignature(original)); + } proposal.setDeclarationPackageName(currentType.qualifiedPackageName()); proposal.setDeclarationTypeName(currentType.qualifiedSourceName()); proposal.setParameterPackageNames(parameterPackageNames); @@ -2346,6 +2358,7 @@ CharOperation.NO_CHAR_CHAR, CharOperation.concatWith(JAVA_LANG, '.'), OBJECT)); + //proposal.setOriginalSignature(null); //proposal.setDeclarationPackageName(null); //proposal.setDeclarationTypeName(null); //proposal.setParameterPackageNames(null); @@ -3424,6 +3437,10 @@ CompletionProposal proposal = this.createProposal(CompletionProposal.METHOD_REF, this.actualCompletionPosition); proposal.setDeclarationSignature(getSignature(method.declaringClass)); proposal.setSignature(getSignature(method)); + MethodBinding original = method.original(); + if(original != method) { + proposal.setOriginalSignature(getSignature(original)); + } proposal.setDeclarationPackageName(method.declaringClass.qualifiedPackageName()); proposal.setDeclarationTypeName(method.declaringClass.qualifiedSourceName()); proposal.setParameterPackageNames(parameterPackageNames); @@ -3509,6 +3526,10 @@ CompletionProposal proposal = this.createProposal(CompletionProposal.METHOD_REF, this.actualCompletionPosition); proposal.setDeclarationSignature(getSignature(method.declaringClass)); proposal.setSignature(getSignature(method)); + MethodBinding original = method.original(); + if(original != method) { + proposal.setOriginalSignature(getSignature(original)); + } proposal.setDeclarationPackageName(method.declaringClass.qualifiedPackageName()); proposal.setDeclarationTypeName(method.declaringClass.qualifiedSourceName()); proposal.setParameterPackageNames(parameterPackageNames); @@ -3754,6 +3775,10 @@ proposal.setDeclarationSignature(getSignature(method.declaringClass)); proposal.setDeclarationKey(method.declaringClass.computeUniqueKey()); proposal.setSignature(getSignature(method)); + MethodBinding original = method.original(); + if(original != method) { + proposal.setOriginalSignature(getSignature(original)); + } proposal.setKey(method.computeUniqueKey()); proposal.setDeclarationPackageName(method.declaringClass.qualifiedPackageName()); proposal.setDeclarationTypeName(method.declaringClass.qualifiedSourceName()); Index: codeassist/org/eclipse/jdt/internal/codeassist/InternalCompletionProposal.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/InternalCompletionProposal.java,v retrieving revision 1.5 diff -u -r1.5 InternalCompletionProposal.java --- codeassist/org/eclipse/jdt/internal/codeassist/InternalCompletionProposal.java 8 Jun 2005 11:21:45 -0000 1.5 +++ codeassist/org/eclipse/jdt/internal/codeassist/InternalCompletionProposal.java 15 Jun 2005 14:07:36 -0000 @@ -46,6 +46,8 @@ protected char[][] parameterPackageNames; protected char[][] parameterTypeNames; + protected char[] originalSignature; + protected int accessibility = IAccessRule.K_ACCESSIBLE; protected boolean isConstructor = false; @@ -53,7 +55,7 @@ protected char[][] findMethodParameterNames(char[] signatureType, char[] selector, char[][] paramTypeNames){ if(signatureType == null) return null; - char[] tName = Signature.toCharArray(signatureType); + char[] tName = Signature.toCharArray(Signature.getTypeErasure(signatureType)); char[][] parameterNames = null; int length = paramTypeNames.length; @@ -65,8 +67,7 @@ type = (BinaryType)cachedType; } } else { - // TODO (david) shouldn't it be NameLookup.ACCEPT_ALL ? - type = this.nameLookup.findType(new String(tName), false, NameLookup.ACCEPT_CLASSES & NameLookup.ACCEPT_INTERFACES); + type = this.nameLookup.findType(new String(tName), false, NameLookup.ACCEPT_ALL); if(type instanceof BinaryType){ if(((BinaryType)type).getSourceMapper() != null) { this.completionEngine.typeCache.put(tName, type); @@ -259,4 +260,7 @@ protected void setIsContructor(boolean isConstructor) { this.isConstructor = isConstructor; } + public void setOriginalSignature(char[] originalSignature) { + this.originalSignature = originalSignature; + } } Index: model/org/eclipse/jdt/core/CompletionProposal.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/core/CompletionProposal.java,v retrieving revision 1.26 diff -u -r1.26 CompletionProposal.java --- model/org/eclipse/jdt/core/CompletionProposal.java 13 Jun 2005 15:57:54 -0000 1.26 +++ model/org/eclipse/jdt/core/CompletionProposal.java 15 Jun 2005 14:07:39 -0000 @@ -1359,37 +1359,40 @@ switch(this.completionKind) { case ANONYMOUS_CLASS_DECLARATION: - this.parameterNames = this.findMethodParameterNames( - this.declarationPackageName, - this.declarationTypeName, +// this.parameterNames = this.findMethodParameterNames( +// this.declarationPackageName, +// this.declarationTypeName, +// CharOperation.lastSegment(this.declarationTypeName, '.'), +// this.parameterPackageNames, +// this.parameterTypeNames); + this.parameterNames = this.findMethodParameterNames( + this.declarationSignature, CharOperation.lastSegment(this.declarationTypeName, '.'), - this.parameterPackageNames, - this.parameterTypeNames); + Signature.getParameterTypes(this.originalSignature == null ? this.signature : this.originalSignature)); break; case METHOD_REF: - this.parameterNames = this.findMethodParameterNames( - this.declarationPackageName, - this.declarationTypeName, +// this.parameterNames = this.findMethodParameterNames( +// this.declarationPackageName, +// this.declarationTypeName, +// this.name, +// this.parameterPackageNames, +// this.parameterTypeNames); + this.parameterNames = this.findMethodParameterNames( + this.declarationSignature, this.name, - this.parameterPackageNames, - this.parameterTypeNames); - //this.parameterNames = this.findMethodParameterNames( - // this.declarationSignature, - // this.name, - // Signature.getParameterTypes(this.getSignature())); + Signature.getParameterTypes(this.originalSignature == null ? this.signature : this.originalSignature)); break; case METHOD_DECLARATION: - this.parameterNames = this.findMethodParameterNames( - this.declarationPackageName, - this.declarationTypeName, +// this.parameterNames = this.findMethodParameterNames( +// this.declarationPackageName, +// this.declarationTypeName, +// this.name, +// this.parameterPackageNames, +// this.parameterTypeNames); + this.parameterNames = this.findMethodParameterNames( + this.declarationSignature, this.name, - this.parameterPackageNames, - this.parameterTypeNames); - //char[][] parameterTypes = Signature.getParameterTypes(this.getSignature(); - ///this.parameterNames = this.findMethodParameterNames( - // this.declarationSignature, - // this.name, - // parameterTypes); + Signature.getParameterTypes(this.originalSignature == null ? this.signature : this.originalSignature)); if(this.parameterNames != null) { this.updateCompletion = true; }