diff options
author | Pierre-Yves B. | 2020-02-29 21:33:22 +0000 |
---|---|---|
committer | Stephan Herrmann | 2020-05-12 16:29:13 +0000 |
commit | d404ac773e545304cc49cb032fa354e7aee43b4f (patch) | |
tree | e51d66e0e460c9d3aa697c8b25daa531e4038412 | |
parent | 91e063ba131d7041233f08bdf4acbe4a50602366 (diff) | |
download | eclipse.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>
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 } |