[FIR] Fix more tests because of modifier usage in resolution

This commit is contained in:
Andrey Zinovyev
2021-05-19 11:59:53 +03:00
committed by TeamCityServer
parent 07a8ae7e71
commit 419aa65381
15 changed files with 21 additions and 24 deletions
@@ -5,7 +5,7 @@ FILE: implicitTypeOrder.kt
}
public final fun bar(): R|A| {
^bar R|/foo|.R|/A.invoke|()
^bar R|/foo|.<Inapplicable(INAPPLICABLE_MODIFIER): /A.invoke>#()
}
public final fun invoke(): R|A| {
@@ -1,6 +1,6 @@
class A {
fun bar() = foo() // should resolve to invoke
fun bar() = <!OPERATOR_MODIFIER_REQUIRED!>foo<!>() // should resolve to invoke
fun invoke() = this
}
@@ -24,5 +24,5 @@ FILE: qualifierWithCompanion.kt
local final fun R|my/A|.invoke(): R|kotlin/Unit| {
}
Q|my|.R|my/xx|.R|<local>/invoke|()
Q|my|.R|my/xx|.<Inapplicable(INAPPLICABLE_MODIFIER): <local>/invoke>#()
}
@@ -15,5 +15,5 @@ fun test() {
fun A.invoke() {}
my.xx()
my.<!OPERATOR_MODIFIER_REQUIRED!>xx<!>()
}
@@ -99,7 +99,6 @@ public class A extends AImpl implements List<String> {
fun main() {
val x = X()
//todo get only one candidate - AImpl.get, no kotlin.collection.List for some reason
<!OPERATOR_MODIFIER_REQUIRED!>x[0]<!>
x.size
x.remove("")
@@ -8,8 +8,6 @@ class A {
fun main() {
val a = A()
<!OPERATOR_MODIFIER_REQUIRED!>a[1]<!>++
//fir prefers plusAssign call if neither get+set nor plusAssign resolverd
//hence UNRESOLVED_REFERENCE here
a[1] <!UNRESOLVED_REFERENCE!>+=<!> 3
<!OPERATOR_MODIFIER_REQUIRED!>a[1]<!> = a[1] + 3
}
@@ -13,5 +13,5 @@ fun case1() {
val a3 = A(-1)
val a4 = A(-3)
val x = (a3 > a4)
val x = (a3 <!OPERATOR_MODIFIER_REQUIRED!>><!> a4)
}
@@ -16,8 +16,8 @@ interface I
class B : I
fun case1(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case1.A.invoke; typeCall: variable&invoke")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!><!OPERATOR_MODIFIER_REQUIRED!>A<!>()<!>
<!DEBUG_INFO_CALL("fqName: fqName is unknown; typeCall: unresolved")!><!OPERATOR_MODIFIER_REQUIRED!>A<!>()<!>
}
// FILE: Lib.kt
@@ -71,8 +71,8 @@ class A : I
class B : I
fun case3(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case3.A.invoke; typeCall: variable&invoke")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case3.A")!>A()<!>
<!DEBUG_INFO_CALL("fqName: tests.case3.A.A; typeCall: function")!>A()<!>
A.invoke()
A.<!DEBUG_INFO_CALL("fqName: lib.case3.A.invoke; typeCall: function")!>invoke()<!>
@@ -71,8 +71,8 @@ class A : I
class B : I
fun case3(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case3.B.invoke; typeCall: variable&invoke")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case3.A")!>A()<!>
<!DEBUG_INFO_CALL("fqName: tests.case3.A.A; typeCall: function")!>A()<!>
A.invoke()
A.<!DEBUG_INFO_CALL("fqName: lib.case3.B.invoke; typeCall: function")!>invoke()<!>
@@ -91,14 +91,14 @@ class A : I
class B : I
fun case3(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case3.a.C.invoke; typeCall: variable&invoke")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case3.A")!>A()<!>
<!DEBUG_INFO_CALL("fqName: tests.case3.A.A; typeCall: function")!>A()<!>
A.invoke()
A.<!DEBUG_INFO_CALL("fqName: lib.case3.a.C.invoke; typeCall: function")!>invoke()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>B()<!>
<!DEBUG_INFO_CALL("fqName: lib.case3.b.C.invoke; typeCall: variable&invoke")!>B()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case3.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case3.B.B; typeCall: function")!>B()<!>
B.invoke()
B.<!DEBUG_INFO_CALL("fqName: lib.case3.b.C.invoke; typeCall: function")!>invoke()<!>
@@ -2,7 +2,7 @@ val x: Int <caret>by Foo()
class Foo
fun Foo.getValue(_this: Any?, p: Any?): Int = 1
operator fun Foo.getValue(_this: Any?, p: Any?): Int = 1
// REF: (for Foo in <root>).getValue(Any?, Any?)
@@ -1,7 +1,7 @@
val x: Int <caret>by Foo()
class Foo {
fun getValue(_this: Any?, p: Any?): Int = 1
operator fun getValue(_this: Any?, p: Any?): Int = 1
}
// REF: (in Foo).getValue(Any?, Any?)
@@ -1,15 +1,15 @@
var x : Int <caret>by Baz()
interface Foo {
fun getValue(p1: Any?, p2: Any?): Int = 1
operator fun getValue(p1: Any?, p2: Any?): Int = 1
}
interface Bar {
fun getValue(p1: Any?, p2: Any?): Int
operator fun getValue(p1: Any?, p2: Any?): Int
}
interface Zoo {
fun setValue(p1: Any?, p2: Any?, p3: Any?)
operator fun setValue(p1: Any?, p2: Any?, p3: Any?)
}
class Baz: Foo, Bar, Zoo
@@ -1,7 +1,7 @@
var x : Int <caret>by Baz()
interface Foo {
fun getValue(p1: Any?, p2: Any?): Int = 1
operator fun getValue(p1: Any?, p2: Any?): Int = 1
}
class Baz: Foo