Files
kotlin-fork/compiler/testData/diagnostics/testsWithStdLib/purelyImplementedCollection/sets.fir.kt
T
Denis.Zharkov f70ae2df3a FIR: Refine inference constraints when type variable in flexible position
That issue might be fixed via changing
TypeVariableMarker.shouldBeFlexible at ConeConstraintSystemUtilContext
but this and some other tricks have been added because of incorrect
handling of constraints where type variable has a flexible bound

^KT-51168 Fixed
2022-05-19 16:53:59 +00:00

49 lines
1.2 KiB
Kotlin
Vendored

// !DIAGNOSTICS: -UNUSED_VARIABLE
// FULL_JDK
import java.util.*
fun bar(): String? = null
fun fooHashSet() {
var x = HashSet<String>()
x.add(<!NULL_FOR_NONNULL_TYPE!>null<!>)
x.add(<!ARGUMENT_TYPE_MISMATCH!>bar()<!>)
x.add("")
val b1: MutableSet<String?> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
val b2: MutableSet<String> = x
val b3: Set<String?> = x
val b4: Collection<String?> = x
val b6: MutableCollection<String?> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
}
fun fooTreeSet() {
var x = TreeSet<String>()
x.add(<!NULL_FOR_NONNULL_TYPE!>null<!>)
x.add(<!ARGUMENT_TYPE_MISMATCH!>bar()<!>)
x.add("")
val b1: MutableSet<String?> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
val b2: MutableSet<String> = x
val b3: Set<String?> = x
val b4: Collection<String?> = x
val b6: MutableCollection<String?> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
}
fun fooLinkedHashSet() {
var x = LinkedHashSet<String>()
x.add(null)
x.add(bar())
x.add("")
val b1: MutableSet<String?> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
val b2: MutableSet<String> = x
val b3: Set<String?> = x
val b4: Collection<String?> = x
val b6: MutableCollection<String?> = <!INITIALIZER_TYPE_MISMATCH!>x<!>
}