Skip to content

Commit da34aaa

Browse files
authored
Merge pull request #744 from Kotlin/master-updates
Update Kotlin version for compiler plugin
2 parents a44a9ce + 5931d15 commit da34aaa

File tree

23 files changed

+79
-261
lines changed

23 files changed

+79
-261
lines changed

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/io/readJson.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ internal fun fromJsonListAnyColumns(
215215
v.longOrNull != null -> collector.add(v.long)
216216
v.doubleOrNull != null -> collector.add(v.double)
217217
v.floatOrNull != null -> collector.add(v.float)
218+
else -> error("Malformed JSON element ${v::class}: $v")
218219
}
219220
}
220221

@@ -527,6 +528,7 @@ internal fun fromJsonListArrayAndValueColumns(
527528
v.longOrNull != null -> collector.add(v.long)
528529
v.doubleOrNull != null -> collector.add(v.double)
529530
v.floatOrNull != null -> collector.add(v.float)
531+
else -> error("Malformed JSON element ${v::class}: $v")
530532
}
531533
}
532534

core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/CsvTests.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import org.jetbrains.kotlinx.dataframe.testResource
2222
import org.junit.Test
2323
import java.io.File
2424
import java.io.StringWriter
25+
import java.net.URL
2526
import java.util.Locale
2627
import kotlin.reflect.KClass
2728
import kotlin.reflect.typeOf
@@ -249,6 +250,14 @@ class CsvTests {
249250
producedFile.delete()
250251
}
251252

253+
@Test
254+
fun `check integrity of example data`() {
255+
val df = DataFrame.readCSV("../data/jetbrains_repositories.csv")
256+
df.columnNames() shouldBe listOf("full_name", "html_url", "stargazers_count", "topics", "watchers")
257+
df.columnTypes() shouldBe listOf(typeOf<String>(), typeOf<URL>(), typeOf<Int>(), typeOf<String>(), typeOf<Int>())
258+
df shouldBe DataFrame.readCSV("../data/jetbrains repositories.csv")
259+
}
260+
252261
companion object {
253262
private val simpleCsv = testCsv("testCSV")
254263
private val csvWithFrenchLocale = testCsv("testCSVwithFrenchLocale")

core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/json.kt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package org.jetbrains.kotlinx.dataframe.io
22

33
import io.kotest.assertions.throwables.shouldNotThrowAny
4+
import io.kotest.assertions.throwables.shouldThrow
45
import io.kotest.matchers.collections.shouldBeIn
56
import io.kotest.matchers.shouldBe
67
import io.kotest.matchers.string.shouldContain
78
import io.kotest.matchers.string.shouldNotContain
89
import io.kotest.matchers.types.instanceOf
910
import io.kotest.matchers.types.shouldBeInstanceOf
11+
import kotlinx.serialization.json.Json
12+
import kotlinx.serialization.json.JsonElement
1013
import kotlinx.serialization.json.boolean
1114
import kotlinx.serialization.json.int
1215
import kotlinx.serialization.json.jsonArray
@@ -42,6 +45,7 @@ import org.jetbrains.kotlinx.dataframe.impl.io.SerializationKeys.METADATA
4245
import org.jetbrains.kotlinx.dataframe.impl.io.SerializationKeys.NCOL
4346
import org.jetbrains.kotlinx.dataframe.impl.io.SerializationKeys.NROW
4447
import org.jetbrains.kotlinx.dataframe.impl.io.SerializationKeys.VERSION
48+
import org.jetbrains.kotlinx.dataframe.impl.io.readJson
4549
import org.jetbrains.kotlinx.dataframe.impl.nothingType
4650
import org.jetbrains.kotlinx.dataframe.io.JSON.TypeClashTactic.ANY_COLUMNS
4751
import org.jetbrains.kotlinx.dataframe.io.JSON.TypeClashTactic.ARRAY_AND_VALUE_COLUMNS
@@ -1077,4 +1081,13 @@ class JsonTests {
10771081
val json = df.toJson()
10781082
DataFrame.readJsonStr(json) shouldBe df
10791083
}
1084+
1085+
@Test
1086+
fun `parse invalid literal`() {
1087+
// https://github.com/Kotlin/kotlinx.serialization/issues/2511
1088+
val json = Json.decodeFromString<JsonElement>("""[jetbrains, jetbrains-youtrack, youtrack, youtrack-api]""")
1089+
shouldThrow<IllegalStateException> {
1090+
readJson(json, emptyList())
1091+
}
1092+
}
10801093
}

