KT-62138 add testcases

This commit is contained in:
Aleksandra.Arsenteva
2023-11-17 12:41:23 +03:00
committed by Space Team
parent 079343c093
commit af63763da2
9 changed files with 103 additions and 1 deletions
@@ -0,0 +1,25 @@
// FIR_IDENTICAL
class Y
class Z
class HashMap<K, V>(
private val defaultValue: V
) {
operator fun get(key: K): V = defaultValue
operator fun set(key: K, value: V) {}
}
private operator fun Any.plusAssign(p: Any) { }
private operator fun Any.plus(p: Any): Any = Any()
class Base {
private val x = HashMap<Y, Z>(Z())
fun foo(): Z {
val y = Y()
val z = Z()
x[y] += z
return x[y]
}
}
@@ -0,0 +1,29 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class C {
operator fun get(i: Int): C = this
}
operator fun C.plus(a: Any): C = this
operator fun C.plusAssign(a: Any) {}
class C1 {
operator fun get(i: Int): C = C()
operator fun set(i: Int, v: C) {}
}
class C2 {
operator fun set(i: Int, v: C2) {}
operator fun get(i: Int): C2 = this
}
operator fun C2.plus(a: Any):C2 = this
fun test() {
val c = C()
c[0] += ""
var c1 = C1()
c1[0] <!ASSIGN_OPERATOR_AMBIGUITY!>+=<!> ""
var c2 = C2()
c2[0] += ""
}
@@ -1,4 +1,3 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER
class C {
@@ -13,9 +12,18 @@ class C1 {
operator fun set(i: Int, v: C) {}
}
class C2 {
operator fun set(i: Int, v: C2) {}
operator fun get(i: Int): C2 = this
}
operator fun C2.plus(a: Any):C2 = this
fun test() {
val c = C()
c[0] += ""
var c1 = C1()
c1[0] <!ASSIGN_OPERATOR_AMBIGUITY!>+=<!> ""
var c2 = C2()
c2<!NO_SET_METHOD!>[0]<!> += ""
}
@@ -2,6 +2,7 @@ package
public fun test(): kotlin.Unit
public operator fun C.plus(/*0*/ a: kotlin.Any): C
public operator fun C2.plus(/*0*/ a: kotlin.Any): C2
public operator fun C.plusAssign(/*0*/ a: kotlin.Any): kotlin.Unit
public final class C {
@@ -20,3 +21,12 @@ public final class C1 {
public final operator fun set(/*0*/ i: kotlin.Int, /*1*/ v: C): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class C2 {
public constructor C2()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun get(/*0*/ i: kotlin.Int): C2
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun set(/*0*/ i: kotlin.Int, /*1*/ v: C2): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}