[FIR] Report PROPERTY_AS_OPERATOR for all operator conventions

^KT-62347 Fixed
^KT-59715 Fixed
This commit is contained in:
Dmitriy Novozhilov
2023-12-11 13:21:32 +02:00
committed by Space Team
parent 92c75fb7ab
commit 93563d7c80
18 changed files with 24 additions and 110 deletions
@@ -12,11 +12,11 @@ val <X3> C<X3>.getValue: D<X3> get() = TODO()
operator fun <X4> D<X4>.invoke(x: Any?, y: Any?): X4 = TODO()
fun foo(a: A<String>, c: C<String>) {
val x1 by a
val x1 by <!PROPERTY_AS_OPERATOR!>a<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>x1<!>
x1.length
val y1 by c
val y1 by <!PROPERTY_AS_OPERATOR!>c<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>y1<!>
y1.length
}
}
@@ -67,7 +67,7 @@ fun useSet() { <!PROPERTY_AS_OPERATOR!>e[1]<!> = 3 }
val E.contains: I get() = I()
val useContains = 1 <!PROPERTY_AS_OPERATOR!>in<!> e
val useNotContains = 1 <!PROPERTY_AS_OPERATOR!>!in<!> e
val useNotContains = 1 <!PROPERTY_AS_OPERATOR, PROPERTY_AS_OPERATOR!>!in<!> e
val E.invoke: I get() = I()
val useInvoke = <!NONE_APPLICABLE!>e<!>()
@@ -1,23 +0,0 @@
// ISSUE: KT-59715
class FunctionComponent {
val component1: () -> String = { "hello" }
}
class I {
operator fun invoke(): String = "hello"
}
class InvokeComponent {
val component1: I = I()
}
fun test_1(c: FunctionComponent) {
val (x) = FunctionComponent()
val (y) = c
}
fun test_2(c: InvokeComponent) {
val (x) = FunctionComponent()
val (y) = c
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// ISSUE: KT-59715
class FunctionComponent {