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
78 lines
1.1 KiB
Kotlin
Vendored
78 lines
1.1 KiB
Kotlin
Vendored
// !DIAGNOSTICS: -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE
|
|
|
|
fun ignoreIt(<!UNUSED_PARAMETER!>f<!>: () -> Unit) {}
|
|
|
|
fun exec(f: () -> Unit) = f()
|
|
|
|
fun foo() {
|
|
var x: Int
|
|
ignoreIt() {
|
|
// Ok
|
|
x = 42
|
|
}
|
|
// Error!
|
|
<!UNINITIALIZED_VARIABLE!>x<!>.hashCode()
|
|
}
|
|
|
|
fun bar() {
|
|
val x: Int
|
|
exec {
|
|
<!CAPTURED_VAL_INITIALIZATION!>x<!> = 13
|
|
}
|
|
}
|
|
|
|
fun bar2() {
|
|
val x: Int
|
|
fun foo() {
|
|
<!CAPTURED_VAL_INITIALIZATION!>x<!> = 3
|
|
}
|
|
foo()
|
|
}
|
|
|
|
class My(val cond: Boolean) {
|
|
|
|
val y: Int
|
|
|
|
init {
|
|
val x: Int
|
|
if (cond) {
|
|
exec {
|
|
|
|
}
|
|
x = 1
|
|
}
|
|
else {
|
|
x = 2
|
|
}
|
|
y = x
|
|
}
|
|
|
|
constructor(): this(false) {
|
|
val x: Int
|
|
x = 2
|
|
exec {
|
|
x.hashCode()
|
|
}
|
|
}
|
|
}
|
|
|
|
class Your {
|
|
val y = if (true) {
|
|
val xx: Int
|
|
exec {
|
|
<!CAPTURED_VAL_INITIALIZATION!>xx<!> = 42
|
|
}
|
|
24
|
|
}
|
|
else 0
|
|
}
|
|
|
|
val z = if (true) {
|
|
val xx: Int
|
|
exec {
|
|
<!CAPTURED_VAL_INITIALIZATION!>xx<!> = 24
|
|
}
|
|
42
|
|
}
|
|
else 0
|