plugins/dataframe-gradle-plugin/src/test/kotlin/org/jetbrains/dataframe/gradle/DataFrameReadTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class DataFrameReadTest {
3333
fun `file with invalid json`() {
3434
val temp = Files.createTempDirectory("").toFile()
3535
val invalidJson = File(temp, "test.json").also { it.writeText(".") }
36-
shouldNotThrowAny {
36+
shouldThrow<IllegalStateException> {
3737
DataFrame.read(invalidJson)
3838
}
3939
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
kotlin.code.style=official
2-
kotlinVersion=2.0.20-dev-2972
2+
kotlinVersion=2.0.20-dev-5379

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ import org.jetbrains.kotlin.fir.extensions.predicateBasedProvider
1616
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
1717
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
1818
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
19+
import org.jetbrains.kotlin.fir.toFirResolvedTypeRef
1920
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
2021
import org.jetbrains.kotlin.fir.types.ConeTypeProjection
2122
import org.jetbrains.kotlin.fir.types.classId
2223
import org.jetbrains.kotlin.fir.types.coneType
2324
import org.jetbrains.kotlin.fir.types.constructType
2425
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
25-
import org.jetbrains.kotlin.fir.types.toFirResolvedTypeRef
2626
import org.jetbrains.kotlin.fir.types.toSymbol
2727
import org.jetbrains.kotlin.fir.types.toTypeProjection
2828
import org.jetbrains.kotlin.name.CallableId

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
@@ -52,6 +52,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
5252
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
5353
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
5454
import org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol
55+
import org.jetbrains.kotlin.fir.toFirResolvedTypeRef
5556
import org.jetbrains.kotlin.fir.types.ConeKotlinTypeProjection
5657
import org.jetbrains.kotlin.fir.types.ConeStarProjection
5758
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
@@ -61,7 +62,6 @@ import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
6162
import org.jetbrains.kotlin.fir.types.impl.FirImplicitAnyTypeRef
6263
import org.jetbrains.kotlin.fir.types.resolvedType
6364
import org.jetbrains.kotlin.fir.types.toClassSymbol
64-
import org.jetbrains.kotlin.fir.types.toFirResolvedTypeRef
6565
import org.jetbrains.kotlin.fir.types.toRegularClassSymbol
6666
import org.jetbrains.kotlin.fir.visitors.FirTransformer
6767
import org.jetbrains.kotlin.name.CallableId

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
2525
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
2626
import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol
2727
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
28+
import org.jetbrains.kotlin.fir.toFirResolvedTypeRef
2829
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
2930
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
3031
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
31-
import org.jetbrains.kotlin.fir.types.toFirResolvedTypeRef
3232
import org.jetbrains.kotlin.name.CallableId
3333
import org.jetbrains.kotlin.name.Name
3434
import org.jetbrains.kotlin.name.SpecialNames

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLookupTagWithFixedSymbol
1717
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
1818
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol
1919
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
20+
import org.jetbrains.kotlin.fir.toFirResolvedTypeRef
2021
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
2122
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
22-
import org.jetbrains.kotlin.fir.types.toFirResolvedTypeRef
2323
import org.jetbrains.kotlin.name.CallableId
2424
import org.jetbrains.kotlin.name.Name
2525
import org.jetbrains.kotlinx.dataframe.plugin.extensions.DataFramePlugin

plugins/kotlin-dataframe/testData/box/diff.fir.ir.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ FILE fqName:org.jetbrains.kotlinx.dataframe fileName:/diff.kt
5050
BLOCK_BODY
5151
VAR name:df type:org.jetbrains.kotlinx.dataframe.DataFrame<*> [val]
5252
CALL 'public final fun readDelimStr (text: kotlin.String, colTypes: kotlin.collections.Map<kotlin.String, org.jetbrains.kotlinx.dataframe.io.ColType>, skipLines: kotlin.Int, readLines: kotlin.Int?): org.jetbrains.kotlinx.dataframe.DataFrame<*> declared in org.jetbrains.kotlinx.dataframe.io' type=org.jetbrains.kotlinx.dataframe.DataFrame<*> origin=null
53-
$receiver: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Companion modality:FINAL visibility:public [companion] superTypes:[kotlin.Any]' type=org.jetbrains.kotlinx.dataframe.DataFrame.Companion
53+
$receiver: GET_OBJECT 'CLASS OBJECT name:Companion modality:FINAL visibility:public [companion] superTypes:[kotlin.Any]' type=org.jetbrains.kotlinx.dataframe.DataFrame.Companion
5454
text: CALL 'public final fun trimIndent (): kotlin.String declared in kotlin.text' type=kotlin.String origin=null
5555
$receiver: CONST String type=kotlin.String value="\n char,level,race,charclass,zone,guild,timestamp\n 59425,1,Orc,Rogue,Orgrimmar,165,01/01/08 00:02:04\n 65494,9,Orc,Hunter,Durotar,-1,01/01/08 00:02:04\n "
5656
VAR name:df1 type:org.jetbrains.kotlinx.dataframe.DataFrame<org.jetbrains.kotlinx.dataframe.ActivePlayer> [val]

plugins/kotlin-dataframe/testData/box/explodeDataFrame.fir.ir.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ FILE fqName:org.jetbrains.kotlinx.dataframe fileName:/explodeDataFrame.kt
55
CALL 'public final fun let <T, R> (block: kotlin.Function1<T of kotlin.let, R of kotlin.let>): R of kotlin.let declared in kotlin' type=org.jetbrains.kotlinx.dataframe.DataFrame<org.jetbrains.kotlinx.dataframe.box.<anonymous>.ReadJson_01> origin=null
66
<T>: org.jetbrains.kotlinx.dataframe.DataFrame.Companion
77
<R>: org.jetbrains.kotlinx.dataframe.DataFrame<org.jetbrains.kotlinx.dataframe.box.<anonymous>.ReadJson_01>
8-
$receiver: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Companion modality:FINAL visibility:public [companion] superTypes:[kotlin.Any]' type=org.jetbrains.kotlinx.dataframe.DataFrame.Companion
8+
$receiver: GET_OBJECT 'CLASS OBJECT name:Companion modality:FINAL visibility:public [companion] superTypes:[kotlin.Any]' type=org.jetbrains.kotlinx.dataframe.DataFrame.Companion
99
block: FUN_EXPR type=kotlin.Function1<org.jetbrains.kotlinx.dataframe.DataFrame.Companion, org.jetbrains.kotlinx.dataframe.DataFrame<org.jetbrains.kotlinx.dataframe.box.<anonymous>.ReadJson_01>> origin=LAMBDA
1010
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:org.jetbrains.kotlinx.dataframe.DataFrame.Companion) returnType:org.jetbrains.kotlinx.dataframe.DataFrame<org.jetbrains.kotlinx.dataframe.box.<anonymous>.ReadJson_01>
1111
VALUE_PARAMETER name:it index:0 type:org.jetbrains.kotlinx.dataframe.DataFrame.Companion

plugins/kotlin-dataframe/testData/box/flexibleReturnType.fir.ir.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ FILE fqName:org.jetbrains.kotlinx.dataframe fileName:/flexibleReturnType.kt
2828
BLOCK_BODY
2929
VAR name:df type:org.jetbrains.kotlinx.dataframe.DataFrame<*> [val]
3030
CALL 'public final fun readDelimStr (text: kotlin.String, colTypes: kotlin.collections.Map<kotlin.String, org.jetbrains.kotlinx.dataframe.io.ColType>, skipLines: kotlin.Int, readLines: kotlin.Int?): org.jetbrains.kotlinx.dataframe.DataFrame<*> declared in org.jetbrains.kotlinx.dataframe.io' type=org.jetbrains.kotlinx.dataframe.DataFrame<*> origin=null
31-
$receiver: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Companion modality:FINAL visibility:public [companion] superTypes:[kotlin.Any]' type=org.jetbrains.kotlinx.dataframe.DataFrame.Companion
31+
$receiver: GET_OBJECT 'CLASS OBJECT name:Companion modality:FINAL visibility:public [companion] superTypes:[kotlin.Any]' type=org.jetbrains.kotlinx.dataframe.DataFrame.Companion
3232
text: CALL 'public final fun trimIndent (): kotlin.String declared in kotlin.text' type=kotlin.String origin=null
3333
$receiver: CONST String type=kotlin.String value="\n char,level,race,charclass,zone,guild,timestamp\n 59425,1,Orc,Rogue,Orgrimmar,165,01/01/08 00:02:04\n 65494,9,Orc,Hunter,Durotar,-1,01/01/08 00:02:04\n "
3434
VAR name:df1 type:org.jetbrains.kotlinx.dataframe.DataFrame<org.jetbrains.kotlinx.dataframe.ActivePlayer> [val]
@@ -499,7 +499,7 @@ FILE fqName:org.jetbrains.kotlinx.dataframe fileName:/flexibleReturnType.kt
499499
CONST String type=kotlin.String value="OK"
500500
FUN name:diff visibility:public modality:FINAL <T, V> ($receiver:org.jetbrains.kotlinx.dataframe.DataRow<T of org.jetbrains.kotlinx.dataframe.diff>, unit:java.time.temporal.ChronoUnit, expression:@[ExtensionFunctionType] kotlin.Function2<org.jetbrains.kotlinx.dataframe.DataRow<T of org.jetbrains.kotlinx.dataframe.diff>, @[ParameterName(name = "it")] org.jetbrains.kotlinx.dataframe.DataRow<T of org.jetbrains.kotlinx.dataframe.diff>, V of org.jetbrains.kotlinx.dataframe.diff>) returnType:kotlin.Long?
501501
annotations:
502-
OptIn(markerClass = [CLASS_REFERENCE 'CLASS IR_EXTERNAL_DECLARATION_STUB ANNOTATION_CLASS name:ExperimentalTypeInference modality:OPEN visibility:public superTypes:[kotlin.Annotation]' type=kotlin.reflect.KClass<kotlin.experimental.ExperimentalTypeInference>])
502+
OptIn(markerClass = [CLASS_REFERENCE 'CLASS ANNOTATION_CLASS name:ExperimentalTypeInference modality:OPEN visibility:public superTypes:[kotlin.Annotation]' type=kotlin.reflect.KClass<kotlin.experimental.ExperimentalTypeInference>])
503503
OverloadResolutionByLambdaReturnType
504504
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
505505
TYPE_PARAMETER name:V index:1 variance: superTypes:[java.time.temporal.Temporal] reified:false

plugins/kotlin-dataframe/testData/box/join.fir.ir.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ FILE fqName:org.jetbrains.kotlinx.dataframe fileName:/join.kt
55
CALL 'public final fun let <T, R> (block: kotlin.Function1<T of kotlin.let, R of kotlin.let>): R of kotlin.let declared in kotlin' type=org.jetbrains.kotlinx.dataframe.DataFrame<org.jetbrains.kotlinx.dataframe.box.<anonymous>.ReadJson_01> origin=null
66
<T>: org.jetbrains.kotlinx.dataframe.DataFrame.Companion
77
<R>: org.jetbrains.kotlinx.dataframe.DataFrame<org.jetbrains.kotlinx.dataframe.box.<anonymous>.ReadJson_01>
8-
$receiver: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Companion modality:FINAL visibility:public [companion] superTypes:[kotlin.Any]' type=org.jetbrains.kotlinx.dataframe.DataFrame.Companion
8+
$receiver: GET_OBJECT 'CLASS OBJECT name:Companion modality:FINAL visibility:public [companion] superTypes:[kotlin.Any]' type=org.jetbrains.kotlinx.dataframe.DataFrame.Companion
99
block: FUN_EXPR type=kotlin.Function1<org.jetbrains.kotlinx.dataframe.DataFrame.Companion, org.jetbrains.kotlinx.dataframe.DataFrame<org.jetbrains.kotlinx.dataframe.box.<anonymous>.ReadJson_01>> origin=LAMBDA
1010
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:org.jetbrains.kotlinx.dataframe.DataFrame.Companion) returnType:org.jetbrains.kotlinx.dataframe.DataFrame<org.jetbrains.kotlinx.dataframe.box.<anonymous>.ReadJson_01>
1111
VALUE_PARAMETER name:it index:0 type:org.jetbrains.kotlinx.dataframe.DataFrame.Companion

plugins/kotlin-dataframe/testData/box/platformType.fir.ir.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ FILE fqName:org.jetbrains.kotlinx.dataframe fileName:/platformType.kt
5454
BLOCK_BODY
5555
VAR name:df type:org.jetbrains.kotlinx.dataframe.DataFrame<*> [val]
5656
CALL 'public final fun read (path: kotlin.String, header: kotlin.collections.List<kotlin.String>): org.jetbrains.kotlinx.dataframe.DataFrame<*> declared in org.jetbrains.kotlinx.dataframe.io' type=org.jetbrains.kotlinx.dataframe.DataFrame<*> origin=null
57-
$receiver: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Companion modality:FINAL visibility:public [companion] superTypes:[kotlin.Any]' type=org.jetbrains.kotlinx.dataframe.DataFrame.Companion
57+
$receiver: GET_OBJECT 'CLASS OBJECT name:Companion modality:FINAL visibility:public [companion] superTypes:[kotlin.Any]' type=org.jetbrains.kotlinx.dataframe.DataFrame.Companion
5858
path: CONST String type=kotlin.String value=""
5959
VAR name:df1 type:org.jetbrains.kotlinx.dataframe.DataFrame<org.jetbrains.kotlinx.dataframe.ActivePlayer> [val]
6060
CALL 'public final fun cast <T> (): org.jetbrains.kotlinx.dataframe.DataFrame<T of org.jetbrains.kotlinx.dataframe.api.cast> declared in org.jetbrains.kotlinx.dataframe.api' type=org.jetbrains.kotlinx.dataframe.DataFrame<org.jetbrains.kotlinx.dataframe.ActivePlayer> origin=null

0 commit comments

Comments
 (0)