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 38116 Details for
Bug 124489
[1.5][search] "Find unused dependencies" misses references to generic types
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
seems to fix the bug by deleting code that puts <T> in pattern
124489-dont-store-type-parameters.diff (text/plain), 5.76 KB, created by
Matt McCutchen
on 2006-04-09 23:50:22 EDT
(
hide
)
Description:
seems to fix the bug by deleting code that puts <T> in pattern
Filename:
MIME Type:
Creator:
Matt McCutchen
Created:
2006-04-09 23:50:22 EDT
Size:
5.76 KB
patch
obsolete
>Index: search/org/eclipse/jdt/internal/core/search/matching/MethodPattern.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/MethodPattern.java,v >retrieving revision 1.58 >diff -u -r1.58 MethodPattern.java >--- search/org/eclipse/jdt/internal/core/search/matching/MethodPattern.java 29 Mar 2006 03:13:59 -0000 1.58 >+++ search/org/eclipse/jdt/internal/core/search/matching/MethodPattern.java 10 Apr 2006 01:57:52 -0000 >@@ -144,7 +144,8 @@ > String genericDeclaringTypeSignature = null; > // String genericSignature = null; > String key; >- if (method.isResolved() && (new BindingKey(key = method.getKey())).isParameterizedType()) { >+ BindingKey bindingKey; >+ if (method.isResolved() && ((bindingKey = new BindingKey(key = method.getKey())).isParameterizedType() || bindingKey.isRawType())) { > genericDeclaringTypeSignature = Util.getDeclaringTypeSignature(key); > } else { > methodParameters = true; >Index: search/org/eclipse/jdt/internal/core/search/matching/JavaSearchPattern.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/JavaSearchPattern.java,v >retrieving revision 1.22 >diff -u -r1.22 JavaSearchPattern.java >--- search/org/eclipse/jdt/internal/core/search/matching/JavaSearchPattern.java 29 Mar 2006 03:13:59 -0000 1.22 >+++ search/org/eclipse/jdt/internal/core/search/matching/JavaSearchPattern.java 10 Apr 2006 01:57:52 -0000 >@@ -110,27 +110,13 @@ > char[][] extractMethodArguments(IMethod method) { > String[] argumentsSignatures = null; > BindingKey key; >- if (method.isResolved() && (key = new BindingKey(method.getKey())).isParameterizedType()) { >+ if (method.isResolved() && ((key = new BindingKey(method.getKey())).isParameterizedType() || key.isRawType())) { > argumentsSignatures = key.getTypeArguments(); >- } else { >- try { >- ITypeParameter[] parameters = method.getTypeParameters(); >- if (parameters != null) { >- int length = parameters.length; >- if (length > 0) { >- char[][] arguments = new char[length][]; >- for (int i=0; i<length; i++) { >- arguments[i] = Signature.createTypeSignature(parameters[i].getElementName(), false).toCharArray(); >- } >- return arguments; >- } >- } >- } >- catch (JavaModelException jme) { >- // do nothing >- } >- return null; > } >+ /* >+ * If the method has no generic information, don't add any to the >+ * pattern! See comment in storeTypeSignaturesAndArguments. >+ */ > > // Parameterized method > if (argumentsSignatures != null) { >@@ -240,46 +226,17 @@ > */ > void storeTypeSignaturesAndArguments(IType type) { > BindingKey key; >- if (type.isResolved() && (key = new BindingKey(type.getKey())).isParameterizedType()) { >+ if (type.isResolved() && ((key = new BindingKey(type.getKey())).isParameterizedType() || key.isRawType())) { > String signature = key.toSignature(); > this.typeSignatures = Util.splitTypeLevelsSignature(signature); > setTypeArguments(Util.getAllTypeArguments(this.typeSignatures)); >- } else { >- // Scan hierachy to store type arguments at each level >- char[][][] typeParameters = new char[10][][]; >- int ptr = -1; >- boolean hasParameters = false; >- try { >- IJavaElement parent = type; >- ITypeParameter[] parameters = null; >- while (parent != null && parent.getElementType() == IJavaElement.TYPE) { >- if (++ptr > typeParameters.length) { >- System.arraycopy(typeParameters, 0, typeParameters = new char[typeParameters.length+10][][], 0, ptr); >- } >- IType parentType = (IType) parent; >- parameters = parentType.getTypeParameters(); >- if (parameters !=null) { >- int length = parameters.length; >- if (length > 0) { >- hasParameters = true; >- typeParameters[ptr] = new char[length][]; >- for (int i=0; i<length; i++) >- typeParameters[ptr][i] = Signature.createTypeSignature(parameters[i].getElementName(), false).toCharArray(); >- } >- } >- parent = parent.getParent(); >- } >- } >- catch (JavaModelException jme) { >- return; >- } >- // Store type arguments if any >- if (hasParameters) { >- if (++ptr < typeParameters.length) >- System.arraycopy(typeParameters, 0, typeParameters = new char[ptr][][], 0, ptr); >- setTypeArguments(typeParameters); >- } > } >+ /* >+ * If the type has no generic information, don't add any to the pattern! >+ * This way, a search for references to Collection can find >+ * "Collection<Integer>", not just "Collection<E>" (which is unlikely to >+ * occur outside the source for Collection anyway). See bug 124489. >+ */ > } > public final String toString() { > return print(new StringBuffer(30)).toString(); >Index: search/org/eclipse/jdt/internal/core/search/matching/ConstructorPattern.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/ConstructorPattern.java,v >retrieving revision 1.34 >diff -u -r1.34 ConstructorPattern.java >--- search/org/eclipse/jdt/internal/core/search/matching/ConstructorPattern.java 29 Mar 2006 03:13:59 -0000 1.34 >+++ search/org/eclipse/jdt/internal/core/search/matching/ConstructorPattern.java 10 Apr 2006 01:57:52 -0000 >@@ -122,7 +122,8 @@ > // Get unique key for parameterized constructors > String genericDeclaringTypeSignature = null; > String key; >- if (method.isResolved() && new BindingKey(key = method.getKey()).isParameterizedType()) { >+ BindingKey bindingKey; >+ if (method.isResolved() && ((bindingKey = new BindingKey(key = method.getKey())).isParameterizedType() || bindingKey.isRawType())) { > genericDeclaringTypeSignature = Util.getDeclaringTypeSignature(key); > } else { > constructorParameters = true;
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 Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 124489
:
38116
|
47342