[FIR-TEST] Add new testdata generated after changes in previous commit
This commit is contained in:
+37
@@ -0,0 +1,37 @@
|
||||
// !WITH_NEW_INFERENCE
|
||||
package a
|
||||
|
||||
interface A
|
||||
fun doList(l: List<Int>) = l
|
||||
fun doInt(i: Int) = i
|
||||
fun getList(): List<Int>? = null
|
||||
fun <T> strangeList(f: (T) -> Unit): List<T> = throw Exception("$f")
|
||||
fun <T: A> emptyListOfA(): List<T> = throw Exception()
|
||||
|
||||
//-------------------------------
|
||||
|
||||
fun testElvis(a: Int?, b: Int?) {
|
||||
if (a != null) {
|
||||
doInt(b ?: a)
|
||||
}
|
||||
doList(getList() ?: emptyListOfA()) //should be an error
|
||||
doList(getList() ?: strangeList { doInt(it) }) //lambda was not analyzed
|
||||
}
|
||||
|
||||
|
||||
fun testDataFlowInfo1(a: Int?, b: Int?) {
|
||||
val c: Int = a ?: b!!
|
||||
doInt(c)
|
||||
// b is nullable if a != null
|
||||
b <!INAPPLICABLE_CANDIDATE!>+<!> 1
|
||||
}
|
||||
|
||||
fun testDataFlowInfo2(a: Int?, b: Int?) {
|
||||
doInt(a ?: b!!)
|
||||
// b is nullable if a != null
|
||||
b <!INAPPLICABLE_CANDIDATE!>+<!> 1
|
||||
}
|
||||
|
||||
fun testTypeMismatch(a: String?, b: Any) {
|
||||
<!INAPPLICABLE_CANDIDATE!>doInt<!>(a ?: b)
|
||||
}
|
||||
Reference in New Issue
Block a user