FIR: Choose a resolved candidate for augmented assignment when both
assign and operator candidates are unsuccessful.
This commit is contained in:
committed by
teamcityserver
parent
32bb64a225
commit
d1531f9cdd
@@ -8,7 +8,7 @@ fun f(): Unit {
|
||||
x <!UNSAFE_OPERATOR_CALL!>+<!> 1
|
||||
x <!UNSAFE_INFIX_CALL!>plus<!> 1
|
||||
x <!UNSAFE_OPERATOR_CALL!><<!> 1
|
||||
x <!UNRESOLVED_REFERENCE!>+=<!> 1
|
||||
x <!UNSAFE_OPERATOR_CALL!>+=<!> 1
|
||||
|
||||
x == 1
|
||||
x != 1
|
||||
|
||||
-17
@@ -1,17 +0,0 @@
|
||||
class A {
|
||||
operator fun plusAssign(s: String) {}
|
||||
}
|
||||
|
||||
fun test() {
|
||||
var a: A? = A()
|
||||
a <!UNSAFE_OPERATOR_CALL!>+=<!> ""
|
||||
}
|
||||
|
||||
class B {
|
||||
operator fun plus(other: B) = this
|
||||
}
|
||||
|
||||
fun test2() {
|
||||
var b: B? = B()
|
||||
b <!UNRESOLVED_REFERENCE!>+=<!> B()
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
class A {
|
||||
operator fun plusAssign(s: String) {}
|
||||
}
|
||||
|
||||
Vendored
+8
-8
@@ -1,14 +1,14 @@
|
||||
fun intBinEq() {
|
||||
var x = 0
|
||||
x <!UNRESOLVED_REFERENCE!>+=<!> 'a'
|
||||
x <!NONE_APPLICABLE!>+=<!> 'a'
|
||||
x += 1.toByte()
|
||||
x += 1.toShort()
|
||||
<!ASSIGNMENT_TYPE_MISMATCH!>x += 1L<!>
|
||||
<!ASSIGNMENT_TYPE_MISMATCH!>x += 1f<!>
|
||||
<!ASSIGNMENT_TYPE_MISMATCH!>x += 1.0<!>
|
||||
x <!UNRESOLVED_REFERENCE!>*=<!> 'a'
|
||||
<!ASSIGNMENT_TYPE_MISMATCH!>x *= 1.toByte()<!>
|
||||
<!ASSIGNMENT_TYPE_MISMATCH!>x *= 1.toShort()<!>
|
||||
x <!NONE_APPLICABLE!>*=<!> 'a'
|
||||
x *= 1.toByte()
|
||||
x *= 1.toShort()
|
||||
<!ASSIGNMENT_TYPE_MISMATCH!>x *= 1L<!>
|
||||
<!ASSIGNMENT_TYPE_MISMATCH!>x *= 1f<!>
|
||||
<!ASSIGNMENT_TYPE_MISMATCH!>x *= 1.0<!>
|
||||
@@ -16,16 +16,16 @@ fun intBinEq() {
|
||||
|
||||
fun shortBinEq() {
|
||||
var x = 0.toShort()
|
||||
x <!UNRESOLVED_REFERENCE!>+=<!> 'a'
|
||||
x <!NONE_APPLICABLE!>+=<!> 'a'
|
||||
x += 1.toByte()
|
||||
x += 1.toShort()
|
||||
<!ASSIGNMENT_TYPE_MISMATCH!>x += 1L<!>
|
||||
<!ASSIGNMENT_TYPE_MISMATCH!>x += 1f<!>
|
||||
<!ASSIGNMENT_TYPE_MISMATCH!>x += 1.0<!>
|
||||
|
||||
x <!UNRESOLVED_REFERENCE!>*=<!> 'a'
|
||||
<!ASSIGNMENT_TYPE_MISMATCH!>x *= 1.toByte()<!>
|
||||
<!ASSIGNMENT_TYPE_MISMATCH!>x *= 1.toShort()<!>
|
||||
x <!NONE_APPLICABLE!>*=<!> 'a'
|
||||
x *= 1.toByte()
|
||||
x *= 1.toShort()
|
||||
<!ASSIGNMENT_TYPE_MISMATCH!>x *= 1L<!>
|
||||
<!ASSIGNMENT_TYPE_MISMATCH!>x *= 1f<!>
|
||||
<!ASSIGNMENT_TYPE_MISMATCH!>x *= 1.0<!>
|
||||
|
||||
@@ -7,7 +7,7 @@ fun foo(): String {
|
||||
var t: String? = "y"
|
||||
if (t == null) t = "x"
|
||||
var x: Int? = null
|
||||
if (x == null) x <!UNRESOLVED_REFERENCE!>+=<!> null
|
||||
if (x == null) x <!UNSAFE_OPERATOR_CALL!>+=<!> null
|
||||
return t + s
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user