View | Details | Raw Unified | Return to bug 136016
Collapse All | Expand All

(-)src/org/eclipse/jdt/core/tests/dom/ASTModelBridgeTests.java (+44 lines)
Lines 14-19 Link Here
14
import org.eclipse.jdt.core.*;
14
import org.eclipse.jdt.core.*;
15
import org.eclipse.jdt.core.compiler.IProblem;
15
import org.eclipse.jdt.core.compiler.IProblem;
16
import org.eclipse.jdt.core.dom.*;
16
import org.eclipse.jdt.core.dom.*;
17
import org.eclipse.jdt.core.search.IJavaSearchConstants;
18
import org.eclipse.jdt.core.search.IJavaSearchScope;
19
import org.eclipse.jdt.core.search.SearchEngine;
20
import org.eclipse.jdt.core.tests.model.AbstractJavaSearchTests;
17
21
18
import junit.framework.Test;
22
import junit.framework.Test;
19
23
Lines 103-108 Link Here
103
				"    }/*end*/\n" +
107
				"    }/*end*/\n" +
104
				"  }\n" +
108
				"  }\n" +
105
				"}",
109
				"}",
110
				"p/ABC.java",
111
				"package p;\n" +
112
				"public class ABC {\n" +
113
				"}",
106
				"Z.java",
114
				"Z.java",
107
				"public class Z {\n" +
115
				"public class Z {\n" +
108
				"  /*start*/class Member {\n" +
116
				"  /*start*/class Member {\n" +
Lines 289-294 Link Here
289
		assertTrue("Element should exist", element.exists());
297
		assertTrue("Element should exist", element.exists());
290
	}
298
	}
291
	
299
	
300
	public void testBinaryType2() throws CoreException {
301
		IClassFile classFile = getClassFile("P", "lib.jar", "p", "ABC.class"); // class with no references
302
		
303
		// ensure classfile is open
304
		classFile.open(null);
305
		
306
		//search for references to p.W after adding references in exactly 1 file
307
		try {
308
			createFile(
309
				"/P/src/Test.java",
310
				"import p.ABC;\n" +
311
				"public class Test extends ABC {\n" +
312
				"}"
313
				);
314
			IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaElement[] {getPackageFragmentRoot("/P/src")});
315
			search(classFile.getType(), IJavaSearchConstants.REFERENCES, scope, new AbstractJavaSearchTests.JavaSearchResultCollector());
316
		} finally {
317
			deleteFile("/P/src/Test.java");
318
		}
319
		
320
		String source = classFile.getSource();
321
		MarkerInfo markerInfo = new MarkerInfo(source);
322
		markerInfo.astStarts = new int[] {source.indexOf("public")};
323
		markerInfo.astEnds = new int[] {source.lastIndexOf('}') + 1};
324
		ASTNode node = buildAST(markerInfo, classFile);
325
		IBinding binding = ((TypeDeclaration) node).resolveBinding();
326
		assertNotNull("No binding", binding);
327
		IJavaElement element = binding.getJavaElement();
328
		assertElementEquals(
329
			"Unexpected Java element",
330
			"ABC [in ABC.class [in p [in lib.jar [in P]]]]",
331
			element
332
		);
333
		assertTrue("Element should exist", element.exists());
334
	}
335
	
292
	/*
336
	/*
293
	 * Ensures that the IJavaElement for a binary member type coming from an anoumous class file is correct.
337
	 * Ensures that the IJavaElement for a binary member type coming from an anoumous class file is correct.
294
	 * (regression test for bug 100636 [model] Can't find overriden methods of protected nonstatic inner class.)
338
	 * (regression test for bug 100636 [model] Can't find overriden methods of protected nonstatic inner class.)
(-)search/org/eclipse/jdt/internal/core/search/matching/PackageReferenceLocator.java (-1 / +1 lines)
Lines 31-37 Link Here
31
	char[] fileName = typeBinding.getFileName();
31
	char[] fileName = typeBinding.getFileName();
32
	if (fileName != null) {
32
	if (fileName != null) {
33
		// retrieve the actual file name from the full path (sources are generally only containing it already)
33
		// retrieve the actual file name from the full path (sources are generally only containing it already)
34
		CharOperation.replace(fileName, '/', '\\');
34
		fileName = CharOperation.replaceOnCopy(fileName, '/', '\\'); // ensure to not do any side effect on file name (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=136016)
35
		fileName = CharOperation.lastSegment(fileName, '\\');
35
		fileName = CharOperation.lastSegment(fileName, '\\');
36
		
36
		
37
		try { 
37
		try { 

Return to bug 136016