From 0d1380c2325a6871f1cfa2cc802abbab6e412028 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Sun, 25 Jul 2021 14:23:23 +0200 Subject: [PATCH] Fix warnings in generator modules --- generators/builtins/arrays.kt | 2 +- generators/builtins/common.kt | 10 ++++---- generators/builtins/primitives.kt | 2 +- generators/builtins/unsignedTypes.kt | 17 +++++++------ .../kotlin/generators/tests/GenerateTests.kt | 2 -- .../src/generators/GenerateStandardLib.kt | 7 +++--- .../builders/OneToManyMappingsBuilder.kt | 4 +-- .../oneToOne/builders/MappingsBuilder.kt | 4 +-- .../ranges/builders/LetterPatternBuilder.kt | 2 +- .../kotlin-stdlib-gen/src/templates/Arrays.kt | 6 ++--- .../src/templates/Mapping.kt | 2 ++ .../kotlin-stdlib-gen/src/templates/Util.kt | 12 +++++++++ .../src/templates/dsl/MemberBuilder.kt | 1 + .../src/templates/dsl/Templates.kt | 2 +- .../src/templates/dsl/Writers.kt | 25 ++++++++++--------- 15 files changed, 57 insertions(+), 41 deletions(-) create mode 100644 libraries/tools/kotlin-stdlib-gen/src/templates/Util.kt diff --git a/generators/builtins/arrays.kt b/generators/builtins/arrays.kt index be0b093830f..b125bdc7b12 100644 --- a/generators/builtins/arrays.kt +++ b/generators/builtins/arrays.kt @@ -25,7 +25,7 @@ class GenerateArrays(out: PrintWriter) : BuiltInsSourceGenerator(out) { override fun generateBody() { for (kind in PrimitiveType.values()) { - val typeLower = kind.name.toLowerCase() + val typeLower = kind.name.lowercase() val s = kind.capitalized val defaultValue = when (kind) { PrimitiveType.CHAR -> "null char (`\\u0000')" diff --git a/generators/builtins/common.kt b/generators/builtins/common.kt index 16a2f3ccc56..12f8725d78d 100644 --- a/generators/builtins/common.kt +++ b/generators/builtins/common.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.generators.builtins -import org.jetbrains.kotlin.generators.builtins.ProgressionKind.* +import org.jetbrains.kotlin.generators.builtins.ProgressionKind.CHAR import java.io.PrintWriter enum class PrimitiveType(val byteSize: Int) { @@ -18,7 +18,7 @@ enum class PrimitiveType(val byteSize: Int) { DOUBLE(8), BOOLEAN(1); - val capitalized: String get() = name.toLowerCase().capitalize() + val capitalized: String get() = name.lowercase().replaceFirstChar(Char::uppercase) val bitSize = byteSize * 8 val isFloatingPoint: Boolean get() = this in floatingPoint @@ -38,7 +38,7 @@ enum class UnsignedType { UINT, ULONG; - val capitalized: String get() = name.substring(0, 2) + name.substring(2).toLowerCase() + val capitalized: String get() = name.substring(0, 2) + name.substring(2).lowercase() val asSigned: PrimitiveType = PrimitiveType.valueOf(name.substring(1)) val byteSize = (1 shl ordinal) @@ -51,7 +51,7 @@ enum class ProgressionKind { INT, LONG; - val capitalized: String get() = name.toLowerCase().capitalize() + val capitalized: String get() = name.lowercase().replaceFirstChar(Char::uppercase) } fun progressionIncrementType(kind: ProgressionKind) = when (kind) { @@ -77,4 +77,4 @@ fun PrintWriter.printDoc(documentation: String, indent: String) { docLines.forEach { this.println("$indent * $it") } this.println("$indent */") } -} \ No newline at end of file +} diff --git a/generators/builtins/primitives.kt b/generators/builtins/primitives.kt index 82096714896..4b597b590a8 100644 --- a/generators/builtins/primitives.kt +++ b/generators/builtins/primitives.kt @@ -195,7 +195,7 @@ class GeneratePrimitives(out: PrintWriter) : BuiltInsSourceGenerator(out) { private fun generateDoc(kind: PrimitiveType) { out.println("/**") out.println(" * Represents a ${typeDescriptions[kind]}.") - out.println(" * On the JVM, non-nullable values of this type are represented as values of the primitive type `${kind.name.toLowerCase()}`.") + out.println(" * On the JVM, non-nullable values of this type are represented as values of the primitive type `${kind.name.lowercase()}`.") out.println(" */") } diff --git a/generators/builtins/unsignedTypes.kt b/generators/builtins/unsignedTypes.kt index 0364d5fddd0..103957cc20e 100644 --- a/generators/builtins/unsignedTypes.kt +++ b/generators/builtins/unsignedTypes.kt @@ -5,14 +5,15 @@ package org.jetbrains.kotlin.generators.builtins.unsigned - -import org.jetbrains.kotlin.generators.builtins.* +import org.jetbrains.kotlin.generators.builtins.PrimitiveType +import org.jetbrains.kotlin.generators.builtins.UnsignedType +import org.jetbrains.kotlin.generators.builtins.convert import org.jetbrains.kotlin.generators.builtins.generateBuiltIns.BuiltInsSourceGenerator import org.jetbrains.kotlin.generators.builtins.numbers.GeneratePrimitives +import org.jetbrains.kotlin.generators.builtins.printDoc import java.io.File import java.io.PrintWriter - fun generateUnsignedTypes( targetDir: File, generate: (File, (PrintWriter) -> BuiltInsSourceGenerator) -> Unit @@ -134,7 +135,7 @@ class UnsignedTypeGenerator(val type: UnsignedType, out: PrintWriter) : BuiltIns if (otherType == type) out.print("override ") out.print("inline operator fun compareTo(other: ${otherType.capitalized}): Int = ") if (otherType == type && maxByDomainCapacity(type, UnsignedType.UINT) == type) { - out.println("${className.toLowerCase()}Compare(this.data, other.data)") + out.println("${className.lowercase()}Compare(this.data, other.data)") } else { if (maxOf(type, otherType) < UnsignedType.UINT) { out.println("this.toInt().compareTo(other.toInt())") @@ -165,8 +166,8 @@ class UnsignedTypeGenerator(val type: UnsignedType, out: PrintWriter) : BuiltIns if (type == otherType && type == returnType) { when (name) { "plus", "minus", "times" -> out.println("$className(this.data.$name(other.data))") - "div" -> out.println("${type.capitalized.toLowerCase()}Divide(this, other)") - "rem" -> out.println("${type.capitalized.toLowerCase()}Remainder(this, other)") + "div" -> out.println("${type.capitalized.lowercase()}Divide(this, other)") + "rem" -> out.println("${type.capitalized.lowercase()}Remainder(this, other)") else -> error(name) } } else { @@ -348,7 +349,7 @@ class UnsignedTypeGenerator(val type: UnsignedType, out: PrintWriter) : BuiltIns out.print(" public inline fun to$otherName(): $otherName = ") when (type) { UnsignedType.UINT, UnsignedType.ULONG -> - out.println(if (otherType == PrimitiveType.FLOAT) "this.toDouble().toFloat()" else className.toLowerCase() + "ToDouble(data)") + out.println(if (otherType == PrimitiveType.FLOAT) "this.toDouble().toFloat()" else className.lowercase() + "ToDouble(data)") else -> out.println("this.toInt().to$otherName()") } @@ -466,7 +467,7 @@ class UnsignedIteratorsGenerator(out: PrintWriter) : BuiltInsSourceGenerator(out class UnsignedArrayGenerator(val type: UnsignedType, out: PrintWriter) : BuiltInsSourceGenerator(out) { val elementType = type.capitalized val arrayType = elementType + "Array" - val arrayTypeOf = elementType.toLowerCase() + "ArrayOf" + val arrayTypeOf = elementType.lowercase() + "ArrayOf" val storageElementType = type.asSigned.capitalized val storageArrayType = storageElementType + "Array" override fun generateBody() { diff --git a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt index de7e7117998..41530fda1ea 100644 --- a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt +++ b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt @@ -44,8 +44,6 @@ import org.jetbrains.kotlinx.serialization.AbstractSerializationPluginDiagnostic fun main(args: Array) { System.setProperty("java.awt.headless", "true") generateTestGroupSuite(args) { - val excludedFirTestdataPattern = "^(.+)\\.fir\\.kts?\$" - testGroup("compiler/incremental-compilation-impl/test", "jps-plugin/testData") { fun incrementalJvmTestData(targetBackend: TargetBackend): TestGroup.TestClass.() -> Unit = { model("incremental/pureKotlin", extension = null, recursive = false, targetBackend = targetBackend) diff --git a/libraries/tools/kotlin-stdlib-gen/src/generators/GenerateStandardLib.kt b/libraries/tools/kotlin-stdlib-gen/src/generators/GenerateStandardLib.kt index 05f01fcc248..081b6e25978 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/generators/GenerateStandardLib.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/generators/GenerateStandardLib.kt @@ -35,7 +35,8 @@ fun main(args: Array) { ComparableOps ) - COPYRIGHT_NOTICE = readCopyrightNoticeFromProfile { Thread.currentThread().contextClassLoader.getResourceAsStream("apache.xml").reader() } + COPYRIGHT_NOTICE = + readCopyrightNoticeFromProfile { Thread.currentThread().contextClassLoader.getResourceAsStream("apache.xml")!!.reader() } val targetBaseDirs = mutableMapOf() @@ -62,7 +63,7 @@ fun main(args: Array) { val platformSuffix = when (val platform = target.platform) { Platform.Common -> "" Platform.Native -> if (target.backend == Backend.Wasm) "Wasm" else "Native" - else -> platform.name.toLowerCase().capitalize() + else -> platform.name.lowercase().capitalize() } targetDir.resolve("_${source.name.capitalize()}$platformSuffix.kt") } @@ -71,5 +72,5 @@ fun main(args: Array) { fun File.resolveExistingDir(subpath: String) = resolve(subpath).also { it.requireExistingDir() } fun File.requireExistingDir() { - require(isDirectory) { "Directory $this doesn't exist"} + require(isDirectory) { "Directory $this doesn't exist" } } diff --git a/libraries/tools/kotlin-stdlib-gen/src/generators/unicode/mappings/oneToMany/builders/OneToManyMappingsBuilder.kt b/libraries/tools/kotlin-stdlib-gen/src/generators/unicode/mappings/oneToMany/builders/OneToManyMappingsBuilder.kt index 883e99b1bd5..3699044371b 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/generators/unicode/mappings/oneToMany/builders/OneToManyMappingsBuilder.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/generators/unicode/mappings/oneToMany/builders/OneToManyMappingsBuilder.kt @@ -19,7 +19,7 @@ internal abstract class OneToManyMappingsBuilder(bmpUnicodeDataLines: List? abstract fun UnicodeDataLine.mapping(): String -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-stdlib-gen/src/generators/unicode/mappings/oneToOne/builders/MappingsBuilder.kt b/libraries/tools/kotlin-stdlib-gen/src/generators/unicode/mappings/oneToOne/builders/MappingsBuilder.kt index 4da44f18b2e..fefc0b9c658 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/generators/unicode/mappings/oneToOne/builders/MappingsBuilder.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/generators/unicode/mappings/oneToOne/builders/MappingsBuilder.kt @@ -24,7 +24,7 @@ internal abstract class MappingsBuilder { val equivalent = mappingEquivalent(line)?.hexToInt() ?: return val mapping = equivalent - charCode - check((charCode > Char.MAX_VALUE.toInt()) == (equivalent > Char.MAX_VALUE.toInt())) { "Handle when equivalent mapping is out of BMP." } + check((charCode > Char.MAX_VALUE.code) == (equivalent > Char.MAX_VALUE.code)) { "Handle when equivalent mapping is out of BMP." } if (patterns.isEmpty()) { patterns.add(createPattern(charCode, line.categoryCode, mapping)) @@ -69,4 +69,4 @@ internal abstract class MappingsBuilder { private fun createPattern(charCode: Int, categoryCode: String, mapping: Int): MappingPattern { return EqualDistanceMappingPattern.from(charCode, categoryCode, mapping) } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-stdlib-gen/src/generators/unicode/ranges/builders/LetterPatternBuilder.kt b/libraries/tools/kotlin-stdlib-gen/src/generators/unicode/ranges/builders/LetterPatternBuilder.kt index 72d8ff1c144..93053df41c8 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/generators/unicode/ranges/builders/LetterPatternBuilder.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/generators/unicode/ranges/builders/LetterPatternBuilder.kt @@ -73,7 +73,7 @@ private fun periodPatternCategory(categoryIds: Array): Int { return pattern } -private fun gapPatternCategory(start: Int, end: Int, gaps: List): Int { +private fun gapPatternCategory(start: Int, @Suppress("UNUSED_PARAMETER") end: Int, gaps: List): Int { var pattern = 0 var shift = 2 for (i in gaps.indices) { diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt index 490d34a85e4..50132608fd1 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt @@ -1,4 +1,4 @@ -/* + /* * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -680,7 +680,7 @@ object ArrayOps : TemplateGroupBase() { if (primitive == null) "return this.asDynamic().concat(arrayOf(element))" else - "return plus(${primitive.name.toLowerCase()}ArrayOf(element))" + "return plus(${primitive.name.lowercase()}ArrayOf(element))" } } on(Platform.Native) { @@ -946,7 +946,7 @@ object ArrayOps : TemplateGroupBase() { val f_copyOfRangeJvmImpl = fn("copyOfRangeImpl(fromIndex: Int, toIndex: Int)") { include(InvariantArraysOfObjects, ArraysOfPrimitives) platforms(Platform.JVM) - } builderWith { primitive -> + } builderWith { _ -> since("1.3") visibility("internal") annotation("@PublishedApi") diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Mapping.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Mapping.kt index 97c2dbd9d47..b342fb066ab 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Mapping.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Mapping.kt @@ -409,6 +409,7 @@ object Mapping : TemplateGroupBase() { when (containerFamily) { Iterables -> include(Iterables, Sequences, ArraysOfObjects, ArraysOfPrimitives, ArraysOfUnsigned, CharSequences) Sequences -> include(Sequences, Iterables, ArraysOfObjects) + else -> {} } } builder { inlineOnly() @@ -447,6 +448,7 @@ object Mapping : TemplateGroupBase() { when (containerFamily) { Iterables -> include(Iterables, Sequences, ArraysOfObjects, ArraysOfPrimitives, ArraysOfUnsigned, CharSequences) Sequences -> include(Sequences, Iterables, ArraysOfObjects) + else -> {} } } builder { inlineOnly() diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Util.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Util.kt new file mode 100644 index 00000000000..eb19b50b34b --- /dev/null +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Util.kt @@ -0,0 +1,12 @@ +/* + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package templates + +fun String.capitalize(): String = + replaceFirstChar(Char::uppercaseChar) + +fun String.decapitalize(): String = + replaceFirstChar(Char::lowercaseChar) diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/MemberBuilder.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/MemberBuilder.kt index 98f5d0ba2e7..c7ca282d7cc 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/MemberBuilder.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/MemberBuilder.kt @@ -361,6 +361,7 @@ class MemberBuilder( when (inline) { Inline.Only -> builder.append("@kotlin.internal.InlineOnly").append('\n') Inline.YesSuppressWarning -> suppressions.add("NOTHING_TO_INLINE") + else -> {} } if (suppressions.isNotEmpty()) { diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Templates.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Templates.kt index 3958875bda9..1e5467911b6 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Templates.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Templates.kt @@ -213,7 +213,7 @@ class PairPrimitiveMemberDefinition : MemberTemplateDefinition primitive = p1 } + builderWith { (p1, _) -> primitive = p1 } } } diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Writers.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Writers.kt index b7dff48f0df..45b6604401d 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Writers.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/dsl/Writers.kt @@ -75,40 +75,41 @@ fun List.writeTo(file: File, targetedSource: TargetedSourceFile) println("Generating file: $file") file.parentFile.mkdirs() FileWriter(file).use { writer -> - writer.appendln(COPYRIGHT_NOTICE) + writer.appendLine(COPYRIGHT_NOTICE) when (target.platform) { Platform.Common, Platform.JVM -> { if (sourceFile.multifile) { - writer.appendln("@file:kotlin.jvm.JvmMultifileClass") + writer.appendLine("@file:kotlin.jvm.JvmMultifileClass") } - writer.appendln("@file:kotlin.jvm.JvmName(\"${sourceFile.jvmClassName}\")") + writer.appendLine("@file:kotlin.jvm.JvmName(\"${sourceFile.jvmClassName}\")") sourceFile.jvmPackageName?.let { - writer.appendln("@file:kotlin.jvm.JvmPackageName(\"$it\")") + writer.appendLine("@file:kotlin.jvm.JvmPackageName(\"$it\")") } - writer.appendln() + writer.appendLine() } + else -> {} } writer.append("package ${sourceFile.packageName ?: "kotlin"}\n\n") writer.append("${autoGeneratedWarning("GenerateStandardLib.kt")}\n\n") if (target.platform == Platform.JS) { - writer.appendln("import kotlin.js.*") + writer.appendLine("import kotlin.js.*") if (sourceFile == SourceFile.Arrays) { - writer.appendln("import primitiveArrayConcat") - writer.appendln("import withType") + writer.appendLine("import primitiveArrayConcat") + writer.appendLine("import withType") } } if (target.platform == Platform.Common) { - writer.appendln("import kotlin.random.*") + writer.appendLine("import kotlin.random.*") } if (sourceFile.packageName == "kotlin.collections") { - writer.appendln("import kotlin.ranges.contains") - writer.appendln("import kotlin.ranges.reversed") + writer.appendLine("import kotlin.ranges.contains") + writer.appendLine("import kotlin.ranges.reversed") } - writer.appendln() + writer.appendLine() for (f in this) { f.build(writer)