6a03f31e50
Previously unsafe call is reported as part of InapplicableWrongReceiver. This makes it difficult for the downstream checkers to report different diagnostics.
60 lines
1.6 KiB
Plaintext
Vendored
60 lines
1.6 KiB
Plaintext
Vendored
FILE: equalsAndIdentity.kt
|
|
public abstract interface A : R|kotlin/Any| {
|
|
public abstract fun foo(): R|kotlin/Unit|
|
|
|
|
}
|
|
public final fun test_1(x: R|A|, y: R|A?|): R|kotlin/Unit| {
|
|
when () {
|
|
==(R|<local>/x|, R|<local>/y|) -> {
|
|
R|<local>/x|.R|/A.foo|()
|
|
R|<local>/y|.R|/A.foo|()
|
|
}
|
|
}
|
|
|
|
when () {
|
|
===(R|<local>/x|, R|<local>/y|) -> {
|
|
R|<local>/x|.R|/A.foo|()
|
|
R|<local>/y|.R|/A.foo|()
|
|
}
|
|
}
|
|
|
|
}
|
|
public final fun test_2(x: R|A?|, y: R|A?|): R|kotlin/Unit| {
|
|
when () {
|
|
==(R|<local>/x|, R|<local>/y|) -> {
|
|
R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
|
R|<local>/y|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
|
}
|
|
}
|
|
|
|
when () {
|
|
===(R|<local>/x|, R|<local>/y|) -> {
|
|
R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
|
R|<local>/y|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
|
}
|
|
}
|
|
|
|
}
|
|
public final fun test_3(x: R|A?|, y: R|A?|): R|kotlin/Unit| {
|
|
when () {
|
|
==(R|<local>/y|, Null(null)) -> {
|
|
^test_3 Unit
|
|
}
|
|
}
|
|
|
|
when () {
|
|
==(R|<local>/x|, R|<local>/y|) -> {
|
|
R|<local>/x|.R|/A.foo|()
|
|
R|<local>/y|.R|/A.foo|()
|
|
}
|
|
}
|
|
|
|
when () {
|
|
===(R|<local>/x|, R|<local>/y|) -> {
|
|
R|<local>/x|.R|/A.foo|()
|
|
R|<local>/y|.R|/A.foo|()
|
|
}
|
|
}
|
|
|
|
}
|