Add inspection to remove redundant qualifier name

#KT-12134 Fixed
This commit is contained in:
Dmitry Gridin
2019-02-27 15:54:54 +03:00
parent d0c3a28996
commit 3756b6f54d
83 changed files with 1469 additions and 0 deletions
@@ -0,0 +1 @@
org.jetbrains.kotlin.idea.inspections.RemoveRedundantQualifierNameInspection
@@ -0,0 +1,24 @@
// WITH_RUNTIME
package my.simple.name
open class SuperClass {
companion object {
fun check() {}
}
}
class Child : SuperClass() {
class Foo constructor() {
constructor(i: Int) : this()
fun check() {}
fun foo() {
my.simple.name.SuperClass.check()
Child<caret>.Foo.check()
}
companion object {
fun check() {}
}
}
}
@@ -0,0 +1,24 @@
// WITH_RUNTIME
package my.simple.name
open class SuperClass {
companion object {
fun check() {}
}
}
class Child : SuperClass() {
class Foo constructor() {
constructor(i: Int) : this()
fun check() {}
fun foo() {
my.simple.name.SuperClass.check()
Foo.check()
}
companion object {
fun check() {}
}
}
}
@@ -0,0 +1,14 @@
package my.simple.name
import my.simple.name.Foo.Companion.VARIABLE
class Foo {
companion object {
const val VARIABLE = 1
}
}
fun main() {
val a = my.simple.name.Foo.VARIABLE
val b = my.simple.name.Foo.Companion.VARIABLE
val c = my.simple.name<caret>.Foo()
}
@@ -0,0 +1,14 @@
package my.simple.name
import my.simple.name.Foo.Companion.VARIABLE
class Foo {
companion object {
const val VARIABLE = 1
}
}
fun main() {
val a = Foo.VARIABLE
val b = Foo.Companion.VARIABLE
val c = Foo()
}
@@ -0,0 +1,14 @@
package my.simple.name
import my.simple.name.Foo.Companion.VARIABLE
class Foo {
companion object {
const val VARIABLE = 1
}
}
fun main() {
val a = my.simple.name.Foo<caret>.VARIABLE
val b = my.simple.name.Foo.Companion.VARIABLE
val c = my.simple.name.Foo()
}
@@ -0,0 +1,14 @@
package my.simple.name
import my.simple.name.Foo.Companion.VARIABLE
class Foo {
companion object {
const val VARIABLE = 1
}
}
fun main() {
val a = VARIABLE
val b = my.simple.name.Foo.Companion.VARIABLE
val c = my.simple.name.Foo()
}
@@ -0,0 +1,15 @@
package my.simple.name
class Bar {
class Foo {
companion object {
class CheckClass
}
}
}
fun foo(a: my.simple.name<caret>.Bar.Foo.Companion.CheckClass) {
}
@@ -0,0 +1,15 @@
package my.simple.name
class Bar {
class Foo {
companion object {
class CheckClass
}
}
}
fun foo(a: Bar.Foo.Companion.CheckClass) {
}
@@ -0,0 +1,16 @@
package my.simple.name
import my.simple.name.Bar.Foo.Companion.CheckClass
class Bar {
class Foo {
companion object {
class CheckClass
}
}
}
fun foo(a: my.simple.name<caret>.Bar.Foo.Companion.CheckClass) {
}
@@ -0,0 +1,16 @@
package my.simple.name
import my.simple.name.Bar.Foo.Companion.CheckClass
class Bar {
class Foo {
companion object {
class CheckClass
}
}
}
fun foo(a: CheckClass) {
}
@@ -0,0 +1,19 @@
package my.simple.name
import my.simple.name.Bar.Foo.Companion.CheckClass
class Bar {
class Foo {
companion object {
class CheckClass
}
}
}
class F {
class CheckClass
fun foo(a: my.simple.name<caret>.Bar.Foo.Companion.CheckClass) {
}
}
@@ -0,0 +1,19 @@
package my.simple.name
import my.simple.name.Bar.Foo.Companion.CheckClass
class Bar {
class Foo {
companion object {
class CheckClass
}
}
}
class F {
class CheckClass
fun foo(a: Bar.Foo.Companion.CheckClass) {
}
}
@@ -0,0 +1,19 @@
package my.simple.name
import my.simple.name.Bar.Foo.Companion.CheckClass
class Bar {
class Foo {
companion object {
class CheckClass
}
}
}
class F {
fun foo(a: my.simple.name<caret>.Bar.Foo.Companion.CheckClass) {}
companion object {
class CheckClass
}
}
@@ -0,0 +1,19 @@
package my.simple.name
import my.simple.name.Bar.Foo.Companion.CheckClass
class Bar {
class Foo {
companion object {
class CheckClass
}
}
}
class F {
fun foo(a: Bar.Foo.Companion.CheckClass) {}
companion object {
class CheckClass
}
}
@@ -0,0 +1,11 @@
package my.simple.name
class F {
class CheckClass
fun foo(a: F<caret>.CheckClass) {}
companion object {
class CheckClass
}
}
@@ -0,0 +1,11 @@
package my.simple.name
class F {
class CheckClass
fun foo(a: CheckClass) {}
companion object {
class CheckClass
}
}
@@ -0,0 +1,11 @@
package my.sample
class Inner {
fun a() {
my.sample<caret>.Inner.say()
}
companion object Inner {
fun say() {}
}
}
@@ -0,0 +1,11 @@
package my.sample
class Inner {
fun a() {
say()
}
companion object Inner {
fun say() {}
}
}
@@ -0,0 +1,10 @@
package my.simple.name
class Foo
class Bar
fun main() {
val a = my.simple.name<caret>.Foo()
val b = my.simple.name.Bar()
val c = my.simple.name.Foo()
}
@@ -0,0 +1,10 @@
package my.simple.name
class Foo
class Bar
fun main() {
val a = Foo()
val b = my.simple.name.Bar()
val c = Foo()
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
package my.simple.name
fun main() {
val a = kotlin<caret>.Int.MAX_VALUE
val b = kotlin.Int.Companion.MAX_VALUE
val c = kotlin.Int.Companion::MAX_VALUE
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
package my.simple.name
fun main() {
val a = Int.MAX_VALUE
val b = kotlin.Int.Companion.MAX_VALUE
val c = kotlin.Int.Companion::MAX_VALUE
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
package my.simple.name
fun main() {
val a = kotlin.Int.MAX_VALUE
val b = kotlin<caret>.Int.Companion.MAX_VALUE
val c = kotlin.Int.Companion::MAX_VALUE
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
package my.simple.name
fun main() {
val a = kotlin.Int.MAX_VALUE
val b = Int.MAX_VALUE
val c = kotlin.Int.Companion::MAX_VALUE
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
package my.simple.name
import kotlin.Int.Companion.MAX_VALUE
fun main() {
val a = kotlin<caret>.Int.Companion.MAX_VALUE
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
package my.simple.name
import kotlin.Int.Companion.MAX_VALUE
fun main() {
val a = MAX_VALUE
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
package my.simple.name
import kotlin.Int.Companion.MAX_VALUE
fun main() {
val a = kotlin<caret>.Int.MAX_VALUE
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
package my.simple.name
import kotlin.Int.Companion.MAX_VALUE
fun main() {
val a = MAX_VALUE
}
@@ -0,0 +1,11 @@
package my.simple.name
fun run() {}
fun go(check: () -> Unit) = check()
fun main() {
val a = my.simple.name<caret>.go {
run()
}
val b = my.simple.name.go(::run)
}
@@ -0,0 +1,11 @@
package my.simple.name
fun run() {}
fun go(check: () -> Unit) = check()
fun main() {
val a = go {
run()
}
val b = go(::run)
}
@@ -0,0 +1,16 @@
package my.simple.name
class Outer {
class Middle {
class Inner {
companion object {
fun check() {}
}
}
}
}
fun main() {
my.simple.name<caret>.Outer.Middle.Inner.check()
Outer.Middle.Inner.check()
}
@@ -0,0 +1,16 @@
package my.simple.name
class Outer {
class Middle {
class Inner {
companion object {
fun check() {}
}
}
}
}
fun main() {
Outer.Middle.Inner.check()
Outer.Middle.Inner.check()
}
@@ -0,0 +1,15 @@
package my.simple.name
class Outer {
class Middle {
class Inner {
fun check() {
Outer.Middle.Inner<caret>.Companion.check()
}
companion object {
fun check() {}
}
}
}
}
@@ -0,0 +1,15 @@
package my.simple.name
class Outer {
class Middle {
class Inner {
fun check() {
Companion.check()
}
companion object {
fun check() {}
}
}
}
}
@@ -0,0 +1,15 @@
package my.simple.name
class Outer {
class Middle {
class Inner {
fun otherCheck() {
Outer.Middle.Inner<caret>.Companion.check()
}
companion object {
fun check() {}
}
}
}
}
@@ -0,0 +1,15 @@
package my.simple.name
class Outer {
class Middle {
class Inner {
fun otherCheck() {
check()
}
companion object {
fun check() {}
}
}
}
}
@@ -0,0 +1,16 @@
package my.simple.name
fun <T> check() {}
class Outer {
class Middle {
class Inner {
fun foo() {
Middle.Inner.Companion.check()
my.simple.name<caret>.check<Outer>()
}
companion object {
fun check() {}
}
}
}
}
@@ -0,0 +1,16 @@
package my.simple.name
fun <T> check() {}
class Outer {
class Middle {
class Inner {
fun foo() {
Middle.Inner.Companion.check()
check<Outer>()
}
companion object {
fun check() {}
}
}
}
}
@@ -0,0 +1,16 @@
package my.simple.name
fun <T> check() {}
class Outer {
class Middle {
class Inner {
fun foo() {
Middle.Inner<caret>.Companion.check()
my.simple.name.check<Outer>()
}
companion object {
fun check() {}
}
}
}
}
@@ -0,0 +1,16 @@
package my.simple.name
fun <T> check() {}
class Outer {
class Middle {
class Inner {
fun foo() {
check()
my.simple.name.check<Outer>()
}
companion object {
fun check() {}
}
}
}
}
@@ -0,0 +1,18 @@
package my.simple.name
import my.simple.name.Outer.Middle.Inner.Companion.check
class Outer {
class Middle {
class Inner {
companion object {
fun check() {}
}
}
}
}
fun main() {
my.simple.name<caret>.Outer.Middle.Inner.check()
Outer.Middle.Inner.check()
}
@@ -0,0 +1,18 @@
package my.simple.name
import my.simple.name.Outer.Middle.Inner.Companion.check
class Outer {
class Middle {
class Inner {
companion object {
fun check() {}
}
}
}
}
fun main() {
check()
Outer.Middle.Inner.check()
}
@@ -0,0 +1,18 @@
package my.simple.name
import my.simple.name.Outer.Middle.Inner.Companion.check
class Outer {
class Middle {
class Inner {
companion object {
fun check() {}
}
}
}
}
fun main() {
my.simple.name.Outer.Middle.Inner.check()
Outer.Middle.Inner<caret>.check()
}
@@ -0,0 +1,18 @@
package my.simple.name
import my.simple.name.Outer.Middle.Inner.Companion.check
class Outer {
class Middle {
class Inner {
companion object {
fun check() {}
}
}
}
}
fun main() {
my.simple.name.Outer.Middle.Inner.check()
check()
}
@@ -0,0 +1,12 @@
package my.simple.name
class Inner {
fun a() {
fun Inner() {}
Inner<caret>.say()
}
companion object {
fun say() {}
}
}
@@ -0,0 +1,12 @@
package my.simple.name
class Inner {
fun a() {
fun Inner() {}
say()
}
companion object {
fun say() {}
}
}
@@ -0,0 +1,12 @@
package my.simple.name
class Inner {
fun a() {
fun say(i: Inner) {}
Inner<caret>.say()
}
companion object {
fun say() {}
}
}
@@ -0,0 +1,12 @@
package my.simple.name
class Inner {
fun a() {
fun say(i: Inner) {}
say()
}
companion object {
fun say() {}
}
}
@@ -0,0 +1,27 @@
// WITH_RUNTIME
// PROBLEM: none
package my.simple.name
open class SuperClass {
companion object {
fun check() {}
}
}
class Foo
class Child : SuperClass() {
class Foo constructor() {
constructor(i: Int) : this()
class SuperClass
fun check() {}
fun foo() {
my.simple.name<caret>.SuperClass.check()
}
companion object {
fun check() {}
}
}
}
@@ -0,0 +1,12 @@
// PROBLEM: none
package my.simple.name
class Child {
fun f() {
Companion<caret>.value
}
companion object {
val value = 1
}
}
@@ -0,0 +1,12 @@
// PROBLEM: none
package my.simple.name
class Child {
fun f() {
Helper<caret>.value
}
companion object Helper {
val value = 1
}
}
@@ -0,0 +1,20 @@
// PROBLEM: none
package my.simple.name
import my.simple.name.Bar.Foo.Companion.CheckClass
class Bar {
class Foo {
companion object {
class CheckClass
}
}
}
class F {
fun foo(a: Bar<caret>.Foo.Companion.CheckClass) {}
companion object {
class CheckClass
}
}
@@ -0,0 +1,12 @@
// PROBLEM: none
package my.simple.name
class F {
class CheckClass
fun foo(a: Companion<caret>.CheckClass) {}
companion object {
class CheckClass
}
}
@@ -0,0 +1,7 @@
// WITH_RUNTIME
// PROBLEM: none
package my.simple.name
fun main() {
val a = kotlin.Int<caret>.Companion.MAX_VALUE
}
@@ -0,0 +1,7 @@
// WITH_RUNTIME
// PROBLEM: none
package my.simple.name
fun main() {
val a = kotlin.Int<caret>.Companion::MAX_VALUE
}
@@ -0,0 +1,9 @@
// PROBLEM: none
package my.simple.name
class Foo {
val f = this
fun check() {
f<caret>.f.f.f.f.f.f.f.f
}
}
@@ -0,0 +1,13 @@
// PROBLEM: none
package my.simple.name
class Inner {
fun a() {
fun say() {}
Inner<caret>.say()
}
companion object {
fun say() {}
}
}
@@ -0,0 +1,13 @@
// PROBLEM: none
package my.simple.name
class Inner {
fun a() {
val MAX = 2
val a = Member<caret>.MAX
}
companion object Member {
val MAX = 1
}
}
@@ -0,0 +1,12 @@
// PROBLEM: none
package my.simple.name
class Inner {
fun a() {
val a = Member<caret>.MAX
}
companion object Member {
val MAX = 1
}
}
@@ -0,0 +1,18 @@
// PROBLEM: none
package my.simple.name
class Foo {
companion object {
fun say(){}
}
}
class Bar {
class Inner {
fun a() {
my.simple<caret>.name.Foo.say()
}
class Foo
}
}
@@ -0,0 +1,10 @@
// PROBLEM: none
package my.simple.name
class Inner {
fun a() {
this<caret>.say()
}
fun say() {}
}
@@ -0,0 +1,9 @@
// WITH_RUNTIME
// PROBLEM: none
package my.simple.name
class Int
fun foo(a: kotlin<caret>.Int) {
}
@@ -0,0 +1,9 @@
// WITH_RUNTIME
// PROBLEM: none
package my.simple.name
typealias Int = Long
fun foo(a: kotlin<caret>.Int) {
}
@@ -0,0 +1,15 @@
// WITH_RUNTIME
package my.simple.name
class Outer {
class Foo constructor() {
constructor(i: Int) : this()
companion object {
fun check() {
val a = Outer<caret>.Foo(1)
val b = Outer.Foo()
}
}
}
}
@@ -0,0 +1,15 @@
// WITH_RUNTIME
package my.simple.name
class Outer {
class Foo constructor() {
constructor(i: Int) : this()
companion object {
fun check() {
val a = Foo(1)
val b = Foo()
}
}
}
}
@@ -0,0 +1,23 @@
// WITH_RUNTIME
package my.simple.name
open class SuperClass {
companion object {
fun check() {}
}
}
class Child : SuperClass() {
class Foo constructor() {
constructor(i: Int) : this()
fun foo() {
my.simple.name<caret>.SuperClass.check()
Child.Foo.check()
}
companion object {
fun check() {}
}
}
}
@@ -0,0 +1,23 @@
// WITH_RUNTIME
package my.simple.name
open class SuperClass {
companion object {
fun check() {}
}
}
class Child : SuperClass() {
class Foo constructor() {
constructor(i: Int) : this()
fun foo() {
SuperClass.check()
Child.Foo.check()
}
companion object {
fun check() {}
}
}
}
@@ -0,0 +1,23 @@
// WITH_RUNTIME
package my.simple.name
open class SuperClass {
companion object {
fun check() {}
}
}
class Child : SuperClass() {
class Foo constructor() {
constructor(i: Int) : this()
fun foo() {
my.simple.name.SuperClass.check()
Child.Foo<caret>.check()
}
companion object {
fun check() {}
}
}
}
@@ -0,0 +1,23 @@
// WITH_RUNTIME
package my.simple.name
open class SuperClass {
companion object {
fun check() {}
}
}
class Child : SuperClass() {
class Foo constructor() {
constructor(i: Int) : this()
fun foo() {
my.simple.name.SuperClass.check()
check()
}
companion object {
fun check() {}
}
}
}
@@ -0,0 +1,9 @@
package my.simple.name
class Foo
class Bar
fun foo(a: my.simple.name<caret>.Foo) {
val b: my.simple.name.Bar
val c: my.simple.name.Foo
}
@@ -0,0 +1,9 @@
package my.simple.name
class Foo
class Bar
fun foo(a: Foo) {
val b: my.simple.name.Bar
val c: Foo
}
@@ -0,0 +1,13 @@
// WITH_RUNTIME
package my.simple.name
class Outer {
fun goo(i: Outer<caret>.Middle.Inner.Int) {
}
class Middle {
class Inner {
class Int
}
}
}
@@ -0,0 +1,13 @@
// WITH_RUNTIME
package my.simple.name
class Outer {
fun goo(i: Middle.Inner.Int) {
}
class Middle {
class Inner {
class Int
}
}
}
@@ -0,0 +1,15 @@
// WITH_RUNTIME
package my.simple.name
typealias Int = Long
class Outer {
class Middle {
class Int
class Inner {
fun goo(i: Outer.Middle<caret>.Int) {
}
}
}
}
@@ -0,0 +1,15 @@
// WITH_RUNTIME
package my.simple.name
typealias Int = Long
class Outer {
class Middle {
class Int
class Inner {
fun goo(i: Int) {
}
}
}
}
@@ -0,0 +1,6 @@
// WITH_RUNTIME
package my.simple.name
fun foo(a: kotlin<caret>.Int) {
}
@@ -0,0 +1,6 @@
// WITH_RUNTIME
package my.simple.name
fun foo(a: Int) {
}