KT-59325 [SLC] Fix generation of fields from companion objects
This commit is contained in:
committed by
Space Team
parent
190d49a1e0
commit
9f763deea1
+7
-8
@@ -21,8 +21,8 @@ import org.jetbrains.kotlin.asJava.elements.KtLightField
|
|||||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.hasJvmStaticAnnotation
|
import org.jetbrains.kotlin.light.classes.symbol.annotations.hasJvmStaticAnnotation
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.fields.SymbolLightField
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.fields.SymbolLightFieldForObject
|
import org.jetbrains.kotlin.light.classes.symbol.fields.SymbolLightFieldForObject
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.fields.SymbolLightFieldForProperty
|
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.isConstOrJvmField
|
import org.jetbrains.kotlin.light.classes.symbol.isConstOrJvmField
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.GranularModifiersBox
|
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.GranularModifiersBox
|
||||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||||
@@ -99,6 +99,7 @@ abstract class SymbolLightClassForNamedClassLike : SymbolLightClassForClassLike<
|
|||||||
result: MutableList<KtLightField>,
|
result: MutableList<KtLightField>,
|
||||||
classOrObjectSymbol: KtNamedClassOrObjectSymbol,
|
classOrObjectSymbol: KtNamedClassOrObjectSymbol,
|
||||||
) {
|
) {
|
||||||
|
val nameGenerator = SymbolLightField.FieldNameGenerator()
|
||||||
classOrObjectSymbol.companionObject
|
classOrObjectSymbol.companionObject
|
||||||
?.getDeclaredMemberScope()
|
?.getDeclaredMemberScope()
|
||||||
?.getCallableSymbols()
|
?.getCallableSymbols()
|
||||||
@@ -106,14 +107,12 @@ abstract class SymbolLightClassForNamedClassLike : SymbolLightClassForClassLike<
|
|||||||
?.applyIf(isInterface) {
|
?.applyIf(isInterface) {
|
||||||
filter { it.isConstOrJvmField }
|
filter { it.isConstOrJvmField }
|
||||||
}
|
}
|
||||||
?.mapTo(result) {
|
?.forEach {
|
||||||
SymbolLightFieldForProperty(
|
createField(
|
||||||
ktAnalysisSession = this@KtAnalysisSession,
|
declaration = it,
|
||||||
propertySymbol = it,
|
nameGenerator = nameGenerator,
|
||||||
fieldName = it.name.asString(),
|
|
||||||
containingClass = this,
|
|
||||||
lightMemberOrigin = null,
|
|
||||||
isStatic = true,
|
isStatic = true,
|
||||||
|
result = result
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -2,15 +2,15 @@ public abstract interface TraitClassObjectField /* TraitClassObjectField*/ {
|
|||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
public static final TraitClassObjectField.Companion Companion;
|
public static final TraitClassObjectField.Companion Companion;
|
||||||
|
|
||||||
@org.jetbrains.annotations.Nullable()
|
@org.jetbrains.annotations.NotNull()
|
||||||
public static final java.lang.String x = "" /* initializer type: java.lang.String */ /* constant value */;
|
public static final java.lang.String x = "" /* initializer type: java.lang.String */ /* constant value */;
|
||||||
|
|
||||||
public static final class Companion /* TraitClassObjectField.Companion*/ {
|
public static final class Companion /* TraitClassObjectField.Companion*/ {
|
||||||
@org.jetbrains.annotations.Nullable()
|
@org.jetbrains.annotations.NotNull()
|
||||||
private static final java.lang.String y;
|
public static final java.lang.String x = "" /* initializer type: java.lang.String */ /* constant value */;
|
||||||
|
|
||||||
@org.jetbrains.annotations.Nullable()
|
@org.jetbrains.annotations.Nullable()
|
||||||
public static final java.lang.String x = "" /* initializer type: java.lang.String */ /* constant value */;
|
private static final java.lang.String y;
|
||||||
|
|
||||||
private Companion();// .ctor()
|
private Companion();// .ctor()
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
interface TraitClassObjectField {
|
interface TraitClassObjectField {
|
||||||
companion object {
|
companion object {
|
||||||
const val x: String? = ""
|
const val x: String = ""
|
||||||
private val y: String? = { "" }()
|
private val y: String? = { "" }()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,10 +1,4 @@
|
|||||||
public final class C /* C*/ {
|
public final class C /* C*/ {
|
||||||
@org.jetbrains.annotations.NotNull()
|
|
||||||
private static java.lang.String c1;
|
|
||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
|
||||||
private static java.lang.String c;
|
|
||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
private static java.lang.String x = "" /* initializer type: java.lang.String */;
|
private static java.lang.String x = "" /* initializer type: java.lang.String */;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user