diff --git a/plugins/kotlin/gradle/code-insight-groovy/src/org/jetbrains/kotlin/idea/groovy/GroovyGradleBuildScriptSupport.kt b/plugins/kotlin/gradle/code-insight-groovy/src/org/jetbrains/kotlin/idea/groovy/GroovyGradleBuildScriptSupport.kt index e05d2161f39c..ed44744910d6 100644 --- a/plugins/kotlin/gradle/code-insight-groovy/src/org/jetbrains/kotlin/idea/groovy/GroovyGradleBuildScriptSupport.kt +++ b/plugins/kotlin/gradle/code-insight-groovy/src/org/jetbrains/kotlin/idea/groovy/GroovyGradleBuildScriptSupport.kt @@ -278,7 +278,7 @@ class GroovyBuildScriptManipulator( parameterName, "[\"$featureArgumentString\"]", forTests - ) { insideKotlinOptions, /* precompiledReplacement = */ _, insideCompilerOptions -> + ) { insideKotlinOptions, /* precomputedReplacement = */ _, insideCompilerOptions -> val prefix = if (insideKotlinOptions) { "kotlinOptions." } else if (insideCompilerOptions) { @@ -416,13 +416,13 @@ class GroovyBuildScriptManipulator( parameterName: String, parameterValue: String, replaceIt: GrStatement.(/* insideKotlinOptions = */ Boolean, - /* precompiledReplacement = */ String?, + /* precomputedReplacement = */ String?, /* insideCompilerOptions = */ Boolean ) -> GrStatement ) { statements.firstOrNull { stmt -> (stmt as? GrAssignmentExpression)?.lValue?.text == parameterName - }?.replaceIt(/* insideKotlinOptions = */ false, /* precompiledReplacement = */ null, /* insideCompilerOptions = */ false) + }?.replaceIt(/* insideKotlinOptions = */ false, /* precomputedReplacement = */ null, /* insideCompilerOptions = */ false) ?: addLastExpressionInBlockIfNeeded("$parameterName = $parameterValue") } @@ -441,7 +441,7 @@ class GroovyBuildScriptManipulator( parameterValue: String, forTests: Boolean, replaceIt: GrStatement.(/* insideKotlinOptions = */ Boolean, - /* precompiledReplacement = */ String?, + /* precomputedReplacement = */ String?, /* insideCompilerOptions = */ Boolean ) -> GrStatement ): PsiElement? { @@ -473,7 +473,7 @@ class GroovyBuildScriptManipulator( forTests: Boolean, kotlinVersion: IdeKotlinVersion? = null, replaceIt: GrStatement.(/* insideKotlinOptions = */ Boolean, - /* precompiledReplacement = */ String?, + /* precomputedReplacement = */ String?, /* insideCompilerOptions = */ Boolean ) -> GrStatement ): PsiElement? { @@ -523,7 +523,7 @@ class GroovyBuildScriptManipulator( for (stmt in kotlinBlock.statements) { if ((stmt as? GrAssignmentExpression)?.lValue?.text == "kotlinOptions.$parameterName") { - return stmt.replaceIt(/* insideKotlinOptions = */ true, /* precompiledReplacement = */ null, + return stmt.replaceIt(/* insideKotlinOptions = */ true, /* precomputedReplacement = */ null, /* insideCompilerOptions = */ false ) } @@ -551,12 +551,12 @@ class GroovyBuildScriptManipulator( hasAndroidModule: Boolean, kotlinVersion: IdeKotlinVersion? = null, replaceIt: GrStatement.(/* insideKotlinOptions = */ Boolean, - /* precompiledReplacement = */ String?, + /* precomputedReplacement = */ String?, /* insideCompilerOptions = */ Boolean ) -> GrStatement ) { val kotlinOptionsBlock = if (hasAndroidModule || !projectSupportsCompilerOptions(gradleFile, kotlinVersion)) { - // no `compilerOptions` for android + // No `compilerOptions` can be used in `android`, so we can create new `kotlinOptions` block outerDslBlock.getBlockOrCreate("kotlinOptions") } else { outerDslBlock.getBlockByName("kotlinOptions") @@ -576,7 +576,7 @@ class GroovyBuildScriptManipulator( outerDslBlock: GrClosableBlock, gradleFile: GroovyFile, replaceIt: GrStatement.(/* insideKotlinOptions = */ Boolean, - /* precompiledReplacement = */ String?, + /* precomputedReplacement = */ String?, /* insideCompilerOptions = */ Boolean ) -> GrStatement ) { @@ -626,15 +626,15 @@ class GroovyBuildScriptManipulator( compilerOption: CompilerOption, insideCompilerOptions: Boolean, replaceIt: GrStatement.(/* insideKotlinOptions = */ Boolean, - /* precompiledReplacement = */ String?, + /* precomputedReplacement = */ String?, /* insideCompilerOptions = */ Boolean ) -> GrStatement ): Boolean { - var precompiledReplacement = compilerOption.expression + var precomputedReplacement = compilerOption.expression val replaced = statements.firstOrNull { stmt -> val statementLeftPartText = when (stmt) { is GrAssignmentExpression -> { - precompiledReplacement = "$parameterName = ${compilerOption.compilerOptionValue}" + precomputedReplacement = "$parameterName = ${compilerOption.compilerOptionValue}" stmt.lValue.text } @@ -643,11 +643,11 @@ class GroovyBuildScriptManipulator( } else -> { - return false + return@firstOrNull false } } statementLeftPartText.contains(parameterName) - }?.replaceIt(/* insideKotlinOptions = */ false, precompiledReplacement, insideCompilerOptions) + }?.replaceIt(/* insideKotlinOptions = */ false, precomputedReplacement, insideCompilerOptions) return replaced != null } @@ -697,7 +697,7 @@ class GroovyBuildScriptManipulator( "\"$parameterValue\"", forTests, kotlinVersion - ) { insideKotlinOptions, /* precompiledReplacement = */ replacement, insideCompilerOptions -> + ) { insideKotlinOptions, /* precomputedReplacement = */ replacement, insideCompilerOptions -> replaceStatement(parameterName, parameterValue, insideKotlinOptions, replacement, insideCompilerOptions) } } @@ -709,7 +709,7 @@ class GroovyBuildScriptManipulator( ): PsiElement? { return addOrReplaceLanguageSettingParameter( scriptFile, parameterName, "\"$parameterValue\"", forTests - ) { insideKotlinOptions, /* precompiledReplacement = */ replacement, insideCompilerOptions -> + ) { insideKotlinOptions, /* precomputedReplacement = */ replacement, insideCompilerOptions -> replaceStatement(parameterName, parameterValue, insideKotlinOptions, replacement, insideCompilerOptions) } } diff --git a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KotlinBuildScriptManipulator.kt b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KotlinBuildScriptManipulator.kt index c7933fbd60e9..b2865bed9214 100644 --- a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KotlinBuildScriptManipulator.kt +++ b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KotlinBuildScriptManipulator.kt @@ -717,7 +717,7 @@ class KotlinBuildScriptManipulator( parameterValue: String, forTests: Boolean, kotlinVersion: IdeKotlinVersion? = null, - replaceIt: KtExpression.(/* precompiledReplacement */ String?, /* preserveAssignmentWhenReplacing = */ Boolean) -> PsiElement + replaceIt: KtExpression.(/* precomputedReplacement */ String?, /* preserveAssignmentWhenReplacing = */ Boolean) -> PsiElement ): PsiElement? { val taskName = if (forTests) "compileTestKotlin" else "compileKotlin" val kotlinOptionsBlock = findScriptInitializer("$taskName.kotlinOptions")?.getBlock() @@ -726,7 +726,7 @@ class KotlinBuildScriptManipulator( val assignment = kotlinOptionsBlock.statements.find { (it as? KtBinaryExpression)?.left?.text == parameterName } - assignment?.replaceIt(/* precompiledReplacement = */ null, /* preserveAssignmentWhenReplacing = */ true) + assignment?.replaceIt(/* precomputedReplacement = */ null, /* preserveAssignmentWhenReplacing = */ true) ?: kotlinOptionsBlock.addExpressionIfMissing("$parameterName = $parameterValue") } else { if (projectSupportsCompilerOptions(this, kotlinVersion)) { @@ -744,7 +744,7 @@ class KotlinBuildScriptManipulator( taskName: String, parameterName: String, parameterValue: String, - replaceIt: KtExpression.(/* precompiledReplacement */ String?, /* preserveAssignmentWhenReplacing = */ Boolean) -> PsiElement + replaceIt: KtExpression.(/* precomputedReplacement */ String?, /* preserveAssignmentWhenReplacing = */ Boolean) -> PsiElement ): PsiElement? { val compilerOption = getCompilerOption(parameterName, parameterValue) compilerOption.classToImport?.let { @@ -767,9 +767,9 @@ class KotlinBuildScriptManipulator( private fun replaceOrAddCompilerOption( compilerOptionsBlock: KtBlockExpression, parameterName: String, compilerOption: CompilerOption, - replaceIt: KtExpression.(/* precompiledReplacement */ String?, /* preserveAssignmentWhenReplacing = */ Boolean) -> PsiElement + replaceIt: KtExpression.(/* precomputedReplacement */ String?, /* preserveAssignmentWhenReplacing = */ Boolean) -> PsiElement ): PsiElement { - var precompiledReplacement = compilerOption.expression + var precomputedReplacement = compilerOption.expression var preserveAssignmentWhenReplacing = true var assignment: KtExpression? = compilerOptionsBlock.statements.find { stmt -> when (stmt) { @@ -781,7 +781,7 @@ class KotlinBuildScriptManipulator( is KtBinaryExpression -> { if (stmt.left?.text == parameterName) { compilerOption.compilerOptionValue?.let { - precompiledReplacement = "$parameterName = $it" + precomputedReplacement = "$parameterName = $it" } true } else { @@ -795,7 +795,7 @@ class KotlinBuildScriptManipulator( } } return if (assignment != null) { - assignment.replaceIt(precompiledReplacement, preserveAssignmentWhenReplacing) + assignment.replaceIt(precomputedReplacement, preserveAssignmentWhenReplacing) } else { compilerOptionsBlock.addExpressionIfMissing(compilerOption.expression) }