[LL FIR] improve contract violation checks
Add check into LLFirModuleLazyDeclarationResolver to die fast and avoid StackOverflowError for jumping phases ^KT-56551 ^KT-57802 ^KT-57811
This commit is contained in:
committed by
Space Team
parent
0fb3c033e7
commit
96c45c74e8
@@ -0,0 +1,9 @@
|
||||
Suppressed: org.jetbrains.kotlin.util.ReenteringLazyValueComputationException
|
||||
at org.jetbrains.kotlin.types.DeferredType.lambda$static$0(DeferredType.java:35)
|
||||
at org.jetbrains.kotlin.storage.LockBasedStorageManager$3.recursionDetected(LockBasedStorageManager.java:192)
|
||||
at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:393)
|
||||
at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:527)
|
||||
at org.jetbrains.kotlin.types.DeferredType.getDelegate(DeferredType.java:108)
|
||||
at org.jetbrains.kotlin.types.WrappedType.getAttributes(KotlinType.kt:135)
|
||||
at org.jetbrains.kotlin.types.KotlinType.getAnnotations(KotlinType.kt:57)
|
||||
at org.jetbrains.kotlin.types.checker.ClassicTypeSystemContext$DefaultImpls.hasAnnotation(ClassicTypeSystemContext.kt:753)
|
||||
@@ -0,0 +1,22 @@
|
||||
// IGNORE_REVERSED_RESOLVE
|
||||
// IGNORE_CONTRACT_VIOLATIONS
|
||||
// FIR_IDENTICAL
|
||||
// FILE: Bar.java
|
||||
|
||||
public class Bar {
|
||||
public static final int BAR = Foo.FOO + 1;
|
||||
}
|
||||
|
||||
// FILE: Test.kt
|
||||
|
||||
class Foo {
|
||||
companion object {
|
||||
const val FOO = Baz.BAZ + 1
|
||||
}
|
||||
}
|
||||
|
||||
class Baz {
|
||||
companion object {
|
||||
const val BAZ = Bar.BAR + 1
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user