@@ -7,7 +7,6 @@ import org.jetbrains.kotlinx.dataframe.ColumnsContainer
77import org.jetbrains.kotlinx.dataframe.ColumnsSelector
88import org.jetbrains.kotlinx.dataframe.DataColumn
99import org.jetbrains.kotlinx.dataframe.DataFrame
10- import org.jetbrains.kotlinx.dataframe.DataRow
1110import org.jetbrains.kotlinx.dataframe.Selector
1211import org.jetbrains.kotlinx.dataframe.api.AddDataRow
1312import org.jetbrains.kotlinx.dataframe.api.AddExpression
@@ -43,9 +42,9 @@ import org.jetbrains.kotlinx.dataframe.index
4342import org.jetbrains.kotlinx.dataframe.nrow
4443import org.jetbrains.kotlinx.dataframe.util.CREATE_COLUMN
4544import org.jetbrains.kotlinx.dataframe.util.GUESS_COLUMN_TYPE
46- import kotlin.reflect.KClass
4745import kotlin.reflect.KType
4846import kotlin.reflect.full.isSubtypeOf
47+ import kotlin.reflect.full.starProjectedType
4948import kotlin.reflect.full.withNullability
5049import kotlin.reflect.typeOf
5150
@@ -262,10 +261,10 @@ internal fun <T> createColumnGuessingType(
262261 return { value -> if (value != null && value is Number ) converter(value) else value }
263262 }
264263
265- return when (type.classifier!! as KClass < * > ) {
264+ return when (type.classifier?.starProjectedType ) {
266265 // guessValueType can only return DataRow if all values are `AnyRow?`
267266 // or allColsMakesColGroup == true, and all values are `AnyCol`
268- DataRow :: class ->
267+ typeOf< AnyRow >() ->
269268 if (allColsMakesColGroup && values.firstOrNull() is AnyCol ) {
270269 val df = dataFrameOf(values as Iterable <AnyCol >)
271270 DataColumn .createColumnGroup(name, df)
@@ -276,7 +275,7 @@ internal fun <T> createColumnGuessingType(
276275 DataColumn .createColumnGroup(name, df)
277276 }.asDataColumn().cast()
278277
279- DataFrame :: class -> {
278+ typeOf< AnyFrame >() -> {
280279 val frames = values.map {
281280 when (it) {
282281 null -> DataFrame .empty()
@@ -289,7 +288,7 @@ internal fun <T> createColumnGuessingType(
289288 DataColumn .createFrameColumn(name, frames).asDataColumn().cast()
290289 }
291290
292- List :: class -> {
291+ typeOf< List < * >>() -> {
293292 val nullable = type.isMarkedNullable
294293 var isListOfRows: Boolean? = null
295294 val subType = type.arguments.first().type!! // List<T> -> T
0 commit comments