[FIR] setup origin for generated enum functions

This commit is contained in:
Anna Kozlova
2023-04-27 09:38:12 +02:00
committed by teamcity
parent 68b94b07b8
commit 3f6432cdc9
@@ -34,12 +34,16 @@ import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.StandardClassIds
fun FirRegularClassBuilder.generateValuesFunction(
moduleData: FirModuleData, packageFqName: FqName, classFqName: FqName, makeExpect: Boolean = false
moduleData: FirModuleData,
packageFqName: FqName,
classFqName: FqName,
makeExpect: Boolean = false,
origin: FirDeclarationOrigin = FirDeclarationOrigin.Source
) {
val sourceElement = source?.fakeElement(KtFakeSourceElementKind.EnumGeneratedDeclaration)
declarations += buildSimpleFunction {
source = sourceElement
origin = FirDeclarationOrigin.Source
this.origin = origin
this.moduleData = moduleData
returnTypeRef = buildResolvedTypeRef {
source = sourceElement
@@ -67,12 +71,16 @@ fun FirRegularClassBuilder.generateValuesFunction(
}
fun FirRegularClassBuilder.generateValueOfFunction(
moduleData: FirModuleData, packageFqName: FqName, classFqName: FqName, makeExpect: Boolean = false
moduleData: FirModuleData,
packageFqName: FqName,
classFqName: FqName,
makeExpect: Boolean = false,
origin: FirDeclarationOrigin = FirDeclarationOrigin.Source
) {
val sourceElement = source?.fakeElement(KtFakeSourceElementKind.EnumGeneratedDeclaration)
declarations += buildSimpleFunction {
source = sourceElement
origin = FirDeclarationOrigin.Source
this.origin = origin
this.moduleData = moduleData
returnTypeRef = buildResolvedTypeRef {
source = sourceElement
@@ -92,7 +100,7 @@ fun FirRegularClassBuilder.generateValueOfFunction(
valueParameters += buildValueParameter vp@{
source = sourceElement
containingFunctionSymbol = this@buildSimpleFunction.symbol
origin = FirDeclarationOrigin.Source
this.origin = origin
this.moduleData = moduleData
returnTypeRef = buildResolvedTypeRef {
source = sourceElement
@@ -119,14 +127,18 @@ fun FirRegularClassBuilder.generateValueOfFunction(
}
fun FirRegularClassBuilder.generateEntriesGetter(
moduleData: FirModuleData, packageFqName: FqName, classFqName: FqName, makeExpect: Boolean = false
moduleData: FirModuleData,
packageFqName: FqName,
classFqName: FqName,
makeExpect: Boolean = false,
origin: FirDeclarationOrigin = FirDeclarationOrigin.Source
) {
val sourceElement = source?.fakeElement(KtFakeSourceElementKind.EnumGeneratedDeclaration)
declarations += buildProperty {
source = sourceElement
isVar = false
isLocal = false
origin = FirDeclarationOrigin.Source
this.origin = origin
this.moduleData = moduleData
returnTypeRef = buildResolvedTypeRef {
source = sourceElement
@@ -147,7 +159,7 @@ fun FirRegularClassBuilder.generateEntriesGetter(
resolvePhase = this@generateEntriesGetter.resolvePhase
getter = FirDefaultPropertyGetter(
sourceElement?.fakeElement(KtFakeSourceElementKind.EnumGeneratedDeclaration),
moduleData, FirDeclarationOrigin.Source, returnTypeRef.copyWithNewSourceKind(KtFakeSourceElementKind.EnumGeneratedDeclaration),
moduleData, origin, returnTypeRef.copyWithNewSourceKind(KtFakeSourceElementKind.EnumGeneratedDeclaration),
Visibilities.Public, symbol
).apply {
this.status = createStatus(this@generateEntriesGetter.status).apply {