From 40d1849f3302dc2c11cd49314cd07f90c69ed3a7 Mon Sep 17 00:00:00 2001 From: Abduqodiri Qurbonzoda Date: Thu, 8 Apr 2021 02:28:57 +0300 Subject: [PATCH] Migrate compiler, idea and others to new case conversion api --- .../tests/CodegenTestsOnAndroidGenerator.kt | 4 ++-- .../android/tests/UnitTestFileWriter.kt | 4 ++-- .../ChangeBoxingMethodTransformer.kt | 2 +- .../jetbrains/kotlin/cli/common/Properties.kt | 4 ++-- .../jetbrains/kotlin/cli/js/K2JsIrCompiler.kt | 2 +- .../compilerRunner/CompilerOutputParser.kt | 2 +- .../kotlin/daemon/common/ClientUtils.kt | 2 +- .../kotlin/daemon/common/DaemonParams.kt | 2 +- .../kotlin/daemon/LazyClasspathWatcher.kt | 2 +- .../fir/checkers/generator/Generator.kt | 4 ++-- .../ErrorListDiagnosticListRenderer.kt | 2 +- .../jetbrains/kotlin/fir/dump/HtmlFirDump.kt | 2 +- .../fir/lightTree/fir/modifier/Modifier.kt | 2 +- .../fir/modifier/TypeParameterModifier.kt | 4 ++-- .../fir/modifier/TypeProjectionModifier.kt | 2 +- .../kotlin/fir/lightTree/TotalKotlinTest.kt | 2 +- .../RawFirBuilderTotalKotlinTestCase.kt | 6 ++--- .../context/AbstractBuilderConfigurator.kt | 2 +- .../context/AbstractFieldConfigurator.kt | 2 +- .../fir/tree/generator/model/ElementUtils.kt | 6 ++--- .../tree/generator/printer/implementation.kt | 6 ++--- .../fir/tree/generator/printer/utils.kt | 6 ++--- .../load/kotlin/PackagePartClassUtils.kt | 4 ++-- .../kotlin/diagnostics/rendering/Renderers.kt | 2 +- .../diagnostics/KotlinSuppressCache.kt | 6 ++--- .../IncrementalJvmCompilerRunner.kt | 4 ++-- .../kotlin/ir/util/dumpKotlinLike.kt | 4 ++-- .../jetbrains/kotlin/parsing/ParseUtils.kt | 2 +- .../psi/stubs/impl/KotlinStubBaseImpl.kt | 2 +- .../unsafeCastFunctionOnDynamicType.kt | 2 +- .../impl/ModuleStructureExtractorImpl.kt | 2 +- .../kotlin/checkers/BaseDiagnosticsTest.kt | 2 +- .../diagnostics/notLinked/dfa/neg/36.kt | 16 ++++++------- .../spec/utils/TestsJsonMapGenerator.kt | 2 +- .../spec/utils/TestsStatisticCollector.kt | 2 +- .../kotlin/spec/utils/parsers/CommonParser.kt | 2 +- .../spec/utils/parsers/TestInfoParser.kt | 4 ++-- .../utils/spec/HtmlSpecSentencesMapBuilder.kt | 2 +- .../GenerateSteppedRangesCodegenTestData.kt | 4 ++-- .../MultiModuleJavaAnalysisCustomTest.kt | 8 +++---- .../kotlin/config/LanguageVersionSettings.kt | 2 +- .../compiler/visualizer/FirVisualizer.kt | 2 +- .../org/jetbrains/kotlin/name/NameUtils.kt | 4 ++-- .../functions/FunctionInvokeDescriptor.kt | 2 +- .../renderer/DescriptorRendererOptionsImpl.kt | 2 +- .../kotlin/utils/capitalizeDecapitalize.kt | 14 +++++------ generators/evaluate/GenerateOperationsMap.kt | 2 +- .../generators/model/SimpleTestMethodModel.kt | 4 ++-- .../generators/util/TestGeneratorUtil.kt | 2 +- .../protobuf/GenerateProtoBufCompare.kt | 12 +++++----- .../completion/KDocCompletionContributor.kt | 2 +- ...riableOrParameterNameWithTypeCompletion.kt | 2 +- .../inStringLiterals/StringTemplateDot.kt | 2 +- .../ProjectConfigurationCollector.kt | 4 ++-- .../AbstractFirLazyDeclarationResolveTest.kt | 2 +- .../fir/generator/HLDiagnosticConverter.kt | 2 +- .../KtFirCollectionLiteralReference.kt | 2 +- .../KotlinBuildScriptManipulator.kt | 2 +- .../idea/statistics/KotlinGradleFUSLogger.kt | 4 ++-- ...TestRunConfigurationAndHighlightingTest.kt | 2 +- .../idea/compiler/KotlinCompilerManager.kt | 2 +- .../wizard/NewProjectWizardModuleBuilder.kt | 2 +- .../ModulesEditorToolbarDecorator.kt | 4 ++-- .../test/org/jetbrains/eval4j/test/util.kt | 3 ++- .../kotlin/idea/debugger/debuggerUtil.kt | 2 +- .../evaluate/KotlinEvaluatorBuilder.kt | 2 +- .../kotlin/idea/debugger/DebuggerUtils.kt | 2 +- .../kapt/idea/KaptModelBuilderService.kt | 4 ++-- idea/kotlin-gradle-tooling/src/utils.kt | 2 +- ...stractPerformanceCompletionHandlerTests.kt | 2 +- ...piciousCollectionReassignmentInspection.kt | 2 +- ...unctionTypeParameterToReceiverIntention.kt | 2 +- ...unctionTypeReceiverToParameterIntention.kt | 2 +- .../ConvertPropertyToFunctionIntention.kt | 2 +- .../MoveMemberToCompanionObjectIntention.kt | 2 +- .../kotlin/idea/quickfix/AddArrayOfTypeFix.kt | 2 +- .../createClass/CreateClassFromUsageFix.kt | 4 ++-- .../KotlinChangeSignatureUsageProcessor.kt | 2 +- .../inline/AbstractKotlinInlineDialog.kt | 2 +- .../KotlinInplacePropertyIntroducer.kt | 23 ++++++++++--------- .../idea/refactoring/kotlinRefactoringUtil.kt | 2 +- ...MoveFilesWithDeclarationsViewDescriptor.kt | 2 +- .../moveDeclarations/moveConflictUtils.kt | 9 ++++---- .../pullUp/pullUpConflictsUtils.kt | 12 +++++----- .../pushDown/KotlinPushDownHandler.kt | 3 ++- .../pushDown/KotlinPushDownProcessor.kt | 2 +- .../pushDown/pushDownConflictsUtils.kt | 6 ++--- .../rename/RenameKotlinPropertyProcessor.kt | 2 +- .../refactoring/rename/renameConflictUtils.kt | 4 ++-- .../AbstractConfigureKotlinInTempDirTest.kt | 2 +- .../idea/quickfix/AbstractQuickFixTest.kt | 2 +- .../AbstractResolveModeComparisonTest.kt | 2 +- .../script/AbstractScriptConfigurationTest.kt | 2 +- .../jetbrains/kotlin/j2k/ast/Expressions.kt | 2 +- .../jps/build/AbstractIncrementalJpsTest.kt | 2 +- .../dependeciestxt/MppJpsIncTestsGenerator.kt | 4 ++-- .../src/org/jetbrains/kotlin/js/dce/util.kt | 2 +- .../kotlin/js/config/ErrorTolerancePolicy.kt | 2 +- .../tests/generateTestDataForReservedWords.kt | 5 +++- .../intrinsic/functions/factories/ArrayFIF.kt | 2 +- .../example/ExampleAnnotationProcessor.kt | 5 +++- ...makeExternalDependenciesResolverOptions.kt | 2 +- .../dependencies/impl/resolverNamedOptions.kt | 2 +- .../org.jetbrains.kotlin.tools.tests/utils.kt | 2 +- .../kotlin/mainKts/impl/directories.kt | 2 +- .../org/jetbrains/kotlin/kotlinp/printers.kt | 4 ++-- .../core/entity/SettingValidator.kt | 8 +++++-- .../core/entity/settings/SettingType.kt | 6 ++--- .../kotlin/tools/projectWizard/core/errors.kt | 2 +- .../service/KotlinVersionProviderService.kt | 8 +++---- .../ir/buildsystem/DependencyIR.kt | 2 +- .../ir/buildsystem/SourcesetIR.kt | 2 +- .../NativeTargetConfigurator.kt | 2 +- .../kotlin/tools/projectWizard/mpp/mpp.kt | 2 +- .../plugins/buildSystem/BuildSystemPlugin.kt | 2 +- .../plugins/kotlin/ModulesToIRsConverter.kt | 2 +- .../plugins/templates/TemplatesPlugin.kt | 2 +- .../settings/buildsystem/Module.kt | 4 ++-- .../templates/KtorServerTemplate.kt | 4 ++-- .../tools/projectWizard/templates/Template.kt | 2 +- .../commonizer/cli/BooleanOptionType.kt | 2 +- .../commonizer/cli/StatsTypeOptionType.kt | 2 +- .../kotlin/commonizer/cli/nativeTasks.kt | 4 ++-- .../kotlin/nj2k/ConversionsRunner.kt | 2 +- .../BoxedTypeOperationsConversion.kt | 4 ++-- .../nj2k/conversions/LiteralConversion.kt | 4 ++-- .../res/AndroidLayoutXmlFileManager.kt | 2 +- .../generators/AllOpenMemberGenerator.kt | 2 +- .../incrementalProcessorDiscovery.kt | 2 +- .../base/incremental/incrementalProcessors.kt | 2 +- .../kapt3-base/test/JavaKaptContextTest.kt | 3 ++- .../kapt3/kapt3-base/test/KaptPathsTest.kt | 2 +- plugins/kapt3/kapt3-cli/src/KaptCli.kt | 2 +- .../kapt3/test/AbstractKotlinKapt3Test.kt | 4 ++-- .../kotlin/kapt3/test/java9TestUtils.kt | 2 +- .../idea/KaptGradleProjectImportHandler.kt | 2 +- .../compiler/impl/KJvmReplCompleter.kt | 2 +- .../kotlin/wasm/ir/convertors/WasmIrToText.kt | 8 +++---- 138 files changed, 239 insertions(+), 224 deletions(-) diff --git a/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/CodegenTestsOnAndroidGenerator.kt b/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/CodegenTestsOnAndroidGenerator.kt index 28053f61c0f..e17276083c8 100644 --- a/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/CodegenTestsOnAndroidGenerator.kt +++ b/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/CodegenTestsOnAndroidGenerator.kt @@ -262,7 +262,7 @@ class CodegenTestsOnAndroidGenerator private constructor(private val pathManager private fun getFlavorUnitTestFolder(flavourName: String): String { return pathManager.srcFolderInAndroidTmpFolder + - "/androidTest${flavourName.capitalize()}/java/" + + "/androidTest${flavourName.replaceFirstChar(Char::uppercaseChar)}/java/" + testClassPackage.replace(".", "/") + "/" } @@ -379,7 +379,7 @@ class CodegenTestsOnAndroidGenerator private constructor(private val pathManager configure(backend) testInfo = KotlinTestInfo( "org.jetbrains.kotlin.android.tests.AndroidRunner", - "test${testDataFile.nameWithoutExtension.capitalize()}", + "test${testDataFile.nameWithoutExtension.replaceFirstChar(Char::uppercaseChar)}", emptySet() ) }.build(testDataFile.path) diff --git a/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/UnitTestFileWriter.kt b/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/UnitTestFileWriter.kt index e30dd1adc31..fccdda8c7a7 100644 --- a/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/UnitTestFileWriter.kt +++ b/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/UnitTestFileWriter.kt @@ -27,7 +27,7 @@ class UnitTestFileWriter( } fun generate() { - FileWriter(File(flavourFolder, flavourName.capitalize() + ".java").also { it.parentFile.mkdirs() }).use { suite -> + FileWriter(File(flavourFolder, flavourName.replaceFirstChar(Char::uppercaseChar) + ".java").also { it.parentFile.mkdirs() }).use { suite -> val p = Printer(suite) p.println( """package ${CodegenTestsOnAndroidGenerator.testClassPackage}; @@ -35,7 +35,7 @@ class UnitTestFileWriter( |import ${CodegenTestsOnAndroidGenerator.baseTestClassPackage}.${CodegenTestsOnAndroidGenerator.baseTestClassName}; | |/* This class is generated by ${CodegenTestsOnAndroidGenerator.generatorName}. DO NOT MODIFY MANUALLY */ - |public class ${flavourName.capitalize()} extends ${CodegenTestsOnAndroidGenerator.baseTestClassName} { + |public class ${flavourName.replaceFirstChar(Char::uppercaseChar)} extends ${CodegenTestsOnAndroidGenerator.baseTestClassName} { | """.trimMargin() ) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/ChangeBoxingMethodTransformer.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/ChangeBoxingMethodTransformer.kt index 2fb81f52c08..7114d05c759 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/ChangeBoxingMethodTransformer.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/ChangeBoxingMethodTransformer.kt @@ -28,7 +28,7 @@ object ChangeBoxingMethodTransformer : MethodTransformer() { val map = hashMapOf() for (primitiveType in JvmPrimitiveType.values()) { val name = primitiveType.wrapperFqName.topLevelClassInternalName() - map[name] = "box${primitiveType.javaKeywordName.capitalize(Locale.US)}" + map[name] = "box${primitiveType.javaKeywordName.replaceFirstChar(Char::uppercaseChar)}" } wrapperToInternalBoxing = map } diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/Properties.kt b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/Properties.kt index 050a0fa0bcf..4739a731335 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/Properties.kt +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/Properties.kt @@ -63,9 +63,9 @@ enum class CompilerSystemProperties(val property: String) { } val isWindows: Boolean - get() = CompilerSystemProperties.OS_NAME.value!!.toLowerCase(Locale.ENGLISH).startsWith("windows") + get() = CompilerSystemProperties.OS_NAME.value!!.lowercase().startsWith("windows") -fun String?.toBooleanLenient(): Boolean? = when (this?.toLowerCase()) { +fun String?.toBooleanLenient(): Boolean? = when (this?.lowercase()) { null -> false in listOf("", "yes", "true", "on", "y") -> true in listOf("no", "false", "off", "n") -> false diff --git a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt index 0964e480aba..9e4f33858ec 100644 --- a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt +++ b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt @@ -432,7 +432,7 @@ class K2JsIrCompiler : CLICompiler() { fun DceRuntimeDiagnostic.Companion.resolve( value: String?, messageCollector: MessageCollector -): DceRuntimeDiagnostic? = when (value?.toLowerCase()) { +): DceRuntimeDiagnostic? = when (value?.lowercase()) { DCE_RUNTIME_DIAGNOSTIC_LOG -> DceRuntimeDiagnostic.LOG DCE_RUNTIME_DIAGNOSTIC_EXCEPTION -> DceRuntimeDiagnostic.EXCEPTION null -> null diff --git a/compiler/compiler-runner/src/org/jetbrains/kotlin/compilerRunner/CompilerOutputParser.kt b/compiler/compiler-runner/src/org/jetbrains/kotlin/compilerRunner/CompilerOutputParser.kt index 1cbdd931c35..b130be5cdd7 100644 --- a/compiler/compiler-runner/src/org/jetbrains/kotlin/compilerRunner/CompilerOutputParser.kt +++ b/compiler/compiler-runner/src/org/jetbrains/kotlin/compilerRunner/CompilerOutputParser.kt @@ -125,7 +125,7 @@ object CompilerOutputParser { // We're directly inside the root tag: return } - val qNameLowerCase = qName.toLowerCase(Locale.US) + val qNameLowerCase = qName.lowercase() var category: CompilerMessageSeverity? = CATEGORIES[qNameLowerCase] if (category == null) { messageCollector.report(ERROR, "Unknown compiler message tag: $qName") diff --git a/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/ClientUtils.kt b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/ClientUtils.kt index d5dc62c89b1..467d781964a 100644 --- a/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/ClientUtils.kt +++ b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/ClientUtils.kt @@ -107,7 +107,7 @@ private inline fun tryConnectToDaemon(port: Int, report: (DaemonReportCategory, private const val validFlagFileKeywordChars = "abcdefghijklmnopqrstuvwxyz0123456789-_" fun makeAutodeletingFlagFile(keyword: String = "compiler-client", baseDir: File? = null): File { - val prefix = "kotlin-${keyword.filter { validFlagFileKeywordChars.contains(it.toLowerCase()) }}-" + val prefix = "kotlin-${keyword.filter { validFlagFileKeywordChars.contains(it.lowercaseChar()) }}-" val flagFile = if (baseDir?.isDirectory == true) Files.createTempFile(baseDir.toPath(), prefix, "-is-running").toFile() else diff --git a/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/DaemonParams.kt b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/DaemonParams.kt index 0afa4443ca8..e271b975fa1 100644 --- a/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/DaemonParams.kt +++ b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/DaemonParams.kt @@ -352,7 +352,7 @@ private val humanizedMemorySizeRegex = "(\\d+)([kmg]?)".toRegex() private fun String.memToBytes(): Long? = humanizedMemorySizeRegex - .matchEntire(this.trim().toLowerCase()) + .matchEntire(this.trim().lowercase()) ?.groups?.let { match -> match[1]?.value?.let { it.toLong() * diff --git a/compiler/daemon/src/org/jetbrains/kotlin/daemon/LazyClasspathWatcher.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/LazyClasspathWatcher.kt index 1ecfc80b3f8..165d3b1e7bd 100644 --- a/compiler/daemon/src/org/jetbrains/kotlin/daemon/LazyClasspathWatcher.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/LazyClasspathWatcher.kt @@ -114,7 +114,7 @@ class LazyClasspathWatcher(classpath: Iterable, } -fun isClasspathFile(file: File): Boolean = file.isFile && listOf("class", "jar").contains(file.extension.toLowerCase()) +fun isClasspathFile(file: File): Boolean = file.isFile && listOf("class", "jar").contains(file.extension.lowercase()) fun File.md5Digest(): ByteArray { val md = MessageDigest.getInstance(CLASSPATH_FILE_ID_DIGEST) diff --git a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/Generator.kt b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/Generator.kt index 2b4d3b0ee81..dcb4c217faf 100644 --- a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/Generator.kt +++ b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/Generator.kt @@ -160,10 +160,10 @@ class Generator( get() = "val $fieldName: $setType" private val Alias.fieldName: String - get() = removePrefix("Fir").decapitalize() + "s" + get() = removePrefix("Fir").replaceFirstChar(Char::lowercaseChar) + "s" private val Alias.allFieldName: String - get() = "all${fieldName.capitalize()}" + get() = "all${fieldName.replaceFirstChar(Char::uppercaseChar)}" private val Alias.setType: String get() = "Set<$this>" diff --git a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/ErrorListDiagnosticListRenderer.kt b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/ErrorListDiagnosticListRenderer.kt index 7663c34da10..179184e1985 100644 --- a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/ErrorListDiagnosticListRenderer.kt +++ b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/ErrorListDiagnosticListRenderer.kt @@ -124,7 +124,7 @@ object ErrorListDiagnosticListRenderer : DiagnosticListRenderer() { get() = classifier as KClass<*> private fun DiagnosticData.getFactoryFunction(): String = - severity.name.toLowerCase() + parameters.size + severity.name.lowercase() + parameters.size } private inline fun SmartPrinter.printSeparatedWithComma(list: List, printItem: (T) -> Unit) { diff --git a/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt b/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt index a5eb04a7cdd..3f8c40ec339 100644 --- a/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt +++ b/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt @@ -520,7 +520,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver private fun FlowContent.modality(modality: Modality?) { if (modality == null) return - keyword(modality.name.toLowerCase()) + keyword(modality.name.lowercase()) } private fun FlowContent.visibility(visibility: Visibility) { diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/Modifier.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/Modifier.kt index e8fcfed057f..a2c883a32c2 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/Modifier.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/Modifier.kt @@ -41,7 +41,7 @@ class Modifier( parameterModifiers += ParameterModifier.CONST return } - val upperCasedModifier = modifier.toString().toUpperCase() + val upperCasedModifier = modifier.toString().uppercase() when { INLINE_MODIFIER.contains(tokenType) -> { if (isInClass) diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/TypeParameterModifier.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/TypeParameterModifier.kt index 50078fac98a..f4d00d2727a 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/TypeParameterModifier.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/TypeParameterModifier.kt @@ -20,9 +20,9 @@ class TypeParameterModifier( fun addModifier(modifier: LighterASTNode) { val tokenType = modifier.tokenType when { - VARIANCE_MODIFIER.contains(tokenType) -> this.varianceModifiers += VarianceModifier.valueOf(modifier.toString().toUpperCase()) + VARIANCE_MODIFIER.contains(tokenType) -> this.varianceModifiers += VarianceModifier.valueOf(modifier.toString().uppercase()) REIFICATION_MODIFIER.contains(tokenType) -> this.reificationModifier = - ReificationModifier.valueOf(modifier.toString().toUpperCase()) + ReificationModifier.valueOf(modifier.toString().uppercase()) } } diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/TypeProjectionModifier.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/TypeProjectionModifier.kt index d4b63d29f83..07b77d8655c 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/TypeProjectionModifier.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/modifier/TypeProjectionModifier.kt @@ -20,7 +20,7 @@ class TypeProjectionModifier( fun addModifier(modifier: LighterASTNode) { val tokenType = modifier.tokenType when { - VARIANCE_MODIFIER.contains(tokenType) -> this.varianceModifiers += VarianceModifier.valueOf(modifier.toString().toUpperCase()) + VARIANCE_MODIFIER.contains(tokenType) -> this.varianceModifiers += VarianceModifier.valueOf(modifier.toString().uppercase()) } } diff --git a/compiler/fir/raw-fir/light-tree2fir/tests/org/jetbrains/kotlin/fir/lightTree/TotalKotlinTest.kt b/compiler/fir/raw-fir/light-tree2fir/tests/org/jetbrains/kotlin/fir/lightTree/TotalKotlinTest.kt index 5d5015c4be3..71e15b400a1 100644 --- a/compiler/fir/raw-fir/light-tree2fir/tests/org/jetbrains/kotlin/fir/lightTree/TotalKotlinTest.kt +++ b/compiler/fir/raw-fir/light-tree2fir/tests/org/jetbrains/kotlin/fir/lightTree/TotalKotlinTest.kt @@ -82,7 +82,7 @@ class TotalKotlinTest : AbstractRawFirBuilderTestCase() { if (file.isDirectory) continue /* TODO: fix this, please !!! */ if (file.path.contains("kotlin-native") || - file.path.toLowerCase().contains("testdata") || + file.path.lowercase().contains("testdata") || file.path.contains("resources") ) continue if (file.extension != "kt") continue diff --git a/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/RawFirBuilderTotalKotlinTestCase.kt b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/RawFirBuilderTotalKotlinTestCase.kt index 2e55039f36a..a839cecc4fa 100644 --- a/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/RawFirBuilderTotalKotlinTestCase.kt +++ b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/RawFirBuilderTotalKotlinTestCase.kt @@ -52,7 +52,7 @@ class RawFirBuilderTotalKotlinTestCase : AbstractRawFirBuilderTestCase() { println("BASE PATH: $testDataPath") for (file in root.walkTopDown()) { if (file.isDirectory) continue - val path = file.path.toLowerCase() + val path = file.path.lowercase() if ("testdata" in path || "kotlin-native" in path || "resources" in path || @@ -180,7 +180,7 @@ class RawFirBuilderTotalKotlinTestCase : AbstractRawFirBuilderTestCase() { val root = File(testDataPath) for (file in root.walkTopDown()) { if (file.isDirectory) continue - val path = file.path.toLowerCase() + val path = file.path.lowercase() if ("kotlin-native" in path || "testdata" in path || "resources" in path || @@ -211,7 +211,7 @@ class RawFirBuilderTotalKotlinTestCase : AbstractRawFirBuilderTestCase() { var counter = 0 for (file in root.walkTopDown()) { if (file.isDirectory) continue - val path = file.path.toLowerCase() + val path = file.path.lowercase() if ("kotlin-native" in path || "testdata" in path || "resources" in path || diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/context/AbstractBuilderConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/context/AbstractBuilderConfigurator.kt index 824400dbe6e..d2e1d397697 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/context/AbstractBuilderConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/context/AbstractBuilderConfigurator.kt @@ -131,7 +131,7 @@ abstract class AbstractBuilderConfigurator(val firTr thisRef: Nothing?, prop: KProperty<*> ): ReadOnlyProperty { - val name = name ?: "Fir${prop.name.capitalize()}" + val name = name ?: "Fir${prop.name.replaceFirstChar(Char::uppercaseChar)}" builder = IntermediateBuilder(name).apply { firTreeBuilder.intermediateBuilders += this IntermediateBuilderConfigurationContext(this).block() diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/context/AbstractFieldConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/context/AbstractFieldConfigurator.kt index 697b6a0cf1d..2fd14cbd3fe 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/context/AbstractFieldConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/context/AbstractFieldConfigurator.kt @@ -22,7 +22,7 @@ abstract class AbstractFieldConfigurator(private val fun generateBooleanFields(vararg names: String) { names.forEach { - +booleanField("is${it.capitalize()}") + +booleanField("is${it.replaceFirstChar(Char::uppercaseChar)}") } } diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/model/ElementUtils.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/model/ElementUtils.kt index 529f8d22178..6176e44215a 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/model/ElementUtils.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/model/ElementUtils.kt @@ -27,7 +27,7 @@ fun field(name: String, typeWithArgs: Pair>, nullable: Bo } fun field(type: Type, nullable: Boolean = false, withReplace: Boolean = false): Field { - return SimpleField(type.type.decapitalize(), type.typeWithArguments, type.packageName, null, nullable, withReplace) + return SimpleField(type.type.replaceFirstChar(Char::lowercaseChar), type.typeWithArguments, type.packageName, null, nullable, withReplace) } fun booleanField(name: String, withReplace: Boolean = false): Field { @@ -57,7 +57,7 @@ fun field(name: String, element: AbstractElement, nullable: Boolean = false, wit } fun field(element: Element, nullable: Boolean = false, withReplace: Boolean = false): Field { - return FirField(element.name.decapitalize(), element, nullable, withReplace) + return FirField(element.name.replaceFirstChar(Char::lowercaseChar), element, nullable, withReplace) } // ----------- Field list ----------- @@ -67,7 +67,7 @@ fun fieldList(name: String, type: Importable, withReplace: Boolean = false): Fie } fun fieldList(element: Element, withReplace: Boolean = false): Field { - return FieldList(element.name.decapitalize() + "s", element, withReplace) + return FieldList(element.name.replaceFirstChar(Char::lowercaseChar) + "s", element, withReplace) } // ----------- Field set ----------- diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/implementation.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/implementation.kt index 8042135f0bf..191cbe6ace3 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/implementation.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/implementation.kt @@ -228,7 +228,7 @@ fun SmartPrinter.printImplementation(implementation: Implementation) { field.needsSeparateTransform -> { if (!(element.needTransformOtherChildren && field.needTransformInOtherChildren)) { - println("transform${field.name.capitalize()}(transformer, data)") + println("transform${field.name.replaceFirstChar(Char::uppercaseChar)}(transformer, data)") } } @@ -297,7 +297,7 @@ fun SmartPrinter.printImplementation(implementation: Implementation) { field.transform() } if (field.needTransformInOtherChildren) { - println("transform${field.name.capitalize()}(transformer, data)") + println("transform${field.name.replaceFirstChar(Char::uppercaseChar)}(transformer, data)") } } println("return this") @@ -335,7 +335,7 @@ fun SmartPrinter.printImplementation(implementation: Implementation) { } for (field in allFields.filter { it.withReplace }) { - val capitalizedFieldName = field.name.capitalize() + val capitalizedFieldName = field.name.replaceFirstChar(Char::uppercaseChar) val newValue = "new$capitalizedFieldName" generateReplace(field, forceNullable = field.useNullableForReplace) { when { diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/utils.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/utils.kt index f30fc6a191f..bcd6e5749c6 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/utils.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/utils.kt @@ -96,7 +96,7 @@ val Field.isVal: Boolean get() = this is FieldList || (this is FieldWithDefault fun Field.transformFunctionDeclaration(returnType: String): String { - return transformFunctionDeclaration(name.capitalize(), returnType) + return transformFunctionDeclaration(name.replaceFirstChar(Char::uppercaseChar), returnType) } fun transformFunctionDeclaration(transformName: String, returnType: String): String { @@ -104,7 +104,7 @@ fun transformFunctionDeclaration(transformName: String, returnType: String): Str } fun Field.replaceFunctionDeclaration(overridenType: Importable? = null, forceNullable: Boolean = false): String { - val capName = name.capitalize() + val capName = name.replaceFirstChar(Char::uppercaseChar) val type = overridenType?.typeWithArguments ?: typeWithArguments val typeWithNullable = if (forceNullable && !type.endsWith("?")) "$type?" else type @@ -136,7 +136,7 @@ fun Implementation.Kind?.braces(): String = when (this) { else -> throw IllegalStateException(this.toString()) } -val Element.safeDecapitalizedName: String get() = if (name == "Class") "klass" else name.decapitalize() +val Element.safeDecapitalizedName: String get() = if (name == "Class") "klass" else name.replaceFirstChar(Char::lowercaseChar) val Importable.typeWithArguments: String get() = when (this) { diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/PackagePartClassUtils.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/PackagePartClassUtils.kt index 8c8d85c127e..fb6eafbe530 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/PackagePartClassUtils.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/PackagePartClassUtils.kt @@ -28,7 +28,7 @@ import java.util.* object PackagePartClassUtils { @JvmStatic fun getPathHashCode(file: VirtualFile): Int = - file.path.toLowerCase().hashCode() + file.path.lowercase().hashCode() private val PART_CLASS_NAME_SUFFIX = "Kt" @@ -36,7 +36,7 @@ object PackagePartClassUtils { // NB use Locale.ENGLISH so that build is locale-independent. // See Javadoc on java.lang.String.toUpperCase() for more details. when { - Character.isJavaIdentifierStart(str[0]) -> str.substring(0, 1).toLowerCase(Locale.ENGLISH) + str.substring(1) + Character.isJavaIdentifierStart(str[0]) -> str.substring(0, 1).lowercase() + str.substring(1) str[0] == '_' -> str.substring(1) else -> str } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/Renderers.kt b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/Renderers.kt index 4ad82c6a3f9..8b9b75c6b63 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/Renderers.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/Renderers.kt @@ -128,7 +128,7 @@ object Renderers { else declarationWithNameAndKind - withPlatform.capitalize() + withPlatform.replaceFirstChar(Char::uppercaseChar) } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/diagnostics/KotlinSuppressCache.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/diagnostics/KotlinSuppressCache.kt index 259de46c32a..89a5c6ef57a 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/diagnostics/KotlinSuppressCache.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/diagnostics/KotlinSuppressCache.kt @@ -51,7 +51,7 @@ abstract class KotlinSuppressCache { } fun isSuppressed(psiElement: PsiElement, suppressionKey: String, severity: Severity) = - isSuppressed(StringSuppressRequest(psiElement, severity, suppressionKey.toLowerCase())) + isSuppressed(StringSuppressRequest(psiElement, severity, suppressionKey.lowercase())) private fun isSuppressed(request: SuppressRequest): Boolean { // If diagnostics are reported in a synthetic file generated by KtPsiFactory (dummy.kt), @@ -158,7 +158,7 @@ abstract class KotlinSuppressCache { if (arrayValue is ArrayValue) { for (value in arrayValue.value) { if (value is StringValue) { - builder.add(value.value.toLowerCase()) + builder.add(value.value.lowercase()) } } } @@ -167,7 +167,7 @@ abstract class KotlinSuppressCache { companion object { private fun getDiagnosticSuppressKey(diagnostic: Diagnostic): String = - diagnostic.factory.name.toLowerCase() + diagnostic.factory.name.lowercase() private fun isSuppressedByStrings(key: String, strings: Set, severity: Severity): Boolean = severity == Severity.WARNING && "warnings" in strings || key in strings diff --git a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerRunner.kt b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerRunner.kt index 78b0811b9f8..fa06ba59f6c 100644 --- a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerRunner.kt +++ b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerRunner.kt @@ -65,7 +65,7 @@ fun makeIncrementally( val allExtensions = kotlinExtensions + "java" val rootsWalk = sourceRoots.asSequence().flatMap { it.walk() } val files = rootsWalk.filter(File::isFile) - val sourceFiles = files.filter { it.extension.toLowerCase() in allExtensions }.toList() + val sourceFiles = files.filter { it.extension.lowercase() in allExtensions }.toList() val buildHistoryFile = File(cachesDir, "build-history.bin") args.javaSourceRoots = sourceRoots.map { it.absolutePath }.toTypedArray() val buildReporter = BuildReporter(icReporter = reporter, buildMetricsReporter = DoNothingBuildMetricsReporter) @@ -275,7 +275,7 @@ class IncrementalJvmCompilerRunner( private fun processLookupSymbolsForAndroidLayouts(changedFiles: ChangedFiles.Known): Collection { val result = mutableListOf() for (file in changedFiles.modified + changedFiles.removed) { - if (file.extension.toLowerCase() != "xml") continue + if (file.extension.lowercase() != "xml") continue val layoutName = file.name.substringBeforeLast('.') result.add(LookupSymbol(ANDROID_LAYOUT_CONTENT_LOOKUP_NAME, layoutName)) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt index 9f6b1d36650..99160e57a09 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt @@ -283,7 +283,7 @@ private class KotlinLikeDumper(val p: Printer, val options: KotlinLikeDumpOption else -> Modality.FINAL } - p(modality, defaultModality) { name.toLowerCase() } + p(modality, defaultModality) { name.lowercase() } p(isExternal, "external") p(isFakeOverride, customModifier("fake")) p(isOverride, "override") @@ -302,7 +302,7 @@ private class KotlinLikeDumper(val p: Printer, val options: KotlinLikeDumpOption p(isData, "data") p(isCompanion, "companion") p(isFunInterface, "fun") - p(classKind) { name.toLowerCase().replace('_', ' ') + if (this == ClassKind.ENUM_ENTRY) " class" else "" } + p(classKind) { name.lowercase().replace('_', ' ') + if (this == ClassKind.ENUM_ENTRY) " class" else "" } p(isInfix, "infix") p(isOperator, "operator") } diff --git a/compiler/psi/src/org/jetbrains/kotlin/parsing/ParseUtils.kt b/compiler/psi/src/org/jetbrains/kotlin/parsing/ParseUtils.kt index 983a7b610b7..ce110f3aa32 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/parsing/ParseUtils.kt +++ b/compiler/psi/src/org/jetbrains/kotlin/parsing/ParseUtils.kt @@ -79,7 +79,7 @@ private fun parseLong(text: String): Long? { } private fun parseFloatingLiteral(text: String): Number? { - if (text.toLowerCase().endsWith('f')) { + if (text.lowercase().endsWith('f')) { return parseFloat(text) } return parseDouble(text) diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/impl/KotlinStubBaseImpl.kt b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/impl/KotlinStubBaseImpl.kt index 841416dc984..97e81c5ef60 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/impl/KotlinStubBaseImpl.kt +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/stubs/impl/KotlinStubBaseImpl.kt @@ -72,7 +72,7 @@ open class KotlinStubBaseImpl>(parent: StubElement<*>?, private fun getPropertyName(method: Method): String { val methodName = method.name!! if (methodName.startsWith("get")) { - return methodName.substring(3).decapitalize() + return methodName.substring(3).replaceFirstChar(Char::lowercaseChar) } return methodName } diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/unsafeCastFunctionOnDynamicType.kt b/compiler/testData/diagnostics/testsWithJsStdLib/unsafeCastFunctionOnDynamicType.kt index 5696a6753fc..2dfb0e3deff 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/unsafeCastFunctionOnDynamicType.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/unsafeCastFunctionOnDynamicType.kt @@ -5,7 +5,7 @@ fun String.toDouble(): Double = (+(this.asDynamic())).unsafeCast().also TODO() } -fun String.isNaN(): Boolean = when (this.toLowerCase()) { +fun String.isNaN(): Boolean = when (this.lowercase()) { "nan", "+nan", "-nan" -> true else -> false } diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/impl/ModuleStructureExtractorImpl.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/impl/ModuleStructureExtractorImpl.kt index 5b008c05a2c..d421045801b 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/impl/ModuleStructureExtractorImpl.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/impl/ModuleStructureExtractorImpl.kt @@ -316,7 +316,7 @@ class ModuleStructureExtractorImpl( } private fun parseModulePlatformByName(moduleName: String): TargetPlatform? { - val nameSuffix = moduleName.substringAfterLast("-", "").toUpperCase() + val nameSuffix = moduleName.substringAfterLast("-", "").uppercase() return when { nameSuffix == "COMMON" -> CommonPlatforms.defaultCommonPlatform nameSuffix == "JVM" -> JvmPlatforms.unspecifiedJvmPlatform // TODO(dsavvinov): determine JvmTarget precisely diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.kt index df464dec6f1..eb35ad5783e 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.kt @@ -536,7 +536,7 @@ abstract class BaseDiagnosticsTest : KotlinMultiFileTestWithJava CommonPlatforms.defaultCommonPlatform nameSuffix == "JVM" -> JvmPlatforms.unspecifiedJvmPlatform // TODO(dsavvinov): determine JvmTarget precisely diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/36.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/36.kt index 05c59457ddb..15b60cdb543 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/36.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/36.kt @@ -19,14 +19,14 @@ fun case_1(x: Class?, y: Any) { x?.prop_12 = if (y is String) "" else throw Exception() y - y.toUpperCase() + y.uppercase() } // TESTCASE NUMBER: 2 fun case_2(x: Class?, y: Any) { x?.prop_9 = y is String || return y - y.toUpperCase() + y.uppercase() } /* @@ -37,7 +37,7 @@ fun case_2(x: Class?, y: Any) { fun case_3(x: Class?, y: Any) { x?.prop_12 = y as String y - y.toUpperCase() + y.uppercase() } /* @@ -48,7 +48,7 @@ fun case_3(x: Class?, y: Any) { fun case_4(x: Class?, y: Any) { x?.prop_12 = y as? String ?: return y - y.toUpperCase() + y.uppercase() } /* @@ -59,14 +59,14 @@ fun case_4(x: Class?, y: Any) { fun case_5(x: Class?, y: String?) { x?.prop_12 = y ?: return y - y.toUpperCase() + y.uppercase() } // TESTCASE NUMBER: 6 fun case_6(x: Class?, y: String?) { x?.prop_9 = y !is String && throw Exception() y - y.toUpperCase() + y.uppercase() } /* @@ -77,7 +77,7 @@ fun case_6(x: Class?, y: String?) { fun case_7(x: Class?, y: String?) { x?.prop_12 = y!! y - y.toUpperCase() + y.uppercase() } /* @@ -88,5 +88,5 @@ fun case_7(x: Class?, y: String?) { fun case_8(x: Class?, y: String?) { x?.prop_12 = if (y === null) throw Exception() else "" y - y.toUpperCase() + y.uppercase() } diff --git a/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/TestsJsonMapGenerator.kt b/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/TestsJsonMapGenerator.kt index c8d2bac0873..93093df478e 100644 --- a/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/TestsJsonMapGenerator.kt +++ b/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/TestsJsonMapGenerator.kt @@ -41,7 +41,7 @@ object TestsJsonMapGenerator { SECONDARY; override fun toString(): String { - return name.toLowerCase() + return name.lowercase() } } diff --git a/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/TestsStatisticCollector.kt b/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/TestsStatisticCollector.kt index 8a2d296cf98..53b294c16e7 100644 --- a/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/TestsStatisticCollector.kt +++ b/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/TestsStatisticCollector.kt @@ -43,7 +43,7 @@ object TestsStatisticCollector { val statistic = mutableMapOf() for (specTestArea in TestArea.values()) { - val specTestsPath = "$SPEC_TESTDATA_PATH/${specTestArea.name.toLowerCase().replace("_", "/")}/${testLinkedType.testDataPath}" + val specTestsPath = "$SPEC_TESTDATA_PATH/${specTestArea.name.lowercase().replace("_", "/")}/${testLinkedType.testDataPath}" statistic[specTestArea] = SpecTestsStatElement(SpecTestsStatElementType.AREA) diff --git a/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/parsers/CommonParser.kt b/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/parsers/CommonParser.kt index 14099a11e70..70549dc7c57 100644 --- a/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/parsers/CommonParser.kt +++ b/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/parsers/CommonParser.kt @@ -23,7 +23,7 @@ import java.util.regex.Pattern object CommonParser { fun String.withUnderscores() = replace(" ", "_") .replace(File.separator, "_") - .toUpperCase() + .uppercase() fun String.splitByComma() = split(Regex(""",\s*""")) fun String.splitByPathSeparator() = split(File.separator) diff --git a/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/parsers/TestInfoParser.kt b/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/parsers/TestInfoParser.kt index a21e757806b..4563fda2ce6 100644 --- a/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/parsers/TestInfoParser.kt +++ b/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/parsers/TestInfoParser.kt @@ -85,8 +85,8 @@ private fun parseImplementationTestInfo(testFilePath: String, linkedTestType: Sp testArea = TestArea.valueOf(testInfoByContentMatcher.group("testArea").withUnderscores()), testType = TestType.valueOf(testInfoByContentMatcher.group("testType")), testNumber = testInfoElements[CommonSpecTestFileInfoElementType.NUMBER]?.content?.toInt() ?: 0, - testDescription = fileNameWithoutExtension.toUpperCase()[0] + fileNameWithoutExtension.substring(1) - .replace(Regex("""([A-Z])"""), " $1").toLowerCase(), + testDescription = fileNameWithoutExtension.uppercase()[0] + fileNameWithoutExtension.substring(1) + .replace(Regex("""([A-Z])"""), " $1").lowercase(), testInfoElements = testInfoElements, testCasesSet = SpecTestCasesSet(mutableMapOf(), mutableMapOf(), mutableMapOf()), //todo unexpectedBehavior = testInfoElements.contains(CommonInfoElementType.UNEXPECTED_BEHAVIOUR), diff --git a/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/spec/HtmlSpecSentencesMapBuilder.kt b/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/spec/HtmlSpecSentencesMapBuilder.kt index 7a360d99a6f..208c2cdec84 100644 --- a/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/spec/HtmlSpecSentencesMapBuilder.kt +++ b/compiler/tests-spec/tests/org/jetbrains/kotlin/spec/utils/spec/HtmlSpecSentencesMapBuilder.kt @@ -24,7 +24,7 @@ object HtmlSpecSentencesMapBuilder { spec.select("$SECTION_SELECTORS, $PARAGRAPH_SELECTORS, .sentence").forEach { element -> when { element.`is`(SECTION_SELECTORS) -> { - val sectionTag = SectionTag.valueOf(element.tagName().toLowerCase()) + val sectionTag = SectionTag.valueOf(element.tagName().lowercase()) while (!currentSectionsPath.empty() && currentSectionsPath.peek().first.level >= sectionTag.level) { currentSectionsPath.pop() } diff --git a/compiler/tests/org/jetbrains/kotlin/generators/tests/GenerateSteppedRangesCodegenTestData.kt b/compiler/tests/org/jetbrains/kotlin/generators/tests/GenerateSteppedRangesCodegenTestData.kt index d5642a3fe96..196427ca050 100644 --- a/compiler/tests/org/jetbrains/kotlin/generators/tests/GenerateSteppedRangesCodegenTestData.kt +++ b/compiler/tests/org/jetbrains/kotlin/generators/tests/GenerateSteppedRangesCodegenTestData.kt @@ -242,7 +242,7 @@ object GenerateSteppedRangesCodegenTestData { private fun PrintWriter.printTestForFunctionAndType(builder: TestBuilder, function: Function, type: Type, asLiteral: Boolean) { val shouldFail = (builder.expectedValuesOrFailIfNull == null) - val listVarName = type.type.toLowerCase() + "List" + val listVarName = type.type.lowercase() + "List" if (shouldFail) { println(" assertFailsWith {") } else { @@ -253,7 +253,7 @@ object GenerateSteppedRangesCodegenTestData { if (asLiteral) { println("$indent for (i in ${builder.buildFullLiteral(type, function)}) {") } else { - val progressionVarName = type.type.toLowerCase() + "Progression" + val progressionVarName = type.type.lowercase() + "Progression" println("$indent val $progressionVarName = ${builder.buildRangeOnlyExpression(type, function)}") println("$indent for (i in ${builder.buildOnTopOfRangeOnlyVariable(progressionVarName, type)}) {") } diff --git a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/MultiModuleJavaAnalysisCustomTest.kt b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/MultiModuleJavaAnalysisCustomTest.kt index 30876891191..a56619df5f1 100644 --- a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/MultiModuleJavaAnalysisCustomTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/MultiModuleJavaAnalysisCustomTest.kt @@ -86,7 +86,7 @@ class MultiModuleJavaAnalysisCustomTest : KtUsefulTestCase() { val platformParameters = JvmPlatformParameters( packagePartProviderFactory = { PackagePartProvider.Empty }, moduleByJavaClass = { javaClass -> - val moduleName = javaClass.name.asString().toLowerCase().first().toString() + val moduleName = javaClass.name.asString().lowercase().first().toString() modules.first { it._name == moduleName } }, useBuiltinsProviderForModule = { false } @@ -165,8 +165,8 @@ class MultiModuleJavaAnalysisCustomTest : KtUsefulTestCase() { module -> val moduleDescriptor = resolverForProject.descriptorForModule(module) - checkClassInPackage(moduleDescriptor, "test", "Kotlin${module._name.toUpperCase()}") - checkClassInPackage(moduleDescriptor, "custom", "${module._name.toUpperCase()}Class") + checkClassInPackage(moduleDescriptor, "test", "Kotlin${module._name.uppercase()}") + checkClassInPackage(moduleDescriptor, "custom", "${module._name.uppercase()}Class") } } @@ -229,7 +229,7 @@ class MultiModuleJavaAnalysisCustomTest : KtUsefulTestCase() { assert(!ErrorUtils.isError(referencedDescriptor)) { "Error descriptor: $referencedDescriptor" } val descriptorName = referencedDescriptor.name.asString() - val expectedModuleName = "<${descriptorName.toLowerCase().first()}>" + val expectedModuleName = "<${descriptorName.lowercase().first()}>" val moduleName = referencedDescriptor.module.name.asString() Assert.assertEquals( "Java class $descriptorName in $context should be in module $expectedModuleName, but instead was in $moduleName", diff --git a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt index b23281dbe06..48ee6d55efc 100644 --- a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt +++ b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt @@ -206,7 +206,7 @@ enum class LanguageFeature( val presentableName: String // E.g. "DestructuringLambdaParameters" -> ["Destructuring", "Lambda", "Parameters"] -> "destructuring lambda parameters" - get() = name.split("(?" - data.append("fun$typeParameters ${name.decapitalize()}Of") + data.append("fun$typeParameters ${name.replaceFirstChar(Char::lowercaseChar)}Of") typeArguments.firstOrNull()?.let { data.append("<").append(it.tryToRenderConeAsFunctionType()).append(">") } diff --git a/core/compiler.common/src/org/jetbrains/kotlin/name/NameUtils.kt b/core/compiler.common/src/org/jetbrains/kotlin/name/NameUtils.kt index 497c73ff45f..8780bbeb09f 100644 --- a/core/compiler.common/src/org/jetbrains/kotlin/name/NameUtils.kt +++ b/core/compiler.common/src/org/jetbrains/kotlin/name/NameUtils.kt @@ -39,10 +39,10 @@ object NameUtils { @JvmStatic private fun capitalizeAsJavaClassName(str: String): String = - // NB use Locale.ENGLISH so that build is locale-independent. + // NB `uppercase` uses Locale.ROOT and is locale-independent. // See Javadoc on java.lang.String.toUpperCase() for more details. if (Character.isJavaIdentifierStart(str[0])) - str.substring(0, 1).toUpperCase(Locale.ENGLISH) + str.substring(1) + str.substring(0, 1).uppercase() + str.substring(1) else "_$str" diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/functions/FunctionInvokeDescriptor.kt b/core/descriptors/src/org/jetbrains/kotlin/builtins/functions/FunctionInvokeDescriptor.kt index 0a018092b38..02ad5d39542 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/builtins/functions/FunctionInvokeDescriptor.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/builtins/functions/FunctionInvokeDescriptor.kt @@ -138,7 +138,7 @@ class FunctionInvokeDescriptor private constructor( "E" -> "receiver" else -> { // Type parameter "P1" -> value parameter "p1", "P2" -> "p2", etc. - typeParameterName.toLowerCase() + typeParameterName.lowercase() } } diff --git a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererOptionsImpl.kt b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererOptionsImpl.kt index fce2e7c04ae..590a9dcf691 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererOptionsImpl.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererOptionsImpl.kt @@ -48,7 +48,7 @@ internal class DescriptorRendererOptionsImpl : DescriptorRendererOptions { assert(!field.name.startsWith("is")) { "Fields named is* are not supported here yet" } val value = property.getValue( this, - PropertyReference1Impl(DescriptorRendererOptionsImpl::class, field.name, "get" + field.name.capitalize()) + PropertyReference1Impl(DescriptorRendererOptionsImpl::class, field.name, "get" + field.name.replaceFirstChar(Char::uppercaseChar)) ) field.set(copy, copy.property(value)) } diff --git a/core/util.runtime/src/org/jetbrains/kotlin/utils/capitalizeDecapitalize.kt b/core/util.runtime/src/org/jetbrains/kotlin/utils/capitalizeDecapitalize.kt index a986d531d97..a1275021f3f 100644 --- a/core/util.runtime/src/org/jetbrains/kotlin/utils/capitalizeDecapitalize.kt +++ b/core/util.runtime/src/org/jetbrains/kotlin/utils/capitalizeDecapitalize.kt @@ -28,7 +28,7 @@ fun String.decapitalizeSmartForCompiler(asciiOnly: Boolean = false): String { if (isEmpty() || !isUpperCaseCharAt(0, asciiOnly)) return this if (length == 1 || !isUpperCaseCharAt(1, asciiOnly)) { - return if (asciiOnly) decapitalizeAsciiOnly() else decapitalize() + return if (asciiOnly) decapitalizeAsciiOnly() else replaceFirstChar(Char::lowercaseChar) } val secondWordStart = (indices.firstOrNull { !isUpperCaseCharAt(it, asciiOnly) } ?: return toLowerCase(this, asciiOnly)) - 1 @@ -98,18 +98,18 @@ private fun String.isLowerCaseCharAt(index: Int, asciiOnly: Boolean): Boolean { } private fun toLowerCase(string: String, asciiOnly: Boolean): String { - return if (asciiOnly) string.toLowerCaseAsciiOnly() else string.toLowerCase() + return if (asciiOnly) string.toLowerCaseAsciiOnly() else string.lowercase() } private fun toUpperCase(string: String, asciiOnly: Boolean): String { - return if (asciiOnly) string.toUpperCaseAsciiOnly() else string.toUpperCase() + return if (asciiOnly) string.toUpperCaseAsciiOnly() else string.uppercase() } fun String.capitalizeAsciiOnly(): String { if (isEmpty()) return this val c = this[0] return if (c in 'a'..'z') - c.toUpperCase() + substring(1) + c.uppercaseChar() + substring(1) else this } @@ -118,7 +118,7 @@ fun String.decapitalizeAsciiOnly(): String { if (isEmpty()) return this val c = this[0] return if (c in 'A'..'Z') - c.toLowerCase() + substring(1) + c.lowercaseChar() + substring(1) else this } @@ -126,7 +126,7 @@ fun String.decapitalizeAsciiOnly(): String { fun String.toLowerCaseAsciiOnly(): String { val builder = StringBuilder(length) for (c in this) { - builder.append(if (c in 'A'..'Z') c.toLowerCase() else c) + builder.append(if (c in 'A'..'Z') c.lowercaseChar() else c) } return builder.toString() } @@ -134,7 +134,7 @@ fun String.toLowerCaseAsciiOnly(): String { fun String.toUpperCaseAsciiOnly(): String { val builder = StringBuilder(length) for (c in this) { - builder.append(if (c in 'a'..'z') c.toUpperCase() else c) + builder.append(if (c in 'a'..'z') c.uppercaseChar() else c) } return builder.toString() } diff --git a/generators/evaluate/GenerateOperationsMap.kt b/generators/evaluate/GenerateOperationsMap.kt index 58dbbcf9f0c..ea0e233ec09 100644 --- a/generators/evaluate/GenerateOperationsMap.kt +++ b/generators/evaluate/GenerateOperationsMap.kt @@ -188,7 +188,7 @@ private fun CallableDescriptor.getParametersTypes(): List = listOf((containingDeclaration as ClassDescriptor).defaultType) + valueParameters.map { it.type.makeNotNullable() } -private fun KotlinType.asString(): String = typeName.toUpperCase() +private fun KotlinType.asString(): String = typeName.uppercase() private val KotlinType.typeName: String get(): String = constructor.declarationDescriptor!!.name.asString() diff --git a/generators/test-generator/tests/org/jetbrains/kotlin/generators/model/SimpleTestMethodModel.kt b/generators/test-generator/tests/org/jetbrains/kotlin/generators/model/SimpleTestMethodModel.kt index e2b8d9e70ca..9b5741ad149 100644 --- a/generators/test-generator/tests/org/jetbrains/kotlin/generators/model/SimpleTestMethodModel.kt +++ b/generators/test-generator/tests/org/jetbrains/kotlin/generators/model/SimpleTestMethodModel.kt @@ -46,10 +46,10 @@ open class SimpleTestMethodModel( extractedName } else { val relativePath = FileUtil.getRelativePath(rootDir, file.parentFile) - relativePath + "-" + extractedName.capitalize() + relativePath + "-" + extractedName.replaceFirstChar(Char::uppercaseChar) } val ignored = skipIgnored && InTextDirectivesUtils.isIgnoredTarget(targetBackend, file) - return (if (ignored) "ignore" else "test") + escapeForJavaIdentifier(unescapedName).capitalize() + return (if (ignored) "ignore" else "test") + escapeForJavaIdentifier(unescapedName).replaceFirstChar(Char::uppercaseChar) } init { diff --git a/generators/test-generator/tests/org/jetbrains/kotlin/generators/util/TestGeneratorUtil.kt b/generators/test-generator/tests/org/jetbrains/kotlin/generators/util/TestGeneratorUtil.kt index 56223b64220..e831592df05 100644 --- a/generators/test-generator/tests/org/jetbrains/kotlin/generators/util/TestGeneratorUtil.kt +++ b/generators/test-generator/tests/org/jetbrains/kotlin/generators/util/TestGeneratorUtil.kt @@ -31,7 +31,7 @@ object TestGeneratorUtil { @JvmStatic fun fileNameToJavaIdentifier(file: File): String { - return escapeForJavaIdentifier(file.name).capitalize() + return escapeForJavaIdentifier(file.name).replaceFirstChar(Char::uppercaseChar) } } diff --git a/generators/tests/org/jetbrains/kotlin/generators/protobuf/GenerateProtoBufCompare.kt b/generators/tests/org/jetbrains/kotlin/generators/protobuf/GenerateProtoBufCompare.kt index 9f039ba57a2..5aef8e154e8 100644 --- a/generators/tests/org/jetbrains/kotlin/generators/protobuf/GenerateProtoBufCompare.kt +++ b/generators/tests/org/jetbrains/kotlin/generators/protobuf/GenerateProtoBufCompare.kt @@ -89,7 +89,7 @@ class GenerateProtoBufCompare { } return (extensionPrefix + fieldDescriptor.name.javaName + (if (fieldDescriptor.isRepeated) "List" else "")) .replace("[A-Z]".toRegex()) { "_" + it.value } - .toUpperCase() + .uppercase() } } @@ -236,7 +236,7 @@ class GenerateProtoBufCompare { fun generateHashCodeForField(field: Descriptors.FieldDescriptor, p: Printer, isExtensionField: Boolean) { val fieldName = field.name.javaName - val capFieldName = fieldName.capitalize() + val capFieldName = fieldName.replaceFirstChar(Char::uppercaseChar) val outerClassName = field.file.options.javaOuterClassname.removePrefix("Debug") val fullFieldName = "$outerClassName.$fieldName" @@ -310,7 +310,7 @@ class GenerateProtoBufCompare { val typeName = field.containingType.typeName val fieldName = field.name.javaName - val capFieldName = fieldName.capitalize() + val capFieldName = fieldName.replaceFirstChar(Char::uppercaseChar) val methodName = field.helperMethodName() p.println() @@ -357,7 +357,7 @@ class GenerateProtoBufCompare { open inner class FieldGeneratorImpl(field: Descriptors.FieldDescriptor, p: Printer) : FieldGenerator(field, p) { val fieldName = field.name.javaName - val capFieldName = fieldName.capitalize() + val capFieldName = fieldName.replaceFirstChar(Char::uppercaseChar) override fun printRepeatedField() { repeatedFields.add(field) @@ -496,12 +496,12 @@ class GenerateProtoBufCompare { val packageHeader = this.file.`package` val descriptor = this.containingType val className = descriptor.fullName.removePrefix(packageHeader).replace(".", "") - val capFieldName = this.name.javaName.capitalize() + val capFieldName = this.name.javaName.replaceFirstChar(Char::uppercaseChar) return "$CHECK_EQUALS_NAME$className$capFieldName" } private val String.javaName: String - get() = this.split("_").joinToString("") { it.capitalize() }.decapitalize() + get() = this.split("_").joinToString("") { it.replaceFirstChar(Char::uppercaseChar) }.replaceFirstChar(Char::lowercaseChar) } private fun Printer.printlnMultiline(string: String) { diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KDocCompletionContributor.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KDocCompletionContributor.kt index ff2a78b2658..8ed888231de 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KDocCompletionContributor.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KDocCompletionContributor.kt @@ -158,7 +158,7 @@ object KDocTagCompletionProvider : CompletionProvider() { val resultWithPrefix = result.withPrefixMatcher(prefix) KDocKnownTag.values().forEach { if (kdocOwner == null || it.isApplicable(kdocOwner)) { - resultWithPrefix.addElement(LookupElementBuilder.create("@" + it.name.toLowerCase(Locale.US))) + resultWithPrefix.addElement(LookupElementBuilder.create("@" + it.name.lowercase())) } } } diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/VariableOrParameterNameWithTypeCompletion.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/VariableOrParameterNameWithTypeCompletion.kt index 168b07042da..dfb79dedbc3 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/VariableOrParameterNameWithTypeCompletion.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/VariableOrParameterNameWithTypeCompletion.kt @@ -68,7 +68,7 @@ class VariableOrParameterNameWithTypeCompletion( prefixWords.indices.map { index -> if (index == 0) prefix else prefixWords.drop(index).joinToString("") } userPrefixes = nameSuggestionPrefixes.indices.map { prefixWords.take(it).joinToString("") } - classNamePrefixMatchers = nameSuggestionPrefixes.map { CamelHumpMatcher(it.capitalize(Locale.US), false) } + classNamePrefixMatchers = nameSuggestionPrefixes.map { CamelHumpMatcher(it.replaceFirstChar(Char::uppercaseChar), false) } } private val suggestionsByTypesAdded = HashSet() diff --git a/idea/idea-completion/testData/basic/common/inStringLiterals/StringTemplateDot.kt b/idea/idea-completion/testData/basic/common/inStringLiterals/StringTemplateDot.kt index e1c372da5af..483455c7215 100644 --- a/idea/idea-completion/testData/basic/common/inStringLiterals/StringTemplateDot.kt +++ b/idea/idea-completion/testData/basic/common/inStringLiterals/StringTemplateDot.kt @@ -4,4 +4,4 @@ fun foo(param: String) { // EXIST: { itemText: "length", attributes: "" } // EXIST: { itemText: "hashCode", attributes: "" } -// EXIST: { itemText: "capitalize", attributes: "bold" } +// EXIST: { itemText: "lowercase", attributes: "bold" } diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/statistics/ProjectConfigurationCollector.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/statistics/ProjectConfigurationCollector.kt index 0a23d80c16d..9e54aa9a99b 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/statistics/ProjectConfigurationCollector.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/statistics/ProjectConfigurationCollector.kt @@ -62,8 +62,8 @@ class ProjectConfigurationCollector : ProjectUsagesCollector() { val buildSystem = it.getBuildSystemType() return when { buildSystem == BuildSystemType.JPS -> "JPS" - buildSystem.toString().toLowerCase().contains("maven") -> "Maven" - buildSystem.toString().toLowerCase().contains("gradle") -> "Gradle" + buildSystem.toString().lowercase().contains("maven") -> "Maven" + buildSystem.toString().lowercase().contains("gradle") -> "Gradle" else -> "unknown" } } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLazyDeclarationResolveTest.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLazyDeclarationResolveTest.kt index 6749d2f177b..fc4b338df87 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLazyDeclarationResolveTest.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLazyDeclarationResolveTest.kt @@ -31,7 +31,7 @@ abstract class AbstractFirLazyDeclarationResolveTest : KotlinLightCodeInsightFix val ktFile = myFixture.configureByText(testDataFile.name, FileUtil.loadFile(testDataFile)) as KtFile val lazyDeclarations = ktFile.collectDescendantsOfType { ktDeclaration -> !KtPsiUtil.isLocal(ktDeclaration) } - val declarationToResolve = lazyDeclarations.firstOrNull { it.name?.toLowerCase() == "resolveme" } + val declarationToResolve = lazyDeclarations.firstOrNull { it.name?.lowercase() == "resolveme" } ?: error("declaration with name `resolveMe` was not found") resolveWithClearCaches(ktFile) { firModuleResolveState -> val rendered = declarationToResolve.withFirDeclaration( diff --git a/idea/idea-frontend-fir/idea-frontend-fir-generator/src/org/jetbrains/kotlin/idea/frontend/api/fir/generator/HLDiagnosticConverter.kt b/idea/idea-frontend-fir/idea-frontend-fir-generator/src/org/jetbrains/kotlin/idea/frontend/api/fir/generator/HLDiagnosticConverter.kt index 41981ae94a2..d3a38709047 100644 --- a/idea/idea-frontend-fir/idea-frontend-fir-generator/src/org/jetbrains/kotlin/idea/frontend/api/fir/generator/HLDiagnosticConverter.kt +++ b/idea/idea-frontend-fir/idea-frontend-fir-generator/src/org/jetbrains/kotlin/idea/frontend/api/fir/generator/HLDiagnosticConverter.kt @@ -100,7 +100,7 @@ private object FirToKtConversionCreator { if (kClass.isSubclassOf(Collection::class)) { val elementType = type.arguments.single().type ?: return HLIdParameterConversion return HLMapParameterConversion( - parameterName = elementType.kClass.simpleName!!.decapitalize(), + parameterName = elementType.kClass.simpleName!!.replaceFirstChar(Char::lowercaseChar), mappingConversion = createConversion(elementType) ) } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/references/KtFirCollectionLiteralReference.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/references/KtFirCollectionLiteralReference.kt index c0f2a904791..fec63874adc 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/references/KtFirCollectionLiteralReference.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/references/KtFirCollectionLiteralReference.kt @@ -50,7 +50,7 @@ class KtFirCollectionLiteralReference( }.associateWith { it.correspondingArrayOfCallFqName() } private fun ClassId.correspondingArrayOfCallFqName(): Name = - Name.identifier("${shortClassName.identifier.decapitalize()}Of") + Name.identifier("${shortClassName.identifier.replaceFirstChar(Char::lowercaseChar)}Of") } } diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinBuildScriptManipulator.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinBuildScriptManipulator.kt index 24017ddb6e7..b38ef261741 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinBuildScriptManipulator.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinBuildScriptManipulator.kt @@ -376,7 +376,7 @@ class KotlinBuildScriptManipulator( findPlugin(pluginName) ?: addExpressionIfMissing("plugin(\"$pluginName\")") as? KtCallExpression private fun KtFile.changeCoroutineConfiguration(coroutineOption: String): PsiElement? { - val snippet = "experimental.coroutines = Coroutines.${coroutineOption.toUpperCase()}" + val snippet = "experimental.coroutines = Coroutines.${coroutineOption.uppercase()}" val kotlinBlock = getKotlinBlock() ?: return null addImportIfMissing("org.jetbrains.kotlin.gradle.dsl.Coroutines") val statement = kotlinBlock.statements.find { it.text.startsWith("experimental.coroutines") } diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/statistics/KotlinGradleFUSLogger.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/statistics/KotlinGradleFUSLogger.kt index 53d2ab64265..590d8e6fbfc 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/statistics/KotlinGradleFUSLogger.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/statistics/KotlinGradleFUSLogger.kt @@ -50,7 +50,7 @@ class KotlinGradleFUSLogger : StartupActivity, DumbAware, Runnable { // 2. the projectId should be stable and independent on IDE version val presentableUrl = FileUtil.toSystemIndependentName(path) val name = - PathUtilRt.getFileName(presentableUrl).toLowerCase(Locale.US).removeSuffix(ProjectFileType.DOT_DEFAULT_EXTENSION) + PathUtilRt.getFileName(presentableUrl).lowercase().removeSuffix(ProjectFileType.DOT_DEFAULT_EXTENSION) val locationHash = Integer.toHexString((presentableUrl).hashCode()) val projectHash = "${name.trimMiddle(name.length.coerceAtMost(254 - locationHash.length), useEllipsisSymbol = false)}.$locationHash" @@ -85,7 +85,7 @@ class KotlinGradleFUSLogger : StartupActivity, DumbAware, Runnable { val data = HashMap() fun putIfNotNull(key: String, value: String?) { if (value != null) { - data[key.toLowerCase()] = value + data[key.lowercase()] = value } } diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleTestRunConfigurationAndHighlightingTest.kt b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleTestRunConfigurationAndHighlightingTest.kt index c2d3254f084..e260fe5cbdf 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleTestRunConfigurationAndHighlightingTest.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleTestRunConfigurationAndHighlightingTest.kt @@ -127,7 +127,7 @@ class GradleTestRunConfigurationAndHighlightingTest : GradleImportingTestCase() RunConfigurationsTags.SETTINGS -> settings.toString() } - result += tag.name.toLowerCase() to renderedTagValue + result += tag.name.lowercase() to renderedTagValue } return result.joinToString { (tagName, tagValue) -> tagName + "=\"" + tagValue.replace("\"", "\\\"") + "\"" } diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/compiler/KotlinCompilerManager.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/compiler/KotlinCompilerManager.kt index 8f463239fee..7d9e09222b7 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/compiler/KotlinCompilerManager.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/compiler/KotlinCompilerManager.kt @@ -74,7 +74,7 @@ class KotlinCompilerStartupActivity : StartupActivity { override fun fileGenerated(outputRoot: String, relativePath: String) { if (isUnitTestMode()) return - val ext = FileUtilRt.getExtension(relativePath).toLowerCase() + val ext = FileUtilRt.getExtension(relativePath).lowercase() if (FILE_EXTS_WHICH_NEEDS_REFRESH.contains(ext)) { val outFile = "$outputRoot/$relativePath" val virtualFile = LocalFileSystem.getInstance().findFileByPath(outFile) diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt index c906ed661b1..d5343e40cb0 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt @@ -218,7 +218,7 @@ class ModuleNewWizardFirstStep(wizard: IdeWizard) : WizardStep(wizard, Generatio private fun suggestGroupId(): String { val username = SystemProperties.getUserName() ?: return DEFAULT_GROUP_ID if (!username.matches("[\\w\\s]+".toRegex())) return DEFAULT_GROUP_ID - val usernameAsGroupId = username.trim().toLowerCase(Locale.US).split("\\s+".toRegex()).joinToString(separator = ".") + val usernameAsGroupId = username.trim().lowercase().split("\\s+".toRegex()).joinToString(separator = ".") return "me.$usernameAsGroupId" } diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/ModulesEditorToolbarDecorator.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/ModulesEditorToolbarDecorator.kt index 0cdb7bbdc99..611761b6088 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/ModulesEditorToolbarDecorator.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/ModulesEditorToolbarDecorator.kt @@ -73,7 +73,7 @@ class ModulesEditorToolbarDecorator( null -> "" } - text = KotlinNewProjectWizardUIBundle.message("editor.modules.add", moduleKindTextToAdd.capitalize(Locale.US)) + text = KotlinNewProjectWizardUIBundle.message("editor.modules.add", moduleKindTextToAdd.replaceFirstChar(Char::uppercaseChar)) } event.presentation.isEnabled } @@ -104,7 +104,7 @@ class ModulesEditorToolbarDecorator( isEnabled = tree.selectedSettingItem is Module text = KotlinNewProjectWizardUIBundle.message( "editor.modules.remove.tooltip", - selectedModuleKindText?.let { " ${it.capitalize(Locale.US)}" }.orEmpty() + selectedModuleKindText?.let { " ${it.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.US) else it.toString() }}" }.orEmpty() ) } event.presentation.isEnabled diff --git a/idea/jvm-debugger/eval4j/test/org/jetbrains/eval4j/test/util.kt b/idea/jvm-debugger/eval4j/test/org/jetbrains/eval4j/test/util.kt index 7d2eba6f0e2..8e1146a4478 100644 --- a/idea/jvm-debugger/eval4j/test/org/jetbrains/eval4j/test/util.kt +++ b/idea/jvm-debugger/eval4j/test/org/jetbrains/eval4j/test/util.kt @@ -16,4 +16,5 @@ package org.jetbrains.eval4j.test -fun getTestName(methodName: String) = if (methodName.startsWith("test")) methodName else "test${methodName.capitalize()}" \ No newline at end of file +fun getTestName(methodName: String) = + if (methodName.startsWith("test")) methodName else "test${methodName.replaceFirstChar(Char::uppercaseChar)}" \ No newline at end of file diff --git a/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/debuggerUtil.kt b/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/debuggerUtil.kt index 6a7c95dc4d2..d4d26e7d65e 100644 --- a/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/debuggerUtil.kt +++ b/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/debuggerUtil.kt @@ -37,7 +37,7 @@ fun Location.isInKotlinSources(): Boolean { } fun ReferenceType.isInKotlinSources(): Boolean { - val fileExtension = safeSourceName()?.substringAfterLast('.')?.toLowerCase() ?: "" + val fileExtension = safeSourceName()?.substringAfterLast('.')?.lowercase() ?: "" return fileExtension in KotlinFileTypeFactoryUtils.KOTLIN_EXTENSIONS || containsKotlinStrata() } diff --git a/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluatorBuilder.kt b/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluatorBuilder.kt index e8bf4008634..cc90ce09094 100644 --- a/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluatorBuilder.kt +++ b/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluatorBuilder.kt @@ -513,7 +513,7 @@ private fun reportError(codeFragment: KtCodeFragment, position: SourcePosition?, ) LOG.error( - "Cannot evaluate a code fragment of type " + codeFragment::class.java + ": " + message.decapitalize(), + "Cannot evaluate a code fragment of type " + codeFragment::class.java + ": " + message.replaceFirstChar(Char::lowercaseChar), throwable, mergeAttachments(*attachments) ) diff --git a/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/DebuggerUtils.kt b/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/DebuggerUtils.kt index 662728e3725..f08e5ec9f6d 100644 --- a/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/DebuggerUtils.kt +++ b/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/DebuggerUtils.kt @@ -143,7 +143,7 @@ object DebuggerUtils { } fun isKotlinSourceFile(fileName: String): Boolean { - val extension = FileUtilRt.getExtension(fileName).toLowerCase() + val extension = FileUtilRt.getExtension(fileName).lowercase() return extension in KotlinFileTypeFactoryUtils.KOTLIN_EXTENSIONS } diff --git a/idea/kotlin-gradle-tooling/src/org/jetbrains/kotlin/kapt/idea/KaptModelBuilderService.kt b/idea/kotlin-gradle-tooling/src/org/jetbrains/kotlin/kapt/idea/KaptModelBuilderService.kt index 27b527ce6e9..52c356dff80 100644 --- a/idea/kotlin-gradle-tooling/src/org/jetbrains/kotlin/kapt/idea/KaptModelBuilderService.kt +++ b/idea/kotlin-gradle-tooling/src/org/jetbrains/kotlin/kapt/idea/KaptModelBuilderService.kt @@ -72,7 +72,7 @@ class KaptModelBuilderService : AbstractKotlinGradleModelBuilder() { } val sourceSetName = compileTask.getSourceSetName() - val isTest = sourceSetName.toLowerCase().endsWith("test") + val isTest = sourceSetName.lowercase().endsWith("test") val kaptGeneratedSourcesDir = getKaptDirectory("getKaptGeneratedSourcesDir", project, sourceSetName) val kaptGeneratedClassesDir = getKaptDirectory("getKaptGeneratedClassesDir", project, sourceSetName) @@ -91,7 +91,7 @@ class KaptModelBuilderService : AbstractKotlinGradleModelBuilder() { val compilations = target.compilations ?: continue for (compilation in compilations) { val compileTask = compilation.getCompileKotlinTaskName(project) ?: continue - val moduleName = target.name + compilation.name.capitalize() + val moduleName = target.name + compilation.name.replaceFirstChar(Char::uppercaseChar) handleCompileTask(moduleName, compileTask) } } diff --git a/idea/kotlin-gradle-tooling/src/utils.kt b/idea/kotlin-gradle-tooling/src/utils.kt index 0c9bf2f9403..4cec7a4c26d 100644 --- a/idea/kotlin-gradle-tooling/src/utils.kt +++ b/idea/kotlin-gradle-tooling/src/utils.kt @@ -30,4 +30,4 @@ fun ClassLoader.loadClassOrNull(name: String): Class<*>? { } fun compilationFullName(simpleName: String, classifier: String?) = - if (classifier != null) classifier + simpleName.capitalize() else simpleName + if (classifier != null) classifier + simpleName.replaceFirstChar(Char::uppercaseChar) else simpleName diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceCompletionHandlerTests.kt b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceCompletionHandlerTests.kt index 6a0c52c4070..c2d1d454f7a 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceCompletionHandlerTests.kt +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceCompletionHandlerTests.kt @@ -43,7 +43,7 @@ abstract class AbstractPerformanceCompletionHandlerTests( protected open val statsPrefix = "completion" private fun stats(): Stats { - val suffix = "${defaultCompletionType.toString().toLowerCase()}${if (note.isNotEmpty()) "-$note" else ""}" + val suffix = "${defaultCompletionType.toString().lowercase()}${if (note.isNotEmpty()) "-$note" else ""}" return statsMap.computeIfAbsent(suffix) { Stats("$statsPrefix-$suffix") } diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/SuspiciousCollectionReassignmentInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/SuspiciousCollectionReassignmentInspection.kt index 36ef48e0bc5..660b81fd298 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/SuspiciousCollectionReassignmentInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/SuspiciousCollectionReassignmentInspection.kt @@ -65,7 +65,7 @@ class SuspiciousCollectionReassignmentInspection : AbstractKotlinInspection() { else -> fixes.add(IntentionWrapper(ReplaceWithOrdinaryAssignmentIntention(), binaryExpression.containingKtFile)) } - val typeText = leftDefaultType.toString().takeWhile { it != '<' }.toLowerCase() + val typeText = leftDefaultType.toString().takeWhile { it != '<' }.lowercase() val operationReference = binaryExpression.operationReference holder.registerProblem( operationReference, diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionTypeParameterToReceiverIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionTypeParameterToReceiverIntention.kt index c2ff03d4f98..ebb0249f296 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionTypeParameterToReceiverIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionTypeParameterToReceiverIntention.kt @@ -183,7 +183,7 @@ class ConvertFunctionTypeParameterToReceiverIntention : SelfTargetingRangeIntent if (callable !is PsiNamedElement) continue if (!checkModifiable(callable)) { - val renderedCallable = RefactoringUIUtil.getDescription(callable, true).capitalize() + val renderedCallable = RefactoringUIUtil.getDescription(callable, true).replaceFirstChar(Char::uppercaseChar) conflicts.putValue(callable, KotlinBundle.message("can.t.modify.0", renderedCallable)) } diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionTypeReceiverToParameterIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionTypeReceiverToParameterIntention.kt index 5a828c09e0f..4e3dcacc3b9 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionTypeReceiverToParameterIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertFunctionTypeReceiverToParameterIntention.kt @@ -120,7 +120,7 @@ class ConvertFunctionTypeReceiverToParameterIntention : SelfTargetingRangeIntent if (callable !is KtFunction) continue if (!checkModifiable(callable)) { - val renderedCallable = RefactoringUIUtil.getDescription(callable, true).capitalize() + val renderedCallable = RefactoringUIUtil.getDescription(callable, true).replaceFirstChar(Char::uppercaseChar) conflicts.putValue(callable, KotlinBundle.message("can.t.modify.0", renderedCallable)) } diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertPropertyToFunctionIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertPropertyToFunctionIntention.kt index b0a2ef4db38..bee4bf7b6f4 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertPropertyToFunctionIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertPropertyToFunctionIntention.kt @@ -103,7 +103,7 @@ class ConvertPropertyToFunctionIntention : SelfTargetingIntention( if (callable !is PsiNamedElement) continue if (!checkModifiable(callable)) { - val renderedCallable = RefactoringUIUtil.getDescription(callable, true).capitalize() + val renderedCallable = RefactoringUIUtil.getDescription(callable, true).replaceFirstChar(Char::uppercaseChar) conflicts.putValue(callable, KotlinBundle.message("can.t.modify.0", renderedCallable)) } diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/MoveMemberToCompanionObjectIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/MoveMemberToCompanionObjectIntention.kt index da9c930196f..3c69f3cf873 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/MoveMemberToCompanionObjectIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/MoveMemberToCompanionObjectIntention.kt @@ -281,7 +281,7 @@ class MoveMemberToCompanionObjectIntention : SelfTargetingRangeIntention protected constructor( val defaultPackageFqName = file.packageFqName val dialog = object : CreateKotlinClassDialog( file.project, - KotlinBundle.message("create.0", ideaClassKind.description.capitalize()), + KotlinBundle.message("create.0", ideaClassKind.description.replaceFirstChar(Char::uppercaseChar)), className, defaultPackageFqName.asString(), ideaClassKind, diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinChangeSignatureUsageProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinChangeSignatureUsageProcessor.kt index 665a1f8acfc..47e7a6fda15 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinChangeSignatureUsageProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinChangeSignatureUsageProcessor.kt @@ -789,7 +789,7 @@ class KotlinChangeSignatureUsageProcessor : ChangeSignatureUsageProcessor { val prefix = if (declaration != null) RefactoringUIUtil.getDescription(declaration, true) else originalRef.text result.putValue( originalRef, - KotlinBundle.message("text.0.will.no.longer.be.accessible.after.signature.change", prefix.capitalize()) + KotlinBundle.message("text.0.will.no.longer.be.accessible.after.signature.change", prefix.replaceFirstChar(Char::uppercaseChar)) ) } } diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/inline/AbstractKotlinInlineDialog.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/inline/AbstractKotlinInlineDialog.kt index 105abf94c85..2e08f9ceb08 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/inline/AbstractKotlinInlineDialog.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/inline/AbstractKotlinInlineDialog.kt @@ -52,7 +52,7 @@ abstract class AbstractKotlinInlineDialog( override fun getNameLabelText(): String { val occurrencesString = occurrencesString?.let { " - $it" } ?: "" - return "${kind.capitalize()} ${callable.nameAsSafeName} $occurrencesString" + return "${kind.replaceFirstChar(Char::uppercaseChar)} ${callable.nameAsSafeName} $occurrencesString" } private fun getInlineText(verb: String) = KotlinBundle.message( diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceProperty/KotlinInplacePropertyIntroducer.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceProperty/KotlinInplacePropertyIntroducer.kt index 6abb74e4638..a3f220103ae 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceProperty/KotlinInplacePropertyIntroducer.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceProperty/KotlinInplacePropertyIntroducer.kt @@ -74,21 +74,22 @@ class KotlinInplacePropertyIntroducer( if (availableTargets.size > 1) { addPanelControl( ControlWrapper { - val propertyKindComboBox = with(JComboBox(availableTargets.map { it.targetName.capitalize() }.toTypedArray())) { - addPopupMenuListener( - object : PopupMenuListenerAdapter() { - override fun popupMenuWillBecomeInvisible(e: PopupMenuEvent?) { - ApplicationManager.getApplication().invokeLater { - currentTarget = availableTargets[selectedIndex] + val propertyKindComboBox = + with(JComboBox(availableTargets.map { it.targetName.replaceFirstChar(Char::uppercaseChar) }.toTypedArray())) { + addPopupMenuListener( + object : PopupMenuListenerAdapter() { + override fun popupMenuWillBecomeInvisible(e: PopupMenuEvent?) { + ApplicationManager.getApplication().invokeLater { + currentTarget = availableTargets[selectedIndex] + } } } - } - ) + ) - selectedIndex = availableTargets.indexOf(currentTarget) + selectedIndex = availableTargets.indexOf(currentTarget) - this - } + this + } val propertyKindLabel = JLabel(KotlinBundle.message("label.text.introduce.as")) propertyKindLabel.labelFor = propertyKindComboBox diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/kotlinRefactoringUtil.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/kotlinRefactoringUtil.kt index 82218c42801..3c2650aed48 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/kotlinRefactoringUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/kotlinRefactoringUtil.kt @@ -233,7 +233,7 @@ fun reportDeclarationConflict( declaration: PsiElement, message: (renderedDeclaration: String) -> String ) { - conflicts.putValue(declaration, message(RefactoringUIUtil.getDescription(declaration, true).capitalize())) + conflicts.putValue(declaration, message(RefactoringUIUtil.getDescription(declaration, true).replaceFirstChar(Char::uppercaseChar))) } fun getPsiElementPopup( diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/MoveFilesWithDeclarationsViewDescriptor.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/MoveFilesWithDeclarationsViewDescriptor.kt index 5eacedf73fb..4c80da0a749 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/MoveFilesWithDeclarationsViewDescriptor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/MoveFilesWithDeclarationsViewDescriptor.kt @@ -27,7 +27,7 @@ internal class MoveFilesWithDeclarationsViewDescriptor( "move.single.element.elements.header", UsageViewUtil.getType(myElementsToMove[0]), newParent.virtualFile.presentableUrl - ).capitalize() + ).replaceFirstChar(Char::uppercaseChar) myCodeReferencesText = KotlinBundle.message( "text.references.in.code.to.0.1.and.its.declarations", UsageViewUtil.getType(myElementsToMove[0]), diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/moveConflictUtils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/moveConflictUtils.kt index 63339702a0b..8d602dbc9c8 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/moveConflictUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/moveConflictUtils.kt @@ -416,7 +416,7 @@ class MoveConflictChecker( render(container), render(referencedElement) ) - conflicts.putValue(element, message.capitalize()) + conflicts.putValue(element, message.replaceFirstChar(Char::uppercaseChar)) } } } @@ -494,7 +494,7 @@ class MoveConflictChecker( render(declaration), render(target) ) - conflicts.putValue(refExpr, message.capitalize()) + conflicts.putValue(refExpr, message.replaceFirstChar(Char::uppercaseChar)) } } } @@ -527,7 +527,7 @@ class MoveConflictChecker( render(container), render(memberToCheck) ) - conflicts.putValue(element, message.capitalize()) + conflicts.putValue(element, message.replaceFirstChar(Char::uppercaseChar)) } } } @@ -573,7 +573,8 @@ class MoveConflictChecker( val message = if (elementToMove == rootClass) { KotlinBundle.message("text.sealed.class.0.must.be.moved.with.all.its.subclasses", rootClass.name.toString()) } else { - val type = ElementDescriptionUtil.getElementDescription(elementToMove, UsageViewTypeLocation.INSTANCE).capitalize() + val type = ElementDescriptionUtil.getElementDescription(elementToMove, UsageViewTypeLocation.INSTANCE) + .replaceFirstChar(Char::uppercaseChar) KotlinBundle.message( "text.0.1.must.be.moved.with.sealed.parent.class.and.all.its.subclasses", type, diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/pullUpConflictsUtils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/pullUpConflictsUtils.kt index 366c51b088e..f100ba10c01 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/pullUpConflictsUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/pullUpConflictsUtils.kt @@ -93,7 +93,7 @@ internal fun checkVisibilityInAbstractedMembers( val memberText = memberDescriptor.renderForConflicts() val targetText = targetDescriptor.renderForConflicts() val message = KotlinBundle.message("text.0.uses.1.which.will.not.be.accessible.from.subclass", memberText, targetText) - conflicts.putValue(target, message.capitalize()) + conflicts.putValue(target, message.replaceFirstChar(Char::uppercaseChar)) } } } @@ -148,7 +148,7 @@ private fun KotlinPullUpData.checkClashWithSuperDeclaration( if (member is KtParameter) { if (((targetClass as? KtClass)?.primaryConstructorParameters ?: emptyList()).any { it.name == member.name }) { - conflicts.putValue(member, message.capitalize()) + conflicts.putValue(member, message.replaceFirstChar(Char::uppercaseChar)) } return } @@ -158,7 +158,7 @@ private fun KotlinPullUpData.checkClashWithSuperDeclaration( val clashingSuper = getClashingMemberInTargetClass(memberDescriptor) ?: return if (clashingSuper.modality == Modality.ABSTRACT) return if (clashingSuper.kind != CallableMemberDescriptor.Kind.DECLARATION) return - conflicts.putValue(member, message.capitalize()) + conflicts.putValue(member, message.replaceFirstChar(Char::uppercaseChar)) } private fun PsiClass.isSourceOrTarget(data: KotlinPullUpData): Boolean { @@ -198,7 +198,7 @@ private fun KotlinPullUpData.checkAccidentalOverrides( memberDescriptor.renderForConflicts(), it.resolveToDescriptorWrapperAware(resolutionFacade).renderForConflicts() ) - conflicts.putValue(clashingMember, message.capitalize()) + conflicts.putValue(clashingMember, message.replaceFirstChar(Char::uppercaseChar)) } } } @@ -211,7 +211,7 @@ private fun KotlinPullUpData.checkInnerClassToInterface( ) { if (isInterfaceTarget && memberDescriptor is ClassDescriptor && memberDescriptor.isInner) { val message = KotlinBundle.message("text.inner.class.0.cannot.be.moved.to.intefrace", memberDescriptor.renderForConflicts()) - conflicts.putValue(member, message.capitalize()) + conflicts.putValue(member, message.replaceFirstChar(Char::uppercaseChar)) } } @@ -231,7 +231,7 @@ private fun KotlinPullUpData.checkVisibility( memberDescriptor.renderForConflicts(), targetDescriptor.renderForConflicts() ) - conflicts.putValue(target, message.capitalize()) + conflicts.putValue(target, message.replaceFirstChar(Char::uppercaseChar)) } } diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/pushDown/KotlinPushDownHandler.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/pushDown/KotlinPushDownHandler.kt index 55d6707c936..67dd0563c00 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/pushDown/KotlinPushDownHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/pushDown/KotlinPushDownHandler.kt @@ -44,7 +44,8 @@ class KotlinPushDownHandler : AbstractPullPushMembersHandler( private fun reportFinalClassOrObject(project: Project, editor: Editor?, classOrObject: KtClassOrObject) { val message = RefactoringBundle.getCannotRefactorMessage( - KotlinBundle.message("text.class.0.is.final", RefactoringUIUtil.getDescription(classOrObject, false)).capitalize() + KotlinBundle.message("text.class.0.is.final", RefactoringUIUtil.getDescription(classOrObject, false)) + .replaceFirstChar(Char::uppercaseChar) ) CommonRefactoringUtil.showErrorHint(project, editor, message, PULL_MEMBERS_UP, HelpID.MEMBERS_PULL_UP) } diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/pushDown/KotlinPushDownProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/pushDown/KotlinPushDownProcessor.kt index 0cd9faff648..46c65cf4ded 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/pushDown/KotlinPushDownProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/pushDown/KotlinPushDownProcessor.kt @@ -100,7 +100,7 @@ class KotlinPushDownProcessor( val usages = refUsages.get() ?: UsageInfo.EMPTY_ARRAY if (usages.isEmpty()) { val message = KotlinBundle.message("text.0.have.no.inheritors.warning", context.sourceClassDescriptor.renderForConflicts()) - val answer = Messages.showYesNoDialog(message.capitalize(), PUSH_MEMBERS_DOWN, Messages.getWarningIcon()) + val answer = Messages.showYesNoDialog(message.replaceFirstChar(Char::uppercaseChar), PUSH_MEMBERS_DOWN, Messages.getWarningIcon()) if (answer == Messages.NO) return false } diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/pushDown/pushDownConflictsUtils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/pushDown/pushDownConflictsUtils.kt index caf66023366..1850a9373f3 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/pushDown/pushDownConflictsUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/pushDown/pushDownConflictsUtils.kt @@ -88,7 +88,7 @@ private fun checkConflicts( targetClassDescriptor.renderForConflicts(), context.sourceClassDescriptor.renderForConflicts() ) - conflicts.putValue(targetClass, message.capitalize()) + conflicts.putValue(targetClass, message.replaceFirstChar(Char::uppercaseChar)) } for (member in membersToPush) { @@ -146,7 +146,7 @@ private fun checkMemberClashing( targetClassDescriptor.renderForConflicts(), CommonRefactoringUtil.htmlEmphasize(member.name ?: "") ) - conflicts.putValue(it, message.capitalize()) + conflicts.putValue(it, message.replaceFirstChar(Char::uppercaseChar)) } } } @@ -217,7 +217,7 @@ private fun checkVisibility( targetDescriptor.renderForConflicts(), targetClassDescriptor.renderForConflicts() ) - conflicts.putValue(target, message.capitalize()) + conflicts.putValue(target, message.replaceFirstChar(Char::uppercaseChar)) } } diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinPropertyProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinPropertyProcessor.kt index ae2ea4ebbc7..23d266577a5 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinPropertyProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinPropertyProcessor.kt @@ -114,7 +114,7 @@ class RenameKotlinPropertyProcessor : RenameKotlinPsiProcessor() { result: MutableList ) { fun reportAccidentalOverride(candidate: PsiNamedElement) { - val what = UsageViewUtil.getType(declaration).capitalize() + val what = UsageViewUtil.getType(declaration).replaceFirstChar(Char::uppercaseChar) val withWhat = candidate.renderDescription() val where = candidate.representativeContainer()?.renderDescription() ?: return val message = KotlinBundle.message("text.0.will.clash.with.existing.1.in.2", what, withWhat, where) diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/renameConflictUtils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/renameConflictUtils.kt index 64168e1802f..a71848f5957 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/renameConflictUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/renameConflictUtils.kt @@ -166,7 +166,7 @@ internal fun checkRedeclarations( if (overloadChecker != null && overloadChecker.isOverloadable(descriptor, candidateDescriptor)) continue val what = candidate.renderDescription() val where = candidate.representativeContainer()?.renderDescription() ?: continue - val message = KotlinBundle.message("text.0.already.declared.in.1", what, where).capitalize() + val message = KotlinBundle.message("text.0.already.declared.in.1", what, where).replaceFirstChar(Char::uppercaseChar) result += BasicUnresolvableCollisionUsageInfo(candidate, candidate, message) } } @@ -197,7 +197,7 @@ fun reportShadowing( "text.0.will.be.shadowed.by.1", declaration.renderDescription(), candidate.renderDescription() - ).capitalize() + ).replaceFirstChar(Char::uppercaseChar) result += BasicUnresolvableCollisionUsageInfo(refElement, elementToBindUsageInfoTo, message) } diff --git a/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureKotlinInTempDirTest.kt b/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureKotlinInTempDirTest.kt index 033162dce47..80613d39ff6 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureKotlinInTempDirTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureKotlinInTempDirTest.kt @@ -20,7 +20,7 @@ abstract class AbstractConfigureKotlinInTempDirTest : AbstractConfigureKotlinTes FileUtil.copyDir(File(projectRoot), tempDir) val kotlinRuntime = File(tempDir, "lib/kotlin-stdlib.jar") - if (getTestName(true).toLowerCase().contains("latestruntime") && kotlinRuntime.exists()) { + if (getTestName(true).lowercase().contains("latestruntime") && kotlinRuntime.exists()) { ForTestCompileRuntime.runtimeJarForTests().copyTo(kotlinRuntime, overwrite = true) } diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixTest.kt b/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixTest.kt index 4bb752736de..36af4c5e119 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixTest.kt @@ -67,7 +67,7 @@ abstract class AbstractQuickFixTest : KotlinLightCodeInsightFixtureTestCase(), Q } override fun getProjectDescriptor(): LightProjectDescriptor = - if ("createfromusage" in testDataPath.toLowerCase()) { + if ("createfromusage" in testDataPath.lowercase()) { KotlinWithJdkAndRuntimeLightProjectDescriptor.INSTANCE } else { super.getProjectDescriptor() diff --git a/idea/tests/org/jetbrains/kotlin/idea/resolve/AbstractResolveModeComparisonTest.kt b/idea/tests/org/jetbrains/kotlin/idea/resolve/AbstractResolveModeComparisonTest.kt index 2c5ca698c71..b866103f5d7 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/resolve/AbstractResolveModeComparisonTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/resolve/AbstractResolveModeComparisonTest.kt @@ -139,7 +139,7 @@ abstract class AbstractResolveModeComparisonTest : KotlinLightCodeInsightFixture val modes = mark.modes val modesRepresentation = if (modes.size == RESOLVE_MODES.size) "All" - else modes.joinToString { it.toString().toLowerCase().capitalize() } + else modes.joinToString { it.toString().lowercase().replaceFirstChar(Char::uppercaseChar) } "/*$modesRepresentation (${mark.ordinal})*/" } is Mark.NotAnalyzed -> { diff --git a/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt b/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt index 6ca4de3e15e..8969642ca02 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt @@ -131,7 +131,7 @@ abstract class AbstractScriptConfigurationTest : KotlinCompletionTestCase() { } // If script is inside module - if (module != null && mainScriptFile.parentFile.name.toLowerCase().contains("module")) { + if (module != null && mainScriptFile.parentFile.name.lowercase().contains("module")) { module.addDependency( projectLibrary( "script-runtime", diff --git a/j2k/src/org/jetbrains/kotlin/j2k/ast/Expressions.kt b/j2k/src/org/jetbrains/kotlin/j2k/ast/Expressions.kt index 84361f36e3e..315dbb31744 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/ast/Expressions.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/ast/Expressions.kt @@ -295,7 +295,7 @@ class ClassLiteralExpression(val type: Type): Expression() { fun createArrayInitializerExpression(arrayType: ArrayType, initializers: List, needExplicitType: Boolean = true) : MethodCallExpression { val elementType = arrayType.elementType val createArrayFunction = when { - elementType is PrimitiveType -> (elementType.toNotNullType().canonicalCode() + "ArrayOf").decapitalize(Locale.US) + elementType is PrimitiveType -> (elementType.toNotNullType().canonicalCode() + "ArrayOf").replaceFirstChar(Char::lowercaseChar) needExplicitType -> "arrayOf<" + arrayType.elementType.canonicalCode() + ">" else -> "arrayOf" } diff --git a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalJpsTest.kt b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalJpsTest.kt index 62ab22a1cc1..283dee85387 100644 --- a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalJpsTest.kt +++ b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalJpsTest.kt @@ -276,7 +276,7 @@ abstract class AbstractIncrementalJpsTest( } if (!makeOverallResult.makeFailed) { - if (checkDumpsCaseInsensitively && rebuildResult.mappingsDump?.toLowerCase() == makeOverallResult.mappingsDump?.toLowerCase()) { + if (checkDumpsCaseInsensitively && rebuildResult.mappingsDump?.lowercase() == makeOverallResult.mappingsDump?.lowercase()) { // do nothing } else { TestCase.assertEquals(rebuildResult.mappingsDump, makeOverallResult.mappingsDump) diff --git a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/dependeciestxt/MppJpsIncTestsGenerator.kt b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/dependeciestxt/MppJpsIncTestsGenerator.kt index 36700d219e4..a99a9d96627 100644 --- a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/dependeciestxt/MppJpsIncTestsGenerator.kt +++ b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/dependeciestxt/MppJpsIncTestsGenerator.kt @@ -29,7 +29,7 @@ fun actualizeMppJpsIncTestCaseDirs(rootDir: String, dir: String) { } class MppJpsIncTestsGenerator(val txt: ModulesTxt, val testCaseDirProvider: (TestCase) -> File) { - val ModulesTxt.Module.capitalName get() = name.capitalize() + val ModulesTxt.Module.capitalName get() = name.replaceFirstChar(Char::uppercaseChar) val testCases: List @@ -308,7 +308,7 @@ class MppJpsIncTestsGenerator(val txt: ModulesTxt, val testCaseDirProvider: (Tes protected fun serviceKtFile(module: ModulesTxt.Module, fileNameSuffix: String = ""): File { val suffix = if (module.isCommonModule) "${module.serviceName}Header" - else "${module.name.capitalize()}${module.contentsSettings.serviceNameSuffix}Impl" + else "${module.name.replaceFirstChar(Char::uppercaseChar)}${module.contentsSettings.serviceNameSuffix}Impl" return File(dir, "${module.indexedName}_service$suffix.kt$fileNameSuffix") } diff --git a/js/js.dce/src/org/jetbrains/kotlin/js/dce/util.kt b/js/js.dce/src/org/jetbrains/kotlin/js/dce/util.kt index 020c5281c2a..d9370e1ba1e 100644 --- a/js/js.dce/src/org/jetbrains/kotlin/js/dce/util.kt +++ b/js/js.dce/src/org/jetbrains/kotlin/js/dce/util.kt @@ -47,7 +47,7 @@ fun Context.isObjectFunction(function: JsExpression, functionName: String): Bool fun Context.isKotlinFunction(function: JsExpression, name: String): Boolean { if (function !is JsNameRef || function.ident != name) return false val receiver = (function.qualifier as? JsNameRef)?.name ?: return false - return receiver in nodes && receiver.ident.toLowerCase(Locale.US) == "kotlin" + return receiver in nodes && receiver.ident.lowercase() == "kotlin" } fun isSpecialFunction(expr: JsExpression, specialFunction: SpecialFunction): Boolean = diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/config/ErrorTolerancePolicy.kt b/js/js.frontend/src/org/jetbrains/kotlin/js/config/ErrorTolerancePolicy.kt index c8e7bf657c5..62c8a9d6913 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/config/ErrorTolerancePolicy.kt +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/config/ErrorTolerancePolicy.kt @@ -18,7 +18,7 @@ enum class ErrorTolerancePolicy(val allowSyntaxErrors: Boolean, val allowSemanti val DEFAULT = NONE fun resolvePolicy(key: String): ErrorTolerancePolicy { - return when (key.toUpperCase(Locale.US)) { + return when (key.uppercase()) { "NONE" -> NONE "SEMANTIC" -> SEMANTIC "SYNTAX", "ALL" -> ALL diff --git a/js/js.tests/test/org/jetbrains/kotlin/generators/tests/generateTestDataForReservedWords.kt b/js/js.tests/test/org/jetbrains/kotlin/generators/tests/generateTestDataForReservedWords.kt index 0ead711d12b..484fbb86772 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/generators/tests/generateTestDataForReservedWords.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/generators/tests/generateTestDataForReservedWords.kt @@ -311,7 +311,10 @@ private class TestDataBuilder { .replace(KEYWORD_MARKER, keywordWithEscapeIfNeed) - val fileName = "${suite.name.decapitalize()}${case.name.capitalize()}${keyword.capitalize()}.kt" + val decapitalizedSuiteName = suite.name.replaceFirstChar(Char::lowercaseChar) + val capitalizedCaseName = case.name.replaceFirstChar(Char::uppercaseChar) + val capitalizedKeyword = keyword.replaceFirstChar(Char::uppercaseChar) + val fileName = "$decapitalizedSuiteName$capitalizedCaseName$capitalizedKeyword.kt" val testDataFile = File(testDataDirPath + "/" + fileName) diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/functions/factories/ArrayFIF.kt b/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/functions/factories/ArrayFIF.kt index dad6b6bcbd6..cad184957f7 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/functions/factories/ArrayFIF.kt +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/functions/factories/ArrayFIF.kt @@ -109,7 +109,7 @@ object ArrayFIF : CompositeFIF() { } private val PrimitiveType.lowerCaseName - get() = typeName.asString().toLowerCase(Locale.US) + get() = typeName.asString().lowercase() fun getTag(descriptor: CallableDescriptor, config: JsConfig): String? { if (descriptor !is ConstructorDescriptor) return null diff --git a/libraries/examples/annotation-processor-example/src/main/kotlin/example/ExampleAnnotationProcessor.kt b/libraries/examples/annotation-processor-example/src/main/kotlin/example/ExampleAnnotationProcessor.kt index cd1975f0d6e..6171058f487 100644 --- a/libraries/examples/annotation-processor-example/src/main/kotlin/example/ExampleAnnotationProcessor.kt +++ b/libraries/examples/annotation-processor-example/src/main/kotlin/example/ExampleAnnotationProcessor.kt @@ -49,7 +49,10 @@ class ExampleAnnotationProcessor : AbstractProcessor() { for (element in elements) { val packageName = elementUtils.getPackageOf(element).qualifiedName.toString() val simpleName = element.simpleName.toString() - val generatedJavaClassName = generatedFilePrefix.capitalize() + simpleName.capitalize() + generatedFileSuffix + val generatedJavaClassName = + generatedFilePrefix.replaceFirstChar(Char::uppercaseChar) + + simpleName.replaceFirstChar(Char::uppercaseChar) + + generatedFileSuffix filer.createSourceFile(packageName + '.' + generatedJavaClassName).openWriter().use { with(it) { diff --git a/libraries/scripting/dependencies/src/kotlin/script/experimental/dependencies/impl/makeExternalDependenciesResolverOptions.kt b/libraries/scripting/dependencies/src/kotlin/script/experimental/dependencies/impl/makeExternalDependenciesResolverOptions.kt index c930ebb8abc..39a30c636da 100644 --- a/libraries/scripting/dependencies/src/kotlin/script/experimental/dependencies/impl/makeExternalDependenciesResolverOptions.kt +++ b/libraries/scripting/dependencies/src/kotlin/script/experimental/dependencies/impl/makeExternalDependenciesResolverOptions.kt @@ -26,7 +26,7 @@ private class MapExternalDependenciesResolverOptions( override fun value(name: String): String? = map[name] override fun flag(name: String): Boolean? = map[name]?.let { value -> - when (value.toLowerCase()) { + when (value.lowercase()) { "1", "true", "t", "yes", "y" -> true "0", "false", "f", "no", "n" -> false else -> null diff --git a/libraries/scripting/dependencies/src/kotlin/script/experimental/dependencies/impl/resolverNamedOptions.kt b/libraries/scripting/dependencies/src/kotlin/script/experimental/dependencies/impl/resolverNamedOptions.kt index 1670406a31f..03b3abfbd52 100644 --- a/libraries/scripting/dependencies/src/kotlin/script/experimental/dependencies/impl/resolverNamedOptions.kt +++ b/libraries/scripting/dependencies/src/kotlin/script/experimental/dependencies/impl/resolverNamedOptions.kt @@ -25,7 +25,7 @@ enum class DependenciesResolverOptionsName(optionName: String? = null) { TRANSITIVE, SCOPE; - val key = optionName ?: name.toLowerCase() + val key = optionName ?: name.lowercase() } val ExternalDependenciesResolver.Options.transitive diff --git a/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/utils.kt b/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/utils.kt index c4c842c700c..3cbbef8f5fd 100644 --- a/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/utils.kt +++ b/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/utils.kt @@ -42,4 +42,4 @@ private fun CharSequence.trimTrailingWhitespacesAndAddNewlineAtEOF(): String = private val UPPER_CASE_CHARS = Regex("[A-Z]+") -fun String.replaceCamelCaseWithDashedLowerCase() = replace(UPPER_CASE_CHARS) { "-" + it.value.toLowerCase() } +fun String.replaceCamelCaseWithDashedLowerCase() = replace(UPPER_CASE_CHARS) { "-" + it.value.lowercase() } diff --git a/libraries/tools/kotlin-main-kts/src/org/jetbrains/kotlin/mainKts/impl/directories.kt b/libraries/tools/kotlin-main-kts/src/org/jetbrains/kotlin/mainKts/impl/directories.kt index 9e2ff344b97..d0997424de4 100644 --- a/libraries/tools/kotlin-main-kts/src/org/jetbrains/kotlin/mainKts/impl/directories.kt +++ b/libraries/tools/kotlin-main-kts/src/org/jetbrains/kotlin/mainKts/impl/directories.kt @@ -39,7 +39,7 @@ class Directories( // compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/FileSystemUtils.kt // which in turn is based on: http://www.code4copy.com/java/post/detecting-os-type-in-java private val os: OSKind - get() = getProperty("os.name")?.toLowerCase(Locale.US).let { name -> + get() = getProperty("os.name")?.lowercase().let { name -> when { name == null -> OSKind.Unknown name.startsWith("windows") -> OSKind.Windows diff --git a/libraries/tools/kotlinp/src/org/jetbrains/kotlin/kotlinp/printers.kt b/libraries/tools/kotlinp/src/org/jetbrains/kotlin/kotlinp/printers.kt index 67c1296f62b..89d377d0d6f 100644 --- a/libraries/tools/kotlinp/src/org/jetbrains/kotlin/kotlinp/printers.kt +++ b/libraries/tools/kotlinp/src/org/jetbrains/kotlin/kotlinp/printers.kt @@ -310,7 +310,7 @@ private fun printType(flags: Flags, output: (String) -> Unit): KmTypeVisitor = printType(flags) { argumentTypeString -> arguments += buildString { if (variance != KmVariance.INVARIANT) { - append(variance.name.toLowerCase(Locale.US)).append(" ") + append(variance.name.lowercase()).append(" ") } append(argumentTypeString) } @@ -400,7 +400,7 @@ private fun printTypeParameter( append("@").append(renderAnnotation(annotation)).append(" ") } if (variance != KmVariance.INVARIANT) { - append(variance.name.toLowerCase(Locale.US)).append(" ") + append(variance.name.lowercase()).append(" ") } append("T#$id") if (settings.isVerbose) { diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/SettingValidator.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/SettingValidator.kt index e1b4cbf535d..d9cb0be0a17 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/SettingValidator.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/SettingValidator.kt @@ -28,7 +28,7 @@ fun inValidatorContext(validator: Reader.(V) -> SettingValidator) = object StringValidators { fun shouldNotBeBlank(name: String) = settingValidator { value: String -> if (value.isBlank()) ValidationResult.ValidationError( - KotlinNewProjectWizardBundle.message("validation.should.not.be.blank", name.capitalize()) + KotlinNewProjectWizardBundle.message("validation.should.not.be.blank", name.replaceFirstChar(Char::uppercaseChar)) ) else ValidationResult.OK } @@ -41,7 +41,11 @@ object StringValidators { ?.let { chars -> KotlinNewProjectWizardBundle.message("validation.identifier.additional.symbols", chars) } .orEmpty() ValidationResult.ValidationError( - KotlinNewProjectWizardBundle.message("validation.identifier", name.capitalize(), allowedExtraSymbolsStringified) + KotlinNewProjectWizardBundle.message( + "validation.identifier", + name.replaceFirstChar(Char::uppercaseChar), + allowedExtraSymbolsStringified + ) ) } else ValidationResult.OK } diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/settings/SettingType.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/settings/SettingType.kt index ff73ae92ea0..b4361a90e99 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/settings/SettingType.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/settings/SettingType.kt @@ -34,7 +34,7 @@ object StringSettingType : SettingType() { neededAtPhase: GenerationPhase ) : SettingBuilder(path, title, neededAtPhase) { fun shouldNotBeBlank() { - validate(StringValidators.shouldNotBeBlank(title.capitalize())) + validate(StringValidators.shouldNotBeBlank(title.replaceFirstChar(Char::uppercaseChar))) } override val type = StringSettingType @@ -202,7 +202,7 @@ object PathSettingType : SettingType() { ValidationResult.ValidationError( KotlinNewProjectWizardBundle.message( "validation.should.not.be.blank", - title.capitalize() + title.replaceFirstChar(Char::uppercaseChar) ) ) else ValidationResult.OK @@ -213,7 +213,7 @@ object PathSettingType : SettingType() { if (isUnitTestMode) return@validate ValidationResult.OK if (!Files.exists(pathValue)) ValidationResult.ValidationError( - KotlinNewProjectWizardBundle.message("validation.file.should.exists", title.capitalize()) + KotlinNewProjectWizardBundle.message("validation.file.should.exists", title.replaceFirstChar(Char::uppercaseChar)) ) else ValidationResult.OK } diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/errors.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/errors.kt index 57d550a8ac7..27fa527d202 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/errors.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/errors.kt @@ -58,7 +58,7 @@ data class ConfiguratorNotFoundError(val id: String) : Error() { data class ValidationError(val validationMessage: String) : Error() { override val message: String - get() = validationMessage.capitalize() + get() = validationMessage.replaceFirstChar(Char::uppercaseChar) } data class ProjectImportingError(val kotlinVersion: String, @Nls val reason: String) : Error() { diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/service/KotlinVersionProviderService.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/service/KotlinVersionProviderService.kt index 2e84df4d608..a50b1ad7238 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/service/KotlinVersionProviderService.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/service/KotlinVersionProviderService.kt @@ -54,10 +54,10 @@ abstract class KotlinVersionProviderService : WizardService { private fun getKotlinVersionKind(version: Version) = when { - "eap" in version.toString().toLowerCase() -> KotlinVersionKind.EAP - "rc" in version.toString().toLowerCase() -> KotlinVersionKind.EAP - "dev" in version.toString().toLowerCase() -> KotlinVersionKind.DEV - "m" in version.toString().toLowerCase() -> KotlinVersionKind.M + "eap" in version.toString().lowercase() -> KotlinVersionKind.EAP + "rc" in version.toString().lowercase() -> KotlinVersionKind.EAP + "dev" in version.toString().lowercase() -> KotlinVersionKind.DEV + "m" in version.toString().lowercase() -> KotlinVersionKind.M else -> KotlinVersionKind.STABLE diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/DependencyIR.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/DependencyIR.kt index 13185026dad..fc33032fae6 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/DependencyIR.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/DependencyIR.kt @@ -66,7 +66,7 @@ fun SourcesetType.toDependencyType() = when (this) { fun DependencyType.getGradleName(kind: DependencyKind) = when (this) { DependencyType.MAIN -> kind.text - DependencyType.TEST -> "test${kind.text.capitalize(Locale.US)}" + DependencyType.TEST -> "test${kind.text.replaceFirstChar(Char::uppercaseChar)}" } data class ArtifactBasedLibraryDependencyIR( diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/SourcesetIR.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/SourcesetIR.kt index eb056801f36..8973aee7d45 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/SourcesetIR.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/SourcesetIR.kt @@ -56,4 +56,4 @@ data class MultiplatformSourcesetIR( } val MultiplatformSourcesetIR.sourcesetName - get() = targetName + sourcesetType.name.capitalize(Locale.US) + get() = targetName + sourcesetType.name.replaceFirstChar(Char::uppercaseChar) diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/NativeTargetConfigurator.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/NativeTargetConfigurator.kt index ab22f552bed..5077400c437 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/NativeTargetConfigurator.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/NativeTargetConfigurator.kt @@ -21,7 +21,7 @@ interface NativeTargetConfigurator : TargetConfigurator { class RealNativeTargetConfigurator private constructor( override val moduleSubType: ModuleSubType ) : NativeTargetConfigurator, SimpleTargetConfigurator { - override val text: String = moduleSubType.name.capitalize(Locale.US) + override val text: String = moduleSubType.name.replaceFirstChar(Char::uppercaseChar) override val isDesktopTarget: Boolean get() = moduleSubType.isNativeDesktop diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/mpp/mpp.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/mpp/mpp.kt index b8ac41ea6a5..31395c9850f 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/mpp/mpp.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/mpp/mpp.kt @@ -319,7 +319,7 @@ private fun pathForFileInTarget( sourcesetType: SourcesetType, ) = mppModulePath / Defaults.SRC_DIR / - "${target.name}${sourcesetType.name.capitalize(Locale.US)}" / + "${target.name}${sourcesetType.name.replaceFirstChar(Char::uppercaseChar)}" / mppModule.configurator.kotlinDirectoryName / javaPackage?.asPath() / filename diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt index 8ddcabcc324..32634135117 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt @@ -50,7 +50,7 @@ abstract class BuildSystemPlugin(context: Context) : Plugin(context) { else -> ValidationResult.ValidationError( KotlinNewProjectWizardBundle.message( "plugin.buildsystem.setting.type.error.wrong.project.kind", - projectKind.shortName.capitalize(), + projectKind.shortName.replaceFirstChar(Char::uppercaseChar), buildSystemType.fullText ) ) diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModulesToIRsConverter.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModulesToIRsConverter.kt index ca7b830261d..ca46f48b166 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModulesToIRsConverter.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModulesToIRsConverter.kt @@ -266,7 +266,7 @@ class ModulesToIRsConverter( val (moduleDependencies) = createModuleDependencies(target) mutateProjectStructureByModuleConfigurator(target, modulePath) val sourcesetss = target.sourcesets.map { sourceset -> - val sourcesetName = target.name + sourceset.sourcesetType.name.capitalize(Locale.US) + val sourcesetName = target.name + sourceset.sourcesetType.name.replaceFirstChar(Char::uppercaseChar) MultiplatformSourcesetIR( sourceset.sourcesetType, modulePath / Defaults.SRC_DIR / sourcesetName, diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt index a34a3405c4c..35d8f5e2ddb 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt @@ -174,7 +174,7 @@ class TemplatesPlugin(context: Context) : Plugin(context) { is SrcFilePath -> moduleConfigurator.kotlinDirectoryName is ResourcesFilePath -> moduleConfigurator.resourcesDirectoryName } - SRC_DIR / "${module.name}${filePath.sourcesetType.name.capitalize(Locale.US)}" / directory + SRC_DIR / "${module.name}${filePath.sourcesetType.name.replaceFirstChar(Char::uppercaseChar)}" / directory } is FakeMultiplatformModuleIR -> error("Not supported for FakeMultiplatformModuleIR") } diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Module.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Module.kt index b27f28e546f..05db9c2804a 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Module.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Module.kt @@ -128,7 +128,7 @@ class Module( ?: return@map ValidationResult.ValidationError( KotlinNewProjectWizardBundle.message( "validation.should.not.be.blank", - setting.title.capitalize() + setting.title.replaceFirstChar(Char::uppercaseChar) ) ) (setting.validator as SettingValidator).validate(this@settingValidator, value) @@ -145,7 +145,7 @@ class Module( ?: return@map ValidationResult.ValidationError( KotlinNewProjectWizardBundle.message( "validation.should.not.be.blank", - setting.title.capitalize() + setting.title.replaceFirstChar(Char::uppercaseChar) ) ) (setting.validator as SettingValidator).validate(this@settingValidator, value) diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/KtorServerTemplate.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/KtorServerTemplate.kt index 19849dcc90a..af22180692e 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/KtorServerTemplate.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/KtorServerTemplate.kt @@ -111,8 +111,8 @@ enum class KtorServerEngine(val engineName: String, val dependencyName: String) ); override val text: String - get() = engineName.capitalize() + get() = engineName.replaceFirstChar(Char::uppercaseChar) val import: String - get() = "io.ktor.server.${engineName.decapitalize(Locale.US)}.${engineName.capitalize(Locale.US)}" + get() = "io.ktor.server.${engineName.replaceFirstChar(Char::lowercaseChar)}.${engineName.replaceFirstChar(Char::uppercaseChar)}" } diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt index 9b4f9917e7b..a9e8cad6990 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt @@ -164,7 +164,7 @@ abstract class Template : SettingsOwner, EntitiesOwnerDescriptor, DisplayableSet private fun Reader.createDefaultSettings() = mapOf( - "projectName" to StructurePlugin.name.settingValue.capitalize(Locale.US) + "projectName" to StructurePlugin.name.settingValue.replaceFirstChar(Char::uppercaseChar) ) override fun equals(other: Any?): Boolean = diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/BooleanOptionType.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/BooleanOptionType.kt index e27af307b8c..455aacfc76e 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/BooleanOptionType.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/BooleanOptionType.kt @@ -11,7 +11,7 @@ internal class BooleanOptionType( mandatory: Boolean ) : OptionType(alias, description, mandatory) { override fun parse(rawValue: String, onError: (reason: String) -> Nothing): Option { - val value = rawValue.toLowerCase().let { + val value = rawValue.lowercase().let { when (it) { in TRUE_TOKENS -> true in FALSE_TOKENS -> false diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/StatsTypeOptionType.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/StatsTypeOptionType.kt index fb8af9554e6..3d8c6f04ef3 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/StatsTypeOptionType.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/StatsTypeOptionType.kt @@ -17,7 +17,7 @@ internal object StatsTypeOptionType : OptionType("log-stats", DESCRIP private val DESCRIPTION = buildString { StatsType.values().joinTo(this) { - val item = "\"${it.name.toLowerCase()}\"" + val item = "\"${it.name.lowercase()}\"" if (it == StatsType.NONE) "$item (default)" else item } append(";\nlog commonization stats") diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/nativeTasks.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/nativeTasks.kt index b4ce1397f05..da3e11f6d51 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/nativeTasks.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/nativeTasks.kt @@ -77,7 +77,7 @@ internal class NativeKlibCommonize(options: Collection>) : Task(option progressLogger = progressLogger ).run() - statsCollector?.writeTo(FileStatsOutput(destination, statsType.name.toLowerCase())) + statsCollector?.writeTo(FileStatsOutput(destination, statsType.name.lowercase())) } } @@ -127,7 +127,7 @@ internal class NativeDistributionCommonize(options: Collection>) : Tas progressLogger = progressLogger ).run() - statsCollector?.writeTo(FileStatsOutput(destination, statsType.name.toLowerCase())) + statsCollector?.writeTo(FileStatsOutput(destination, statsType.name.lowercase())) println("$description: Done") } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt index 40b9b9a4e97..ea64bd5a40b 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt @@ -106,7 +106,7 @@ object ConversionsRunner { private fun Conversion.description(): String { val conversionName = this::class.simpleName - val words = conversionName?.let { wordRegex.findAll(conversionName).map { it.value.decapitalize(Locale.US) }.toList() } + val words = conversionName?.let { wordRegex.findAll(conversionName).map { it.value.replaceFirstChar(Char::lowercaseChar) }.toList() } return when { conversionName == null -> "Converting..." conversionName.endsWith("Conversion") -> "Converting ${words!!.dropLast(1).joinToString(" ")}" diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BoxedTypeOperationsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BoxedTypeOperationsConversion.kt index 1900e769c0d..502ba2c06a5 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BoxedTypeOperationsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BoxedTypeOperationsConversion.kt @@ -43,11 +43,11 @@ class BoxedTypeOperationsConversion(context: NewJ2kConverterContext) : Recursive val shouldConvertToIntFirst = primitiveTypeName in floatingPointPrimitiveTypeNames && operationType in typeNameOfIntegersLesserThanInt - val conversionType = if (shouldConvertToIntFirst) "Int" else operationType.capitalize(Locale.US) + val conversionType = if (shouldConvertToIntFirst) "Int" else operationType.replaceFirstChar(Char::uppercaseChar) return JKCallExpressionImpl( symbolProvider.provideMethodSymbol( - "kotlin.${primitiveTypeName.capitalize(Locale.US)}.to$conversionType" + "kotlin.${primitiveTypeName.replaceFirstChar(Char::uppercaseChar)}}.to$conversionType" ), JKArgumentList() ).withFormattingFrom(methodCallExpression) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/LiteralConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/LiteralConversion.kt index 4e25b4705fe..042506fd64a 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/LiteralConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/LiteralConversion.kt @@ -32,7 +32,7 @@ class LiteralConversion(context: NewJ2kConverterContext) : RecursiveApplicableCo } private fun cannotConvertLiteralMessage(element: JKLiteralExpression): String { - val literalType = element.type.toString().toLowerCase() + val literalType = element.type.toString().lowercase() val literalValue = element.literal return "Could not convert $literalType literal '$literalValue' to Kotlin" } @@ -116,7 +116,7 @@ class LiteralConversion(context: NewJ2kConverterContext) : RecursiveApplicableCo } private fun String.convertOctalLiteral(isLongLiteral: Boolean): String { - if (!startsWith("0") || length == 1 || get(1).toLowerCase() == 'x') return this + if (!startsWith("0") || length == 1 || get(1).lowercaseChar() == 'x') return this val value = BigInteger(drop(1), 8) return if (isLongLiteral) value.toLong().toString(10) else value.toInt().toString(10) } diff --git a/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/synthetic/res/AndroidLayoutXmlFileManager.kt b/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/synthetic/res/AndroidLayoutXmlFileManager.kt index 0db69967a4f..fab1284e02f 100644 --- a/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/synthetic/res/AndroidLayoutXmlFileManager.kt +++ b/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/synthetic/res/AndroidLayoutXmlFileManager.kt @@ -70,7 +70,7 @@ abstract class AndroidLayoutXmlFileManager(val project: Project) { val resDirectories = variant.resDirectories.map { fileManager.findFileByUrl("file://$it") } val allChildren = resDirectories.flatMap { it?.getAllChildren() ?: listOf() } - val allLayoutFiles = allChildren.filter { it.parent.name.startsWith("layout") && it.name.toLowerCase().endsWith(".xml") } + val allLayoutFiles = allChildren.filter { it.parent.name.startsWith("layout") && it.name.lowercase().endsWith(".xml") } val allLayoutPsiFiles = allLayoutFiles.fold(ArrayList(allLayoutFiles.size)) { list, file -> val psiFile = psiManager.findFile(file) if (psiFile?.parent != null) { diff --git a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenMemberGenerator.kt b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenMemberGenerator.kt index c2f3c5c1078..f3b907b532b 100644 --- a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenMemberGenerator.kt +++ b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenMemberGenerator.kt @@ -45,7 +45,7 @@ class AllOpenMemberGenerator(session: FirSession) : FirDeclarationGenerationExte origin = FirDeclarationOrigin.Plugin(key) returnTypeRef = annotatedDeclaration.returnTypeRef status = annotatedDeclaration.status - name = Name.identifier("hello${propertyName.capitalize()}") + name = Name.identifier("hello${propertyName.replaceFirstChar(Char::uppercaseChar)}") symbol = FirNamedFunctionSymbol(CallableId(owner.classId, name)) } return listOf(GeneratedDeclaration(function, owner)) diff --git a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/incremental/incrementalProcessorDiscovery.kt b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/incremental/incrementalProcessorDiscovery.kt index eb87014a62f..ddb0c0dc466 100644 --- a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/incremental/incrementalProcessorDiscovery.kt +++ b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/incremental/incrementalProcessorDiscovery.kt @@ -53,7 +53,7 @@ private fun processSingleClasspathEntry(rootFile: File): Map "kotlin" "java" -> "java" else -> "other" diff --git a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/java9TestUtils.kt b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/java9TestUtils.kt index 6b7e2f94bfb..88e69b54daf 100644 --- a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/java9TestUtils.kt +++ b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/java9TestUtils.kt @@ -48,7 +48,7 @@ interface CustomJdkTestLauncher { val currentJavaHome = System.getProperty("java.home") val classpath = collectClasspath(AbstractClassFileToSourceStubConverterTest::class.java.classLoader) - .filter { it.protocol.toLowerCase() == "file" && it.path != null && !it.path.startsWith(currentJavaHome) } + .filter { it.protocol.lowercase() == "file" && it.path != null && !it.path.startsWith(currentJavaHome) } .map { it.path } val command = arrayOf( diff --git a/plugins/kapt3/kapt3-idea/src/org/jetbrains/kotlin/kapt/idea/KaptGradleProjectImportHandler.kt b/plugins/kapt3/kapt3-idea/src/org/jetbrains/kotlin/kapt/idea/KaptGradleProjectImportHandler.kt index 68947141c64..07623352324 100644 --- a/plugins/kapt3/kapt3-idea/src/org/jetbrains/kotlin/kapt/idea/KaptGradleProjectImportHandler.kt +++ b/plugins/kapt3/kapt3-idea/src/org/jetbrains/kotlin/kapt/idea/KaptGradleProjectImportHandler.kt @@ -43,7 +43,7 @@ class KaptGradleProjectImportHandler : GradleProjectImportHandler { private fun isKaptCompilerPluginPath(path: String): Boolean { val lastIndexOfFile = path.lastIndexOfAny(charArrayOf('/', File.separatorChar)).takeIf { it >= 0 } ?: return false - val fileName = path.drop(lastIndexOfFile + 1).toLowerCase(Locale.US) + val fileName = path.drop(lastIndexOfFile + 1).lowercase() return fileName.matches("kotlin\\-annotation\\-processing(\\-gradle)?\\-[0-9].*\\.jar".toRegex()) } } diff --git a/plugins/scripting/scripting-ide-services/src/org/jetbrains/kotlin/scripting/ide_services/compiler/impl/KJvmReplCompleter.kt b/plugins/scripting/scripting-ide-services/src/org/jetbrains/kotlin/scripting/ide_services/compiler/impl/KJvmReplCompleter.kt index 5d6cf731077..485382aac0d 100644 --- a/plugins/scripting/scripting-ide-services/src/org/jetbrains/kotlin/scripting/ide_services/compiler/impl/KJvmReplCompleter.kt +++ b/plugins/scripting/scripting-ide-services/src/org/jetbrains/kotlin/scripting/ide_services/compiler/impl/KJvmReplCompleter.kt @@ -233,7 +233,7 @@ private class KJvmReplCompleter( getPresentation( it ) - Triple(it, presentation, (presentation.presentableText + presentation.tailText).toLowerCase()) + Triple(it, presentation, (presentation.presentableText + presentation.tailText).lowercase()) } .let { if (isSortNeeded) it.sortedBy { descTriple -> descTriple.third } else it diff --git a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/convertors/WasmIrToText.kt b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/convertors/WasmIrToText.kt index dfcdf07ac43..53a38a4d29d 100644 --- a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/convertors/WasmIrToText.kt +++ b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/convertors/WasmIrToText.kt @@ -82,10 +82,10 @@ class WasmIrToText : SExpressionBuilder() { private fun appendImmediate(x: WasmImmediate) { when (x) { - is WasmImmediate.ConstI32 -> appendElement(x.value.toString().toLowerCase()) - is WasmImmediate.ConstI64 -> appendElement(x.value.toString().toLowerCase()) - is WasmImmediate.ConstF32 -> appendElement(f32Str(x).toLowerCase()) - is WasmImmediate.ConstF64 -> appendElement(f64Str(x).toLowerCase()) + is WasmImmediate.ConstI32 -> appendElement(x.value.toString().lowercase()) + is WasmImmediate.ConstI64 -> appendElement(x.value.toString().lowercase()) + is WasmImmediate.ConstF32 -> appendElement(f32Str(x).lowercase()) + is WasmImmediate.ConstF64 -> appendElement(f64Str(x).lowercase()) is WasmImmediate.SymbolI32 -> appendElement(x.value.owner.toString()) is WasmImmediate.MemArg -> { appendOffset(x.offset)