mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-09 15:53:37 +00:00
Fix UOE when using Java annotation with infinity/NaN as default value
The root problem is the fact that ConstantExpressionEvaluator returns
null for values such as infinity and NaN loaded from cls psi (see
IDEA-207252). This commit simply reverts a part of 8ab9226805 where we
started to compute default values more often than needed. In
LazyJavaClassMemberScope, we only need to check whether or not there
_is_ a default value, not compute its value.
#KT-29792 Fixed
This commit is contained in:
23
compiler/testData/codegen/boxAgainstJava/annotations/divisionByZeroInJava.kt
vendored
Normal file
23
compiler/testData/codegen/boxAgainstJava/annotations/divisionByZeroInJava.kt
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
// KOTLIN_CONFIGURATION_FLAGS: -JVM.USE_FAST_CLASS_FILES_READING
|
||||
// FILE: J.java
|
||||
|
||||
public @interface J {
|
||||
double minusInf() default Double.NEGATIVE_INFINITY;
|
||||
double plusInf() default Double.POSITIVE_INFINITY;
|
||||
double nan() default Double.NaN;
|
||||
double divisionByZero() default 1.0 / 0.0;
|
||||
|
||||
float minusInfFloat() default Float.NEGATIVE_INFINITY;
|
||||
float plusInfFloat() default Float.POSITIVE_INFINITY;
|
||||
float nanFloat() default Float.NaN;
|
||||
float divisionByZeroFloat() default 1.0f / 0.0f;
|
||||
}
|
||||
|
||||
// FILE: K.kt
|
||||
|
||||
fun box(): String {
|
||||
// Only check that the compiler loads the class for J
|
||||
J::class
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user