Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 22008 Details for
Bug 96918
[assist] suggest extends and super in the context of a wildcard type argument
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Proposed patch
patchjdtcore001.txt (text/plain), 8.68 KB, created by
David Audel
on 2005-05-31 04:20:27 EDT
(
hide
)
Description:
Proposed patch
Filename:
MIME Type:
Creator:
David Audel
Created:
2005-05-31 04:20:27 EDT
Size:
8.68 KB
patch
obsolete
>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.240 >diff -u -r1.240 CompletionEngine.java >--- codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java 26 May 2005 09:06:55 -0000 1.240 >+++ codeassist/org/eclipse/jdt/internal/codeassist/CompletionEngine.java 31 May 2005 08:13:40 -0000 >@@ -733,7 +733,7 @@ > findTypesAndPackages(this.completionToken, scope); > if(!this.requestor.isIgnored(CompletionProposal.KEYWORD)) { > if(this.completionToken != null && this.completionToken.length != 0) { >- findKeywords(this.completionToken, singleNameReference.possibleKeywords); >+ findKeywords(this.completionToken, singleNameReference.possibleKeywords, false); > } else { > findTrueOrFalseKeywords(singleNameReference.possibleKeywords); > } >@@ -830,7 +830,7 @@ > ((scope instanceof MethodScope && !((MethodScope)scope).isStatic) > || ((methodScope = scope.enclosingMethodScope()) != null && !methodScope.isStatic))) { > if(this.completionToken.length > 0) { >- findKeywords(this.completionToken, new char[][]{Keywords.THIS}); >+ findKeywords(this.completionToken, new char[][]{Keywords.THIS}, false); > } else { > int relevance = computeBaseRelevance(); > relevance += computeRelevanceForInterestingProposal(); >@@ -942,7 +942,7 @@ > this.completionToken = access.token; > > if(!this.requestor.isIgnored(CompletionProposal.KEYWORD)) { >- findKeywords(this.completionToken, new char[][]{Keywords.NEW}); >+ findKeywords(this.completionToken, new char[][]{Keywords.NEW}, false); > } > > findFieldsAndMethods( >@@ -1106,7 +1106,7 @@ > if(astNode instanceof CompletionOnKeyword) { > if(!this.requestor.isIgnored(CompletionProposal.KEYWORD)) { > CompletionOnKeyword keyword = (CompletionOnKeyword)astNode; >- findKeywords(keyword.getToken(), keyword.getPossibleKeywords()); >+ findKeywords(keyword.getToken(), keyword.getPossibleKeywords(), keyword.canCompleteEmptyToken()); > } > } else if(astNode instanceof CompletionOnParameterizedQualifiedTypeReference) { > if(!this.requestor.isIgnored(CompletionProposal.TYPE_REF)) { >@@ -1464,7 +1464,7 @@ > if(!this.requestor.isIgnored(CompletionProposal.KEYWORD)) { > setSourceRange(importReference.sourceStart, importReference.sourceEnd); > CompletionOnKeyword keyword = (CompletionOnKeyword)importReference; >- findKeywords(keyword.getToken(), keyword.getPossibleKeywords()); >+ findKeywords(keyword.getToken(), keyword.getPossibleKeywords(), false); > } > if(this.noProposal && this.problem != null) { > this.requestor.completionFailure(this.problem); >@@ -2590,11 +2590,11 @@ > > // what about onDemand types? Ignore them since it does not happen! > // import p1.p2.A.*; >- private void findKeywords(char[] keyword, char[][] choices) { >+ private void findKeywords(char[] keyword, char[][] choices, boolean canCompleteEmptyToken) { > if(choices == null || choices.length == 0) return; > > int length = keyword.length; >- if (length > 0) >+ if (canCompleteEmptyToken || length > 0) > for (int i = 0; i < choices.length; i++) > if (length <= choices[i].length > && CharOperation.prefixEquals(keyword, choices[i], false /* ignore case */ >@@ -2742,7 +2742,7 @@ > } > System.arraycopy(keywords, 0, keywords = new char[count][], 0, count); > >- findKeywords(token, keywords); >+ findKeywords(token, keywords, false); > } > > // Helper method for findMemberTypes(char[], ReferenceBinding, Scope) >@@ -4546,7 +4546,7 @@ > } > } else { > if(!this.requestor.isIgnored(CompletionProposal.KEYWORD)) { >- findKeywords(token, baseTypes); >+ findKeywords(token, baseTypes, false); > } > if(proposeType) { > int l = typesFound.size(); >Index: codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnKeyword.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnKeyword.java,v >retrieving revision 1.5 >diff -u -r1.5 CompletionOnKeyword.java >--- codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnKeyword.java 23 Feb 2005 02:47:28 -0000 1.5 >+++ codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnKeyword.java 31 May 2005 08:13:40 -0000 >@@ -14,4 +14,5 @@ > > char[] getToken(); > char[][] getPossibleKeywords(); >+ boolean canCompleteEmptyToken(); > } >Index: codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnKeyword1.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnKeyword1.java,v >retrieving revision 1.6 >diff -u -r1.6 CompletionOnKeyword1.java >--- codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnKeyword1.java 23 Feb 2005 02:47:28 -0000 1.6 >+++ codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnKeyword1.java 31 May 2005 08:13:40 -0000 >@@ -16,6 +16,8 @@ > > public class CompletionOnKeyword1 extends SingleTypeReference implements CompletionOnKeyword { > private char[][] possibleKeywords; >+ public boolean canCompleteEmptyToken; >+ > public CompletionOnKeyword1(char[] token, long pos, char[] possibleKeyword) { > this(token, pos, new char[][]{possibleKeyword}); > } >@@ -23,6 +25,9 @@ > super(token, pos); > this.possibleKeywords = possibleKeywords; > } >+ public boolean canCompleteEmptyToken() { >+ return this.canCompleteEmptyToken; >+ } > public char[] getToken() { > return token; > } >Index: codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnKeyword2.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnKeyword2.java,v >retrieving revision 1.7 >diff -u -r1.7 CompletionOnKeyword2.java >--- codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnKeyword2.java 23 Feb 2005 02:47:28 -0000 1.7 >+++ codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnKeyword2.java 31 May 2005 08:13:40 -0000 >@@ -20,6 +20,9 @@ > this.token = token; > this.possibleKeywords = possibleKeywords; > } >+ public boolean canCompleteEmptyToken() { >+ return false; >+ } > public char[] getToken() { > return token; > } >Index: codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnKeyword3.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnKeyword3.java,v >retrieving revision 1.6 >diff -u -r1.6 CompletionOnKeyword3.java >--- codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnKeyword3.java 23 Feb 2005 02:47:28 -0000 1.6 >+++ codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionOnKeyword3.java 31 May 2005 08:13:40 -0000 >@@ -24,6 +24,9 @@ > this.token = token; > this.possibleKeywords = possibleKeywords; > } >+ public boolean canCompleteEmptyToken() { >+ return false; >+ } > public char[] getToken() { > return token; > } >Index: codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java,v >retrieving revision 1.133 >diff -u -r1.133 CompletionParser.java >--- codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java 26 May 2005 14:22:47 -0000 1.133 >+++ codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java 31 May 2005 08:13:42 -0000 >@@ -2833,11 +2833,13 @@ > return; > } > Wildcard wildcard = (Wildcard) this.genericsStack[this.genericsPtr]; >- wildcard.kind = Wildcard.EXTENDS; >- wildcard.bound = new CompletionOnKeyword1( >+ CompletionOnKeyword1 keyword = new CompletionOnKeyword1( > identifierStack[this.identifierPtr], > identifierPositionStack[this.identifierPtr], > new char[][]{Keywords.EXTENDS, Keywords.SUPER} ); >+ keyword.canCompleteEmptyToken = true; >+ wildcard.kind = Wildcard.EXTENDS; >+ wildcard.bound = keyword; > > this.identifierPtr--; > this.identifierLengthPtr--;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 96918
: 22008 |
22009