[FIR] Implement PACKAGE_OR_CLASSIFIER_REDECLARATION

Fix REDECLARATION positioning
This commit is contained in:
Ivan Kochurkin
2021-07-23 23:49:43 +03:00
committed by Space
parent 1c678be0d3
commit fd92b851a2
60 changed files with 166 additions and 262 deletions
@@ -1,12 +0,0 @@
// FIR_IDE_IGNORE
// FILE: f1.kt
package test
<!REDECLARATION!>class A<!>
class F1
// FILE: f2.kt
package test
<!REDECLARATION!>class A<!>
class F2
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FIR_IDE_IGNORE
// FILE: f1.kt
package test
@@ -1,4 +0,0 @@
package foo
<!REDECLARATION!>val Int.foo: Int get() = 2<!>
<!REDECLARATION!>val Int.foo: Int get() = 3<!>
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
package foo
val Int.<!REDECLARATION!>foo<!>: Int get() = 2
@@ -1,13 +0,0 @@
public class A() {
<!REDECLARATION!>public val FOO: String = "test"<!>
<!REDECLARATION!>public class FOO() { }<!>
}
public class B() {
companion object {
<!REDECLARATION!>public val FOO: String = "test"<!>
<!REDECLARATION!>public class FOO() { }<!>
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
public class A() {
public val <!REDECLARATION!>FOO<!>: String = "test"
@@ -1,6 +0,0 @@
class A {
companion object B {
<!REDECLARATION!>class G<!>
<!REDECLARATION!>val G = 1<!>
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
class A {
companion object B {
class <!REDECLARATION!>G<!>
@@ -1,9 +0,0 @@
// FILE: a.kt
<!REDECLARATION!>val a : Int = 1<!>
<!CONFLICTING_OVERLOADS!>fun f()<!> {
}
// FILE: b.kt
<!REDECLARATION!>val a : Int = 1<!>
<!CONFLICTING_OVERLOADS!>fun f()<!> {
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: a.kt
val <!REDECLARATION!>a<!> : Int = 1
<!CONFLICTING_OVERLOADS!>fun f()<!> {
@@ -1,14 +1,14 @@
// FILE: a.kt
package redeclarations
<!REDECLARATION!>object A<!> {
object <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>A<!> {
val x : Int = 0
val A = 1
}
<!REDECLARATION!>class A {}<!>
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>A<!> {}
<!REDECLARATION!>val A = 1<!>
val <!REDECLARATION!>A<!> = 1
// FILE: b.kt
package redeclarations.A
@@ -1,9 +0,0 @@
// !DIAGNOSTICS: -DUPLICATE_CLASS_NAMES
// KT-3525
object B {
<!REDECLARATION!>class C<!>
<!REDECLARATION!>class C<!>
<!REDECLARATION!>val a : Int = 1<!>
<!REDECLARATION!>val a : Int = 1<!>
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -DUPLICATE_CLASS_NAMES
// KT-3525
object B {
@@ -8,7 +8,7 @@ private fun validFun() {}
private val validVal = 1
<!CONFLICTING_OVERLOADS!>private fun invalidFun0()<!> {}
<!REDECLARATION!>private val invalidProp0 = 1<!>
private val <!REDECLARATION!>invalidProp0<!> = 1
// NB invalidFun0 and invalidProp0 are conflicting overloads, since the following is an ambiguity:
fun useInvalidFun0() = invalidFun0()
@@ -36,7 +36,7 @@ private val validVal = 1
<!CONFLICTING_OVERLOADS!>private fun invalidFun0()<!> {}
<!REDECLARATION!>private val invalidProp0 = 1<!>
private val <!REDECLARATION!>invalidProp0<!> = 1
<!CONFLICTING_OVERLOADS!>internal fun invalidFun3()<!> {}
<!CONFLICTING_OVERLOADS!>internal fun invalidFun4()<!> {}
@@ -1,13 +1,13 @@
<!REDECLARATION!>val Test1 = null<!>
<!REDECLARATION!>class Test1<!>
val <!REDECLARATION!>Test1<!> = null
class <!REDECLARATION!>Test1<!>
<!REDECLARATION!>val Test2 = null<!>
<!REDECLARATION!>interface Test2<!>
val <!REDECLARATION!>Test2<!> = null
interface <!REDECLARATION!>Test2<!>
<!REDECLARATION!>val Test3 = null<!>
<!REDECLARATION!>object Test3<!>
val <!REDECLARATION!>Test3<!> = null
object <!REDECLARATION!>Test3<!>
<!REDECLARATION!>val Test4 = null<!>
<!REDECLARATION!>class Test4<!>
<!REDECLARATION!>interface Test4<!>
<!REDECLARATION!>object Test4<!>
val <!REDECLARATION!>Test4<!> = null
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>Test4<!>
interface <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>Test4<!>
object <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>Test4<!>
@@ -1,18 +0,0 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
// FILE: file1.kt
<!REDECLARATION!>class SomeClass<!>
<!REDECLARATION!>typealias SomeClass = Any<!>
<!REDECLARATION!>typealias SomeClass = Any<!>
<!REDECLARATION!>typealias SomeClass = Any<!>
class Outer {
<!REDECLARATION!>class Nested<!>
<!REDECLARATION!>typealias Nested = Any<!>
<!REDECLARATION!>typealias Nested = Any<!>
<!REDECLARATION!>typealias Nested = Any<!>
}
// FILE: file2.kt
<!REDECLARATION!>typealias SomeClass = Any<!>
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
// FILE: file1.kt
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>SomeClass<!>
@@ -1,13 +1,13 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
// FILE: file1.kt
<!REDECLARATION!>typealias Test = String<!>
typealias <!REDECLARATION!>Test<!> = String
<!REDECLARATION!>val Test = 42<!>
val <!REDECLARATION!>Test<!> = 42
class Outer {
<!REDECLARATION!>typealias Test = String<!>
typealias <!REDECLARATION!>Test<!> = String
<!REDECLARATION!>val Test = 42<!>
val <!REDECLARATION!>Test<!> = 42
}
typealias Test2 = String
@@ -1,22 +0,0 @@
// !DIAGNOSTICS: -DUPLICATE_CLASS_NAMES
//KT-2438 Prohibit inner classes with the same name
package kt2438
class B {
<!REDECLARATION!>class C<!>
<!REDECLARATION!>class C<!>
}
class A {
<!REDECLARATION!>class B<!>
companion object {
<!REDECLARATION!>class B<!>
<!REDECLARATION!>class B<!>
}
<!REDECLARATION!>class B<!>
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -DUPLICATE_CLASS_NAMES
//KT-2438 Prohibit inner classes with the same name
@@ -1,37 +0,0 @@
<!REDECLARATION!>val a : Int = 1<!>
<!REDECLARATION!>val a : Int = 1<!>
<!REDECLARATION!>val a : Int = 1<!>
<!REDECLARATION!>val b : Int = 1<!>
<!REDECLARATION!>val b : Int = 1<!>
<!REDECLARATION!>val b : Int = 1<!>
<!REDECLARATION!>val b : Int = 1<!>
<!CONFLICTING_OVERLOADS!>fun foo()<!> {} // and here too
<!CONFLICTING_OVERLOADS!>fun foo()<!> {} // and here
<!CONFLICTING_OVERLOADS!>fun foo()<!> {} // and here
<!CONFLICTING_OVERLOADS!>fun foo()<!> {} // and here
<!CONFLICTING_OVERLOADS!>fun bar()<!> {} // and here
<!CONFLICTING_OVERLOADS!>fun bar()<!> {} // and here
<!CONFLICTING_OVERLOADS!>fun bar()<!> {} // and here
class A {
<!REDECLARATION!>val a : Int = 1<!>
<!REDECLARATION!>val a : Int = 1<!>
<!REDECLARATION!>val a : Int = 1<!>
<!REDECLARATION!>val b : Int = 1<!>
<!REDECLARATION!>val b : Int = 1<!>
<!REDECLARATION!>val b : Int = 1<!>
<!REDECLARATION!>val b : Int = 1<!>
<!CONFLICTING_OVERLOADS!>fun foo()<!> {} // and here too
<!CONFLICTING_OVERLOADS!>fun foo()<!> {} // and here
<!CONFLICTING_OVERLOADS!>fun foo()<!> {} // and here
<!CONFLICTING_OVERLOADS!>fun foo()<!> {} // and here
<!CONFLICTING_OVERLOADS!>fun bar()<!> {} // and here
<!CONFLICTING_OVERLOADS!>fun bar()<!> {} // and here
<!CONFLICTING_OVERLOADS!>fun bar()<!> {} // and here
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
val <!REDECLARATION!>a<!> : Int = 1
val <!REDECLARATION!>a<!> : Int = 1
val <!REDECLARATION!>a<!> : Int = 1