SLC: merge field's static modifier setting
This commit is contained in:
+1
-2
@@ -88,8 +88,7 @@ internal class SymbolLightClassForAnonymousObject : SymbolLightClassForClassLike
|
||||
createField(
|
||||
propertySymbol,
|
||||
nameGenerator,
|
||||
isTopLevel = false,
|
||||
forceStatic = false,
|
||||
isStatic = false,
|
||||
result,
|
||||
)
|
||||
}
|
||||
|
||||
+1
-7
@@ -27,7 +27,6 @@ import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName
|
||||
import org.jetbrains.kotlin.light.classes.symbol.analyzeForLightClasses
|
||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.*
|
||||
import org.jetbrains.kotlin.light.classes.symbol.cachedValue
|
||||
import org.jetbrains.kotlin.light.classes.symbol.canHaveNonPrivateField
|
||||
import org.jetbrains.kotlin.light.classes.symbol.fields.SymbolLightField
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.InitializedModifiersBox
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightClassModifierList
|
||||
@@ -117,15 +116,10 @@ internal class SymbolLightClassForFacade(
|
||||
// If this facade represents multiple files, only `const` properties need to be generated.
|
||||
if (multiFileClass && !propertySymbol.isConst) continue
|
||||
|
||||
val forceStatic = propertySymbol.canHaveNonPrivateField &&
|
||||
propertySymbol.getter.isNullOrPublic() &&
|
||||
propertySymbol.setter.isNullOrPublic()
|
||||
|
||||
createField(
|
||||
propertySymbol,
|
||||
nameGenerator,
|
||||
isTopLevel = true,
|
||||
forceStatic = forceStatic,
|
||||
isStatic = true,
|
||||
result,
|
||||
)
|
||||
}
|
||||
|
||||
+1
-2
@@ -113,8 +113,7 @@ abstract class SymbolLightClassForNamedClassLike : SymbolLightClassForClassLike<
|
||||
fieldName = it.name.asString(),
|
||||
containingClass = this,
|
||||
lightMemberOrigin = null,
|
||||
isTopLevel = false,
|
||||
forceStatic = true,
|
||||
isStatic = true,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+4
-7
@@ -362,8 +362,7 @@ context(KtAnalysisSession)
|
||||
internal fun SymbolLightClassBase.createField(
|
||||
declaration: KtPropertySymbol,
|
||||
nameGenerator: SymbolLightField.FieldNameGenerator,
|
||||
isTopLevel: Boolean,
|
||||
forceStatic: Boolean,
|
||||
isStatic: Boolean,
|
||||
result: MutableList<KtLightField>
|
||||
) {
|
||||
if (!hasBackingField(declaration)) return
|
||||
@@ -380,8 +379,7 @@ internal fun SymbolLightClassBase.createField(
|
||||
fieldName = fieldName,
|
||||
containingClass = this,
|
||||
lightMemberOrigin = null,
|
||||
isTopLevel = isTopLevel,
|
||||
forceStatic = forceStatic,
|
||||
isStatic = isStatic,
|
||||
)
|
||||
)
|
||||
}
|
||||
@@ -596,13 +594,12 @@ internal fun SymbolLightClassBase.addPropertyBackingFields(
|
||||
|
||||
val nameGenerator = SymbolLightField.FieldNameGenerator()
|
||||
|
||||
val forceStatic = symbolWithMembers is KtClassOrObjectSymbol && symbolWithMembers.classKind.isObject
|
||||
val isStatic = symbolWithMembers is KtClassOrObjectSymbol && symbolWithMembers.classKind.isObject
|
||||
fun addPropertyBackingField(propertySymbol: KtPropertySymbol) {
|
||||
createField(
|
||||
declaration = propertySymbol,
|
||||
nameGenerator = nameGenerator,
|
||||
isTopLevel = false,
|
||||
forceStatic = forceStatic,
|
||||
isStatic = isStatic,
|
||||
result = result
|
||||
)
|
||||
}
|
||||
|
||||
+3
-7
@@ -35,8 +35,7 @@ internal class SymbolLightFieldForProperty private constructor(
|
||||
private val fieldName: String,
|
||||
containingClass: SymbolLightClassBase,
|
||||
lightMemberOrigin: LightMemberOrigin?,
|
||||
private val isTopLevel: Boolean,
|
||||
private val forceStatic: Boolean,
|
||||
private val isStatic: Boolean,
|
||||
override val kotlinOrigin: KtCallableDeclaration?,
|
||||
) : SymbolLightField(containingClass, lightMemberOrigin) {
|
||||
internal constructor(
|
||||
@@ -45,15 +44,13 @@ internal class SymbolLightFieldForProperty private constructor(
|
||||
fieldName: String,
|
||||
containingClass: SymbolLightClassBase,
|
||||
lightMemberOrigin: LightMemberOrigin?,
|
||||
isTopLevel: Boolean,
|
||||
forceStatic: Boolean,
|
||||
isStatic: Boolean,
|
||||
) : this(
|
||||
propertySymbolPointer = with(ktAnalysisSession) { propertySymbol.createPointer() },
|
||||
fieldName = fieldName,
|
||||
containingClass = containingClass,
|
||||
lightMemberOrigin = lightMemberOrigin,
|
||||
isTopLevel = isTopLevel,
|
||||
forceStatic = forceStatic,
|
||||
isStatic = isStatic,
|
||||
kotlinOrigin = propertySymbol.sourcePsiSafe<KtCallableDeclaration>(),
|
||||
)
|
||||
|
||||
@@ -120,7 +117,6 @@ internal class SymbolLightFieldForProperty private constructor(
|
||||
}
|
||||
|
||||
PsiModifier.STATIC -> {
|
||||
val isStatic = forceStatic || isTopLevel
|
||||
mapOf(modifier to isStatic)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user