[SLC] fix modality for methods and property accessors

^KTIJ-23783
This commit is contained in:
Dmitrii Gridin
2022-12-01 12:16:31 +01:00
committed by Space Team
parent 00ab33bbf9
commit 7bfa900ce6
24 changed files with 62 additions and 64 deletions
@@ -160,7 +160,7 @@ internal class SymbolLightAccessorMethod private constructor(
propertySymbol.computeModalityForMethod( propertySymbol.computeModalityForMethod(
isTopLevel = isTopLevel, isTopLevel = isTopLevel,
suppressFinal = containingClass.isInterface || propertySymbol.isOverride, suppressFinal = containingClass.isInterface,
result = modifiers, result = modifiers,
) )
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.analysis.api.types.KtType
import org.jetbrains.kotlin.analysis.api.types.KtTypeMappingMode import org.jetbrains.kotlin.analysis.api.types.KtTypeMappingMode
import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.asJava.classes.lazyPub
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.light.classes.symbol.* import org.jetbrains.kotlin.light.classes.symbol.*
import org.jetbrains.kotlin.light.classes.symbol.annotations.computeAnnotations import org.jetbrains.kotlin.light.classes.symbol.annotations.computeAnnotations
import org.jetbrains.kotlin.light.classes.symbol.annotations.hasAnnotation import org.jetbrains.kotlin.light.classes.symbol.annotations.hasAnnotation
@@ -90,13 +89,10 @@ internal class SymbolLightSimpleMethod(
private fun computeModifiers(functionSymbol: KtFunctionSymbol): Set<String> { private fun computeModifiers(functionSymbol: KtFunctionSymbol): Set<String> {
if (functionSymbol.hasInlineOnlyAnnotation()) return setOf(PsiModifier.FINAL, PsiModifier.PRIVATE) if (functionSymbol.hasInlineOnlyAnnotation()) return setOf(PsiModifier.FINAL, PsiModifier.PRIVATE)
val finalModifier = kotlinOrigin?.hasModifier(KtTokens.FINAL_KEYWORD) == true
val modifiers = mutableSetOf<String>() val modifiers = mutableSetOf<String>()
functionSymbol.computeModalityForMethod( functionSymbol.computeModalityForMethod(
isTopLevel = isTopLevel, isTopLevel = isTopLevel,
suppressFinal = containingClass.isInterface || (!finalModifier && functionSymbol.isOverride), suppressFinal = containingClass.isInterface,
result = modifiers result = modifiers
) )
@@ -109,9 +105,11 @@ internal class SymbolLightSimpleMethod(
if (!suppressStatic && functionSymbol.hasJvmStaticAnnotation()) { if (!suppressStatic && functionSymbol.hasJvmStaticAnnotation()) {
modifiers.add(PsiModifier.STATIC) modifiers.add(PsiModifier.STATIC)
} }
if (functionSymbol.hasAnnotation(STRICTFP_ANNOTATION_CLASS_ID, null)) { if (functionSymbol.hasAnnotation(STRICTFP_ANNOTATION_CLASS_ID, null)) {
modifiers.add(PsiModifier.STRICTFP) modifiers.add(PsiModifier.STRICTFP)
} }
if (functionSymbol.hasAnnotation(SYNCHRONIZED_ANNOTATION_CLASS_ID, null)) { if (functionSymbol.hasAnnotation(SYNCHRONIZED_ANNOTATION_CLASS_ID, null)) {
modifiers.add(PsiModifier.SYNCHRONIZED) modifiers.add(PsiModifier.SYNCHRONIZED)
} }
@@ -9,7 +9,7 @@ public static final class Equals /* p.Wrapper.Equals*/ {
private final p.G code; private final p.G code;
@java.lang.Override() @java.lang.Override()
public boolean equals(@org.jetbrains.annotations.Nullable() java.lang.Object);// equals(java.lang.Object) public final boolean equals(@org.jetbrains.annotations.Nullable() java.lang.Object);// equals(java.lang.Object)
@org.jetbrains.annotations.NotNull() @org.jetbrains.annotations.NotNull()
public final p.G component1();// component1() public final p.G component1();// component1()
@@ -32,7 +32,7 @@ public static final class Equals /* p.Wrapper.Equals*/ {
private final p.G code; private final p.G code;
@java.lang.Override() @java.lang.Override()
public int hashCode();// hashCode() public final int hashCode();// hashCode()
@org.jetbrains.annotations.NotNull() @org.jetbrains.annotations.NotNull()
public final p.G component1();// component1() public final p.G component1();// component1()
@@ -56,7 +56,7 @@ public static final class Equals /* p.Wrapper.Equals*/ {
@java.lang.Override() @java.lang.Override()
@org.jetbrains.annotations.NotNull() @org.jetbrains.annotations.NotNull()
public java.lang.String toString();// toString() public final java.lang.String toString();// toString()
@org.jetbrains.annotations.NotNull() @org.jetbrains.annotations.NotNull()
public final p.G component1();// component1() public final p.G component1();// component1()
+1 -1
View File
@@ -6,7 +6,7 @@ static final class FirstEntry /* p.KotlinEnum.FirstEntry*/ extends p.KotlinEnum
FirstEntry();// .ctor() FirstEntry();// .ctor()
@java.lang.Override() @java.lang.Override()
public void abstractFun();// abstractFun() public final void abstractFun();// abstractFun()
public final int getFirstEntryProp();// getFirstEntryProp() public final int getFirstEntryProp();// getFirstEntryProp()
@@ -1,6 +1,6 @@
public final class Inheritor /* p.Inheritor*/ implements p.I, p.I2 { public final class Inheritor /* p.Inheritor*/ implements p.I, p.I2 {
@java.lang.Override() @java.lang.Override()
public void g();// g() public final void g();// g()
public Inheritor();// .ctor() public Inheritor();// .ctor()
@@ -3,13 +3,13 @@ public final class A /* p.A*/ {
@java.lang.Override() @java.lang.Override()
@org.jetbrains.annotations.NotNull() @org.jetbrains.annotations.NotNull()
public java.lang.String toString();// toString() public final java.lang.String toString();// toString()
@java.lang.Override() @java.lang.Override()
public boolean equals(@org.jetbrains.annotations.Nullable() java.lang.Object);// equals(java.lang.Object) public final boolean equals(@org.jetbrains.annotations.Nullable() java.lang.Object);// equals(java.lang.Object)
@java.lang.Override() @java.lang.Override()
public int hashCode();// hashCode() public final int hashCode();// hashCode()
public A(int);// .ctor(int) public A(int);// .ctor(int)
@@ -1,11 +1,11 @@
public final class TwoOverrides /* TwoOverrides*/ implements java.lang.Iterable<java.lang.String>, kotlin.collections.Iterable<java.lang.String>, kotlin.jvm.internal.markers.KMappedMarker { public final class TwoOverrides /* TwoOverrides*/ implements java.lang.Iterable<java.lang.String>, kotlin.collections.Iterable<java.lang.String>, kotlin.jvm.internal.markers.KMappedMarker {
@java.lang.Override() @java.lang.Override()
@org.jetbrains.annotations.Nullable() @org.jetbrains.annotations.Nullable()
public java.lang.Void iterator();// iterator() public final java.lang.Void iterator();// iterator()
@java.lang.Override() @java.lang.Override()
@org.jetbrains.annotations.Nullable() @org.jetbrains.annotations.Nullable()
public java.lang.Void iterator();// iterator() public final java.lang.Void iterator();// iterator()
public TwoOverrides();// .ctor() public TwoOverrides();// .ctor()
@@ -5,42 +5,42 @@ public final class Container /* p1.Container*/ {
public static final class MyNumber /* p1.Container.MyNumber*/ extends java.lang.Number { public static final class MyNumber /* p1.Container.MyNumber*/ extends java.lang.Number {
@java.lang.Override() @java.lang.Override()
public byte toByte();// toByte() public final byte toByte();// toByte()
@java.lang.Override() @java.lang.Override()
public char toChar();// toChar() public final char toChar();// toChar()
@java.lang.Override() @java.lang.Override()
public double toDouble();// toDouble() public final double toDouble();// toDouble()
@java.lang.Override() @java.lang.Override()
public float toFloat();// toFloat() public final float toFloat();// toFloat()
@java.lang.Override() @java.lang.Override()
public int toInt();// toInt() public final int toInt();// toInt()
@java.lang.Override() @java.lang.Override()
public long toLong();// toLong() public final long toLong();// toLong()
@java.lang.Override() @java.lang.Override()
public short toShort();// toShort() public final short toShort();// toShort()
public MyNumber();// .ctor() public MyNumber();// .ctor()
}public static final class MyString /* p1.Container.MyString*/ implements java.lang.CharSequence { }public static final class MyString /* p1.Container.MyString*/ implements java.lang.CharSequence {
@java.lang.Override() @java.lang.Override()
@org.jetbrains.annotations.NotNull() @org.jetbrains.annotations.NotNull()
public java.lang.CharSequence subSequence(int, int);// subSequence(int, int) public final java.lang.CharSequence subSequence(int, int);// subSequence(int, int)
@java.lang.Override() @java.lang.Override()
public char get(int);// get(int) public final char get(int);// get(int)
public MyString();// .ctor() public MyString();// .ctor()
public error.NonExistentClass chars();// chars() public final error.NonExistentClass chars();// chars()
public error.NonExistentClass codePoints();// codePoints() public final error.NonExistentClass codePoints();// codePoints()
public int getLength();// getLength() public final int getLength();// getLength()
}} }}
@@ -1,6 +1,6 @@
public final class TypeHierarchyMap /* p1.TypeHierarchyMap*/<TValue> implements java.util.Map<java.lang.Class<?>, TValue>, kotlin.collections.Map<java.lang.Class<?>, TValue>, kotlin.jvm.internal.markers.KMappedMarker { public final class TypeHierarchyMap /* p1.TypeHierarchyMap*/<TValue> implements java.util.Map<java.lang.Class<?>, TValue>, kotlin.collections.Map<java.lang.Class<?>, TValue>, kotlin.jvm.internal.markers.KMappedMarker {
@java.lang.Override() @java.lang.Override()
public boolean containsKey(@org.jetbrains.annotations.NotNull() java.lang.Class<?>);// containsKey(java.lang.Class<?>) public final boolean containsKey(@org.jetbrains.annotations.NotNull() java.lang.Class<?>);// containsKey(java.lang.Class<?>)
public TypeHierarchyMap();// .ctor() public TypeHierarchyMap();// .ctor()
@@ -11,13 +11,13 @@ public final class SmartSet /* SmartSet*/<T> extends kotlin.collections.Abstrac
@java.lang.Override() @java.lang.Override()
@org.jetbrains.annotations.NotNull() @org.jetbrains.annotations.NotNull()
public java.util.Iterator<T> iterator();// iterator() public final java.util.Iterator<T> iterator();// iterator()
@java.lang.Override() @java.lang.Override()
public boolean add(T);// add(T) public final boolean add(T);// add(T)
@java.lang.Override() @java.lang.Override()
public void clear();// clear() public final void clear();// clear()
@kotlin.jvm.JvmStatic() @kotlin.jvm.JvmStatic()
@org.jetbrains.annotations.NotNull() @org.jetbrains.annotations.NotNull()
@@ -29,9 +29,9 @@ public final class SmartSet /* SmartSet*/<T> extends kotlin.collections.Abstrac
private SmartSet();// .ctor() private SmartSet();// .ctor()
public int getSize();// getSize() public final int getSize();// getSize()
public void setSize(int);// setSize(int) public final void setSize(int);// setSize(int)
public static final class Companion /* SmartSet.Companion*/ { public static final class Companion /* SmartSet.Companion*/ {
@@ -1,6 +1,6 @@
public final class Inheritor /* p.Inheritor*/ implements p.I, p.I2 { public final class Inheritor /* p.Inheritor*/ implements p.I, p.I2 {
@java.lang.Override() @java.lang.Override()
public void g();// g() public final void g();// g()
public Inheritor();// .ctor() public Inheritor();// .ctor()
@@ -1,8 +1,8 @@
public final class C /* p.C*/ { public final class C /* p.C*/ {
public C();// .ctor() public C();// .ctor()
public int af();// af() public final int af();// af()
public int getAp();// getAp() public final int getAp();// getAp()
} }
@@ -3,10 +3,10 @@ public final class C /* p.C*/ {
public C();// .ctor() public C();// .ctor()
public int af();// af() public final int af();// af()
public int getAp();// getAp() public final int getAp();// getAp()
public int getIp();// getIp() public final int getIp();// getIp()
} }
@@ -1,8 +1,8 @@
public final class C /* p.C*/ { public final class C /* p.C*/ {
public C();// .ctor() public C();// .ctor()
public int af();// af() public final int af();// af()
public int getAp();// getAp() public final int getAp();// getAp()
} }
@@ -2,10 +2,10 @@ public final class C /* C*/ implements Tr {
private final int v; private final int v;
@java.lang.Override() @java.lang.Override()
public int foo();// foo() public final int foo();// foo()
public C();// .ctor() public C();// .ctor()
public int getV();// getV() public final int getV();// getV()
} }
@@ -1,6 +1,6 @@
public final class C /* C*/ implements Base { public final class C /* C*/ implements Base {
@java.lang.Override() @java.lang.Override()
public void foo();// foo() public final void foo();// foo()
public C();// .ctor() public C();// .ctor()
@@ -1,6 +1,6 @@
public final class C /* C*/ implements Base<kotlin.Unit> { public final class C /* C*/ implements Base<kotlin.Unit> {
@java.lang.Override() @java.lang.Override()
public void foo(@org.jetbrains.annotations.NotNull() kotlin.Unit);// foo(kotlin.Unit) public final void foo(@org.jetbrains.annotations.NotNull() kotlin.Unit);// foo(kotlin.Unit)
public C();// .ctor() public C();// .ctor()
@@ -29,7 +29,7 @@ public abstract interface Base /* Base*/ {
public final class Derived /* Derived*/ implements Base { public final class Derived /* Derived*/ implements Base {
@java.lang.Override() @java.lang.Override()
@org.jetbrains.annotations.Nullable() @org.jetbrains.annotations.Nullable()
public java.lang.Object foo(@org.jetbrains.annotations.NotNull() kotlin.coroutines.Continuation<? super kotlin.Unit>);// foo(kotlin.coroutines.Continuation<? super kotlin.Unit>) public final java.lang.Object foo(@org.jetbrains.annotations.NotNull() kotlin.coroutines.Continuation<? super kotlin.Unit>);// foo(kotlin.coroutines.Continuation<? super kotlin.Unit>)
public Derived();// .ctor() public Derived();// .ctor()
@@ -17,10 +17,10 @@ public final class BaseImpl /* BaseImpl*/ implements Base {
private final int x; private final int x;
@java.lang.Override() @java.lang.Override()
public void printMessage();// printMessage() public final void printMessage();// printMessage()
@java.lang.Override() @java.lang.Override()
public void printMessageLine();// printMessageLine() public final void printMessageLine();// printMessageLine()
public BaseImpl(int);// .ctor(int) public BaseImpl(int);// .ctor(int)
@@ -30,10 +30,10 @@ public final class BaseImpl /* BaseImpl*/ implements Base {
public final class Derived /* Derived*/ implements Base { public final class Derived /* Derived*/ implements Base {
@java.lang.Override() @java.lang.Override()
public int foo(@org.jetbrains.annotations.NotNull() java.lang.String, @org.jetbrains.annotations.Nullable() java.lang.Object);// foo(java.lang.String, java.lang.Object) public final void printMessage();// printMessage()
@java.lang.Override() @java.lang.Override()
public void printMessage();// printMessage() public int foo(@org.jetbrains.annotations.NotNull() java.lang.String, @org.jetbrains.annotations.Nullable() java.lang.Object);// foo(java.lang.String, java.lang.Object)
@java.lang.Override() @java.lang.Override()
public void printMessageLine();// printMessageLine() public void printMessageLine();// printMessageLine()
@@ -1,7 +1,7 @@
public final class MyList /* MyList*/ implements java.util.List<java.lang.String>, kotlin.collections.List<java.lang.String>, kotlin.jvm.internal.markers.KMappedMarker { public final class MyList /* MyList*/ implements java.util.List<java.lang.String>, kotlin.collections.List<java.lang.String>, kotlin.jvm.internal.markers.KMappedMarker {
@java.lang.Override() @java.lang.Override()
@org.jetbrains.annotations.NotNull() @org.jetbrains.annotations.NotNull()
public java.lang.String get(int);// get(int) public final java.lang.String get(int);// get(int)
public MyList();// .ctor() public MyList();// .ctor()
@@ -29,7 +29,7 @@ final class C /* C*/ {
final class null /* null*/ { final class null /* null*/ {
@java.lang.Override() @java.lang.Override()
@org.jetbrains.annotations.NotNull() @org.jetbrains.annotations.NotNull()
public java.lang.String toString();// toString() public final java.lang.String toString();// toString()
private ();// .ctor() private ();// .ctor()
@@ -51,7 +51,7 @@ public final class ValidPublicSupertype /* ValidPublicSupertype*/ {
final class null /* null*/ implements java.lang.Runnable { final class null /* null*/ implements java.lang.Runnable {
@java.lang.Override() @java.lang.Override()
public void run();// run() public final void run();// run()
private ();// .ctor() private ();// .ctor()
@@ -59,7 +59,7 @@ final class null /* null*/ implements java.lang.Runnable {
final class null /* null*/ implements java.lang.Runnable { final class null /* null*/ implements java.lang.Runnable {
@java.lang.Override() @java.lang.Override()
public void run();// run() public final void run();// run()
private ();// .ctor() private ();// .ctor()
@@ -84,7 +84,7 @@ public final class InvalidPublicSupertype /* InvalidPublicSupertype*/ {
final class null /* null*/ implements I, java.lang.Runnable { final class null /* null*/ implements I, java.lang.Runnable {
@java.lang.Override() @java.lang.Override()
public void run();// run() public final void run();// run()
private ();// .ctor() private ();// .ctor()
@@ -92,7 +92,7 @@ final class null /* null*/ implements I, java.lang.Runnable {
final class null /* null*/ implements I, java.lang.Runnable { final class null /* null*/ implements I, java.lang.Runnable {
@java.lang.Override() @java.lang.Override()
public void run();// run() public final void run();// run()
private ();// .ctor() private ();// .ctor()
@@ -38,14 +38,14 @@ public final class Derived /* Derived*/ extends Base implements IntfWithProp {
private final int x = 3 /* initializer type: int */; private final int x = 3 /* initializer type: int */;
@java.lang.Override() @java.lang.Override()
public error.NonExistentClass v();// v() public final error.NonExistentClass v();// v()
@java.lang.Override() @java.lang.Override()
public int abs();// abs() public final int abs();// abs()
public Derived(int);// .ctor(int) public Derived(int);// .ctor(int)
public int getX();// getX() public final int getX();// getX()
} }
@@ -76,6 +76,6 @@ public abstract class AnotherDerived /* AnotherDerived*/ extends Base {
final class Private /* Private*/ { final class Private /* Private*/ {
public Private();// .ctor() public Private();// .ctor()
public boolean getOverridesNothing();// getOverridesNothing() public final boolean getOverridesNothing();// getOverridesNothing()
} }
@@ -30,8 +30,8 @@ public final class InlineInheritance /* InlineInheritance*/ {
public final int getV();// getV() public final int getV();// getV()
public int getX();// getX() public final int getX();// getX()
public int y();// y() public final int y();// y()
} }
@@ -105,7 +105,7 @@ public final class Obj /* Obj*/ implements java.lang.Runnable {
public static final Obj INSTANCE; public static final Obj INSTANCE;
@java.lang.Override() @java.lang.Override()
public void run();// run() public final void run();// run()
@kotlin.jvm.JvmStatic() @kotlin.jvm.JvmStatic()
public static final int zoo();// zoo() public static final int zoo();// zoo()