Skip to content

Commit e64af35

Browse files
Automated commit of generated code
1 parent cd8d59e commit e64af35

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/codeGen/ReplCodeGeneratorImpl.kt

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,18 @@ import org.jetbrains.kotlinx.dataframe.codeGen.Marker
1515
import org.jetbrains.kotlinx.dataframe.codeGen.MarkerVisibility
1616
import org.jetbrains.kotlinx.dataframe.codeGen.MarkersExtractor
1717
import org.jetbrains.kotlinx.dataframe.codeGen.TypeCastGenerator
18+
import org.jetbrains.kotlinx.dataframe.schema.ColumnSchema
1819
import org.jetbrains.kotlinx.dataframe.schema.DataFrameSchema
1920
import kotlin.reflect.KClass
2021
import kotlin.reflect.KProperty
2122
import kotlin.reflect.KType
2223
import kotlin.reflect.KVisibility
2324
import kotlin.reflect.full.findAnnotation
25+
import kotlin.reflect.full.isSubtypeOf
2426
import kotlin.reflect.full.superclasses
2527
import kotlin.reflect.jvm.jvmErasure
28+
import kotlin.reflect.typeOf
29+
import kotlin.time.Instant
2630

2731
internal class ReplCodeGeneratorImpl : ReplCodeGenerator {
2832

@@ -116,9 +120,24 @@ internal class ReplCodeGeneratorImpl : ReplCodeGenerator {
116120
result.newMarkers.forEach {
117121
generatedMarkers[it.name] = it
118122
}
119-
return result.code
123+
return if (schema.hasExperimentalInstant()) {
124+
result.code.copy(
125+
declarations = "@file:OptIn(kotlin.time.ExperimentalTime::class)\n" + result.code.declarations,
126+
)
127+
} else {
128+
result.code
129+
}
120130
}
121131

132+
private fun DataFrameSchema.hasExperimentalInstant(): Boolean =
133+
columns.values.any { column ->
134+
when (column) {
135+
is ColumnSchema.Frame -> column.schema.hasExperimentalInstant()
136+
is ColumnSchema.Group -> column.schema.hasExperimentalInstant()
137+
is ColumnSchema.Value -> column.type.isSubtypeOf(typeOf<Instant?>())
138+
}
139+
}
140+
122141
override fun process(markerClass: KClass<*>): Code {
123142
val newMarkers = mutableListOf<Marker>()
124143

0 commit comments

Comments
 (0)