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:
Alexander Udalov
2019-02-13 17:49:03 +01:00
parent b2cdf2dc74
commit f2bf81e799
10 changed files with 76 additions and 2 deletions
@@ -41,6 +41,11 @@ public class BlackBoxAgainstJavaCodegenTestGenerated extends AbstractBlackBoxAga
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/boxAgainstJava/annotations"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("divisionByZeroInJava.kt")
public void testDivisionByZeroInJava() throws Exception {
runTest("compiler/testData/codegen/boxAgainstJava/annotations/divisionByZeroInJava.kt");
}
@TestMetadata("javaAnnotationArrayValueDefault.kt")
public void testJavaAnnotationArrayValueDefault() throws Exception {
runTest("compiler/testData/codegen/boxAgainstJava/annotations/javaAnnotationArrayValueDefault.kt");