Skip to content

Commit 67cdf05

Browse files
committed
fix some formatting issues
1 parent 791072c commit 67cdf05

File tree

6 files changed

+79
-89
lines changed

6 files changed

+79
-89
lines changed

core/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/explainer/PluginCallback.kt

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ object PluginCallback {
8484
// make copy to avoid concurrent modification exception
8585
val statements = expressionsByStatement.toMap()
8686
when (statements.size) {
87-
0 -> TODO("function doesn't have any dataframe expression")
87+
0 -> error("function doesn't have any dataframe expression")
8888
1 -> {
8989
output += statementOutput(statements.values.single())
9090
}
@@ -221,12 +221,6 @@ private fun convertToHTML(dataframeLike: Any): DataFrameHtmlData {
221221
is AnyCol -> dataframeLike.toDataFrame().toHTML()
222222
is DataRow<*> -> dataframeLike.toDataFrame().toHTML()
223223
is Split<*, *> -> dataframeLike.toDataFrame().toHTML()
224-
// is MoveClause<*, *>-> null
225-
// is RenameClause<*, *> -> null
226-
// is ReplaceClause<*, *> -> null
227-
// is GroupClause<*, *> -> null
228-
// is InsertClause<*> -> null
229-
// is FormatClause<*, *> -> null
230224
else -> throw IllegalArgumentException("Unsupported type: ${dataframeLike::class}")
231225
}
232226
}
@@ -240,12 +234,6 @@ private fun convertToDescription(dataframeLike: Any): String {
240234
is ReducedPivotGroupBy<*> -> "ReducedPivotGroupBy"
241235
is SplitWithTransform<*, *, *> -> "SplitWithTransform"
242236
is Split<*, *> -> "Split"
243-
// is MoveClause<*, *> -> "Move"
244-
// is RenameClause<*, *> -> "Rename"
245-
// is ReplaceClause<*, *> -> "Replace"
246-
// is GroupClause<*, *> -> "Group"
247-
// is InsertClause<*> -> "Insert"
248-
// is FormatClause<*, *> -> "Format"
249237
is Merge<*, *, *> -> "Merge"
250238
is Gather<*, *, *, *> -> "Gather"
251239
is Update<*, *> -> "Update"

core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/explainer/PluginCallback.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ object PluginCallback {
8484
// make copy to avoid concurrent modification exception
8585
val statements = expressionsByStatement.toMap()
8686
when (statements.size) {
87-
0 -> TODO("function doesn't have any dataframe expression")
87+
0 -> error("function doesn't have any dataframe expression")
8888
1 -> {
8989
output += statementOutput(statements.values.single())
9090
}

plugins/expressions-converter/src/org/jetbrains/kotlinx/dataframe/ExplainerIrTransformer.kt

Lines changed: 71 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.jetbrains.kotlinx.dataframe
22

3-
import java.io.File
43
import org.jetbrains.kotlin.backend.common.FileLoweringPass
54
import org.jetbrains.kotlin.backend.common.extensions.FirIncompatiblePluginAPI
65
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
@@ -44,10 +43,13 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
4443
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
4544
import org.jetbrains.kotlin.name.FqName
4645
import org.jetbrains.kotlin.name.Name
46+
import java.io.File
4747

4848
data class ContainingDeclarations(val clazz: IrClass?, val function: IrFunction?, val statementIndex: Int = 0)
4949

50-
class ExplainerIrTransformer(val pluginContext: IrPluginContext) : FileLoweringPass, IrElementTransformer<ContainingDeclarations> {
50+
class ExplainerIrTransformer(
51+
val pluginContext: IrPluginContext
52+
) : FileLoweringPass, IrElementTransformer<ContainingDeclarations> {
5153
lateinit var file: IrFile
5254
lateinit var source: String
5355
override fun lower(irFile: IrFile) {
@@ -70,7 +72,7 @@ class ExplainerIrTransformer(val pluginContext: IrPluginContext) : FileLoweringP
7072
override fun visitBlockBody(body: IrBlockBody, data: ContainingDeclarations): IrBody {
7173
for (i in 0 until body.statements.size) {
7274
@Suppress("UNCHECKED_CAST")
73-
(body.statements.set(i, (body.statements.get(i) as IrElementBase).transform(this, data.copy(statementIndex = i)) as IrStatement))
75+
(body.statements.set(i, (body.statements.get(i) as IrElementBase).transform(this, data.copy(statementIndex = i)) as IrStatement)) // ktlint-disable
7476
}
7577
return body
7678
}
@@ -168,14 +170,14 @@ class ExplainerIrTransformer(val pluginContext: IrPluginContext) : FileLoweringP
168170

169171
val symbol = IrSimpleFunctionSymbolImpl()
170172
val alsoLambda = IrFunctionImpl(
171-
-1,
172-
-1,
173-
IrDeclarationOrigin.LOCAL_FUNCTION_FOR_LAMBDA,
174-
symbol,
175-
Name.special("<anonymous>"),
176-
DescriptorVisibilities.LOCAL,
177-
Modality.FINAL,
178-
pluginContext.irBuiltIns.unitType,
173+
startOffset = -1,
174+
endOffset = -1,
175+
origin = IrDeclarationOrigin.LOCAL_FUNCTION_FOR_LAMBDA,
176+
symbol = symbol,
177+
name = Name.special("<anonymous>"),
178+
visibility = DescriptorVisibilities.LOCAL,
179+
modality = Modality.FINAL,
180+
returnType = pluginContext.irBuiltIns.unitType,
179181
isInline = false,
180182
isExternal = false,
181183
isTailrec = false,
@@ -185,55 +187,58 @@ class ExplainerIrTransformer(val pluginContext: IrPluginContext) : FileLoweringP
185187
isExpect = false
186188
).apply {
187189
valueParameters = buildList {
188-
add(IrValueParameterImpl(
189-
-1,
190-
-1,
191-
IrDeclarationOrigin.DEFINED,
192-
IrValueParameterSymbolImpl(),
193-
Name.identifier("it"),
194-
0,
195-
expression.type,
196-
null,
197-
isCrossinline = false,
198-
isNoinline = false,
199-
isHidden = false,
200-
isAssignable = false
201-
))
190+
add(
191+
IrValueParameterImpl(
192+
startOffset = -1,
193+
endOffset = -1,
194+
origin = IrDeclarationOrigin.DEFINED,
195+
symbol = IrValueParameterSymbolImpl(),
196+
name = Name.identifier("it"),
197+
index = 0,
198+
type = expression.type,
199+
varargElementType = null,
200+
isCrossinline = false,
201+
isNoinline = false,
202+
isHidden = false,
203+
isAssignable = false
204+
)
205+
)
202206
}
203-
val it = expression
204207
val itSymbol = valueParameters[0].symbol
208+
val source = try {
209+
source.substring(expression.startOffset, expression.endOffset)
210+
} catch (e: Exception) {
211+
throw Exception("$expression ${ownerName.asString()} $source", e)
212+
}
213+
val expressionId = expressionId(expression)
214+
val receiverId = receiver?.let { expressionId(it) }
215+
val valueArguments = buildList<IrExpression?> {
216+
add(source.irConstImpl())
217+
add(ownerName.asStringStripSpecialMarkers().irConstImpl())
218+
add(IrGetValueImpl(-1, -1, itSymbol))
219+
add(expressionId.irConstImpl())
220+
add(receiverId.irConstImpl())
221+
add(data.clazz?.fqNameWhenAvailable?.asString().irConstImpl())
222+
add(data.function?.name?.asString().irConstImpl())
223+
add(IrConstImpl.int(-1, -1, pluginContext.irBuiltIns.intType, data.statementIndex))
224+
}
205225
body = pluginContext.irFactory.createBlockBody(-1, -1) {
206-
val doAction = pluginContext.referenceFunctions(FqName("org.jetbrains.kotlinx.dataframe.explainer.PluginCallback.doAction")).single()
207-
statements += IrCallImpl(-1, -1, doAction.owner.returnType, doAction, 0, 8).apply {
208-
val pluginAction =
209-
pluginContext.referenceClass(FqName("org.jetbrains.kotlinx.dataframe.explainer.PluginCallback"))!!
210-
dispatchReceiver = IrGetObjectValueImpl(-1, -1, pluginAction.defaultType, pluginAction)
211-
val source = try {
212-
source.substring(it.startOffset, it.endOffset)
213-
} catch (e: Exception) {
214-
throw Exception("$it ${ownerName.asString()} $source", e)
226+
val callback = FqName("org.jetbrains.kotlinx.dataframe.explainer.PluginCallback.doAction")
227+
val doAction = pluginContext.referenceFunctions(callback).single()
228+
statements += IrCallImpl(
229+
startOffset = -1,
230+
endOffset = -1,
231+
type = doAction.owner.returnType,
232+
symbol = doAction,
233+
typeArgumentsCount = 0,
234+
valueArgumentsCount = valueArguments.size
235+
).apply {
236+
val clazz = FqName("org.jetbrains.kotlinx.dataframe.explainer.PluginCallback")
237+
val plugin = pluginContext.referenceClass(clazz)!!
238+
dispatchReceiver = IrGetObjectValueImpl(-1, -1, plugin.defaultType, plugin)
239+
valueArguments.forEachIndexed { i, argument ->
240+
putValueArgument(i, argument)
215241
}
216-
val expressionId = expressionId(expression)
217-
val receiverId = receiver?.let { expressionId(it) }
218-
putValueArgument(0, IrConstImpl.string(-1, -1, pluginContext.irBuiltIns.stringType, source))
219-
putValueArgument(1, IrConstImpl.string(-1, -1, pluginContext.irBuiltIns.stringType, ownerName.asStringStripSpecialMarkers()))
220-
putValueArgument(2, IrGetValueImpl(-1, -1, itSymbol))
221-
putValueArgument(3, IrConstImpl.string(-1, -1, pluginContext.irBuiltIns.stringType, expressionId))
222-
fun String?.irConstImpl(): IrConstImpl<out String?> {
223-
val nullableString = pluginContext.irBuiltIns.stringType.makeNullable()
224-
val argument = if (this == null) {
225-
IrConstImpl.constNull(-1, -1, nullableString)
226-
} else {
227-
IrConstImpl.string(-1, -1, nullableString, this)
228-
}
229-
return argument
230-
}
231-
232-
val argument = receiverId.irConstImpl()
233-
putValueArgument(4, argument)
234-
putValueArgument(5, data.clazz?.fqNameWhenAvailable?.asString().irConstImpl())
235-
putValueArgument(6, data.function?.name?.asString().irConstImpl())
236-
putValueArgument(7, IrConstImpl.int(-1, -1, pluginContext.irBuiltIns.intType, data.statementIndex))
237242
}
238243
}
239244
}
@@ -250,6 +255,16 @@ class ExplainerIrTransformer(val pluginContext: IrPluginContext) : FileLoweringP
250255
return result
251256
}
252257

258+
private fun String?.irConstImpl(): IrConstImpl<out String?> {
259+
val nullableString = pluginContext.irBuiltIns.stringType.makeNullable()
260+
val argument = if (this == null) {
261+
IrConstImpl.constNull(-1, -1, nullableString)
262+
} else {
263+
IrConstImpl.string(-1, -1, nullableString, this)
264+
}
265+
return argument
266+
}
267+
253268
private fun expressionId(expression: IrExpression): String {
254269
val line = file.fileEntry.getLineNumber(expression.startOffset)
255270
val column = file.fileEntry.getColumnNumber(expression.startOffset)

plugins/expressions-converter/tests/org/jetbrains/kotlinx/dataframe/AbstractExplainerBlackBoxCodegenTest.kt

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,20 @@ import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
44
import org.jetbrains.kotlin.test.TargetBackend
55
import org.jetbrains.kotlin.test.TestJdkKind
66
import org.jetbrains.kotlin.test.backend.BlackBoxCodegenSuppressor
7+
import org.jetbrains.kotlin.test.backend.handlers.IrPrettyKotlinDumpHandler
78
import org.jetbrains.kotlin.test.backend.handlers.IrTextDumpHandler
89
import org.jetbrains.kotlin.test.backend.handlers.IrTreeVerifierHandler
910
import org.jetbrains.kotlin.test.backend.handlers.JvmBoxRunner
1011
import org.jetbrains.kotlin.test.backend.ir.JvmIrBackendFacade
1112
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
12-
import org.jetbrains.kotlin.test.builders.fir2IrStep
13-
import org.jetbrains.kotlin.test.builders.firHandlersStep
13+
import org.jetbrains.kotlin.test.builders.classicFrontendHandlersStep
1414
import org.jetbrains.kotlin.test.builders.irHandlersStep
1515
import org.jetbrains.kotlin.test.builders.jvmArtifactsHandlersStep
16+
import org.jetbrains.kotlin.test.builders.psi2IrStep
1617
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives
17-
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
18-
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirCfgConsistencyHandler
19-
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirCfgDumpHandler
20-
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDiagnosticsHandler
21-
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDumpHandler
22-
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirScopeDumpHandler
18+
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
19+
import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicDiagnosticsHandler
20+
import org.jetbrains.kotlin.test.frontend.classic.handlers.DeclarationsDumpHandler
2321
import org.jetbrains.kotlin.test.model.DependencyKind
2422
import org.jetbrains.kotlin.test.model.FrontendKinds
2523
import org.jetbrains.kotlin.test.model.TestModule
@@ -28,13 +26,6 @@ import org.jetbrains.kotlin.test.services.TestServices
2826
import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator
2927
import org.jetbrains.kotlin.test.services.configuration.JvmEnvironmentConfigurator
3028
import java.io.File
31-
import org.jetbrains.kotlin.test.backend.handlers.IrPrettyKotlinDumpHandler
32-
import org.jetbrains.kotlin.test.builders.classicFrontendHandlersStep
33-
import org.jetbrains.kotlin.test.builders.psi2IrStep
34-
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
35-
import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicDiagnosticsHandler
36-
import org.jetbrains.kotlin.test.frontend.classic.handlers.DeclarationsDumpHandler
37-
3829

3930
open class AbstractExplainerBlackBoxCodegenTest : BaseTestRunner()/*, RunnerWithTargetBackendForTestGeneratorMarker*/ {
4031

@@ -52,7 +43,6 @@ open class AbstractExplainerBlackBoxCodegenTest : BaseTestRunner()/*, RunnerWith
5243
facadeStep(::ClassicFrontendFacade)
5344
commonFirWithPluginFrontendConfiguration()
5445
classicFrontendHandlersStep {
55-
5646
useHandlers(
5747
::ClassicDiagnosticsHandler,
5848
::DeclarationsDumpHandler

plugins/expressions-converter/tests/org/jetbrains/kotlinx/dataframe/commonFirWithPluginFrontendConfiguration.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package org.jetbrains.kotlinx.dataframe
22

33
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
4-
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.ENABLE_PLUGIN_PHASES
5-
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.FIR_DUMP
6-
74

85
fun TestConfigurationBuilder.commonFirWithPluginFrontendConfiguration() {
96

0 commit comments

Comments
 (0)