[FIR] Add lValueTypeRef to FirVariableAssignment, fix tests with ASSIGNMENT_TYPE_MISMATCH

This commit is contained in:
Ivan Kochurkin
2021-05-13 17:06:04 +03:00
committed by TeamCityServer
parent e57108d4e8
commit c3b8f3e859
28 changed files with 127 additions and 87 deletions
+2 -2
View File
@@ -2,7 +2,7 @@ var x : Int = 1 + x
get() : Int = 1
set(value : <!WRONG_SETTER_PARAMETER_TYPE!>Long<!>) {
field = value.toInt()
field = 1.toLong()
field = <!ASSIGNMENT_TYPE_MISMATCH!>1.toLong()<!>
}
val xx : Int = <!PROPERTY_INITIALIZER_NO_BACKING_FIELD!>1 + x<!>
@@ -19,4 +19,4 @@ class Test() {
set(x) {a = x; field = x}
public val i = 1
}
}
@@ -16,17 +16,17 @@ public class J {
fun test() {
val n = J.staticN
foo(<!ARGUMENT_TYPE_MISMATCH!>n<!>)
J.staticNN = n
J.staticNN = <!ASSIGNMENT_TYPE_MISMATCH!>n<!>
if (n != null) {
foo(n)
J.staticNN = n
}
val x: J? = null
J.staticNN = x
J.staticNN = <!ASSIGNMENT_TYPE_MISMATCH!>x<!>
if (x != null) {
J.staticNN = x
}
}
fun foo(j: J) {}
fun foo(j: J) {}
@@ -34,8 +34,8 @@ fun test(n: J?, nn: J) {
// platform type with no annotation
val platformJ = J.staticJ
J.staticNN = n
J.staticNN = platformN
J.staticNN = <!ASSIGNMENT_TYPE_MISMATCH!>n<!>
J.staticNN = <!ASSIGNMENT_TYPE_MISMATCH!>platformN<!>
J.staticNN = nn
J.staticNN = platformNN
J.staticNN = platformJ
@@ -58,8 +58,8 @@ fun test(n: J?, nn: J) {
J.staticSet(<!ARGUMENT_TYPE_MISMATCH!>platformN<!>, platformN, platformN)
J.staticSet(platformJ, platformJ, platformJ)
J().nn = n
J().nn = platformN
J().nn = <!ASSIGNMENT_TYPE_MISMATCH!>n<!>
J().nn = <!ASSIGNMENT_TYPE_MISMATCH!>platformN<!>
J().nn = nn
J().nn = platformNN
J().nn = platformJ
@@ -87,4 +87,4 @@ fun test(n: J?, nn: J) {
J(<!ARGUMENT_TYPE_MISMATCH!>n<!>, n, n)
J(<!ARGUMENT_TYPE_MISMATCH!>platformN<!>, platformN, platformN)
J(platformJ, platformJ, platformJ)
}
}
@@ -28,7 +28,7 @@ fun main() {
val raw = Test.rawAField
raw.charSequences = arrayOf<String>()
raw.charSequences = arrayOf<Double>()
raw.charSequences = <!ASSIGNMENT_TYPE_MISMATCH!>arrayOf<Double>()<!>
raw.maps = arrayOf<Map<Int, Int>>()
raw.maps = arrayOf<MutableMap<Int, Int>>()
@@ -25,5 +25,5 @@ fun main() {
Test.rawAField.second = rawA.first.second
rawA.listOfDoubles = strList
rawA.listOfDoubles = "" // first should be List
rawA.listOfDoubles = <!ASSIGNMENT_TYPE_MISMATCH!>""<!> // first should be List
}
@@ -3,7 +3,7 @@ class A() {
var x: Int = 0
get() = "s"
set(value: <!WRONG_SETTER_PARAMETER_TYPE!>String<!>) {
field = value
field = <!ASSIGNMENT_TYPE_MISMATCH!>value<!>
}
val y: Int
get(): <!WRONG_GETTER_RETURN_TYPE("Getter return type must be equal to the type of the property, i.e. 'kotlin/Int'")!>String<!> = "s"