02604060ae
1. Local declarations don't participate in IR-linkage, because they can be referenced only inside the same body -> can be dropped from IR text tests. 2. Mangled names for private declarations computed by descriptors/fir are actually not used anywhere (they are recomputed by IR immediately before serialization of IR). But sometimes such mangled names diverge between K1 and K2 -> don't check them, but always check mangled names computed by IR even for private declarations. 3. Also: Drop DUMP_LOCAL_DECLARATION_SIGNATURES test directive. ^KT-57428 Obsolete ^KT-57430 Obsolete ^KT-57434 Obsolete ^KT-57778 Obsolete ^KT-57775 Obsolete
52 lines
1.1 KiB
Kotlin
Vendored
52 lines
1.1 KiB
Kotlin
Vendored
// TARGET_BACKEND: JVM
|
|
|
|
// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR
|
|
// ^ KT-57788: Fix computing mangled names of types with @EnhancedNullability from IR-based declaration descriptors
|
|
|
|
// FILE: kt43217.kt
|
|
class A {
|
|
private val b =
|
|
object : DoubleExpression() {
|
|
override fun get(): Double {
|
|
return 0.0
|
|
}
|
|
}
|
|
}
|
|
|
|
class C : DoubleExpression() {
|
|
override fun get() = 0.0
|
|
}
|
|
|
|
// FILE: DoubleExpression.java
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
public abstract class DoubleExpression implements ObservableDouble {
|
|
@NotNull
|
|
@Override
|
|
public Object isEqualTo(double value) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
// FILE: ObservableValue.java
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
public interface ObservableValue<T> {
|
|
@NotNull
|
|
T get();
|
|
|
|
@NotNull
|
|
default Object isEqualTo(@NotNull T value) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
// FILE: ObservableDouble.java
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
public interface ObservableDouble extends ObservableValue<Double> {
|
|
@NotNull
|
|
Object isEqualTo(double value);
|
|
}
|
|
|