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
41 lines
803 B
Kotlin
Vendored
41 lines
803 B
Kotlin
Vendored
// !WITH_NEW_INFERENCE
|
|
// !DIAGNOSTICS: -UNUSED_VALUE -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -VARIABLE_WITH_REDUNDANT_INITIALIZER
|
|
|
|
class A<T : CharSequence?, E1 : T, E2: T?> {
|
|
fun T.bar() {}
|
|
|
|
fun foo(x: E1, y: E2) {
|
|
x.bar()
|
|
|
|
if (1 == 1) {
|
|
y<!UNSAFE_CALL!>.<!>bar()
|
|
}
|
|
|
|
x?.bar()
|
|
y?.bar()
|
|
|
|
|
|
var t: T = x
|
|
var tN: T? = y
|
|
|
|
// condition needed to make smart cast on tN impossible
|
|
if (1 == 1) {
|
|
tN = x
|
|
}
|
|
|
|
if (1 == 1) {
|
|
t = <!TYPE_MISMATCH!>tN<!>
|
|
}
|
|
|
|
t = <!TYPE_MISMATCH!>y<!>
|
|
|
|
if (y != null) {
|
|
t = <!DEBUG_INFO_SMARTCAST!>y<!>
|
|
}
|
|
|
|
if (tN != null) {
|
|
t = <!DEBUG_INFO_SMARTCAST!>tN<!>
|
|
}
|
|
}
|
|
}
|