Skip to content

Commit 48dab7a

Browse files
committed
Point plugin-generated properties to their origin
1 parent 5210863 commit 48dab7a

File tree

5 files changed

+16
-8
lines changed

5 files changed

+16
-8
lines changed

plugins/kotlin-dataframe/src/org/jetbrains/kotlinx/dataframe/plugin/extensions/CallShapeAttribute.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.jetbrains.kotlinx.dataframe.plugin.extensions
22

3+
import org.jetbrains.kotlin.KtSourceElement
34
import org.jetbrains.kotlinx.dataframe.plugin.extensions.impl.SchemaProperty
45
import org.jetbrains.kotlin.fir.declarations.FirClass
56
import org.jetbrains.kotlin.fir.declarations.FirDeclarationDataKey
@@ -9,7 +10,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
910
sealed interface CallShapeData {
1011
class Schema(val columns: List<SchemaProperty>) : CallShapeData
1112

12-
class Scope(val columns: List<SchemaProperty>) : CallShapeData
13+
class Scope(val columns: List<SchemaProperty>, val source: KtSourceElement?) : CallShapeData
1314

1415
class RefinedType(val scopes: List<FirRegularClassSymbol>) : CallShapeData
1516
}

plugins/kotlin-dataframe/src/org/jetbrains/kotlinx/dataframe/plugin/extensions/FunctionCallTransformer.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -556,7 +556,7 @@ class FunctionCallTransformer(
556556
}
557557
}
558558
schema.callShapeData = CallShapeData.Schema(properties)
559-
scope.callShapeData = CallShapeData.Scope(properties)
559+
scope.callShapeData = CallShapeData.Scope(properties, call.calleeReference.source)
560560
val schemaApi = DataSchemaApi(schema, scope)
561561
dataSchemaApis.add(schemaApi)
562562
return schemaApi

plugins/kotlin-dataframe/src/org/jetbrains/kotlinx/dataframe/plugin/extensions/TokenGenerator.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,16 @@ class TokenGenerator(session: FirSession) : FirDeclarationGenerationExtension(se
5959
val callableId = CallableId(k.classId, propertyName.identifier)
6060
val dataRowExtension = generateExtensionProperty(
6161
callableId = callableId,
62-
symbol = k,
6362
receiverType = ConeClassLikeTypeImpl(
6463
ConeClassLikeLookupTagImpl(Names.DATA_ROW_CLASS_ID),
6564
typeArguments = arrayOf(schemaProperty.marker),
6665
isNullable = false
6766
),
6867
propertyName = propertyName,
6968
returnTypeRef = schemaProperty.dataRowReturnType.toFirResolvedTypeRef(),
70-
effectiveVisibility = EffectiveVisibility.Local
69+
symbol = k,
70+
effectiveVisibility = EffectiveVisibility.Local,
71+
source = callShapeData.source
7172
)
7273

7374
val columnContainerExtension = generateExtensionProperty(
@@ -80,7 +81,8 @@ class TokenGenerator(session: FirSession) : FirDeclarationGenerationExtension(se
8081
propertyName = propertyName,
8182
returnTypeRef = schemaProperty.columnContainerReturnType.toFirResolvedTypeRef(),
8283
symbol = k,
83-
effectiveVisibility = EffectiveVisibility.Local
84+
effectiveVisibility = EffectiveVisibility.Local,
85+
source = callShapeData.source
8486
)
8587
propertyName.identifier to listOf(dataRowExtension, columnContainerExtension)
8688
}

plugins/kotlin-dataframe/src/org/jetbrains/kotlinx/dataframe/plugin/extensions/TopLevelExtensionsGenerator.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,8 @@ class TopLevelExtensionsGenerator(session: FirSession) : FirDeclarationGeneratio
120120
isNullable = false
121121
),
122122
propertyName = PropertyName.of(name, columnName?.let { PropertyName.buildAnnotation(it) }),
123-
returnTypeRef = resolvedReturnTypeRef
123+
returnTypeRef = resolvedReturnTypeRef,
124+
source = owner.source
124125
)
125126

126127
val columnReturnType = when {
@@ -142,7 +143,8 @@ class TopLevelExtensionsGenerator(session: FirSession) : FirDeclarationGeneratio
142143
isNullable = false
143144
),
144145
propertyName = PropertyName.of(name, columnName?.let { PropertyName.buildAnnotation(it) }),
145-
returnTypeRef = columnReturnType
146+
returnTypeRef = columnReturnType,
147+
source = owner.source
146148
)
147149
listOf(rowExtension.symbol, columnsContainerExtension.symbol)
148150
}

plugins/kotlin-dataframe/src/org/jetbrains/kotlinx/dataframe/plugin/utils/firFactories.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.jetbrains.kotlinx.dataframe.plugin.utils
22

3+
import org.jetbrains.kotlin.KtSourceElement
34
import org.jetbrains.kotlin.descriptors.EffectiveVisibility
45
import org.jetbrains.kotlin.descriptors.Modality
56
import org.jetbrains.kotlin.descriptors.Visibilities
@@ -30,10 +31,12 @@ internal fun FirDeclarationGenerationExtension.generateExtensionProperty(
3031
propertyName: PropertyName,
3132
returnTypeRef: FirResolvedTypeRef,
3233
symbol: FirClassSymbol<*>? = null,
33-
effectiveVisibility: EffectiveVisibility = EffectiveVisibility.Public
34+
effectiveVisibility: EffectiveVisibility = EffectiveVisibility.Public,
35+
source: KtSourceElement?
3436
): FirProperty {
3537
val firPropertySymbol = FirPropertySymbol(callableId)
3638
return buildProperty {
39+
this.source = source
3740
propertyName.columnNameAnnotation?.let {
3841
annotations += it
3942
}

0 commit comments

Comments
 (0)