[FIR] setup origin for generated enum functions
This commit is contained in:
@@ -34,12 +34,16 @@ import org.jetbrains.kotlin.name.FqName
|
|||||||
import org.jetbrains.kotlin.name.StandardClassIds
|
import org.jetbrains.kotlin.name.StandardClassIds
|
||||||
|
|
||||||
fun FirRegularClassBuilder.generateValuesFunction(
|
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)
|
val sourceElement = source?.fakeElement(KtFakeSourceElementKind.EnumGeneratedDeclaration)
|
||||||
declarations += buildSimpleFunction {
|
declarations += buildSimpleFunction {
|
||||||
source = sourceElement
|
source = sourceElement
|
||||||
origin = FirDeclarationOrigin.Source
|
this.origin = origin
|
||||||
this.moduleData = moduleData
|
this.moduleData = moduleData
|
||||||
returnTypeRef = buildResolvedTypeRef {
|
returnTypeRef = buildResolvedTypeRef {
|
||||||
source = sourceElement
|
source = sourceElement
|
||||||
@@ -67,12 +71,16 @@ fun FirRegularClassBuilder.generateValuesFunction(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun FirRegularClassBuilder.generateValueOfFunction(
|
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)
|
val sourceElement = source?.fakeElement(KtFakeSourceElementKind.EnumGeneratedDeclaration)
|
||||||
declarations += buildSimpleFunction {
|
declarations += buildSimpleFunction {
|
||||||
source = sourceElement
|
source = sourceElement
|
||||||
origin = FirDeclarationOrigin.Source
|
this.origin = origin
|
||||||
this.moduleData = moduleData
|
this.moduleData = moduleData
|
||||||
returnTypeRef = buildResolvedTypeRef {
|
returnTypeRef = buildResolvedTypeRef {
|
||||||
source = sourceElement
|
source = sourceElement
|
||||||
@@ -92,7 +100,7 @@ fun FirRegularClassBuilder.generateValueOfFunction(
|
|||||||
valueParameters += buildValueParameter vp@{
|
valueParameters += buildValueParameter vp@{
|
||||||
source = sourceElement
|
source = sourceElement
|
||||||
containingFunctionSymbol = this@buildSimpleFunction.symbol
|
containingFunctionSymbol = this@buildSimpleFunction.symbol
|
||||||
origin = FirDeclarationOrigin.Source
|
this.origin = origin
|
||||||
this.moduleData = moduleData
|
this.moduleData = moduleData
|
||||||
returnTypeRef = buildResolvedTypeRef {
|
returnTypeRef = buildResolvedTypeRef {
|
||||||
source = sourceElement
|
source = sourceElement
|
||||||
@@ -119,14 +127,18 @@ fun FirRegularClassBuilder.generateValueOfFunction(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun FirRegularClassBuilder.generateEntriesGetter(
|
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)
|
val sourceElement = source?.fakeElement(KtFakeSourceElementKind.EnumGeneratedDeclaration)
|
||||||
declarations += buildProperty {
|
declarations += buildProperty {
|
||||||
source = sourceElement
|
source = sourceElement
|
||||||
isVar = false
|
isVar = false
|
||||||
isLocal = false
|
isLocal = false
|
||||||
origin = FirDeclarationOrigin.Source
|
this.origin = origin
|
||||||
this.moduleData = moduleData
|
this.moduleData = moduleData
|
||||||
returnTypeRef = buildResolvedTypeRef {
|
returnTypeRef = buildResolvedTypeRef {
|
||||||
source = sourceElement
|
source = sourceElement
|
||||||
@@ -147,7 +159,7 @@ fun FirRegularClassBuilder.generateEntriesGetter(
|
|||||||
resolvePhase = this@generateEntriesGetter.resolvePhase
|
resolvePhase = this@generateEntriesGetter.resolvePhase
|
||||||
getter = FirDefaultPropertyGetter(
|
getter = FirDefaultPropertyGetter(
|
||||||
sourceElement?.fakeElement(KtFakeSourceElementKind.EnumGeneratedDeclaration),
|
sourceElement?.fakeElement(KtFakeSourceElementKind.EnumGeneratedDeclaration),
|
||||||
moduleData, FirDeclarationOrigin.Source, returnTypeRef.copyWithNewSourceKind(KtFakeSourceElementKind.EnumGeneratedDeclaration),
|
moduleData, origin, returnTypeRef.copyWithNewSourceKind(KtFakeSourceElementKind.EnumGeneratedDeclaration),
|
||||||
Visibilities.Public, symbol
|
Visibilities.Public, symbol
|
||||||
).apply {
|
).apply {
|
||||||
this.status = createStatus(this@generateEntriesGetter.status).apply {
|
this.status = createStatus(this@generateEntriesGetter.status).apply {
|
||||||
|
|||||||
Reference in New Issue
Block a user