diff --git a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KotlinClassInnerStuffCache.kt b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KotlinClassInnerStuffCache.kt index a5a7f994006..d7a64f0c8d1 100644 --- a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KotlinClassInnerStuffCache.kt +++ b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KotlinClassInnerStuffCache.kt @@ -199,7 +199,7 @@ private class KotlinEnumSyntheticMethod( override fun getText(): String = name override fun getTextRange(): TextRange = TextRange.EMPTY_RANGE } - nameParameter.setModifierList(NotNullModifierList(manager)) + addParameter(nameParameter) } } @@ -228,13 +228,13 @@ private class KotlinEnumSyntheticMethod( override fun getReturnTypeElement(): PsiTypeElement? = null override fun getParameterList(): PsiParameterList = parameterList - override fun getThrowsList(): PsiReferenceList { - return LightReferenceListBuilder(manager, language, PsiReferenceList.Role.THROWS_LIST).apply { + override fun getThrowsList(): PsiReferenceList = + LightReferenceListBuilder(manager, language, PsiReferenceList.Role.THROWS_LIST).apply { if (kind == Kind.VALUE_OF) { - addReference("java.lang.IllegalArgumentException") + addReference(java.lang.IllegalArgumentException::class.qualifiedName) + addReference(java.lang.NullPointerException::class.qualifiedName) } } - } override fun getParent(): PsiElement = enumClass override fun getContainingClass(): KtExtensibleLightClass = enumClass diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/symbolAnnotationsUtils.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/symbolAnnotationsUtils.kt index f39303abf83..ade4dc78a8b 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/symbolAnnotationsUtils.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/symbolAnnotationsUtils.kt @@ -327,7 +327,8 @@ internal fun KtAnnotatedSymbol.computeThrowsList( strictUseSite: Boolean = true, ) { if (containingClass.isEnum && this is KtFunctionSymbol && name == StandardNames.ENUM_VALUE_OF && isStatic) { - builder.addReference("java.lang.IllegalArgumentException") + builder.addReference(java.lang.IllegalArgumentException::class.qualifiedName) + builder.addReference(java.lang.NullPointerException::class.qualifiedName) } val annoApp = findAnnotation(JVM_THROWS_ANNOTATION_FQ_NAME, annotationUseSiteTarget, strictUseSite) ?: return diff --git a/compiler/testData/asJava/lightClasses/AnnotatedParameterInEnumConstructor.fir.java b/compiler/testData/asJava/lightClasses/AnnotatedParameterInEnumConstructor.fir.java index db6958a10c4..4932d603ec1 100644 --- a/compiler/testData/asJava/lightClasses/AnnotatedParameterInEnumConstructor.fir.java +++ b/compiler/testData/asJava/lightClasses/AnnotatedParameterInEnumConstructor.fir.java @@ -2,7 +2,7 @@ public enum AnnotatedParameterInEnumConstructor /* test.AnnotatedParameterInEnum A; @org.jetbrains.annotations.NotNull() - public static final test.AnnotatedParameterInEnumConstructor valueOf(java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) + public static final test.AnnotatedParameterInEnumConstructor valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) @org.jetbrains.annotations.NotNull() public static final test.AnnotatedParameterInEnumConstructor[] values();// values() diff --git a/compiler/testData/asJava/lightClasses/AnnotatedParameterInEnumConstructor.java b/compiler/testData/asJava/lightClasses/AnnotatedParameterInEnumConstructor.java index fa04b508453..8ea9ad2c0b6 100644 --- a/compiler/testData/asJava/lightClasses/AnnotatedParameterInEnumConstructor.java +++ b/compiler/testData/asJava/lightClasses/AnnotatedParameterInEnumConstructor.java @@ -2,11 +2,11 @@ public enum AnnotatedParameterInEnumConstructor /* test.AnnotatedParameterInEnum A; @org.jetbrains.annotations.NotNull() - public static test.AnnotatedParameterInEnumConstructor valueOf(@org.jetbrains.annotations.NotNull() java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) + public static test.AnnotatedParameterInEnumConstructor valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) @org.jetbrains.annotations.NotNull() public static test.AnnotatedParameterInEnumConstructor[] values();// values() private AnnotatedParameterInEnumConstructor(@test.Anno(x = "a") java.lang.String, @test.Anno(x = "b") java.lang.String);// .ctor(java.lang.String, java.lang.String) -} \ No newline at end of file +} diff --git a/compiler/testData/asJava/lightClasses/DeprecatedEnumEntry.fir.java b/compiler/testData/asJava/lightClasses/DeprecatedEnumEntry.fir.java index 1e186425d9b..ec7d398e22c 100644 --- a/compiler/testData/asJava/lightClasses/DeprecatedEnumEntry.fir.java +++ b/compiler/testData/asJava/lightClasses/DeprecatedEnumEntry.fir.java @@ -4,7 +4,7 @@ public enum E /* p.E*/ { @kotlin.Deprecated(message = "b") Entry3; @org.jetbrains.annotations.NotNull() - public static final p.E valueOf(java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) + public static final p.E valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) @org.jetbrains.annotations.NotNull() public static final p.E[] values();// values() diff --git a/compiler/testData/asJava/lightClasses/DeprecatedEnumEntry.java b/compiler/testData/asJava/lightClasses/DeprecatedEnumEntry.java index 36d317370ff..da83e10201d 100644 --- a/compiler/testData/asJava/lightClasses/DeprecatedEnumEntry.java +++ b/compiler/testData/asJava/lightClasses/DeprecatedEnumEntry.java @@ -4,7 +4,7 @@ public enum E /* p.E*/ { @kotlin.Deprecated(message = "b") Entry3; @org.jetbrains.annotations.NotNull() - public static p.E valueOf(@org.jetbrains.annotations.NotNull() java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) + public static p.E valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) @org.jetbrains.annotations.NotNull() public static p.E[] values();// values() diff --git a/compiler/testData/asJava/lightClasses/EnumClass.fir.java b/compiler/testData/asJava/lightClasses/EnumClass.fir.java index fc97a5d073f..db6f1a9223c 100644 --- a/compiler/testData/asJava/lightClasses/EnumClass.fir.java +++ b/compiler/testData/asJava/lightClasses/EnumClass.fir.java @@ -2,7 +2,7 @@ public enum MyEnumClass /* one.MyEnumClass*/ { Entry; @org.jetbrains.annotations.NotNull() - public static final one.MyEnumClass valueOf(java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) + public static final one.MyEnumClass valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) @org.jetbrains.annotations.NotNull() public static final one.MyEnumClass[] values();// values() diff --git a/compiler/testData/asJava/lightClasses/EnumClass.java b/compiler/testData/asJava/lightClasses/EnumClass.java index 27b0bdb3521..41cf25f0784 100644 --- a/compiler/testData/asJava/lightClasses/EnumClass.java +++ b/compiler/testData/asJava/lightClasses/EnumClass.java @@ -2,7 +2,7 @@ public enum MyEnumClass /* one.MyEnumClass*/ { Entry; @org.jetbrains.annotations.NotNull() - public static one.MyEnumClass valueOf(@org.jetbrains.annotations.NotNull() java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) + public static one.MyEnumClass valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) @org.jetbrains.annotations.NotNull() public static one.MyEnumClass[] values();// values() diff --git a/compiler/testData/asJava/lightClasses/EnumClassWithEnumEntries.fir.java b/compiler/testData/asJava/lightClasses/EnumClassWithEnumEntries.fir.java index 4de4ef4f94b..693a378dfa9 100644 --- a/compiler/testData/asJava/lightClasses/EnumClassWithEnumEntries.fir.java +++ b/compiler/testData/asJava/lightClasses/EnumClassWithEnumEntries.fir.java @@ -2,7 +2,7 @@ public enum MyEnumClass /* one.MyEnumClass*/ { Entry; @org.jetbrains.annotations.NotNull() - public static final one.MyEnumClass valueOf(java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) + public static final one.MyEnumClass valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) @org.jetbrains.annotations.NotNull() public static final one.MyEnumClass[] values();// values() diff --git a/compiler/testData/asJava/lightClasses/EnumClassWithEnumEntries.java b/compiler/testData/asJava/lightClasses/EnumClassWithEnumEntries.java index 71474af3064..dcecef082c6 100644 --- a/compiler/testData/asJava/lightClasses/EnumClassWithEnumEntries.java +++ b/compiler/testData/asJava/lightClasses/EnumClassWithEnumEntries.java @@ -2,7 +2,7 @@ public enum MyEnumClass /* one.MyEnumClass*/ { Entry; @org.jetbrains.annotations.NotNull() - public static one.MyEnumClass valueOf(@org.jetbrains.annotations.NotNull() java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) + public static one.MyEnumClass valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) @org.jetbrains.annotations.NotNull() public static one.MyEnumClass[] values();// values() diff --git a/compiler/testData/asJava/lightClasses/EnumClassWithEnumEntries.lib.java b/compiler/testData/asJava/lightClasses/EnumClassWithEnumEntries.lib.java index 5876edc8b5e..0f4e23f5721 100644 --- a/compiler/testData/asJava/lightClasses/EnumClassWithEnumEntries.lib.java +++ b/compiler/testData/asJava/lightClasses/EnumClassWithEnumEntries.lib.java @@ -2,7 +2,7 @@ public enum MyEnumClass /* one.MyEnumClass*/ { Entry; @org.jetbrains.annotations.NotNull() - public static one.MyEnumClass valueOf(@org.jetbrains.annotations.NotNull() java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) + public static one.MyEnumClass valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) @org.jetbrains.annotations.NotNull() public static one.MyEnumClass[] values();// values() diff --git a/compiler/testData/asJava/lightClasses/compilationErrors/EnumNameOverride.fir.java b/compiler/testData/asJava/lightClasses/compilationErrors/EnumNameOverride.fir.java index be6800ced58..bd291621b08 100644 --- a/compiler/testData/asJava/lightClasses/compilationErrors/EnumNameOverride.fir.java +++ b/compiler/testData/asJava/lightClasses/compilationErrors/EnumNameOverride.fir.java @@ -2,7 +2,7 @@ public enum EnumNameOverride /* EnumNameOverride*/ implements Bar { ; @org.jetbrains.annotations.NotNull() - public static final EnumNameOverride valueOf(java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) + public static final EnumNameOverride valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) @org.jetbrains.annotations.NotNull() public static final EnumNameOverride[] values();// values() diff --git a/compiler/testData/asJava/lightClasses/compilationErrors/EnumNameOverride.java b/compiler/testData/asJava/lightClasses/compilationErrors/EnumNameOverride.java index d0d6cd2975f..3c9392769df 100644 --- a/compiler/testData/asJava/lightClasses/compilationErrors/EnumNameOverride.java +++ b/compiler/testData/asJava/lightClasses/compilationErrors/EnumNameOverride.java @@ -2,11 +2,11 @@ public enum EnumNameOverride /* EnumNameOverride*/ implements Bar { ; @org.jetbrains.annotations.NotNull() - public static EnumNameOverride valueOf(@org.jetbrains.annotations.NotNull() java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) + public static EnumNameOverride valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) @org.jetbrains.annotations.NotNull() public static EnumNameOverride[] values();// values() private EnumNameOverride();// .ctor() -} \ No newline at end of file +} diff --git a/compiler/testData/asJava/ultraLightClasses/enums.java b/compiler/testData/asJava/ultraLightClasses/enums.java index 58d6a62905a..65ce1bd639d 100644 --- a/compiler/testData/asJava/ultraLightClasses/enums.java +++ b/compiler/testData/asJava/ultraLightClasses/enums.java @@ -9,7 +9,7 @@ public enum Direction /* Direction*/ { EAST; @org.jetbrains.annotations.NotNull() - public static Direction valueOf(@org.jetbrains.annotations.NotNull() java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) + public static Direction valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) @org.jetbrains.annotations.NotNull() public static Direction[] values();// values() @@ -26,7 +26,7 @@ public enum Color /* Color*/ { private final int rgb; @org.jetbrains.annotations.NotNull() - public static Color valueOf(@org.jetbrains.annotations.NotNull() java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) + public static Color valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) @org.jetbrains.annotations.NotNull() public static Color[] values();// values() @@ -59,7 +59,7 @@ public enum ProtocolState /* ProtocolState*/ { public abstract ProtocolState signal();// signal() @org.jetbrains.annotations.NotNull() - public static ProtocolState valueOf(@org.jetbrains.annotations.NotNull() java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) + public static ProtocolState valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) @org.jetbrains.annotations.NotNull() public static ProtocolState[] values();// values() @@ -107,7 +107,7 @@ public enum IntArithmetics /* IntArithmetics*/ implements java.util.function.Bin }; @org.jetbrains.annotations.NotNull() - public static IntArithmetics valueOf(@org.jetbrains.annotations.NotNull() java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) + public static IntArithmetics valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) @org.jetbrains.annotations.NotNull() public static IntArithmetics[] values();// values() diff --git a/compiler/testData/asJava/ultraLightClasses/inlineClasses.java b/compiler/testData/asJava/ultraLightClasses/inlineClasses.java index 7f081d245f2..7d0369ebcb4 100644 --- a/compiler/testData/asJava/ultraLightClasses/inlineClasses.java +++ b/compiler/testData/asJava/ultraLightClasses/inlineClasses.java @@ -5,7 +5,7 @@ public enum Foo /* Foo*/ { ; @org.jetbrains.annotations.NotNull() - public static Foo valueOf(@org.jetbrains.annotations.NotNull() java.lang.String) throws java.lang.IllegalArgumentException;// valueOf(java.lang.String) + public static Foo valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) @org.jetbrains.annotations.NotNull() public static Foo[] values();// values() @@ -26,4 +26,4 @@ public final class InlineInheritance /* InlineInheritance*/ { public int y();// y() -} \ No newline at end of file +}