From 60ab98dde6b6cbef0c9a283a565d6841397d569e Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Tue, 30 Apr 2019 18:29:05 +0300 Subject: [PATCH] Value inference includes arrays --- build.gradle.kts | 2 +- buildSrc/src/main/kotlin/multiplatform-config.gradle.kts | 3 +-- .../src/commonMain/kotlin/hep/dataforge/values/Value.kt | 7 +++++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index e1ac4fcc..518b4eb7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,4 +1,4 @@ -val dataforgeVersion by extra("0.1.2-dev-5") +val dataforgeVersion by extra("0.1.2-dev-6") allprojects { repositories { diff --git a/buildSrc/src/main/kotlin/multiplatform-config.gradle.kts b/buildSrc/src/main/kotlin/multiplatform-config.gradle.kts index b4bd1532..41fa58f4 100644 --- a/buildSrc/src/main/kotlin/multiplatform-config.gradle.kts +++ b/buildSrc/src/main/kotlin/multiplatform-config.gradle.kts @@ -1,3 +1,4 @@ +import gradle.kotlin.dsl.plugins._e2353938d1a2b15c365d69a8d533ab12.js import org.gradle.kotlin.dsl.* plugins { @@ -11,8 +12,6 @@ kotlin { compilations.all { kotlinOptions { jvmTarget = "1.8" - // This was used in kmath-koma, but probably if we need it better to apply it for all modules - freeCompilerArgs = listOf("-progressive") } } } diff --git a/dataforge-meta/src/commonMain/kotlin/hep/dataforge/values/Value.kt b/dataforge-meta/src/commonMain/kotlin/hep/dataforge/values/Value.kt index 2f92bd60..c6e63645 100644 --- a/dataforge-meta/src/commonMain/kotlin/hep/dataforge/values/Value.kt +++ b/dataforge-meta/src/commonMain/kotlin/hep/dataforge/values/Value.kt @@ -57,6 +57,13 @@ interface Value { false -> False is Number -> NumberValue(value) is Iterable<*> -> ListValue(value.map { of(it) }) + is DoubleArray -> ListValue(value.map { NumberValue(it) }) + is IntArray -> ListValue(value.map { NumberValue(it) }) + is FloatArray -> ListValue(value.map { NumberValue(it) }) + is ShortArray -> ListValue(value.map { NumberValue(it) }) + is LongArray -> ListValue(value.map { NumberValue(it) }) + is ByteArray -> ListValue(value.map { NumberValue(it) }) + is Array<*> -> ListValue(value.map { of(it) }) is Enum<*> -> EnumValue(value) is CharSequence -> StringValue(value.toString()) else -> throw IllegalArgumentException("Unrecognized type of the object (${value::class}) converted to Value")