diff options
author | Stanley Shyiko <stanley.shyiko@gmail.com> | 2018-05-02 13:27:08 -0700 |
---|---|---|
committer | Stanley Shyiko <stanley.shyiko@gmail.com> | 2018-05-02 13:27:08 -0700 |
commit | c9181df275dd71e2663da7fa9579067be3bb991f (patch) | |
tree | dcd8dfac5f473aee32d28cbd7dd962b59006e46a | |
parent | 4385ea52274cbaa0b732ca90c27b64a168a5d698 (diff) | |
download | ktlint-c9181df275dd71e2663da7fa9579067be3bb991f.tar.gz |
Fixed #204 - Unused import false positive (x.y.zNNN import inside x.y.z package)
2 files changed, 16 insertions, 1 deletions
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/github/shyiko/ktlint/ruleset/standard/NoUnusedImportsRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/github/shyiko/ktlint/ruleset/standard/NoUnusedImportsRule.kt index 3b0e1b8f..b46f04df 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/github/shyiko/ktlint/ruleset/standard/NoUnusedImportsRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/github/shyiko/ktlint/ruleset/standard/NoUnusedImportsRule.kt @@ -68,7 +68,7 @@ class NoUnusedImportsRule : Rule("no-unused-imports") { val name = importDirective.importPath?.importedName?.asString() val importPath = importDirective.importPath?.pathStr!! if (importDirective.aliasName == null && - importPath.startsWith(packageName) && + (packageName.isEmpty() || importPath.startsWith("$packageName.")) && importPath.substring(packageName.length + 1).indexOf('.') == -1) { emit(importDirective.startOffset, "Unnecessary import", true) if (autoCorrect) { diff --git a/ktlint-ruleset-standard/src/test/kotlin/com/github/shyiko/ktlint/ruleset/standard/NoUnusedImportsRuleTest.kt b/ktlint-ruleset-standard/src/test/kotlin/com/github/shyiko/ktlint/ruleset/standard/NoUnusedImportsRuleTest.kt index 98ed5779..ad5f6cc9 100644 --- a/ktlint-ruleset-standard/src/test/kotlin/com/github/shyiko/ktlint/ruleset/standard/NoUnusedImportsRuleTest.kt +++ b/ktlint-ruleset-standard/src/test/kotlin/com/github/shyiko/ktlint/ruleset/standard/NoUnusedImportsRuleTest.kt @@ -48,6 +48,21 @@ class NoUnusedImportsRuleTest { } @Test + fun testLintIssue204() { + assertThat(NoUnusedImportsRule().lint( + """ + package com.example.another + + import com.example.anotherThing + + class Foo { + val bar = anotherThing + } + """.trimIndent() + )).isEmpty() + } + + @Test fun testLintDestructuringAssignment() { assertThat(NoUnusedImportsRule().lint( """ |