Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre-Yves B.2020-02-29 21:33:22 +0000
committerStephan Herrmann2020-05-12 16:29:13 +0000
commitd404ac773e545304cc49cb032fa354e7aee43b4f (patch)
treee51d66e0e460c9d3aa697c8b25daa531e4038412
parent91e063ba131d7041233f08bdf4acbe4a50602366 (diff)
downloadeclipse.jdt.core-d404ac773e545304cc49cb032fa354e7aee43b4f.tar.gz
eclipse.jdt.core-d404ac773e545304cc49cb032fa354e7aee43b4f.tar.xz
eclipse.jdt.core-d404ac773e545304cc49cb032fa354e7aee43b4f.zip
Bug 560630 - No warning on unused import on class from same package
Change-Id: I80381be29dd8298147f3936323409252fdeda4f8 Signed-off-by: Pierre-Yves B. <PyvesDev@gmail.com>
-rw-r--r--org.eclipse.jdt.apt.pluggable.tests/resources/targets/bug387956/Entity.java2
-rw-r--r--org.eclipse.jdt.compiler.apt.tests/resources/targets/AnnotationProcessorTests/bug340635/classes/MyImpl.java1
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompilationUnitTests.java29
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java3
4 files changed, 30 insertions, 5 deletions
diff --git a/org.eclipse.jdt.apt.pluggable.tests/resources/targets/bug387956/Entity.java b/org.eclipse.jdt.apt.pluggable.tests/resources/targets/bug387956/Entity.java
index b9ee2a7669..ed5ae26b2d 100644
--- a/org.eclipse.jdt.apt.pluggable.tests/resources/targets/bug387956/Entity.java
+++ b/org.eclipse.jdt.apt.pluggable.tests/resources/targets/bug387956/Entity.java
@@ -1,7 +1,5 @@
package targets.bug387956;
-import targets.bug387956.Generate;
-
/**
* Using {@link Generate} on {@link Entity} will generate the empty
* {@link generated.GeneratedEntity} class.
diff --git a/org.eclipse.jdt.compiler.apt.tests/resources/targets/AnnotationProcessorTests/bug340635/classes/MyImpl.java b/org.eclipse.jdt.compiler.apt.tests/resources/targets/AnnotationProcessorTests/bug340635/classes/MyImpl.java
index e109efea96..4ff940d76a 100644
--- a/org.eclipse.jdt.compiler.apt.tests/resources/targets/AnnotationProcessorTests/bug340635/classes/MyImpl.java
+++ b/org.eclipse.jdt.compiler.apt.tests/resources/targets/AnnotationProcessorTests/bug340635/classes/MyImpl.java
@@ -1,6 +1,5 @@
package classes;
-import classes.MyInterface;
import annotation.GetType;
@GetType
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompilationUnitTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompilationUnitTests.java
index 3753612650..2d3db19d74 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompilationUnitTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompilationUnitTests.java
@@ -11,7 +11,9 @@
* Contributors:
* IBM Corporation - initial API and implementation
* Stephan Herrmann - contribution for bug 337868 - [compiler][model] incomplete support for package-info.java when using SearchableEnvironment
- * Pierre-Yves B. <pyvesdev@gmail.com> - Contribution for bug 559618 - No compiler warning for import from same package
+ * Pierre-Yves B. <pyvesdev@gmail.com> - Contributions for
+ * Bug 559618 - No compiler warning for import from same package
+ * Bug 560630 - No warning on unused import on class from same package
*******************************************************************************/
package org.eclipse.jdt.core.tests.model;
@@ -2791,4 +2793,29 @@ public void testBug559618_3() throws CoreException { // Nested class imports mus
deleteFile("/P/src/p/D.java");
}
}
+public void testBug560630() throws CoreException {
+ try {
+ createFile("/P/src/p/C.java",
+ "package p;\n" +
+ "public class C{};\n");
+
+ createFile("/P/src/p/D.java",
+ "package p;\n" +
+ "import p.C;\n" +
+ "public class D extends C {}\n");
+ ICompilationUnit cuD = getCompilationUnit("/P/src/p/D.java");
+
+ ASTParser parser = ASTParser.newParser(AST_INTERNAL_LATEST);
+ parser.setProject(this.testProject);
+ parser.setSource(cuD);
+ parser.setResolveBindings(true);
+ org.eclipse.jdt.core.dom.CompilationUnit cuAST = (org.eclipse.jdt.core.dom.CompilationUnit) parser.createAST(null);
+ IProblem[] problems = cuAST.getProblems();
+ assertEquals("Should have 1 problem", 1, problems.length);
+ assertEquals("Should have only an unused warning", "The import p.C is never used", problems[0].getMessage());
+ } finally {
+ deleteFile("/P/src/p/C.java");
+ deleteFile("/P/src/p/D.java");
+ }
+}
}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java
index ade4b66296..a71e6ae6ea 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java
@@ -60,6 +60,7 @@
* Bug 405104 - [1.8][compiler][codegen] Implement support for serializeable lambdas
* Pierre-Yves B. <pyvesdev@gmail.com> - Contributions for
* Bug 559618 - No compiler warning for import from same package
+ * Bug 560630 - No warning on unused import on class from same package
*******************************************************************************/
package org.eclipse.jdt.internal.compiler.lookup;
@@ -3444,7 +3445,7 @@ public abstract class Scope {
if (resolvedImport == null) continue nextImport;
if (resolvedImport instanceof TypeBinding) {
ImportReference importReference = importBinding.reference;
- if (importReference != null)
+ if (importReference != null && !isUnnecessarySamePackageImport(importBinding.resolvedImport, unitScope))
importReference.bits |= ASTNode.Used;
return resolvedImport; // already know its visible
}

Back to the top