[K2] Disappeared UNSUPPORTED_FEATURE (2)

Added a check for the enabled context receivers feature flag for declaration.

^KT-59913
This commit is contained in:
Anastasia.Nekrasova
2023-11-07 14:55:40 +02:00
committed by Space Team
parent 685c8e4fe7
commit c04767f1f4
8 changed files with 109 additions and 10 deletions
@@ -3,11 +3,11 @@ fun List<Int>.f() {
this@List.size
}
context(String)
<!UNSUPPORTED_FEATURE!>context(String)<!>
fun Int.f() {
this@String.length
this@Int.toDouble()
}
context(String)
<!UNSUPPORTED_FEATURE!>context(String)<!>
val p: String get() = this@String
@@ -1,6 +1,6 @@
// !DIAGNOSTICS: -UNCHECKED_CAST
context(Any)
<!UNSUPPORTED_FEATURE!>context(Any)<!>
fun f(g: <!UNSUPPORTED_FEATURE!>context(Any) () -> Unit<!>, value: Any): <!UNSUPPORTED_FEATURE!>context(A) () -> Unit<!> {
return value as <!UNSUPPORTED_FEATURE!>(context(A) () -> Unit)<!>
}
@@ -9,19 +9,25 @@ fun f(g: () -> Unit, value: Any) : () -> Unit {
return g
}
context(Any)
<!UNSUPPORTED_FEATURE!>context(Any)<!>
fun sameAsFWithoutNonContextualCounterpart(g: () -> Unit, value: Any) : () -> Unit {
return g
}
context(Any) val p get() = 42
<!UNSUPPORTED_FEATURE!>context(Any)<!> val p get() = 42
context(String, Int)
<!UNSUPPORTED_FEATURE!>context(String, Int)<!>
class D constructor(){}
<!UNSUPPORTED_FEATURE!>context(String, Int)<!>
class C(){}
<!UNSUPPORTED_FEATURE!>context(String, Int)<!>
class A {
context(Any)
<!UNSUPPORTED_FEATURE!>context(Any)<!>
val p: Any get() = 42
context(String, Int)
<!UNSUPPORTED_FEATURE!>context(String, Int)<!>
fun m() {}
}
@@ -16,6 +16,12 @@ fun sameAsFWithoutNonContextualCounterpart(g: () -> Unit, value: Any) : () -> Un
<!UNSUPPORTED_FEATURE!>context(Any)<!> val p get() = 42
<!UNSUPPORTED_FEATURE!>context(String, Int)<!>
class D constructor(){}
<!UNSUPPORTED_FEATURE!>context(String, Int)<!>
class C(){}
<!UNSUPPORTED_FEATURE!>context(String, Int)<!>
class A {
<!UNSUPPORTED_FEATURE!>context(Any)<!>
@@ -14,3 +14,18 @@ context(kotlin.String, kotlin.Int) public final class A {
context(kotlin.String, kotlin.Int) public final fun m(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
context(kotlin.String, kotlin.Int) public final class C {
public constructor C()
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
}
context(kotlin.String, kotlin.Int) public final class D {
public constructor D()
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
}