From 7c3383bb3966a78484b5074a2266bc8f3329ed3d Mon Sep 17 00:00:00 2001 From: "Denis.Zharkov" Date: Mon, 27 Sep 2021 15:59:02 +0300 Subject: [PATCH] Fix warnings after KT-48899 All API ToolingModelBuilder is marked as NonNullApi https://github.com/gradle/gradle/commit/f93bf949486e73655810ab49ad316100b1c2804c#diff-76e89b92025ccef4e2763c5ee8d30bde939c4a9db26bfc913eac88069cbf5d36 --- .../kotlin/allopen/gradle/AllOpenSubplugin.kt | 4 +-- .../model/builder/AllOpenModelBuilder.kt | 12 +++---- .../gradle/model/builder/KaptModelBuilder.kt | 12 +++---- .../KotlinAndroidExtensionModelBuilder.kt | 12 +++---- .../model/builder/KotlinModelBuilder.kt | 32 +++++++++---------- .../plugin/mpp/HierarchyAttributeContainer.kt | 6 ++-- .../kotlin/gradle/plugin/mpp/kotlinTargets.kt | 3 +- .../kapt/incremental/ClasspathAnalyzerTest.kt | 7 ++-- .../model/builder/LombokModelBuilder.kt | 12 +++---- .../kotlin/noarg/gradle/NoArgSubplugin.kt | 4 +-- .../gradle/model/builder/NoArgModelBuilder.kt | 12 +++---- .../noarg/gradle/SamWithReceiverSubplugin.kt | 4 +-- .../builder/SamWithReceiverModelBuilder.kt | 12 +++---- 13 files changed, 59 insertions(+), 73 deletions(-) diff --git a/libraries/tools/kotlin-allopen/src/main/kotlin/org/jetbrains/kotlin/allopen/gradle/AllOpenSubplugin.kt b/libraries/tools/kotlin-allopen/src/main/kotlin/org/jetbrains/kotlin/allopen/gradle/AllOpenSubplugin.kt index a25f07b8563..b7058770a79 100644 --- a/libraries/tools/kotlin-allopen/src/main/kotlin/org/jetbrains/kotlin/allopen/gradle/AllOpenSubplugin.kt +++ b/libraries/tools/kotlin-allopen/src/main/kotlin/org/jetbrains/kotlin/allopen/gradle/AllOpenSubplugin.kt @@ -79,7 +79,7 @@ class AllOpenGradleSubplugin @Inject internal constructor(private val registry: //region Stub implementation for legacy API, KT-39809 internal constructor(): this(object : ToolingModelBuilderRegistry { override fun register(p0: ToolingModelBuilder) = Unit - override fun getBuilder(p0: String): ToolingModelBuilder? = null + override fun getBuilder(p0: String): ToolingModelBuilder = error("Method should not be called") }) override fun isApplicable(project: Project, task: AbstractCompile): Boolean = true @@ -92,4 +92,4 @@ class AllOpenGradleSubplugin @Inject internal constructor(private val registry: "Please use an older version of kotlin-allopen or upgrade the Kotlin Gradle plugin version to make them match." ) //endregion -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-allopen/src/main/kotlin/org/jetbrains/kotlin/allopen/gradle/model/builder/AllOpenModelBuilder.kt b/libraries/tools/kotlin-allopen/src/main/kotlin/org/jetbrains/kotlin/allopen/gradle/model/builder/AllOpenModelBuilder.kt index b611d394f73..1b0699f4c0d 100644 --- a/libraries/tools/kotlin-allopen/src/main/kotlin/org/jetbrains/kotlin/allopen/gradle/model/builder/AllOpenModelBuilder.kt +++ b/libraries/tools/kotlin-allopen/src/main/kotlin/org/jetbrains/kotlin/allopen/gradle/model/builder/AllOpenModelBuilder.kt @@ -21,11 +21,9 @@ class AllOpenModelBuilder : ToolingModelBuilder { return modelName == AllOpen::class.java.name } - override fun buildAll(modelName: String, project: Project): Any? { - if (modelName == AllOpen::class.java.name) { - val extension = project.extensions.getByType(AllOpenExtension::class.java) - return AllOpenImpl(project.name, extension.myAnnotations, extension.myPresets) - } - return null + override fun buildAll(modelName: String, project: Project): Any { + require(canBuild(modelName)) { "buildAll(\"$modelName\") has been called while canBeBuild is false" } + val extension = project.extensions.getByType(AllOpenExtension::class.java) + return AllOpenImpl(project.name, extension.myAnnotations, extension.myPresets) } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/model/builder/KaptModelBuilder.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/model/builder/KaptModelBuilder.kt index cafb89bb730..cbc239538f1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/model/builder/KaptModelBuilder.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/model/builder/KaptModelBuilder.kt @@ -23,12 +23,10 @@ class KaptModelBuilder : ToolingModelBuilder { return modelName == Kapt::class.java.name } - override fun buildAll(modelName: String, project: Project): Any? { - if (modelName == Kapt::class.java.name) { - val kaptTasks = project.tasks.withType(KaptTask::class.java) - return KaptImpl(project.name, kaptTasks.map { it.createKaptSourceSet() }) - } - return null + override fun buildAll(modelName: String, project: Project): Any { + require(canBuild(modelName)) { "buildAll(\"$modelName\") has been called while canBeBuild is false" } + val kaptTasks = project.tasks.withType(KaptTask::class.java) + return KaptImpl(project.name, kaptTasks.map { it.createKaptSourceSet() }) } companion object { @@ -47,4 +45,4 @@ class KaptModelBuilder : ToolingModelBuilder { ) } } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/model/builder/KotlinAndroidExtensionModelBuilder.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/model/builder/KotlinAndroidExtensionModelBuilder.kt index ba6be794252..5a2804f2648 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/model/builder/KotlinAndroidExtensionModelBuilder.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/model/builder/KotlinAndroidExtensionModelBuilder.kt @@ -21,11 +21,9 @@ class KotlinAndroidExtensionModelBuilder : ToolingModelBuilder { return modelName == KotlinAndroidExtension::class.java.name } - override fun buildAll(modelName: String, project: Project): Any? { - if (modelName == KotlinAndroidExtension::class.java.name) { - val extension = project.extensions.getByType(AndroidExtensionsExtension::class.java) - return KotlinAndroidExtensionImpl(project.name, extension.isExperimental, extension.defaultCacheImplementation.optionName) - } - return null + override fun buildAll(modelName: String, project: Project): Any { + require(canBuild(modelName)) { "buildAll(\"$modelName\") has been called while canBeBuild is false" } + val extension = project.extensions.getByType(AndroidExtensionsExtension::class.java) + return KotlinAndroidExtensionImpl(project.name, extension.isExperimental, extension.defaultCacheImplementation.optionName) } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/model/builder/KotlinModelBuilder.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/model/builder/KotlinModelBuilder.kt index 5bff9887163..0e3d5aabd30 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/model/builder/KotlinModelBuilder.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/model/builder/KotlinModelBuilder.kt @@ -36,22 +36,20 @@ class KotlinModelBuilder(private val kotlinPluginVersion: String, private val an return modelName == KotlinProject::class.java.name } - override fun buildAll(modelName: String, project: Project): Any? { - if (modelName == KotlinProject::class.java.name) { - val kotlinCompileTasks = project.tasks.withType(AbstractKotlinCompile::class.java).toList() - val projectType = getProjectType(project) - return KotlinProjectImpl( - project.name, - kotlinPluginVersion, - projectType, - kotlinCompileTasks.mapNotNull { - if (androidTarget != null) it.createAndroidSourceSet(androidTarget) else it.createSourceSet(project, projectType) - }, - getExpectedByDependencies(project), - kotlinCompileTasks.first()!!.createExperimentalFeatures() - ) - } - return null + override fun buildAll(modelName: String, project: Project): Any { + require(canBuild(modelName)) { "buildAll(\"$modelName\") has been called while canBeBuild is false" } + val kotlinCompileTasks = project.tasks.withType(AbstractKotlinCompile::class.java).toList() + val projectType = getProjectType(project) + return KotlinProjectImpl( + project.name, + kotlinPluginVersion, + projectType, + kotlinCompileTasks.mapNotNull { + if (androidTarget != null) it.createAndroidSourceSet(androidTarget) else it.createSourceSet(project, projectType) + }, + getExpectedByDependencies(project), + kotlinCompileTasks.first()!!.createExperimentalFeatures() + ) } companion object { @@ -137,4 +135,4 @@ class KotlinModelBuilder(private val kotlinPluginVersion: String, private val an return ExperimentalFeaturesImpl(coroutines.get().name) } } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/HierarchyAttributeContainer.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/HierarchyAttributeContainer.kt index e6dd329d265..80d503b27d5 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/HierarchyAttributeContainer.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/HierarchyAttributeContainer.kt @@ -40,16 +40,16 @@ class HierarchyAttributeContainer( attributesMap.contains(key) || getFilteredParentAttribute(key) != null @Suppress("UNCHECKED_CAST") - override fun getAttribute(key: Attribute?): T? = + override fun getAttribute(key: Attribute): T? = attributesMap.get(key as Attribute<*>) as T? ?: getFilteredParentAttribute(key) as T? override fun isEmpty(): Boolean = attributesMap.isEmpty() && (parent?.keySet().orEmpty().filter(filterParentAttributes).isEmpty()) override fun keySet(): Set> = attributesMap.keys + parent?.keySet().orEmpty().filter(filterParentAttributes) - override fun attribute(key: Attribute?, value: T): AttributeContainer { + override fun attribute(key: Attribute, value: T): AttributeContainer { val checkedValue = requireNotNull(value as Any?) { "null values for attributes are not supported" } - attributesMap[key as Attribute<*>] = checkedValue + attributesMap[key] = checkedValue return this } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinTargets.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinTargets.kt index 977a265245b..6baab360e7c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinTargets.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinTargets.kt @@ -137,7 +137,8 @@ abstract class AbstractKotlinTarget( adhocVariant as SoftwareComponent object : ComponentWithVariants, ComponentWithCoordinates, SoftwareComponentInternal { - override fun getCoordinates() = (kotlinVariant as? ComponentWithCoordinates)?.coordinates + override fun getCoordinates() = + (kotlinVariant as? ComponentWithCoordinates)?.coordinates ?: error("kotlinVariant is not ComponentWithCoordinates") override fun getVariants(): Set = (kotlinVariant as? KotlinVariantWithMetadataVariant)?.variants.orEmpty() diff --git a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/incremental/ClasspathAnalyzerTest.kt b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/incremental/ClasspathAnalyzerTest.kt index 87fbeb98536..a65b4751d93 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/incremental/ClasspathAnalyzerTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/incremental/ClasspathAnalyzerTest.kt @@ -171,9 +171,8 @@ class StructureTransformTestAction(val input: File, val projectDir: File) : Stru override val inputArtifact: Provider = project.provider { project.objects.fileProperty().fileValue(input).get() } - override fun getParameters(): TransformParameters.None? { - //no need for StructureTransformAction and so for test - return null + override fun getParameters(): TransformParameters.None { + error("Should not be called") } } @@ -192,4 +191,4 @@ class TransformOutputsMock(val outputDir: File) : TransformOutputs { return newDir } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-lombok/src/main/kotlin/org/jetbrains/kotlin/lombok/gradle/model/builder/LombokModelBuilder.kt b/libraries/tools/kotlin-lombok/src/main/kotlin/org/jetbrains/kotlin/lombok/gradle/model/builder/LombokModelBuilder.kt index 3a58ca1d365..6608306ca78 100644 --- a/libraries/tools/kotlin-lombok/src/main/kotlin/org/jetbrains/kotlin/lombok/gradle/model/builder/LombokModelBuilder.kt +++ b/libraries/tools/kotlin-lombok/src/main/kotlin/org/jetbrains/kotlin/lombok/gradle/model/builder/LombokModelBuilder.kt @@ -15,11 +15,9 @@ class LombokModelBuilder : ToolingModelBuilder { override fun canBuild(modelName: String): Boolean = modelName == Lombok::class.java.name - override fun buildAll(modelName: String, project: Project): Any? = - if (canBuild(modelName)) { - val extension = project.extensions.getByType(LombokExtension::class.java) - LombokImpl(project.name, extension.configurationFile) - } else { - null - } + override fun buildAll(modelName: String, project: Project): Any { + require(canBuild(modelName)) { "buildAll(\"$modelName\") has been called while canBeBuild is false" } + val extension = project.extensions.getByType(LombokExtension::class.java) + return LombokImpl(project.name, extension.configurationFile) + } } diff --git a/libraries/tools/kotlin-noarg/src/main/kotlin/org/jetbrains/kotlin/noarg/gradle/NoArgSubplugin.kt b/libraries/tools/kotlin-noarg/src/main/kotlin/org/jetbrains/kotlin/noarg/gradle/NoArgSubplugin.kt index 181ece1a180..7aa651bf30f 100644 --- a/libraries/tools/kotlin-noarg/src/main/kotlin/org/jetbrains/kotlin/noarg/gradle/NoArgSubplugin.kt +++ b/libraries/tools/kotlin-noarg/src/main/kotlin/org/jetbrains/kotlin/noarg/gradle/NoArgSubplugin.kt @@ -83,7 +83,7 @@ class NoArgGradleSubplugin @Inject internal constructor(private val registry: To //region Stub implementation for legacy API, KT-39809 internal constructor(): this(object : ToolingModelBuilderRegistry { override fun register(p0: ToolingModelBuilder) = Unit - override fun getBuilder(p0: String): ToolingModelBuilder? = null + override fun getBuilder(p0: String): ToolingModelBuilder = error("Method should not be called") }) override fun isApplicable(project: Project, task: AbstractCompile): Boolean = true @@ -96,4 +96,4 @@ class NoArgGradleSubplugin @Inject internal constructor(private val registry: To "Please use an older version of kotlin-noarg or upgrade the Kotlin Gradle plugin version to make them match." ) //endregion -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-noarg/src/main/kotlin/org/jetbrains/kotlin/noarg/gradle/model/builder/NoArgModelBuilder.kt b/libraries/tools/kotlin-noarg/src/main/kotlin/org/jetbrains/kotlin/noarg/gradle/model/builder/NoArgModelBuilder.kt index a1705371828..b5a9a6bfcb7 100644 --- a/libraries/tools/kotlin-noarg/src/main/kotlin/org/jetbrains/kotlin/noarg/gradle/model/builder/NoArgModelBuilder.kt +++ b/libraries/tools/kotlin-noarg/src/main/kotlin/org/jetbrains/kotlin/noarg/gradle/model/builder/NoArgModelBuilder.kt @@ -21,11 +21,9 @@ class NoArgModelBuilder : ToolingModelBuilder { return modelName == NoArg::class.java.name } - override fun buildAll(modelName: String, project: Project): Any? { - if (modelName == NoArg::class.java.name) { - val extension = project.extensions.getByType(NoArgExtension::class.java) - return NoArgImpl(project.name, extension.myAnnotations, extension.myPresets, extension.invokeInitializers) - } - return null + override fun buildAll(modelName: String, project: Project): Any { + require(canBuild(modelName)) { "buildAll(\"$modelName\") has been called while canBeBuild is false" } + val extension = project.extensions.getByType(NoArgExtension::class.java) + return NoArgImpl(project.name, extension.myAnnotations, extension.myPresets, extension.invokeInitializers) } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-sam-with-receiver/src/main/kotlin/org/jetbrains/kotlin/noarg/gradle/SamWithReceiverSubplugin.kt b/libraries/tools/kotlin-sam-with-receiver/src/main/kotlin/org/jetbrains/kotlin/noarg/gradle/SamWithReceiverSubplugin.kt index 580b6c692ce..d7b801fb4dd 100644 --- a/libraries/tools/kotlin-sam-with-receiver/src/main/kotlin/org/jetbrains/kotlin/noarg/gradle/SamWithReceiverSubplugin.kt +++ b/libraries/tools/kotlin-sam-with-receiver/src/main/kotlin/org/jetbrains/kotlin/noarg/gradle/SamWithReceiverSubplugin.kt @@ -76,7 +76,7 @@ class SamWithReceiverGradleSubplugin @Inject internal constructor(private val re //region Stub implementation for legacy API, KT-39809 internal constructor(): this(object : ToolingModelBuilderRegistry { override fun register(p0: ToolingModelBuilder) = Unit - override fun getBuilder(p0: String): ToolingModelBuilder? = null + override fun getBuilder(p0: String): ToolingModelBuilder = error("Method should not be called") }) override fun isApplicable(project: Project, task: AbstractCompile): Boolean = true @@ -89,4 +89,4 @@ class SamWithReceiverGradleSubplugin @Inject internal constructor(private val re "Please use an older version of kotlin-sam-with-receiver or upgrade the Kotlin Gradle plugin version to make them match." ) //endregion -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-sam-with-receiver/src/main/kotlin/org/jetbrains/kotlin/noarg/gradle/model/builder/SamWithReceiverModelBuilder.kt b/libraries/tools/kotlin-sam-with-receiver/src/main/kotlin/org/jetbrains/kotlin/noarg/gradle/model/builder/SamWithReceiverModelBuilder.kt index 1a7060999c4..3174a6e807d 100644 --- a/libraries/tools/kotlin-sam-with-receiver/src/main/kotlin/org/jetbrains/kotlin/noarg/gradle/model/builder/SamWithReceiverModelBuilder.kt +++ b/libraries/tools/kotlin-sam-with-receiver/src/main/kotlin/org/jetbrains/kotlin/noarg/gradle/model/builder/SamWithReceiverModelBuilder.kt @@ -21,11 +21,9 @@ class SamWithReceiverModelBuilder : ToolingModelBuilder { return modelName == SamWithReceiver::class.java.name } - override fun buildAll(modelName: String, project: Project): Any? { - if (modelName == SamWithReceiver::class.java.name) { - val extension = project.extensions.getByType(SamWithReceiverExtension::class.java) - return SamWithReceiverImpl(project.name, extension.myAnnotations, extension.myPresets) - } - return null + override fun buildAll(modelName: String, project: Project): Any { + require(canBuild(modelName)) { "buildAll(\"$modelName\") has been called while canBeBuild is false" } + val extension = project.extensions.getByType(SamWithReceiverExtension::class.java) + return SamWithReceiverImpl(project.name, extension.myAnnotations, extension.myPresets) } -} \ No newline at end of file +}