[FIR] Rewrite redeclaration checks

#KT-60124 Fixed
#KT-60573 Fixed
This commit is contained in:
Kirill Rakhman
2023-07-20 11:17:02 +02:00
committed by Space Team
parent b56f84b533
commit 951b299268
55 changed files with 1075 additions and 837 deletions
@@ -3,11 +3,11 @@
interface A
interface B
<!CONFLICTING_OVERLOADS!>context(A, B)
fun f(): Unit<!> = TODO()
context(A, B)
fun f(): Unit = TODO()
<!CONFLICTING_OVERLOADS!>context(B, A)
fun f(): Unit<!> = TODO()
context(B, A)
fun f(): Unit = TODO()
fun test(a: A, b: B) {
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>with<!>(a) {
@@ -1,20 +0,0 @@
// !LANGUAGE: +ContextReceivers
interface A
interface B
interface C
interface D
<!CONFLICTING_OVERLOADS!>context(A, B)
fun f(): Unit<!> = TODO()
<!CONFLICTING_OVERLOADS!>context(C, D)
fun f(): Unit<!> = TODO()
fun test(a: A, b: B) {
with(a) {
with(b) {
f()
}
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +ContextReceivers
interface A
@@ -4,7 +4,7 @@ class A<T>(val a: T)
class B(val b: Any)
class C(val c: Any)
<!MUST_BE_INITIALIZED!>context(A<String>, B) var <!REDECLARATION!>p<!>: Int<!>
<!MUST_BE_INITIALIZED!>context(A<String>, B) var p: Int<!>
get() {
this@A.a.length
this@B.b
@@ -18,7 +18,7 @@ class C(val c: Any)
field = value
}
<!MUST_BE_INITIALIZED!>context(A<Int>, A<String>, B) var <!REDECLARATION!>p<!>: Int<!>
<!MUST_BE_INITIALIZED!>context(A<Int>, A<String>, B) var p: Int<!>
get() {
this@A.a.<!UNRESOLVED_REFERENCE!>toDouble<!>()
this@A.a.length
@@ -1,8 +1,8 @@
fun <T1> test1(x: List<T1>) = x
fun <T2> test1(x: List<T2>) = x
<!CONFLICTING_OVERLOADS!>fun <T1> test1(x: List<T1>)<!> = x
<!CONFLICTING_OVERLOADS!>fun <T2> test1(x: List<T2>)<!> = x
fun <T1> List<T1>.test1a() {}
fun <T2> List<T2>.test1a() {}
<!CONFLICTING_OVERLOADS!>fun <T1> List<T1>.test1a()<!> {}
<!CONFLICTING_OVERLOADS!>fun <T2> List<T2>.test1a()<!> {}
fun <T> test2(x: List<T>) = x
fun test2(x: List<String>) = x
@@ -24,11 +24,11 @@ fun <K, V> Map<K, V>.test4a() {}
class Inv<T>
fun <T> test5(x: Inv<T>) = x
fun <T> test5(x: Inv<out T>) = x
<!CONFLICTING_OVERLOADS!>fun <T> test5(x: Inv<T>)<!> = x
<!CONFLICTING_OVERLOADS!>fun <T> test5(x: Inv<out T>)<!> = x
fun <T> test6(x: Array<T>) = x
fun test6(x: Array<String>) = x
fun <T> test7(x: Inv<T>) = x
fun <T> Inv<T>.test7() {}
fun <T> Inv<T>.test7() {}
@@ -1,5 +1,107 @@
// !LANGUAGE: +ContextReceivers
// FIR_IDENTICAL
package foo
val Int.<!REDECLARATION!>foo<!>: Int get() = 2
val Int.<!REDECLARATION!>foo<!>: Int get() = 3
val Int.<!REDECLARATION!>simple<!>: Int get() = 0
val Int.<!REDECLARATION!>simple<!>: Int get() = 0
val Int.differentTypes: Int get() = 0
val String.differentTypes: Int get() = 0
val <T> T.<!REDECLARATION!>sameNamedGenerics<!>: Int get() = 0
val <T> T.<!REDECLARATION!>sameNamedGenerics<!>: Int get() = 0
val <T> T.<!REDECLARATION!>differentlyNamedGenerics<!>: Int get() = 0
val <R> R.<!REDECLARATION!>differentlyNamedGenerics<!>: Int get() = 0
val <T> T.sameNamedGenericsDifferentBounds: Int get() = 0
val <T : Any> T.sameNamedGenericsDifferentBounds: String get() = ""
val <T> T.differentlyNamedGenericsDifferentBounds: Int get() = 0
val <R : Any> R.differentlyNamedGenericsDifferentBounds: String get() = ""
val <T> List<T>.sameNamedGenericsListDifferentBounds: Int get() = 0
val <T : Any> List<T>.sameNamedGenericsListDifferentBounds: String get() = ""
val <T> List<T>.differentlyNamedGenericsListDifferentBounds: Int get() = 0
val <R : Any> List<R>.differentlyNamedGenericsListDifferentBounds: String get() = ""
context(Int) val <!REDECLARATION!>simpleContextReceivers<!>: Int get() = 0
context(Int) val <!REDECLARATION!>simpleContextReceivers<!>: Int get() = 0
context(Int) val differentTypesContextReceivers: Int get() = 0
context(String) val differentTypesContextReceivers: Int get() = 0
context(T) val <T> <!REDECLARATION!>sameNamedGenericsContextReceivers<!>: Int get() = 0
context(T) val <T> <!REDECLARATION!>sameNamedGenericsContextReceivers<!>: Int get() = 0
context(T) val <T> <!REDECLARATION!>differentlyNamedGenericsContextReceivers<!>: Int get() = 0
context(R) val <R> <!REDECLARATION!>differentlyNamedGenericsContextReceivers<!>: Int get() = 0
context(T) val <T> sameNamedGenericsDifferentBoundsContextReceivers: Int get() = 0
context(T) val <T : Any> sameNamedGenericsDifferentBoundsContextReceivers: String get() = ""
context(T) val <T> differentlyNamedGenericsDifferentBoundsContextReceivers: Int get() = 0
context(R) val <R : Any> differentlyNamedGenericsDifferentBoundsContextReceivers: String get() = ""
context(List<T>) val <T> sameNamedGenericsListDifferentBoundsContextReceivers: Int get() = 0
context(List<T>) val <T : Any> sameNamedGenericsListDifferentBoundsContextReceivers: String get() = ""
context(List<T>) val <T> differentlyNamedGenericsListDifferentBoundsContextReceivers: Int get() = 0
context(List<R>) val <R : Any> differentlyNamedGenericsListDifferentBoundsContextReceivers: String get() = ""
val Int.extensionVsContextReceiver: Int get() = 0
context(Int) val extensionVsContextReceiver: String get() = ""
class C {
val Int.<!REDECLARATION!>simple<!>: Int get() = 0
val Int.<!REDECLARATION!>simple<!>: Int get() = 0
val Int.differentTypes: Int get() = 0
val String.differentTypes: Int get() = 0
val <T> T.<!REDECLARATION!>sameNamedGenerics<!>: Int get() = 0
val <T> T.<!REDECLARATION!>sameNamedGenerics<!>: Int get() = 0
val <T> T.<!REDECLARATION!>differentlyNamedGenerics<!>: Int get() = 0
val <R> R.<!REDECLARATION!>differentlyNamedGenerics<!>: Int get() = 0
val <T> T.sameNamedGenericsDifferentBounds: Int get() = 0
val <T : Any> T.sameNamedGenericsDifferentBounds: String get() = ""
val <T> T.differentlyNamedGenericsDifferentBounds: Int get() = 0
val <R : Any> R.differentlyNamedGenericsDifferentBounds: String get() = ""
val <T> List<T>.sameNamedGenericsListDifferentBounds: Int get() = 0
val <T : Any> List<T>.sameNamedGenericsListDifferentBounds: String get() = ""
val <T> List<T>.differentlyNamedGenericsListDifferentBounds: Int get() = 0
val <R : Any> List<R>.differentlyNamedGenericsListDifferentBounds: String get() = ""
context(Int) val <!REDECLARATION!>simpleContextReceivers<!>: Int get() = 0
context(Int) val <!REDECLARATION!>simpleContextReceivers<!>: Int get() = 0
context(Int) val differentTypesContextReceivers: Int get() = 0
context(String) val differentTypesContextReceivers: Int get() = 0
context(T) val <T> <!REDECLARATION!>sameNamedGenericsContextReceivers<!>: Int get() = 0
context(T) val <T> <!REDECLARATION!>sameNamedGenericsContextReceivers<!>: Int get() = 0
context(T) val <T> <!REDECLARATION!>differentlyNamedGenericsContextReceivers<!>: Int get() = 0
context(R) val <R> <!REDECLARATION!>differentlyNamedGenericsContextReceivers<!>: Int get() = 0
context(T) val <T> sameNamedGenericsDifferentBoundsContextReceivers: Int get() = 0
context(T) val <T : Any> sameNamedGenericsDifferentBoundsContextReceivers: String get() = ""
context(T) val <T> differentlyNamedGenericsDifferentBoundsContextReceivers: Int get() = 0
context(R) val <R : Any> differentlyNamedGenericsDifferentBoundsContextReceivers: String get() = ""
context(List<T>) val <T> sameNamedGenericsListDifferentBoundsContextReceivers: Int get() = 0
context(List<T>) val <T : Any> sameNamedGenericsListDifferentBoundsContextReceivers: String get() = ""
context(List<T>) val <T> differentlyNamedGenericsListDifferentBoundsContextReceivers: Int get() = 0
context(List<R>) val <R : Any> differentlyNamedGenericsListDifferentBoundsContextReceivers: String get() = ""
val Int.extensionVsContextReceiver: Int get() = 0
context(Int) val extensionVsContextReceiver: String get() = ""
}
@@ -1,6 +0,0 @@
package
package foo {
public val kotlin.Int.foo: kotlin.Int
public val kotlin.Int.foo: kotlin.Int
}
@@ -1,6 +0,0 @@
// FIR_IDENTICAL
// FILE: a.kt
fun main() {}
// FILE: b.kt
fun main() {}
@@ -1,4 +0,0 @@
package
public fun main(): kotlin.Unit
public fun main(): kotlin.Unit
@@ -0,0 +1,112 @@
// FIR_IDENTICAL
// ### INVALID
// FILE: invalid_noargs.kt
package invalid1
<!CONFLICTING_OVERLOADS!>fun main()<!> {}
<!CONFLICTING_OVERLOADS!>fun main()<!> {}
// FILE: invalid_array.kt
package invalid2
<!CONFLICTING_OVERLOADS!>fun main(args: Array<String>)<!> {}
<!CONFLICTING_OVERLOADS!>fun main(args: Array<String>)<!> {}
// FILE: invalid_vararg.kt
package invalid3
<!CONFLICTING_OVERLOADS!>fun main(vararg args: String)<!> {}
<!CONFLICTING_OVERLOADS!>fun main(vararg args: String)<!> {}
// FILE: invalid_array_typealias.kt
package invalid4
typealias S = String
<!CONFLICTING_OVERLOADS!>fun main(args: Array<String>)<!> {}
<!CONFLICTING_OVERLOADS!>fun main(args: Array<S>)<!> {}
// FILE: invalid_noargs_suspend.kt
package invalid5
<!CONFLICTING_OVERLOADS!>suspend fun main()<!> {}
<!CONFLICTING_OVERLOADS!>suspend fun main()<!> {}
// FILE: invalid_array_suspend.kt
package invalid6
<!CONFLICTING_OVERLOADS!>suspend fun main(args: Array<String>)<!> {}
<!CONFLICTING_OVERLOADS!>suspend fun main(args: Array<String>)<!> {}
// FILE: invalid_vararg_suspend.kt
package invalid7
<!CONFLICTING_OVERLOADS!>suspend fun main(vararg args: String)<!> {}
<!CONFLICTING_OVERLOADS!>suspend fun main(vararg args: String)<!> {}
// FILE: invalid_array_typealias_suspend.kt
package invalid8
typealias S = String
<!CONFLICTING_OVERLOADS!>suspend fun main(args: Array<String>)<!> {}
<!CONFLICTING_OVERLOADS!>suspend fun main(args: Array<S>)<!> {}
// ### VALID
// FILE: valid_noargs.kt
package valid1
fun main() {}
// FILE: valid_noargs2.kt
package valid1
fun main() {}
// FILE: valid_array.kt
package valid2
fun main(args: Array<String>) {}
// FILE: valid_array2.kt
package valid2
fun main(args: Array<String>) {}
// FILE: valid_vararg.kt
package valid3
fun main(vararg args: String) {}
// FILE: valid_vararg2.kt
package valid3
fun main(vararg args: String) {}
// FILE: valid_array_typealias.kt
package valid4
fun main(args: Array<String>) {}
// FILE: valid_array_typealias2.kt
package valid4
typealias S = String
fun main(args: Array<S>) {}
// FILE: valid_noargs_suspend.kt
package valid5
suspend fun main() {}
// FILE: valid_noargs_suspend2.kt
package valid5
suspend fun main() {}
// FILE: valid_array_suspend.kt
package valid6
suspend fun main(args: Array<String>) {}
// FILE: valid_array_suspend2.kt
package valid6
suspend fun main(args: Array<String>) {}
// FILE: valid_vararg_suspend.kt
package valid7
suspend fun main(vararg args: String) {}
// FILE: valid_vararg_suspend2.kt
package valid7
suspend fun main(vararg args: String) {}
// FILE: valid_array_typealias_suspend.kt
package valid8
suspend fun main(args: Array<String>) {}
// FILE: valid_array_typealias_suspend2.kt
package valid8
typealias S = String
suspend fun main(args: Array<S>) {}
@@ -0,0 +1,113 @@
// !LANGUAGE: -ExtendedMainConvention
// ### INVALID
// FILE: invalid_noargs.kt
package invalid1
<!CONFLICTING_OVERLOADS!>fun main()<!> {}
<!CONFLICTING_OVERLOADS!>fun main()<!> {}
// FILE: invalid_array.kt
package invalid2
<!CONFLICTING_OVERLOADS!>fun main(args: Array<String>)<!> {}
<!CONFLICTING_OVERLOADS!>fun main(args: Array<String>)<!> {}
// FILE: invalid_vararg.kt
package invalid3
<!CONFLICTING_OVERLOADS!>fun main(vararg args: String)<!> {}
<!CONFLICTING_OVERLOADS!>fun main(vararg args: String)<!> {}
// FILE: invalid_array_typealias.kt
package invalid4
typealias S = String
<!CONFLICTING_OVERLOADS!>fun main(args: Array<String>)<!> {}
<!CONFLICTING_OVERLOADS!>fun main(args: Array<S>)<!> {}
// FILE: invalid_noargs_suspend.kt
package invalid5
<!CONFLICTING_OVERLOADS!>suspend fun main()<!> {}
<!CONFLICTING_OVERLOADS!>suspend fun main()<!> {}
// FILE: invalid_array_suspend.kt
package invalid6
<!CONFLICTING_OVERLOADS!>suspend fun main(args: Array<String>)<!> {}
<!CONFLICTING_OVERLOADS!>suspend fun main(args: Array<String>)<!> {}
// FILE: invalid_vararg_suspend.kt
package invalid7
<!CONFLICTING_OVERLOADS!>suspend fun main(vararg args: String)<!> {}
<!CONFLICTING_OVERLOADS!>suspend fun main(vararg args: String)<!> {}
// FILE: invalid_array_typealias_suspend.kt
package invalid8
typealias S = String
<!CONFLICTING_OVERLOADS!>suspend fun main(args: Array<String>)<!> {}
<!CONFLICTING_OVERLOADS!>suspend fun main(args: Array<S>)<!> {}
// ### VALID
// FILE: valid_noargs.kt
package valid1
fun main() {}
// FILE: valid_noargs2.kt
package valid1
fun main() {}
// FILE: valid_array.kt
package valid2
fun main(args: Array<String>) {}
// FILE: valid_array2.kt
package valid2
fun main(args: Array<String>) {}
// FILE: valid_vararg.kt
package valid3
fun main(vararg args: String) {}
// FILE: valid_vararg2.kt
package valid3
fun main(vararg args: String) {}
// FILE: valid_array_typealias.kt
package valid4
fun main(args: Array<String>) {}
// FILE: valid_array_typealias2.kt
package valid4
typealias S = String
fun main(args: Array<S>) {}
// FILE: valid_noargs_suspend.kt
package valid5
suspend fun main() {}
// FILE: valid_noargs_suspend2.kt
package valid5
suspend fun main() {}
// FILE: valid_array_suspend.kt
package valid6
suspend fun main(args: Array<String>) {}
// FILE: valid_array_suspend2.kt
package valid6
suspend fun main(args: Array<String>) {}
// FILE: valid_vararg_suspend.kt
package valid7
suspend fun main(vararg args: String) {}
// FILE: valid_vararg_suspend2.kt
package valid7
suspend fun main(vararg args: String) {}
// FILE: valid_array_typealias_suspend.kt
package valid8
suspend fun main(args: Array<String>) {}
// FILE: valid_array_typealias_suspend2.kt
package valid8
typealias S = String
suspend fun main(args: Array<S>) {}
@@ -0,0 +1,113 @@
// !LANGUAGE: -ExtendedMainConvention
// ### INVALID
// FILE: invalid_noargs.kt
package invalid1
<!CONFLICTING_OVERLOADS!>fun main()<!> {}
<!CONFLICTING_OVERLOADS!>fun main()<!> {}
// FILE: invalid_array.kt
package invalid2
<!CONFLICTING_OVERLOADS!>fun main(args: Array<String>)<!> {}
<!CONFLICTING_OVERLOADS!>fun main(args: Array<String>)<!> {}
// FILE: invalid_vararg.kt
package invalid3
<!CONFLICTING_OVERLOADS!>fun main(vararg args: String)<!> {}
<!CONFLICTING_OVERLOADS!>fun main(vararg args: String)<!> {}
// FILE: invalid_array_typealias.kt
package invalid4
typealias S = String
<!CONFLICTING_OVERLOADS!>fun main(args: Array<String>)<!> {}
<!CONFLICTING_OVERLOADS!>fun main(args: Array<S>)<!> {}
// FILE: invalid_noargs_suspend.kt
package invalid5
<!CONFLICTING_OVERLOADS!>suspend fun main()<!> {}
<!CONFLICTING_OVERLOADS!>suspend fun main()<!> {}
// FILE: invalid_array_suspend.kt
package invalid6
<!CONFLICTING_OVERLOADS!>suspend fun main(args: Array<String>)<!> {}
<!CONFLICTING_OVERLOADS!>suspend fun main(args: Array<String>)<!> {}
// FILE: invalid_vararg_suspend.kt
package invalid7
<!CONFLICTING_OVERLOADS!>suspend fun main(vararg args: String)<!> {}
<!CONFLICTING_OVERLOADS!>suspend fun main(vararg args: String)<!> {}
// FILE: invalid_array_typealias_suspend.kt
package invalid8
typealias S = String
<!CONFLICTING_OVERLOADS!>suspend fun main(args: Array<String>)<!> {}
<!CONFLICTING_OVERLOADS!>suspend fun main(args: Array<S>)<!> {}
// ### VALID
// FILE: valid_noargs.kt
package valid1
<!CONFLICTING_OVERLOADS!>fun main()<!> {}
// FILE: valid_noargs2.kt
package valid1
<!CONFLICTING_OVERLOADS!>fun main()<!> {}
// FILE: valid_array.kt
package valid2
fun main(args: Array<String>) {}
// FILE: valid_array2.kt
package valid2
fun main(args: Array<String>) {}
// FILE: valid_vararg.kt
package valid3
fun main(vararg args: String) {}
// FILE: valid_vararg2.kt
package valid3
fun main(vararg args: String) {}
// FILE: valid_array_typealias.kt
package valid4
fun main(args: Array<String>) {}
// FILE: valid_array_typealias2.kt
package valid4
typealias S = String
fun main(args: Array<S>) {}
// FILE: valid_noargs_suspend.kt
package valid5
<!CONFLICTING_OVERLOADS!>suspend fun main()<!> {}
// FILE: valid_noargs_suspend2.kt
package valid5
<!CONFLICTING_OVERLOADS!>suspend fun main()<!> {}
// FILE: valid_array_suspend.kt
package valid6
<!CONFLICTING_OVERLOADS!>suspend fun main(args: Array<String>)<!> {}
// FILE: valid_array_suspend2.kt
package valid6
<!CONFLICTING_OVERLOADS!>suspend fun main(args: Array<String>)<!> {}
// FILE: valid_vararg_suspend.kt
package valid7
<!CONFLICTING_OVERLOADS!>suspend fun main(vararg args: String)<!> {}
// FILE: valid_vararg_suspend2.kt
package valid7
<!CONFLICTING_OVERLOADS!>suspend fun main(vararg args: String)<!> {}
// FILE: valid_array_typealias_suspend.kt
package valid8
<!CONFLICTING_OVERLOADS!>suspend fun main(args: Array<String>)<!> {}
// FILE: valid_array_typealias_suspend2.kt
package valid8
typealias S = String
<!CONFLICTING_OVERLOADS!>suspend fun main(args: Array<S>)<!> {}
@@ -1,6 +0,0 @@
// FIR_IDENTICAL
// FILE: a.kt
fun main() {}
// FILE: b.kt
fun main() {}
@@ -1,4 +0,0 @@
package
public fun main(): kotlin.Unit
public fun main(): kotlin.Unit
@@ -1,8 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// FILE: a.kt
fun main() {}
suspend fun main(args: Array<String>) {}
// FILE: b.kt
fun main() {}
@@ -1,8 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// FILE: a.kt
<!CONFLICTING_OVERLOADS!>fun main()<!> {}
suspend fun main(args: Array<String>) {}
// FILE: b.kt
<!CONFLICTING_OVERLOADS!>fun main()<!> {}
@@ -1,5 +0,0 @@
package
public fun main(): kotlin.Unit
public fun main(): kotlin.Unit
public suspend fun main(/*0*/ args: kotlin.Array<kotlin.String>): kotlin.Unit
@@ -1,7 +0,0 @@
// !LANGUAGE: -ExtendedMainConvention
// FILE: a.kt
fun main() {}
// FILE: b.kt
fun main() {}
@@ -1,7 +0,0 @@
// !LANGUAGE: -ExtendedMainConvention
// FILE: a.kt
<!CONFLICTING_OVERLOADS!>fun main()<!> {}
// FILE: b.kt
<!CONFLICTING_OVERLOADS!>fun main()<!> {}
@@ -1,4 +0,0 @@
package
public fun main(): kotlin.Unit
public fun main(): kotlin.Unit
@@ -1,6 +0,0 @@
// FIR_IDENTICAL
// FILE: a.kt
suspend fun main() {}
// FILE: b.kt
suspend fun main() {}
@@ -1,4 +0,0 @@
package
public suspend fun main(): kotlin.Unit
public suspend fun main(): kotlin.Unit
@@ -1,7 +0,0 @@
// !LANGUAGE: -ExtendedMainConvention
// FILE: a.kt
suspend fun main(args: Array<String>) {}
// FILE: b.kt
suspend fun main(args: Array<String>) {}
@@ -1,7 +0,0 @@
// !LANGUAGE: -ExtendedMainConvention
// FILE: a.kt
<!CONFLICTING_OVERLOADS!>suspend fun main(args: Array<String>)<!> {}
// FILE: b.kt
<!CONFLICTING_OVERLOADS!>suspend fun main(args: Array<String>)<!> {}
@@ -1,4 +0,0 @@
package
public suspend fun main(/*0*/ args: kotlin.Array<kotlin.String>): kotlin.Unit
public suspend fun main(/*0*/ args: kotlin.Array<kotlin.String>): kotlin.Unit
@@ -1,3 +1,5 @@
// FILE: a.kt
val <!REDECLARATION!>Test1<!> = null
class <!REDECLARATION!>Test1<!>
@@ -10,4 +12,12 @@ object <!REDECLARATION!>Test3<!>
val <!REDECLARATION!>Test4<!> = null
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>Test4<!>
interface <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>Test4<!>
object <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>Test4<!>
object <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>Test4<!>
val <!REDECLARATION!>Test5<!> = null
class <!REDECLARATION!>Test6<!>
// FILE: b.kt
class <!REDECLARATION!>Test5<!>
val <!REDECLARATION!>Test6<!> = null
@@ -1,3 +1,5 @@
// FILE: a.kt
val <!REDECLARATION!>Test1<!> = null
class <!REDECLARATION!>Test1<!>
@@ -10,4 +12,12 @@ object <!REDECLARATION!>Test3<!>
val <!PACKAGE_OR_CLASSIFIER_REDECLARATION, REDECLARATION!>Test4<!> = null
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION, REDECLARATION!>Test4<!>
interface <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>Test4<!>
object <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>Test4<!>
object <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>Test4<!>
val <!REDECLARATION!>Test5<!> = null
class <!REDECLARATION!>Test6<!>
// FILE: b.kt
class <!REDECLARATION!>Test5<!>
val <!REDECLARATION!>Test6<!> = null
@@ -4,6 +4,8 @@ public val Test1: kotlin.Nothing? = null
public val Test2: kotlin.Nothing? = null
public val Test3: kotlin.Nothing? = null
public val Test4: kotlin.Nothing? = null
public val Test5: kotlin.Nothing? = null
public val Test6: kotlin.Nothing? = null
public final class Test1 {
public constructor Test1()
@@ -44,3 +46,18 @@ public object Test4 {
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Test5 {
public constructor Test5()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Test6 {
public constructor Test6()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,16 +0,0 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
// FILE: file1.kt
typealias <!REDECLARATION!>Test<!> = String
val <!REDECLARATION!>Test<!> = 42
class Outer {
typealias <!REDECLARATION!>Test<!> = String
val <!REDECLARATION!>Test<!> = 42
}
typealias Test2 = String
// FILE: file2.kt
val Test2 = 42
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
// FILE: file1.kt
typealias <!REDECLARATION!>Test<!> = String
@@ -1,9 +0,0 @@
object X1
object X2
class A<T>
fun <T1> A<T1>.foo() = X1
fun <T2> A<out T2>.foo() = X2
fun <T> A<out T>.test() = <!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>() // TODO fix constraint system
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
object X1
object X2
@@ -1,12 +1,12 @@
//!DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
<!CONFLICTING_OVERLOADS!>@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@kotlin.jvm.JvmName("containsAny")
@kotlin.internal.LowPriorityInOverloadResolution
public fun <T> Iterable<T>.contains1(element: T): Int<!> = null!!
public fun <T> Iterable<T>.contains1(element: T): Int = null!!
<!CONFLICTING_OVERLOADS!>@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
public fun <T> Iterable<T>.contains1(element: @kotlin.internal.NoInfer T): Boolean<!> = null!!
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
public fun <T> Iterable<T>.contains1(element: @kotlin.internal.NoInfer T): Boolean = null!!
fun test() {
@@ -1,12 +1,12 @@
//!DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
<!CONFLICTING_OVERLOADS!>@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@kotlin.jvm.JvmName("containsAny")
@kotlin.internal.LowPriorityInOverloadResolution
public fun <T> Iterable<T>.contains1(element: T): Int<!> = null!!
public fun <T> Iterable<T>.contains1(element: T): Int = null!!
<!CONFLICTING_OVERLOADS!>@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
public fun <@kotlin.internal.OnlyInputTypes T> Iterable<T>.contains1(element: T): Boolean<!> = null!!
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
public fun <@kotlin.internal.OnlyInputTypes T> Iterable<T>.contains1(element: T): Boolean = null!!
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@JvmName("getAny")