Move Member out of Companion: Improve conflict checking

Also do not show conflict dialog under write action
This commit is contained in:
Alexey Sedunov
2017-04-11 14:55:51 +03:00
parent 7a25af0f2f
commit fc33d89e28
6 changed files with 103 additions and 20 deletions
@@ -0,0 +1,46 @@
// WITH_RUNTIME
// SHOULD_FAIL_WITH: 'FOO' in property bar2 will require class instance, 'FOO' in property bar4 will require class instance, 'FOO' in property bar6 will require class instance, 'FOO' in variable bar7 will require class instance, 'FOO' in variable bar8 will require class instance
package test
open class A {
companion object {
val <caret>FOO = 1
}
}
class B : A() {
val bar1 = FOO
class X {
val bar2 = FOO
}
class W : A() {
val bar3 = FOO
}
object Y {
val bar4 = FOO
}
inner class Z {
val bar5 = FOO
}
companion object {
val bar6 = FOO
}
}
class C {
inner class D : A() {
val bar9 = FOO
}
}
fun foo() {
val bar7 = A.FOO
with(A) {
val bar8 = FOO
}
}
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// SHOULD_FAIL_WITH: Class instance required: foo, Class instance required: foo, Class instance required: foo, Class instance required: foo
// SHOULD_FAIL_WITH: 'foo' in class B will require class instance, 'foo' in function test() will require class instance, 'foo' in function test() will require class instance, 'foo' in lambda &lt;anonymous&gt;() on A.Companion will require class instance
class A {
companion object {
class B {
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// SHOULD_FAIL_WITH: Class instance required: foo, Class instance required: foo, Class instance required: foo, Class instance required: foo
// SHOULD_FAIL_WITH: 'foo' in class B will require class instance, 'foo' in function test() will require class instance, 'foo' in function test() will require class instance, 'foo' in lambda &lt;anonymous&gt;() on A.Companion will require class instance
class A {
companion object {
class B {