From fdbcbe5af49427729442e245fce5a16b60989ea0 Mon Sep 17 00:00:00 2001 From: Alex Beggs Date: Mon, 16 Aug 2021 19:06:06 -0400 Subject: Fix ktlint issues and apply ktlint to workflow --- gradle-plugin/build.gradle.kts | 8 +- .../com/google/devtools/ksp/gradle/KspSubplugin.kt | 208 +++++++++++---------- .../com/google/devtools/ksp/gradle/model/Ksp.kt | 3 +- .../ksp/gradle/model/builder/KspModelBuilder.kt | 9 +- .../devtools/ksp/gradle/model/impl/KspImpl.kt | 3 +- .../devtools/ksp/gradle/GradleCompilationTest.kt | 2 +- .../ksp/gradle/SourceSetConfigurationsTest.kt | 17 +- .../gradle/model/builder/KspModelBuilderTest.kt | 3 +- .../ksp/gradle/testing/DependencyDeclaration.kt | 5 +- .../ksp/gradle/testing/KspIntegrationTestRule.kt | 26 +-- .../devtools/ksp/gradle/testing/TestProject.kt | 4 +- 11 files changed, 156 insertions(+), 132 deletions(-) (limited to 'gradle-plugin') diff --git a/gradle-plugin/build.gradle.kts b/gradle-plugin/build.gradle.kts index 983af9fc..934cb8bd 100644 --- a/gradle-plugin/build.gradle.kts +++ b/gradle-plugin/build.gradle.kts @@ -95,9 +95,11 @@ signing { val testPropsOutDir = project.layout.buildDirectory.dir("test-config") val writeTestPropsTask = tasks.register("prepareTestConfiguration") { description = "Generates a properties file with the current environment for gradle integration tests" - this.setOutputFile(testPropsOutDir.map { - it.file("testprops.properties") - }) + this.setOutputFile( + testPropsOutDir.map { + it.file("testprops.properties") + } + ) property("kspVersion", version) property("mavenRepoDir", File(rootProject.buildDir, "repos/test").absolutePath) property("kspProjectRootDir", rootProject.projectDir.absolutePath) diff --git a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt index 71c82713..b1581875 100644 --- a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt +++ b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt @@ -34,39 +34,18 @@ import org.gradle.api.provider.ListProperty import org.gradle.api.provider.MapProperty import org.gradle.api.provider.Property import org.gradle.api.provider.Provider -import org.gradle.api.tasks.CacheableTask -import org.gradle.api.tasks.Input -import org.gradle.api.tasks.InputFiles -import org.gradle.api.tasks.Internal -import org.gradle.api.tasks.LocalState +import org.gradle.api.tasks.* import org.gradle.api.tasks.Optional -import org.gradle.api.tasks.OutputDirectory -import org.gradle.api.tasks.PathSensitive -import org.gradle.api.tasks.PathSensitivity -import org.gradle.api.tasks.SourceSet -import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.compile.AbstractCompile import org.gradle.api.tasks.compile.JavaCompile import org.gradle.language.jvm.tasks.ProcessResources import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry import org.gradle.util.GradleVersion -import org.jetbrains.kotlin.cli.common.arguments.Argument -import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments -import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments -import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments -import org.jetbrains.kotlin.cli.common.arguments.K2MetadataCompilerArguments -import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptionsImpl -import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptionsImpl -import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformCommonOptionsImpl -import org.jetbrains.kotlin.gradle.dsl.KotlinSingleTargetExtension -import org.jetbrains.kotlin.gradle.dsl.fillDefaultValues +import org.jetbrains.kotlin.cli.common.arguments.* +import org.jetbrains.kotlin.gradle.dsl.* import org.jetbrains.kotlin.gradle.internal.CompilerArgumentsContributor import org.jetbrains.kotlin.gradle.internal.compilerArgumentsConfigurationFlags -import org.jetbrains.kotlin.gradle.internal.kapt.incremental.CLASS_STRUCTURE_ARTIFACT_TYPE -import org.jetbrains.kotlin.gradle.internal.kapt.incremental.ClasspathSnapshot -import org.jetbrains.kotlin.gradle.internal.kapt.incremental.KaptClasspathChanges -import org.jetbrains.kotlin.gradle.internal.kapt.incremental.StructureTransformAction -import org.jetbrains.kotlin.gradle.internal.kapt.incremental.StructureTransformLegacyAction +import org.jetbrains.kotlin.gradle.internal.kapt.incremental.* import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.mpp.AbstractKotlinNativeCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmAndroidCompilation @@ -74,13 +53,9 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinCompilationData import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinNativeCompilationData -import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile +import org.jetbrains.kotlin.gradle.tasks.* import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile.Configurator -import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile import org.jetbrains.kotlin.gradle.tasks.KotlinCompile -import org.jetbrains.kotlin.gradle.tasks.KotlinCompileCommon -import org.jetbrains.kotlin.gradle.tasks.KotlinNativeCompile -import org.jetbrains.kotlin.gradle.tasks.SourceRoots import org.jetbrains.kotlin.incremental.ChangedFiles import org.jetbrains.kotlin.incremental.destinationAsFile import org.jetbrains.kotlin.incremental.isJavaFile @@ -90,11 +65,10 @@ import java.io.File import java.util.* import java.util.concurrent.Callable import javax.inject.Inject -import kotlin.collections.LinkedHashSet import kotlin.reflect.KProperty1 class KspGradleSubplugin @Inject internal constructor(private val registry: ToolingModelBuilderRegistry) : - KotlinCompilerPluginSupportPlugin { + KotlinCompilerPluginSupportPlugin { companion object { const val KSP_MAIN_CONFIGURATION_NAME = "ksp" const val KSP_ARTIFACT_NAME = "symbol-processing" @@ -103,27 +77,27 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool @JvmStatic fun getKspOutputDir(project: Project, sourceSetName: String) = - File(project.project.buildDir, "generated/ksp/$sourceSetName") + File(project.project.buildDir, "generated/ksp/$sourceSetName") @JvmStatic fun getKspClassOutputDir(project: Project, sourceSetName: String) = - File(getKspOutputDir(project, sourceSetName), "classes") + File(getKspOutputDir(project, sourceSetName), "classes") @JvmStatic fun getKspJavaOutputDir(project: Project, sourceSetName: String) = - File(getKspOutputDir(project, sourceSetName), "java") + File(getKspOutputDir(project, sourceSetName), "java") @JvmStatic fun getKspKotlinOutputDir(project: Project, sourceSetName: String) = - File(getKspOutputDir(project, sourceSetName), "kotlin") + File(getKspOutputDir(project, sourceSetName), "kotlin") @JvmStatic fun getKspResourceOutputDir(project: Project, sourceSetName: String) = - File(getKspOutputDir(project, sourceSetName), "resources") + File(getKspOutputDir(project, sourceSetName), "resources") @JvmStatic fun getKspCachesDir(project: Project, sourceSetName: String) = - File(project.project.buildDir, "kspCaches/$sourceSetName") + File(project.project.buildDir, "kspCaches/$sourceSetName") @JvmStatic private fun getSubpluginOptions( @@ -131,7 +105,7 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool kspExtension: KspExtension, nonEmptyKspConfigurations: List, sourceSetName: String, - isIncremental: Boolean + isIncremental: Boolean, ): List { val options = mutableListOf() options += SubpluginOption("classOutputDir", getKspClassOutputDir(project, sourceSetName).path) @@ -141,7 +115,10 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool options += SubpluginOption("cachesDir", getKspCachesDir(project, sourceSetName).path) options += SubpluginOption("kspOutputDir", getKspOutputDir(project, sourceSetName).path) options += SubpluginOption("incremental", isIncremental.toString()) - options += SubpluginOption("incrementalLog", project.findProperty("ksp.incremental.log")?.toString() ?: "false") + options += SubpluginOption( + "incrementalLog", + project.findProperty("ksp.incremental.log")?.toString() ?: "false" + ) options += SubpluginOption("projectBaseDir", project.project.projectDir.canonicalPath) options += FilesSubpluginOption("apclasspath", nonEmptyKspConfigurations.flatten()) @@ -183,7 +160,7 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool registry.register(KspModelBuilder()) } - private fun decorateKotlinExtension(project:Project) { + private fun decorateKotlinExtension(project: Project) { project.extensions.configure(KotlinSingleTargetExtension::class.java) { kotlinExtension -> kotlinExtension.target.compilations.createKspConfigurations(project) { kotlinCompilation -> kotlinCompilation.kotlinSourceSets.map { @@ -196,9 +173,9 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool /** * Creates a KSP configuration for each element in the object container. */ - internal fun NamedDomainObjectContainer.createKspConfigurations( + internal fun NamedDomainObjectContainer.createKspConfigurations( project: Project, - getKspConfigurationNames : (T)-> List + getKspConfigurationNames: (T) -> List, ) { val mainConfiguration = project.configurations.maybeCreate(KSP_MAIN_CONFIGURATION_NAME) all { @@ -223,7 +200,10 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool // Check version and show warning by default. val noVersionCheck = project.findProperty("ksp.version.check")?.toString()?.toBoolean() == false if (!noVersionCheck && !kspVersion.startsWith(kotlinVersion)) - project.logger.warn("ksp-$kspVersion might not work with kotlin-$kotlinVersion properly. Please pick the same version of ksp and kotlin plugins.") + project.logger.warn( + "ksp-$kspVersion might not work with kotlin-$kotlinVersion properly. " + + "Please pick the same version of ksp and kotlin plugins." + ) return true } @@ -348,7 +328,8 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool configureAsAbstractCompile(kspTask) // KotlinNativeCompile computes -Xplugin=... from compilerPluginClasspath. - val pluginConfigurationName = (kotlinCompileTask.compilation as AbstractKotlinNativeCompilation).pluginConfigurationName + val pluginConfigurationName = + (kotlinCompileTask.compilation as AbstractKotlinNativeCompilation).pluginConfigurationName val compilerPluginCP = project.configurations.getByName(pluginConfigurationName) val apiDep = project.dependencies.create(apiArtifact) compilerPluginCP.dependencies.add(apiDep) @@ -369,7 +350,8 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool } } - val processResourcesTaskName = (kotlinCompilation as? KotlinCompilationWithResources)?.processResourcesTaskName ?: "processResources" + val processResourcesTaskName = + (kotlinCompilation as? KotlinCompilationWithResources)?.processResourcesTaskName ?: "processResources" project.locateTask(processResourcesTaskName)?.let { provider -> provider.configure { resourcesTask -> resourcesTask.dependsOn(kspTaskProvider) @@ -392,10 +374,18 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool override fun getCompilerPluginId() = KSP_PLUGIN_ID override fun getPluginArtifact(): SubpluginArtifact = - SubpluginArtifact(groupId = "com.google.devtools.ksp", artifactId = KSP_ARTIFACT_NAME, version = javaClass.`package`.implementationVersion) + SubpluginArtifact( + groupId = "com.google.devtools.ksp", + artifactId = KSP_ARTIFACT_NAME, + version = javaClass.`package`.implementationVersion + ) override fun getPluginArtifactForNative(): SubpluginArtifact? = - SubpluginArtifact(groupId = "com.google.devtools.ksp", artifactId = KSP_ARTIFACT_NAME_NATIVE, version = javaClass.`package`.implementationVersion) + SubpluginArtifact( + groupId = "com.google.devtools.ksp", + artifactId = KSP_ARTIFACT_NAME_NATIVE, + version = javaClass.`package`.implementationVersion + ) val apiArtifact = "com.google.devtools.ksp:symbol-processing-api:${javaClass.`package`.implementationVersion}" } @@ -404,20 +394,20 @@ private val artifactType = Attribute.of("artifactType", String::class.java) // Copied from kotlin-gradle-plugin, because they are internal. internal inline fun Project.locateTask(name: String): TaskProvider? = - try { - tasks.withType(T::class.java).named(name) - } catch (e: UnknownTaskException) { - null - } + try { + tasks.withType(T::class.java).named(name) + } catch (e: UnknownTaskException) { + null + } // Copied from kotlin-gradle-plugin, because they are internal. internal fun findJavaTaskForKotlinCompilation(compilation: KotlinCompilation<*>): TaskProvider? = - when (compilation) { - is KotlinJvmAndroidCompilation -> compilation.compileJavaTaskProvider - is KotlinWithJavaCompilation -> compilation.compileJavaTaskProvider - is KotlinJvmCompilation -> compilation.compileJavaTaskProvider // may be null for Kotlin-only JVM target in MPP - else -> null - } + when (compilation) { + is KotlinJvmAndroidCompilation -> compilation.compileJavaTaskProvider + is KotlinWithJavaCompilation -> compilation.compileJavaTaskProvider + is KotlinJvmCompilation -> compilation.compileJavaTaskProvider // may be null for Kotlin-only JVM target in MPP + else -> null + } interface KspTask : Task { @get:Internal @@ -451,7 +441,11 @@ interface KspTask : Task { @get:LocalState val kspCacheDir: DirectoryProperty - fun configureCompilation(kotlinCompilation: KotlinCompilationData<*>, kotlinCompile: AbstractKotlinCompile<*>, isIncremental: Boolean) + fun configureCompilation( + kotlinCompilation: KotlinCompilationData<*>, + kotlinCompile: AbstractKotlinCompile<*>, + isIncremental: Boolean, + ) } @CacheableTask @@ -464,7 +458,11 @@ abstract class KspTaskJvm : KotlinCompile(KotlinJvmOptionsImpl()), KspTask { @get:Internal var isIntermoduleIncremental: Boolean = false - override fun configureCompilation(kotlinCompilation: KotlinCompilationData<*>, kotlinCompile: AbstractKotlinCompile<*>, isIncremental: Boolean) { + override fun configureCompilation( + kotlinCompilation: KotlinCompilationData<*>, + kotlinCompile: AbstractKotlinCompile<*>, + isIncremental: Boolean, + ) { Configurator(kotlinCompilation).configure(this) kotlinCompile as KotlinCompile val providerFactory = kotlinCompile.project.providers @@ -530,7 +528,9 @@ abstract class KspTaskJvm : KotlinCompile(KotlinJvmOptionsImpl()), KspTask { val previousAndCurrentDataFiles = lazy { loadedPrevious.getAllDataFiles() + allDataFiles } val allChangesRecognized = changedFiles.all { val extension = it.extension - if (extension.isEmpty() || extension == "kt" || extension == "java" || extension == "jar" || extension == "class") { + if (extension.isEmpty() || extension == "kt" || extension == "java" || extension == "jar" || + extension == "class" + ) { return@all true } // if not a directory, Java source file, jar, or class, it has to be a structure file, in order to understand changes @@ -561,7 +561,8 @@ abstract class KspTaskJvm : KotlinCompile(KotlinJvmOptionsImpl()), KspTask { } @get:Internal - internal abstract val compileKotlinArgumentsContributor: Property> + internal abstract val compileKotlinArgumentsContributor: + Property> init { // kotlinc's incremental compilation isn't compatible with symbol processing in a few ways: @@ -571,15 +572,18 @@ abstract class KspTaskJvm : KotlinCompile(KotlinJvmOptionsImpl()), KspTask { } override fun setupCompilerArgs( - args: K2JVMCompilerArguments, - defaultsOnly: Boolean, - ignoreClasspathResolutionErrors: Boolean + args: K2JVMCompilerArguments, + defaultsOnly: Boolean, + ignoreClasspathResolutionErrors: Boolean, ) { // Start with / copy from kotlinCompile. - compileKotlinArgumentsContributor.get().contributeArguments(args, compilerArgumentsConfigurationFlags( - defaultsOnly, - ignoreClasspathResolutionErrors - )) + compileKotlinArgumentsContributor.get().contributeArguments( + args, + compilerArgumentsConfigurationFlags( + defaultsOnly, + ignoreClasspathResolutionErrors + ) + ) if (blockOtherCompilerPlugins) { args.blockOtherPlugins(overridePluginClasspath.get()) } @@ -594,7 +598,7 @@ abstract class KspTaskJvm : KotlinCompile(KotlinJvmOptionsImpl()), KspTask { fun `callCompilerAsync$kotlin_gradle_plugin`( args: K2JVMCompilerArguments, sourceRoots: SourceRoots, - changedFiles: ChangedFiles + changedFiles: ChangedFiles, ) { if (isIntermoduleIncremental) { // findClasspathChanges may clear caches, if there are @@ -614,12 +618,15 @@ abstract class KspTaskJvm : KotlinCompile(KotlinJvmOptionsImpl()), KspTask { override fun skipCondition(): Boolean = false } - @CacheableTask abstract class KspTaskJS @Inject constructor( - objectFactory: ObjectFactory + objectFactory: ObjectFactory, ) : Kotlin2JsCompile(KotlinJsOptionsImpl(), objectFactory), KspTask { - override fun configureCompilation(kotlinCompilation: KotlinCompilationData<*>, kotlinCompile: AbstractKotlinCompile<*>, isIncremental: Boolean) { + override fun configureCompilation( + kotlinCompilation: KotlinCompilationData<*>, + kotlinCompile: AbstractKotlinCompile<*>, + isIncremental: Boolean, + ) { Configurator(kotlinCompilation).configure(this) kotlinCompile as Kotlin2JsCompile val providerFactory = kotlinCompile.project.providers @@ -631,7 +638,8 @@ abstract class KspTaskJS @Inject constructor( } @get:Internal - internal abstract val compileKotlinArgumentsContributor: Property> + internal abstract val compileKotlinArgumentsContributor: + Property> init { // kotlinc's incremental compilation isn't compatible with symbol processing in a few ways: @@ -643,14 +651,17 @@ abstract class KspTaskJS @Inject constructor( override fun setupCompilerArgs( args: K2JSCompilerArguments, defaultsOnly: Boolean, - ignoreClasspathResolutionErrors: Boolean + ignoreClasspathResolutionErrors: Boolean, ) { // Start with / copy from kotlinCompile. args.fillDefaultValues() - compileKotlinArgumentsContributor.get().contributeArguments(args, compilerArgumentsConfigurationFlags( - defaultsOnly, - ignoreClasspathResolutionErrors - )) + compileKotlinArgumentsContributor.get().contributeArguments( + args, + compilerArgumentsConfigurationFlags( + defaultsOnly, + ignoreClasspathResolutionErrors + ) + ) if (blockOtherCompilerPlugins) { args.blockOtherPlugins(overridePluginClasspath.get()) } @@ -664,7 +675,7 @@ abstract class KspTaskJS @Inject constructor( fun `callCompilerAsync$kotlin_gradle_plugin`( args: K2JSCompilerArguments, sourceRoots: SourceRoots, - changedFiles: ChangedFiles + changedFiles: ChangedFiles, ) { if (changedFiles.hasNonSourceChange()) { clearIncCache() @@ -676,7 +687,11 @@ abstract class KspTaskJS @Inject constructor( } abstract class KspTaskMetadata : KotlinCompileCommon(KotlinMultiplatformCommonOptionsImpl()), KspTask { - override fun configureCompilation(kotlinCompilation: KotlinCompilationData<*>, kotlinCompile: AbstractKotlinCompile<*>, isIncremental: Boolean) { + override fun configureCompilation( + kotlinCompilation: KotlinCompilationData<*>, + kotlinCompile: AbstractKotlinCompile<*>, + isIncremental: Boolean, + ) { Configurator(kotlinCompilation).configure(this) kotlinCompile as KotlinCompileCommon val providerFactory = kotlinCompile.project.providers @@ -688,7 +703,8 @@ abstract class KspTaskMetadata : KotlinCompileCommon(KotlinMultiplatformCommonOp } @get:Internal - internal abstract val compileKotlinArgumentsContributor: Property> + internal abstract val compileKotlinArgumentsContributor: + Property> init { // kotlinc's incremental compilation isn't compatible with symbol processing in a few ways: @@ -700,14 +716,17 @@ abstract class KspTaskMetadata : KotlinCompileCommon(KotlinMultiplatformCommonOp override fun setupCompilerArgs( args: K2MetadataCompilerArguments, defaultsOnly: Boolean, - ignoreClasspathResolutionErrors: Boolean + ignoreClasspathResolutionErrors: Boolean, ) { // Start with / copy from kotlinCompile. args.apply { fillDefaultValues() } - compileKotlinArgumentsContributor.get().contributeArguments(args, compilerArgumentsConfigurationFlags( - defaultsOnly, - ignoreClasspathResolutionErrors - )) + compileKotlinArgumentsContributor.get().contributeArguments( + args, + compilerArgumentsConfigurationFlags( + defaultsOnly, + ignoreClasspathResolutionErrors + ) + ) if (blockOtherCompilerPlugins) { args.blockOtherPlugins(overridePluginClasspath.get()) } @@ -721,7 +740,7 @@ abstract class KspTaskMetadata : KotlinCompileCommon(KotlinMultiplatformCommonOp fun `callCompilerAsync$kotlin_gradle_plugin`( args: K2MetadataCompilerArguments, sourceRoots: SourceRoots, - changedFiles: ChangedFiles + changedFiles: ChangedFiles, ) { if (changedFiles.hasNonSourceChange()) { clearIncCache() @@ -734,7 +753,7 @@ abstract class KspTaskMetadata : KotlinCompileCommon(KotlinMultiplatformCommonOp @CacheableTask abstract class KspTaskNative @Inject constructor( - injected: KotlinNativeCompilationData<*> + injected: KotlinNativeCompilationData<*>, ) : KotlinNativeCompile(injected), KspTask { override fun buildCompilerArgs(): List { val kspOptions = options.get().flatMap { listOf("-P", it.toArg()) } @@ -750,7 +769,7 @@ abstract class KspTaskNative @Inject constructor( override fun configureCompilation( kotlinCompilation: KotlinCompilationData<*>, kotlinCompile: AbstractKotlinCompile<*>, - isIncremental: Boolean + isIncremental: Boolean, ) = Unit // KotlinNativeCompile doesn't support Gradle incremental compilation. Therefore, there is no information about @@ -781,7 +800,7 @@ fun CommonCompilerArguments.addChangedClasses(changed: KaptClasspathChanges) { } } -fun SubpluginOption.toArg() = "plugin:${KspGradleSubplugin.KSP_PLUGIN_ID}:${key}=${value}" +fun SubpluginOption.toArg() = "plugin:${KspGradleSubplugin.KSP_PLUGIN_ID}:$key=$value" fun CommonCompilerArguments.addPluginOptions(options: List) { pluginOptions = (options.map { it.toArg() } + pluginOptions!!).toTypedArray() @@ -803,11 +822,10 @@ fun CommonCompilerArguments.addChangedFiles(changedFiles: ChangedFiles) { private fun CommonCompilerArguments.blockOtherPlugins(kspPluginClasspath: FileCollection) { pluginClasspaths = kspPluginClasspath.map { it.canonicalPath }.toTypedArray() pluginOptions = arrayOf() - } // TODO: Move into dumpArgs after the compiler supports local function in inline functions. -private inline fun T.toPair(property: KProperty1): Pair { +private inline fun T.toPair(property: KProperty1): Pair { @Suppress("UNCHECKED_CAST") val value = (property as KProperty1).get(this) return property.name to if (value is Array<*>) @@ -817,7 +835,7 @@ private inline fun T.toPair(property: KProp } @Suppress("unused") -internal inline fun dumpArgs(args: T): Map { +internal inline fun dumpArgs(args: T): Map { @Suppress("UNCHECKED_CAST") val argumentProperties = args::class.members.mapNotNull { member -> diff --git a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/Ksp.kt b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/Ksp.kt index 9a56f18a..22077a0c 100644 --- a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/Ksp.kt +++ b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/Ksp.kt @@ -15,7 +15,6 @@ * limitations under the License. */ - package com.google.devtools.ksp.gradle.model /** @@ -38,4 +37,4 @@ interface Ksp { * @return the module name. */ val name: String -} \ No newline at end of file +} diff --git a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/builder/KspModelBuilder.kt b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/builder/KspModelBuilder.kt index 9d2b5c87..760d83bc 100644 --- a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/builder/KspModelBuilder.kt +++ b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/builder/KspModelBuilder.kt @@ -15,14 +15,13 @@ * limitations under the License. */ - package com.google.devtools.ksp.gradle.model.builder -import org.gradle.api.Project -import org.gradle.tooling.provider.model.ToolingModelBuilder import com.google.devtools.ksp.gradle.KspExtension -import com.google.devtools.ksp.gradle.model.impl.KspImpl import com.google.devtools.ksp.gradle.model.Ksp +import com.google.devtools.ksp.gradle.model.impl.KspImpl +import org.gradle.api.Project +import org.gradle.tooling.provider.model.ToolingModelBuilder /** * [ToolingModelBuilder] for [Ksp] models. @@ -41,4 +40,4 @@ class KspModelBuilder : ToolingModelBuilder { } return null } -} \ No newline at end of file +} diff --git a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/impl/KspImpl.kt b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/impl/KspImpl.kt index ed592255..a6ca2699 100644 --- a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/impl/KspImpl.kt +++ b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/model/impl/KspImpl.kt @@ -15,7 +15,6 @@ * limitations under the License. */ - package com.google.devtools.ksp.gradle.model.impl import com.google.devtools.ksp.gradle.model.Ksp @@ -33,4 +32,4 @@ data class KspImpl( companion object { private const val serialVersionUID = 1L } -} \ No newline at end of file +} diff --git a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/GradleCompilationTest.kt b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/GradleCompilationTest.kt index ce7fdffa..70b59246 100644 --- a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/GradleCompilationTest.kt +++ b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/GradleCompilationTest.kt @@ -93,7 +93,7 @@ class GradleCompilationTest { class MyProcessor(private val codeGenerator: CodeGenerator) : SymbolProcessor { var count = 0 override fun process(resolver: Resolver): List { - if(count == 0) { + if (count == 0) { codeGenerator.createNewFile(Dependencies.ALL_FILES, "", "Generated").use { it.writer(Charsets.UTF_8).use { it.write("class ToBeGenerated") diff --git a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/SourceSetConfigurationsTest.kt b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/SourceSetConfigurationsTest.kt index f3199b64..922adeae 100644 --- a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/SourceSetConfigurationsTest.kt +++ b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/SourceSetConfigurationsTest.kt @@ -170,7 +170,8 @@ class SourceSetConfigurationsTest { @Test fun configurationsForAndroidApp_withBuildFlavorsMatchesKapt() { testRule.setupAppAsAndroidApp() - testRule.appModule.buildFileAdditions.add(""" + testRule.appModule.buildFileAdditions.add( + """ android { flavorDimensions("version") productFlavors { @@ -184,7 +185,8 @@ class SourceSetConfigurationsTest { } } } - """.trimIndent()) + """.trimIndent() + ) testRule.appModule.plugins.add(PluginDeclaration.kotlin("kapt", testRule.testConfig.kotlinBaseVersion)) testRule.appModule.addSource("Foo.kt", "class Foo") val result = testRule.runner() @@ -221,7 +223,7 @@ class SourceSetConfigurationsTest { kspForTests(androidApp = true, useAndroidTest = false) } - private fun kspForTests(androidApp:Boolean, useAndroidTest: Boolean) { + private fun kspForTests(androidApp: Boolean, useAndroidTest: Boolean) { if (androidApp) { testRule.setupAppAsAndroidApp() } else { @@ -233,17 +235,20 @@ class SourceSetConfigurationsTest { } } - testRule.appModule.addSource("App.kt", """ + testRule.appModule.addSource( + "App.kt", + """ @Suppress("app") class InApp { } - """.trimIndent()) + """.trimIndent() + ) val testSource = """ @Suppress("test") class InTest { val impl = InTest_Impl() } - """.trimIndent() + """.trimIndent() if (useAndroidTest) { testRule.appModule.addAndroidTestSource("InTest.kt", testSource) } else { diff --git a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/model/builder/KspModelBuilderTest.kt b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/model/builder/KspModelBuilderTest.kt index da326cd3..e2dd3d9a 100644 --- a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/model/builder/KspModelBuilderTest.kt +++ b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/model/builder/KspModelBuilderTest.kt @@ -15,7 +15,6 @@ * limitations under the License. */ - package com.google.devtools.ksp.gradle.model.builder import com.google.devtools.ksp.gradle.model.Ksp @@ -30,4 +29,4 @@ class KspModelBuilderTest { assertTrue(modelBuilder.canBuild(Ksp::class.java.name)) assertFalse(modelBuilder.canBuild("wrongModel")) } -} \ No newline at end of file +} diff --git a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/DependencyDeclaration.kt b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/DependencyDeclaration.kt index b21a861b..02ffae27 100644 --- a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/DependencyDeclaration.kt +++ b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/DependencyDeclaration.kt @@ -26,7 +26,7 @@ data class DependencyDeclaration private constructor( val configuration: String, val dependency: String ) { - fun toCode() = "${configuration}($dependency)" + fun toCode() = "$configuration($dependency)" companion object { /** @@ -47,5 +47,4 @@ data class DependencyDeclaration private constructor( fun files(configuration: String, path: String) = DependencyDeclaration(configuration, "files(\"$path\")") } - -} \ No newline at end of file +} diff --git a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/KspIntegrationTestRule.kt b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/KspIntegrationTestRule.kt index 752400b9..cfbcb778 100644 --- a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/KspIntegrationTestRule.kt +++ b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/KspIntegrationTestRule.kt @@ -82,10 +82,12 @@ class KspIntegrationTestRule( * Sets up the app module as a jvm app, adding necessary plugin dependencies. */ fun setupAppAsJvmApp() { - testProject.appModule.plugins.addAll(listOf( - PluginDeclaration.kotlin("jvm", testConfig.kotlinBaseVersion), - PluginDeclaration.id("com.google.devtools.ksp", testConfig.kspVersion) - )) + testProject.appModule.plugins.addAll( + listOf( + PluginDeclaration.kotlin("jvm", testConfig.kotlinBaseVersion), + PluginDeclaration.id("com.google.devtools.ksp", testConfig.kspVersion) + ) + ) } /** @@ -93,17 +95,19 @@ class KspIntegrationTestRule( * file and necessary gradle configuration. */ fun setupAppAsAndroidApp() { - testProject.appModule.plugins.addAll(listOf( - PluginDeclaration.id("com.android.application", testConfig.androidBaseVersion), - PluginDeclaration.kotlin("android", testConfig.kotlinBaseVersion), - PluginDeclaration.id("com.google.devtools.ksp", testConfig.kspVersion) - )) + testProject.appModule.plugins.addAll( + listOf( + PluginDeclaration.id("com.android.application", testConfig.androidBaseVersion), + PluginDeclaration.kotlin("android", testConfig.kotlinBaseVersion), + PluginDeclaration.id("com.google.devtools.ksp", testConfig.kspVersion) + ) + ) testProject.appModule.buildFileAdditions.add( """ android { compileSdkVersion="android-29" } - """.trimIndent() + """.trimIndent() ) testProject.appModule.moduleRoot.resolve("src/main/AndroidManifest.xml") .also { @@ -114,7 +118,7 @@ class KspIntegrationTestRule( - """.trimIndent() + """.trimIndent() ) } diff --git a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/TestProject.kt b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/TestProject.kt index 9af2222a..eb4dc68f 100644 --- a/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/TestProject.kt +++ b/gradle-plugin/src/test/kotlin/com/google/devtools/ksp/gradle/testing/TestProject.kt @@ -67,7 +67,7 @@ class TestProject( maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap/") } } - """.trimIndent() + """.trimIndent() rootDir.resolve("settings.gradle.kts").writeText(contents) } @@ -109,7 +109,7 @@ class TestProject( } } } - """.trimIndent() + """.trimIndent() ) } rootDir.resolve("build.gradle.kts").writeText(rootBuildFile) -- cgit v1.2.3