From d98f101945d867cbb1034ef647ad1dfded699309 Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Thu, 13 Nov 2025 12:02:46 +0800 Subject: [PATCH] fix: improve numeric type determination logic in Generator --- .../plugin/generator/extension/Generator.kt | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/generator/extension/Generator.kt b/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/generator/extension/Generator.kt index 55f84ff..7a224ec 100644 --- a/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/generator/extension/Generator.kt +++ b/gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/generator/extension/Generator.kt @@ -56,12 +56,17 @@ internal fun Any.createTypedValue(autoConversion: Boolean): Pair, Stri trimmed.isNumeric() -> if (!trimmed.contains(".")) { val longValue = trimmed.toLongOrNull() - when { - longValue == null -> String::class - longValue > Int.MAX_VALUE -> Long::class - else -> Int::class + when (longValue) { + null -> String::class + in Int.MIN_VALUE..Int.MAX_VALUE -> Int::class + else -> Long::class } - } else Double::class + } else { + val doubleValue = trimmed.toDoubleOrNull() + if (doubleValue == null || doubleValue.isInfinite()) + String::class + else Double::class + } else -> String::class } val finalValue = when (typeSpec) {