e6b5cb5216
Update includes:
- Changing syntax of `OI/`NI` tags from `<!NI;TAG!>` to `<!TAG{NI}!>`
- Fix some incorrect directives
- Change order of diagnostics in some places
- Remove ignored diagnostics from FIR test data (previously `DIAGNOSTICS` didn't work)
- Update FIR dumps in some places and add `FIR_IDENTICAL` if needed
- Replace all JAVAC_SKIP with SKIP_JAVAC directive
23 lines
706 B
Kotlin
Vendored
23 lines
706 B
Kotlin
Vendored
// !WITH_NEW_INFERENCE
|
|
// !DIAGNOSTICS: -DEBUG_INFO_SMARTCAST
|
|
//KT-2216 Nullability of a value determined in function parameter computation doesn't pass to code following
|
|
package kt2216
|
|
|
|
fun bar(y: Int, z: Int) = y + z
|
|
fun baz(a: Int, b: Int, c: Int, d: Int) = a + b + c + d
|
|
|
|
fun foo() {
|
|
val x: Int? = 0
|
|
|
|
bar(if (x != null) x else return, x)
|
|
x + 2
|
|
bar(x, x<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>)
|
|
|
|
val y: Int? = 0
|
|
val z: Int? = 0
|
|
bar(<!TYPE_MISMATCH{NI}!>if (y != null) y else <!TYPE_MISMATCH{OI}!>z<!><!>, <!TYPE_MISMATCH!>y<!>)
|
|
y <!UNSAFE_OPERATOR_CALL!>+<!> 2
|
|
baz(<!TYPE_MISMATCH!>y<!>, <!TYPE_MISMATCH!>y<!>, if (y == null) return else y, y)
|
|
baz(y, z!!, z, y)
|
|
}
|