[LC] fix signature of 'Enum.valueOf()'

* drop @NotNull annotation from parameter
* add NullPointerException to throws

^KT-55497 Fixed
This commit is contained in:
Dmitrii Gridin
2022-12-15 13:49:03 +01:00
committed by Space Team
parent 7d0c093da7
commit e39dc9b768
15 changed files with 26 additions and 25 deletions
@@ -199,7 +199,7 @@ private class KotlinEnumSyntheticMethod(
override fun getText(): String = name override fun getText(): String = name
override fun getTextRange(): TextRange = TextRange.EMPTY_RANGE override fun getTextRange(): TextRange = TextRange.EMPTY_RANGE
} }
nameParameter.setModifierList(NotNullModifierList(manager))
addParameter(nameParameter) addParameter(nameParameter)
} }
} }
@@ -228,13 +228,13 @@ private class KotlinEnumSyntheticMethod(
override fun getReturnTypeElement(): PsiTypeElement? = null override fun getReturnTypeElement(): PsiTypeElement? = null
override fun getParameterList(): PsiParameterList = parameterList override fun getParameterList(): PsiParameterList = parameterList
override fun getThrowsList(): PsiReferenceList { override fun getThrowsList(): PsiReferenceList =
return LightReferenceListBuilder(manager, language, PsiReferenceList.Role.THROWS_LIST).apply { LightReferenceListBuilder(manager, language, PsiReferenceList.Role.THROWS_LIST).apply {
if (kind == Kind.VALUE_OF) { 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 getParent(): PsiElement = enumClass
override fun getContainingClass(): KtExtensibleLightClass = enumClass override fun getContainingClass(): KtExtensibleLightClass = enumClass
@@ -327,7 +327,8 @@ internal fun KtAnnotatedSymbol.computeThrowsList(
strictUseSite: Boolean = true, strictUseSite: Boolean = true,
) { ) {
if (containingClass.isEnum && this is KtFunctionSymbol && name == StandardNames.ENUM_VALUE_OF && isStatic) { 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 val annoApp = findAnnotation(JVM_THROWS_ANNOTATION_FQ_NAME, annotationUseSiteTarget, strictUseSite) ?: return
@@ -2,7 +2,7 @@ public enum AnnotatedParameterInEnumConstructor /* test.AnnotatedParameterInEnum
A; A;
@org.jetbrains.annotations.NotNull() @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() @org.jetbrains.annotations.NotNull()
public static final test.AnnotatedParameterInEnumConstructor[] values();// values() public static final test.AnnotatedParameterInEnumConstructor[] values();// values()
@@ -2,11 +2,11 @@ public enum AnnotatedParameterInEnumConstructor /* test.AnnotatedParameterInEnum
A; A;
@org.jetbrains.annotations.NotNull() @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() @org.jetbrains.annotations.NotNull()
public static test.AnnotatedParameterInEnumConstructor[] values();// values() 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) private AnnotatedParameterInEnumConstructor(@test.Anno(x = "a") java.lang.String, @test.Anno(x = "b") java.lang.String);// .ctor(java.lang.String, java.lang.String)
} }
@@ -4,7 +4,7 @@ public enum E /* p.E*/ {
@kotlin.Deprecated(message = "b") Entry3; @kotlin.Deprecated(message = "b") Entry3;
@org.jetbrains.annotations.NotNull() @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() @org.jetbrains.annotations.NotNull()
public static final p.E[] values();// values() public static final p.E[] values();// values()
@@ -4,7 +4,7 @@ public enum E /* p.E*/ {
@kotlin.Deprecated(message = "b") Entry3; @kotlin.Deprecated(message = "b") Entry3;
@org.jetbrains.annotations.NotNull() @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() @org.jetbrains.annotations.NotNull()
public static p.E[] values();// values() public static p.E[] values();// values()
+1 -1
View File
@@ -2,7 +2,7 @@ public enum MyEnumClass /* one.MyEnumClass*/ {
Entry; Entry;
@org.jetbrains.annotations.NotNull() @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() @org.jetbrains.annotations.NotNull()
public static final one.MyEnumClass[] values();// values() public static final one.MyEnumClass[] values();// values()
+1 -1
View File
@@ -2,7 +2,7 @@ public enum MyEnumClass /* one.MyEnumClass*/ {
Entry; Entry;
@org.jetbrains.annotations.NotNull() @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() @org.jetbrains.annotations.NotNull()
public static one.MyEnumClass[] values();// values() public static one.MyEnumClass[] values();// values()
@@ -2,7 +2,7 @@ public enum MyEnumClass /* one.MyEnumClass*/ {
Entry; Entry;
@org.jetbrains.annotations.NotNull() @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() @org.jetbrains.annotations.NotNull()
public static final one.MyEnumClass[] values();// values() public static final one.MyEnumClass[] values();// values()
@@ -2,7 +2,7 @@ public enum MyEnumClass /* one.MyEnumClass*/ {
Entry; Entry;
@org.jetbrains.annotations.NotNull() @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() @org.jetbrains.annotations.NotNull()
public static one.MyEnumClass[] values();// values() public static one.MyEnumClass[] values();// values()
@@ -2,7 +2,7 @@ public enum MyEnumClass /* one.MyEnumClass*/ {
Entry; Entry;
@org.jetbrains.annotations.NotNull() @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() @org.jetbrains.annotations.NotNull()
public static one.MyEnumClass[] values();// values() public static one.MyEnumClass[] values();// values()
@@ -2,7 +2,7 @@ public enum EnumNameOverride /* EnumNameOverride*/ implements Bar {
; ;
@org.jetbrains.annotations.NotNull() @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() @org.jetbrains.annotations.NotNull()
public static final EnumNameOverride[] values();// values() public static final EnumNameOverride[] values();// values()
@@ -2,11 +2,11 @@ public enum EnumNameOverride /* EnumNameOverride*/ implements Bar {
; ;
@org.jetbrains.annotations.NotNull() @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() @org.jetbrains.annotations.NotNull()
public static EnumNameOverride[] values();// values() public static EnumNameOverride[] values();// values()
private EnumNameOverride();// .ctor() private EnumNameOverride();// .ctor()
} }
+4 -4
View File
@@ -9,7 +9,7 @@ public enum Direction /* Direction*/ {
EAST; EAST;
@org.jetbrains.annotations.NotNull() @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() @org.jetbrains.annotations.NotNull()
public static Direction[] values();// values() public static Direction[] values();// values()
@@ -26,7 +26,7 @@ public enum Color /* Color*/ {
private final int rgb; private final int rgb;
@org.jetbrains.annotations.NotNull() @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() @org.jetbrains.annotations.NotNull()
public static Color[] values();// values() public static Color[] values();// values()
@@ -59,7 +59,7 @@ public enum ProtocolState /* ProtocolState*/ {
public abstract ProtocolState signal();// signal() public abstract ProtocolState signal();// signal()
@org.jetbrains.annotations.NotNull() @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() @org.jetbrains.annotations.NotNull()
public static ProtocolState[] values();// values() public static ProtocolState[] values();// values()
@@ -107,7 +107,7 @@ public enum IntArithmetics /* IntArithmetics*/ implements java.util.function.Bin
}; };
@org.jetbrains.annotations.NotNull() @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() @org.jetbrains.annotations.NotNull()
public static IntArithmetics[] values();// values() public static IntArithmetics[] values();// values()
@@ -5,7 +5,7 @@ public enum Foo /* Foo*/ {
; ;
@org.jetbrains.annotations.NotNull() @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() @org.jetbrains.annotations.NotNull()
public static Foo[] values();// values() public static Foo[] values();// values()
@@ -26,4 +26,4 @@ public final class InlineInheritance /* InlineInheritance*/ {
public int y();// y() public int y();// y()
} }