Index: src/org/eclipse/jdt/core/tests/model/AbstractJavaSearchTests.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AbstractJavaSearchTests.java,v retrieving revision 1.10 diff -u -r1.10 AbstractJavaSearchTests.java --- src/org/eclipse/jdt/core/tests/model/AbstractJavaSearchTests.java 27 Apr 2005 17:17:17 -0000 1.10 +++ src/org/eclipse/jdt/core/tests/model/AbstractJavaSearchTests.java 3 Aug 2005 09:16:25 -0000 @@ -107,6 +107,9 @@ } else if (element instanceof IImportDeclaration) { IImportDeclaration importDeclaration = (IImportDeclaration)element; unit = (ICompilationUnit)importDeclaration.getAncestor(IJavaElement.COMPILATION_UNIT); + } else if (element instanceof IPackageDeclaration) { + IPackageDeclaration packageDeclaration = (IPackageDeclaration)element; + unit = (ICompilationUnit)packageDeclaration.getAncestor(IJavaElement.COMPILATION_UNIT); } if (resource instanceof IFile) { char[] contents = getSource(resource, element, unit); Index: src/org/eclipse/jdt/core/tests/model/JavaSearchBugsTests.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavaSearchBugsTests.java,v retrieving revision 1.48.2.2 diff -u -r1.48.2.2 JavaSearchBugsTests.java --- src/org/eclipse/jdt/core/tests/model/JavaSearchBugsTests.java 8 Jul 2005 17:06:18 -0000 1.48.2.2 +++ src/org/eclipse/jdt/core/tests/model/JavaSearchBugsTests.java 3 Aug 2005 09:16:28 -0000 @@ -46,7 +46,7 @@ // org.eclipse.jdt.internal.codeassist.SelectionEngine.DEBUG = true; // TESTS_PREFIX = "testBug100772_MultipleClasses"; // TESTS_NAMES = new String[] { "testBug100772_ClassAndSubclass04" }; -// TESTS_NUMBERS = new int[] { 100772 }; +// TESTS_NUMBERS = new int[] { 99903 }; // TESTS_RANGE = new int[] { 83304, -1 }; } @@ -1956,11 +1956,11 @@ this.discard = false; search(type, REFERENCES); assertSearchResults( - "src/b83804/package-info.java b83804.package-info [Test] EXACT_MATCH INSIDE_JAVADOC\n" + - "src/b83804/package-info.java b83804.package-info [Test] EXACT_MATCH INSIDE_JAVADOC\n" + - "src/b83804/package-info.java b83804.package-info [Test] EXACT_MATCH INSIDE_JAVADOC\n" + - "src/b83804/package-info.java b83804.package-info [Test] EXACT_MATCH INSIDE_JAVADOC\n" + - "src/b83804/package-info.java b83804.package-info [Test] EXACT_MATCH INSIDE_JAVADOC" + "src/b83804/package-info.java [Test] EXACT_MATCH INSIDE_JAVADOC\n" + + "src/b83804/package-info.java [Test] EXACT_MATCH INSIDE_JAVADOC\n" + + "src/b83804/package-info.java [Test] EXACT_MATCH INSIDE_JAVADOC\n" + + "src/b83804/package-info.java [Test] EXACT_MATCH INSIDE_JAVADOC\n" + + "src/b83804/package-info.java [Test] EXACT_MATCH INSIDE_JAVADOC" ); } public void testBug83804_Method() throws CoreException { @@ -1972,7 +1972,7 @@ this.discard = false; search(methods[0], REFERENCES); assertSearchResults( - "src/b83804/package-info.java b83804.package-info [foo()] EXACT_MATCH INSIDE_JAVADOC" + "src/b83804/package-info.java [foo()] EXACT_MATCH INSIDE_JAVADOC" ); } public void testBug83804_Field() throws CoreException { @@ -1983,7 +1983,7 @@ assertEquals("Invalid number of fields", 1, fields.length); search(fields[0], REFERENCES); assertSearchResults( - "src/b83804/package-info.java b83804.package-info [field] EXACT_MATCH INSIDE_JAVADOC" + "src/b83804/package-info.java [field] EXACT_MATCH INSIDE_JAVADOC" ); } @@ -2443,8 +2443,8 @@ assertSearchResults( "src/b86380/Test.java b86380.Test [Annot] EXACT_MATCH OUTSIDE_JAVADOC\n" + "src/b86380/Test.java b86380.Test.field [Annot] EXACT_MATCH OUTSIDE_JAVADOC\n" + - "src/b86380/package-info.java b86380.package-info [Annot] EXACT_MATCH INSIDE_JAVADOC\n" + - "src/b86380/package-info.java b86380.package-info [Annot] EXACT_MATCH OUTSIDE_JAVADOC" + "src/b86380/package-info.java [Annot] EXACT_MATCH INSIDE_JAVADOC\n" + + "src/b86380/package-info.java [Annot] EXACT_MATCH OUTSIDE_JAVADOC" ); } public void testBug86380_Method() throws CoreException { @@ -2458,7 +2458,7 @@ search(methods[0], REFERENCES); assertSearchResults( "src/b86380/Test.java b86380.Test [12] EXACT_MATCH OUTSIDE_JAVADOC\n" + - "src/b86380/package-info.java b86380.package-info [value] EXACT_MATCH OUTSIDE_JAVADOC" + "src/b86380/package-info.java [value] EXACT_MATCH OUTSIDE_JAVADOC" ); } public void testBug86380_Field() throws CoreException { @@ -2471,7 +2471,7 @@ search(fields[0], REFERENCES); assertSearchResults( "src/b86380/Test.java b86380.Test.field [field] EXACT_MATCH OUTSIDE_JAVADOC\n" + - "src/b86380/package-info.java b86380.package-info [field] EXACT_MATCH INSIDE_JAVADOC" + "src/b86380/package-info.java [field] EXACT_MATCH INSIDE_JAVADOC" ); } @@ -3738,6 +3738,47 @@ } /** + * Bug 99903: [1.5][search] range wrong for package-info + * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=99903" + */ + public void testBug99903_annotation() throws CoreException { + workingCopies = new ICompilationUnit[3]; + workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b99903/package-info.java", + "/**\n" + + " * @see Test\n" + + " */\n" + + "@Annot\n" + + "package b99903;\n" + ); + workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b99903/Test.java", + "package b99903;\n" + + "public class Test {\n" + + "}\n" + ); + workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b99903/Annot.java", + "package b99903;\n" + + "public @interface Annot {\n" + + "}\n" + ); + IType type = workingCopies[2].getType("Annot"); + search(type, REFERENCES); + this.discard = false; + assertSearchResults( + "src/b99903/package-info.java [Annot] EXACT_MATCH" + ); + } + public void testBug99903_javadoc() throws CoreException { + assertNotNull("There should be working copies!", workingCopies); + assertEquals("Invalid number of working copies kept between tests!", 3, workingCopies.length); + resultCollector.showInsideDoc = true; + IType type = workingCopies[1].getType("Test"); + search(type, REFERENCES); + assertSearchResults( + "src/b99903/package-info.java [Test] EXACT_MATCH INSIDE_JAVADOC" + ); + } + + /** * Bug 100695: [1.5][search] Renaming a field of generic array type has no effect * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=100695" */