[test infra] Add a directive for type checking utils that use @Exact

This commit is contained in:
Stanislav Ruban
2023-07-13 10:35:05 +03:00
committed by Space Team
parent 0323b0fb19
commit 5c644bcac8
10 changed files with 71 additions and 0 deletions
@@ -0,0 +1,4 @@
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
fun <T> checkExactType(expr: @kotlin.internal.Exact T) {}
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
fun <T> checkTypeEquality(reference: @kotlin.internal.Exact T, expr: @kotlin.internal.Exact T) {}
@@ -0,0 +1,14 @@
// CHECK_TYPE_WITH_EXACT
open class A
open class B: A()
class C: B()
fun test(expr: B) {
checkExactType<A>(<!ARGUMENT_TYPE_MISMATCH!>expr<!>)
checkExactType<B>(expr)
checkExactType<C>(<!ARGUMENT_TYPE_MISMATCH!>expr<!>)
checkTypeEquality(A(), <!ARGUMENT_TYPE_MISMATCH!>expr<!>)
checkTypeEquality(B(), expr)
checkTypeEquality(C(), <!ARGUMENT_TYPE_MISMATCH!>expr<!>)
}
@@ -0,0 +1,14 @@
// CHECK_TYPE_WITH_EXACT
open class A
open class B: A()
class C: B()
fun test(expr: B) {
checkExactType<A>(<!TYPE_MISMATCH!>expr<!>)
checkExactType<B>(expr)
checkExactType<C>(<!TYPE_MISMATCH!>expr<!>)
checkTypeEquality(A(), <!TYPE_MISMATCH!>expr<!>)
checkTypeEquality(B(), expr)
checkTypeEquality(C(), <!TYPE_MISMATCH!>expr<!>)
}