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 37202 Details for
Bug 92357
ITypeHierarchy#getType() should return an unresolved handle
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Proposed patch and regression test
92357.txt (text/plain), 8.50 KB, created by
Jerome Lanneluc
on 2006-03-29 10:09:21 EST
(
hide
)
Description:
Proposed patch and regression test
Filename:
MIME Type:
Creator:
Jerome Lanneluc
Created:
2006-03-29 10:09:21 EST
Size:
8.50 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.core >Index: model/org/eclipse/jdt/internal/core/ResolvedBinaryField.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ResolvedBinaryField.java,v >retrieving revision 1.3 >diff -u -r1.3 ResolvedBinaryField.java >--- model/org/eclipse/jdt/internal/core/ResolvedBinaryField.java 22 Apr 2005 16:25:34 -0000 1.3 >+++ model/org/eclipse/jdt/internal/core/ResolvedBinaryField.java 29 Mar 2006 15:08:53 -0000 >@@ -51,4 +51,10 @@ > buffer.append("}"); //$NON-NLS-1$ > } > } >+ >+ public JavaElement unresolved() { >+ SourceRefElement resolvedHandle = new BinaryField(this.parent, this.name); >+ resolvedHandle.occurrenceCount = this.occurrenceCount; >+ return resolvedHandle; >+ } > } >Index: model/org/eclipse/jdt/internal/core/ResolvedSourceType.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ResolvedSourceType.java,v >retrieving revision 1.5 >diff -u -r1.5 ResolvedSourceType.java >--- model/org/eclipse/jdt/internal/core/ResolvedSourceType.java 22 Apr 2005 16:25:34 -0000 1.5 >+++ model/org/eclipse/jdt/internal/core/ResolvedSourceType.java 29 Mar 2006 15:08:54 -0000 >@@ -57,4 +57,10 @@ > buffer.append("}"); //$NON-NLS-1$ > } > } >+ >+ public JavaElement unresolved() { >+ SourceRefElement resolvedHandle = new SourceType(this.parent, this.name); >+ resolvedHandle.occurrenceCount = this.occurrenceCount; >+ return resolvedHandle; >+ } > } >Index: model/org/eclipse/jdt/internal/core/ResolvedSourceField.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ResolvedSourceField.java,v >retrieving revision 1.3 >diff -u -r1.3 ResolvedSourceField.java >--- model/org/eclipse/jdt/internal/core/ResolvedSourceField.java 22 Apr 2005 16:25:34 -0000 1.3 >+++ model/org/eclipse/jdt/internal/core/ResolvedSourceField.java 29 Mar 2006 15:08:54 -0000 >@@ -51,4 +51,10 @@ > buffer.append("}"); //$NON-NLS-1$ > } > } >+ >+ public JavaElement unresolved() { >+ SourceRefElement resolvedHandle = new SourceField(this.parent, this.name); >+ resolvedHandle.occurrenceCount = this.occurrenceCount; >+ return resolvedHandle; >+ } > } >Index: model/org/eclipse/jdt/internal/core/ResolvedSourceMethod.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ResolvedSourceMethod.java,v >retrieving revision 1.3 >diff -u -r1.3 ResolvedSourceMethod.java >--- model/org/eclipse/jdt/internal/core/ResolvedSourceMethod.java 22 Apr 2005 16:25:34 -0000 1.3 >+++ model/org/eclipse/jdt/internal/core/ResolvedSourceMethod.java 29 Mar 2006 15:08:54 -0000 >@@ -38,6 +38,7 @@ > public boolean isResolved() { > return true; > } >+ > /** > * @private Debugging purposes > */ >@@ -49,4 +50,10 @@ > buffer.append("}"); //$NON-NLS-1$ > } > } >+ >+ public JavaElement unresolved() { >+ SourceRefElement resolvedHandle = new SourceMethod(this.parent, this.name, this.parameterTypes); >+ resolvedHandle.occurrenceCount = this.occurrenceCount; >+ return resolvedHandle; >+ } > } >Index: model/org/eclipse/jdt/internal/core/ResolvedBinaryType.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ResolvedBinaryType.java,v >retrieving revision 1.3 >diff -u -r1.3 ResolvedBinaryType.java >--- model/org/eclipse/jdt/internal/core/ResolvedBinaryType.java 22 Apr 2005 16:25:34 -0000 1.3 >+++ model/org/eclipse/jdt/internal/core/ResolvedBinaryType.java 29 Mar 2006 15:08:53 -0000 >@@ -57,4 +57,10 @@ > buffer.append("}"); //$NON-NLS-1$ > } > } >+ >+ public JavaElement unresolved() { >+ SourceRefElement resolvedHandle = new BinaryType(this.parent, this.name); >+ resolvedHandle.occurrenceCount = this.occurrenceCount; >+ return resolvedHandle; >+ } > } >Index: model/org/eclipse/jdt/internal/core/ResolvedBinaryMethod.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ResolvedBinaryMethod.java,v >retrieving revision 1.3 >diff -u -r1.3 ResolvedBinaryMethod.java >--- model/org/eclipse/jdt/internal/core/ResolvedBinaryMethod.java 22 Apr 2005 16:25:34 -0000 1.3 >+++ model/org/eclipse/jdt/internal/core/ResolvedBinaryMethod.java 29 Mar 2006 15:08:53 -0000 >@@ -37,6 +37,7 @@ > public boolean isResolved() { > return true; > } >+ > /** > * @private Debugging purposes > */ >@@ -48,4 +49,10 @@ > buffer.append("}"); //$NON-NLS-1$ > } > } >+ >+ public JavaElement unresolved() { >+ SourceRefElement resolvedHandle = new BinaryMethod(this.parent, this.name, this.parameterTypes); >+ resolvedHandle.occurrenceCount = this.occurrenceCount; >+ return resolvedHandle; >+ } > } >Index: model/org/eclipse/jdt/internal/core/JavaElement.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaElement.java,v >retrieving revision 1.120 >diff -u -r1.120 JavaElement.java >--- model/org/eclipse/jdt/internal/core/JavaElement.java 29 Mar 2006 03:08:47 -0000 1.120 >+++ model/org/eclipse/jdt/internal/core/JavaElement.java 29 Mar 2006 15:08:53 -0000 >@@ -533,6 +533,9 @@ > public JavaElement resolved(Binding binding) { > return this; > } >+ public JavaElement unresolved() { >+ return this; >+ } > protected String tabString(int tab) { > StringBuffer buffer = new StringBuffer(); > for (int i = tab; i > 0; i--) >Index: model/org/eclipse/jdt/internal/core/hierarchy/TypeHierarchy.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/hierarchy/TypeHierarchy.java,v >retrieving revision 1.93 >diff -u -r1.93 TypeHierarchy.java >--- model/org/eclipse/jdt/internal/core/hierarchy/TypeHierarchy.java 29 Mar 2006 03:14:01 -0000 1.93 >+++ model/org/eclipse/jdt/internal/core/hierarchy/TypeHierarchy.java 29 Mar 2006 15:08:54 -0000 >@@ -150,7 +150,7 @@ > * Creates a TypeHierarchy on the given type. > */ > public TypeHierarchy(IType type, ICompilationUnit[] workingCopies, IJavaSearchScope scope, boolean computeSubtypes) { >- this.focusType = type; >+ this.focusType = type == null ? null : (IType) ((JavaElement) type).unresolved(); // unsure the focus type is unresolved (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=92357) > this.workingCopies = workingCopies; > this.computeSubtypes = computeSubtypes; > this.scope = scope; >#P org.eclipse.jdt.core.tests.model >Index: src/org/eclipse/jdt/core/tests/model/TypeHierarchyTests.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/TypeHierarchyTests.java,v >retrieving revision 1.50 >diff -u -r1.50 TypeHierarchyTests.java >--- src/org/eclipse/jdt/core/tests/model/TypeHierarchyTests.java 29 Mar 2006 04:03:07 -0000 1.50 >+++ src/org/eclipse/jdt/core/tests/model/TypeHierarchyTests.java 29 Mar 2006 15:08:57 -0000 >@@ -738,6 +738,35 @@ > } > > /* >+ * Ensures that the focus type is put as a non-resolved type >+ * (regression test for bug 92357 DCR, need type declaration from resolved key >+ */ >+public void testResolvedTypeAsFocus() throws CoreException { >+ try { >+ createJavaProject("P", new String[] {""}, new String[] {"JCL15_LIB"}, "", "1.5"); >+ String source = >+ "public class X {\n" + >+ " Y<String> field;\n" + >+ "}\n" + >+ "class Y<E> {\n" + >+ "}"; >+ createFile("/P/X.java", source); >+ int start = source.indexOf("Y"); >+ int end = source.indexOf("<String>"); >+ IJavaElement[] elements = getCompilationUnit("/P/X.java").codeSelect(start, end-start); >+ IType focus = (IType) elements[0]; >+ ITypeHierarchy hierarchy = focus.newTypeHierarchy(null); >+ assertElementsEqual( >+ "Unexpected focus type in hierarchy", >+ "Y [in X.java [in <default> [in <project root> [in P]]]]", >+ new IJavaElement[] {hierarchy.getType()}, >+ true/*show resolved info*/); >+ } finally { >+ deleteProject("P"); >+ } >+} >+ >+/* > * Ensures that a type hierarchy on a member type with subtypes in another project is correct > * (regression test for bug 101019 RC3: Type Hierarchy does not find implementers/extenders of inner class/interface in other project) > */
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 92357
:
37193
| 37202