From 433c4c85ac175c3e4ba18dd768931ce9399e67a6 Mon Sep 17 00:00:00 2001 From: Paul Rybitskyi Date: Sat, 3 Aug 2024 22:33:04 +0300 Subject: [PATCH] Update dependencies (#49) --- .editorconfig | 12 +- .github/workflows/build.yml | 12 +- .github/workflows/release.yml | 4 +- build.gradle.kts | 43 +- buildSrc/build.gradle.kts | 4 +- buildSrc/src/main/java/Dependencies.kt | 60 +- buildSrc/src/main/java/Plugins.kt | 2 +- common-utils/build.gradle.kts | 4 + compiler-processing/build.gradle.kts | 4 + .../compiler/processing/XBackend.kt | 2 +- .../hiltbinder/compiler/processing/XFiler.kt | 2 +- .../processing/factories/XElementFactory.kt | 3 +- .../factories/XProcessingEnvFactory.kt | 4 +- .../processing/javac/JavacAnnotation.kt | 2 +- .../processing/javac/JavacAnnotationValue.kt | 2 +- .../compiler/processing/javac/JavacElement.kt | 2 +- .../compiler/processing/javac/JavacFiler.kt | 2 +- .../compiler/processing/javac/JavacLogger.kt | 2 +- .../javac/JavacOriginatingElement.kt | 2 +- .../processing/javac/JavacProcessingEnv.kt | 2 +- .../processing/javac/JavacRoundEnv.kt | 2 +- .../compiler/processing/javac/JavacType.kt | 2 +- .../processing/javac/JavacTypeElement.kt | 2 +- .../processing/javac/utils/PoetUtils.kt | 2 +- .../compiler/processing/ksp/KspAnnotation.kt | 2 +- .../processing/ksp/KspAnnotationValue.kt | 2 +- .../compiler/processing/ksp/KspElement.kt | 2 +- .../compiler/processing/ksp/KspFiler.kt | 6 +- .../compiler/processing/ksp/KspLogger.kt | 2 +- .../processing/ksp/KspOriginatingElement.kt | 2 +- .../processing/ksp/KspProcessingEnv.kt | 2 +- .../compiler/processing/ksp/KspRoundEnv.kt | 2 +- .../compiler/processing/ksp/KspType.kt | 2 +- .../compiler/processing/ksp/KspTypeElement.kt | 2 +- .../processing/ksp/utils/PoetUtils.kt | 6 +- .../processing/ksp/utils/SymbolUtils.kt | 2 +- config/detekt/detekt.yml | 269 ++++-- gradle/wrapper/gradle-wrapper.properties | 2 +- hilt-binder-compiler/build.gradle.kts | 4 + .../libs/hilt-android-classes-2.48.jar | Bin 0 -> 106635 bytes .../libs/hilt-android-classes-2.51.1.jar | Bin 0 -> 118211 bytes .../libs/hilt-core-classes-2.35.1.jar | Bin 17729 -> 0 bytes .../libs/hilt-core-classes-2.36.jar | Bin 17727 -> 0 bytes .../libs/hilt-core-classes-2.39.1.jar | Bin 17728 -> 0 bytes .../libs/hilt-core-classes-2.43.2.jar | Bin 17743 -> 0 bytes .../libs/hilt-core-classes-2.48.jar | 0 .../libs/hilt-core-classes-2.51.1.jar | Bin 0 -> 17743 bytes .../processor/HiltBinderJavacProcessor.kt | 4 +- .../processor/HiltBinderKspProcessor.kt | 2 +- .../processor/HiltBinderProcessor.kt | 2 +- .../processor/HiltBinderProcessorFactory.kt | 10 +- .../processor/generator/Language.kt | 2 +- .../generator/ModuleFileGenerator.kt | 4 +- .../generator/ModuleFileGeneratorFactory.kt | 10 +- .../content/BindingMethodSpecFactory.kt | 2 +- .../java/JavaBindingMethodSpecFactory.kt | 6 +- .../java/JavaModuleFileContentGenerator.kt | 2 +- .../content/java/JavaTypeSpecFactory.kt | 2 +- .../kotlin/KotlinBindingMethodSpecFactory.kt | 6 +- .../KotlinModuleFileContentGenerator.kt | 2 +- .../content/kotlin/KotlinTypeSpecFactory.kt | 2 +- .../processor/model/BindingSchema.kt | 2 +- .../processor/model/ModuleSchema.kt | 2 +- .../model/PredefinedHiltComponent.kt | 20 +- .../processor/parser/AnnotationsParser.kt | 2 +- .../parser/AnnotationsParserFactory.kt | 14 +- .../processor/parser/HiltBinderException.kt | 2 +- .../parser/PredefinedHiltComponentMapper.kt | 2 +- .../detectors/BindingReturnTypeDetector.kt | 14 +- .../detectors/ContributionTypeDetector.kt | 2 +- .../parser/detectors/HiltComponentDetector.kt | 10 +- .../detectors/QualifierAnnotationDetector.kt | 2 +- .../factories/BindingMethodNameFactory.kt | 2 +- .../parser/factories/BindingSchemaFactory.kt | 4 +- .../parser/factories/ModuleSchemaFactory.kt | 6 +- .../processor/utils/AnnotatedUtils.kt | 2 +- .../processor/utils/AnnotationUtils.kt | 2 +- .../processor/utils/BindAnnotationUtils.kt | 4 +- .../processor/utils/ProcessingEnvUtils.kt | 2 +- .../hiltbinder/processor/HiltBinderTest.kt | 837 +++++++++--------- hilt-binder/build.gradle.kts | 4 + .../com/paulrybitskyi/hiltbinder/BindType.kt | 6 +- sample-deps-javac/build.gradle.kts | 7 +- .../src/main/AndroidManifest.xml | 19 - sample-deps-kapt/build.gradle.kts | 11 +- sample-deps-kapt/src/main/AndroidManifest.xml | 19 - .../sample/kapt/kotlin/ActivityDeps.kt | 26 +- .../sample/kapt/kotlin/CustomDeps.kt | 8 +- .../sample/kapt/kotlin/FragmentDeps.kt | 28 +- .../sample/kapt/kotlin/SingletonDeps.kt | 4 +- .../hiltbinder/sample/kapt/kotlin/ViewDeps.kt | 24 +- .../sample/kapt/kotlin/ViewModelDeps.kt | 26 +- sample-deps-ksp/build.gradle.kts | 11 +- sample-deps-ksp/src/main/AndroidManifest.xml | 19 - .../sample/ksp/kotlin/ActivityDeps.kt | 26 +- .../sample/ksp/kotlin/CustomDeps.kt | 8 +- .../sample/ksp/kotlin/FragmentDeps.kt | 28 +- .../sample/ksp/kotlin/SingletonDeps.kt | 4 +- .../hiltbinder/sample/ksp/kotlin/ViewDeps.kt | 24 +- .../sample/ksp/kotlin/ViewModelDeps.kt | 26 +- sample/build.gradle.kts | 7 +- sample/src/main/AndroidManifest.xml | 4 +- .../sample/activity/JavacJavaActivityDeps.kt | 2 +- .../sample/activity/KaptJavaActivityDeps.kt | 2 +- .../sample/activity/KaptKotlinActivityDeps.kt | 2 +- .../sample/activity/KspJavaActivityDeps.kt | 2 +- .../sample/activity/KspKotlinActivityDeps.kt | 2 +- .../application/JavacJavaSingletonDeps.kt | 2 +- .../application/KaptJavaSingletonDeps.kt | 2 +- .../application/KaptKotlinSingletonDeps.kt | 2 +- .../application/KspJavaSingletonDeps.kt | 2 +- .../application/KspKotlinSingletonDeps.kt | 2 +- .../sample/fragment/JavacJavaFragmentDeps.kt | 2 +- .../sample/fragment/KaptJavaFragmentDeps.kt | 2 +- .../sample/fragment/KaptKotlinFragmentDeps.kt | 2 +- .../sample/fragment/KspJavaFragmentDeps.kt | 2 +- .../sample/fragment/KspKotlinFragmentDeps.kt | 2 +- .../viewmodel/JavacJavaViewModelDeps.kt | 2 +- .../sample/viewmodel/KaptJavaViewModelDeps.kt | 2 +- .../viewmodel/KaptKotlinViewModelDeps.kt | 2 +- .../sample/viewmodel/KspJavaViewModelDeps.kt | 2 +- .../viewmodel/KspKotlinViewModelDeps.kt | 2 +- .../sample/viewmodel/MainFragmentViewModel.kt | 2 +- .../hiltbinder/sample/views/GreeterView.kt | 2 +- .../sample/views/JavacJavaViewDeps.kt | 2 +- .../sample/views/KaptJavaViewDeps.kt | 2 +- .../sample/views/KaptKotlinViewDeps.kt | 2 +- .../sample/views/KspJavaViewDeps.kt | 2 +- .../sample/views/KspKotlinViewDeps.kt | 2 +- .../JavacJavaViewWithFragmentDeps.kt | 2 +- .../KaptJavaViewWithFragmentDeps.kt | 2 +- .../KaptKotlinViewWithFragmentDeps.kt | 2 +- .../KspJavaViewWithFragmentDeps.kt | 2 +- .../KspKotlinViewWithFragmentDeps.kt | 2 +- .../views/withfragment/MoodAskerView.kt | 2 +- 135 files changed, 989 insertions(+), 888 deletions(-) create mode 100644 hilt-binder-compiler/libs/hilt-android-classes-2.48.jar create mode 100644 hilt-binder-compiler/libs/hilt-android-classes-2.51.1.jar create mode 100644 hilt-binder-compiler/libs/hilt-core-classes-2.48.jar create mode 100644 hilt-binder-compiler/libs/hilt-core-classes-2.51.1.jar delete mode 100644 sample-deps-javac/src/main/AndroidManifest.xml delete mode 100644 sample-deps-kapt/src/main/AndroidManifest.xml delete mode 100644 sample-deps-ksp/src/main/AndroidManifest.xml diff --git a/.editorconfig b/.editorconfig index 75fcf109..0370a858 100644 --- a/.editorconfig +++ b/.editorconfig @@ -7,4 +7,14 @@ trim_trailing_whitespace = true max_line_length = 120 [*.yml] -indent_size = 2 \ No newline at end of file +indent_size = 2 + +[*.{kt,kts}] +ktlint_standard_annotation = disabled +ktlint_standard_no-empty-first-line-in-class-body = disabled +ktlint_standard_blank-line-before-declaration = disabled +ktlint_standard_multiline-expression-wrapping = disabled +ktlint_standard_string-template-indent = disabled +ktlint_standard_spacing-between-declarations-with-annotations = disabled +ktlint_standard_function-signature = disabled +ktlint_standard_class-signature = disabled \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9d83e727..63a18374 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,11 +16,11 @@ jobs: - name: Checkout Repo uses: actions/checkout@v2 - - name: Set up JDK 11 + - name: Set up JDK 17 uses: actions/setup-java@v2 with: distribution: 'temurin' - java-version: '11' + java-version: '17' - name: Generate a Cache Key run: ./checksum.sh checksum.txt @@ -52,11 +52,11 @@ jobs: - name: Checkout Repo uses: actions/checkout@v2 - - name: Set up JDK 11 + - name: Set up JDK 17 uses: actions/setup-java@v2 with: distribution: 'temurin' - java-version: '11' + java-version: '17' - name: Generate a Cache Key run: ./checksum.sh checksum.txt @@ -88,11 +88,11 @@ jobs: - name: Checkout Repo uses: actions/checkout@v2 - - name: Set up JDK 11 + - name: Set up JDK 17 uses: actions/setup-java@v2 with: distribution: 'temurin' - java-version: '11' + java-version: '17' - name: Generate a Cache Key run: ./checksum.sh checksum.txt diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cbd5c709..b96fb984 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,11 +14,11 @@ jobs: - name: Checkout Repo uses: actions/checkout@v2 - - name: Set up JDK 11 + - name: Set up JDK 17 uses: actions/setup-java@v2 with: distribution: 'temurin' - java-version: '11' + java-version: '17' - name: Generate a Cache Key run: ./checksum.sh checksum.txt diff --git a/build.gradle.kts b/build.gradle.kts index 7cfbd9e1..fd4c7ff3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,9 +14,8 @@ * limitations under the License. */ -import com.android.build.gradle.LibraryExtension +import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask import io.gitlab.arturbosch.detekt.Detekt -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jlleitschuh.gradle.ktlint.KtlintExtension import org.jlleitschuh.gradle.ktlint.reporter.ReporterType @@ -35,9 +34,10 @@ buildscript { } dependencies { - classpath(deps.plugins.androidGradle) - classpath(deps.plugins.kotlinGradle) - classpath(deps.plugins.daggerHiltGradle) + classpath(deps.plugins.kotlin) + classpath(deps.plugins.android) + classpath(deps.plugins.ksp) + classpath(deps.plugins.daggerHilt) classpath(deps.plugins.gradleVersions) classpath(deps.plugins.dokka) classpath(deps.plugins.shadow) @@ -54,6 +54,14 @@ tasks.withType().configureEach { reports.html.required.set(true) } +tasks.withType { + rejectVersionIf { + listOf("alpha", "beta", "rc").any { keyword -> + candidate.version.lowercase().contains(keyword) + } + } +} + allprojects { apply(plugin = PLUGIN_KTLINT) @@ -63,7 +71,7 @@ allprojects { "sample-deps-javac", "sample-deps-kapt", "sample-deps-ksp", - "sample" + "sample", ) } .forEach { subproject -> @@ -75,24 +83,11 @@ allprojects { google() } - tasks.withType(KotlinCompile::class.java) { - kotlinOptions { - jvmTarget = appConfig.kotlinCompatibilityVersion.toString() - } - } - - plugins.withId(PLUGIN_ANDROID_LIBRARY) { - extensions.findByType()?.run { - compileOptions { - sourceCompatibility = appConfig.javaCompatibilityVersion - targetCompatibility = appConfig.javaCompatibilityVersion - } - } - } - configure { + version.set(versions.ktlint) android.set(true) outputToConsole.set(true) + verbose.set(true) filter { // https://github.com/JLLeitschuh/ktlint-gradle/issues/266#issuecomment-529527697 @@ -108,3 +103,9 @@ allprojects { val clean by tasks.registering(Delete::class) { delete(buildDir) } + +fun isUnstable(version: String): Boolean { + return listOf("alpha", "beta", "rc").any { keyword -> + version.lowercase().contains(keyword) + } +} diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 2848ed08..8b6a74e5 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -24,8 +24,8 @@ repositories { } dependencies { - implementation("com.android.tools.build:gradle:7.2.2") - implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.0") + implementation("com.android.tools.build:gradle:8.1.0") + implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25") // See https://github.com/google/dagger/issues/3068#issuecomment-999118496 // for why it should be here. implementation("com.squareup:javapoet:1.13.0") diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt index a853a451..def3dc3a 100644 --- a/buildSrc/src/main/java/Dependencies.kt +++ b/buildSrc/src/main/java/Dependencies.kt @@ -20,15 +20,17 @@ import org.gradle.api.JavaVersion object appConfig { - const val compileSdkVersion = 32 - const val targetSdkVersion = 32 + const val compileSdkVersion = 34 + const val targetSdkVersion = 34 const val minSdkVersion = 21 const val applicationId = "com.paulrybitskyi.hiltbinder.sample" const val versionCode = 1 const val versionName = "1.0.0" - val javaCompatibilityVersion = JavaVersion.VERSION_1_8 - val kotlinCompatibilityVersion = JavaVersion.VERSION_1_8 + const val exportableLibJavaCompatVersion = 8 + + val androidModuleJavaCompatVersion = JavaVersion.VERSION_17 + val androidModuleKotlinCompatVersion = JavaVersion.VERSION_17 } object publishingConfig { @@ -64,39 +66,40 @@ object publishingConfig { object versions { - const val kotlin = "1.7.0" // also in buildSrc build.gradle.kts file - const val gradlePlugin = "7.2.2" // also in buildSrc build.gradle.kts file - const val detektPlugin = "1.20.0" - const val ktlintPlugin = "10.3.0" - const val gradleVersionsPlugin = "0.42.0" - const val dokkaPlugin = "1.7.0" - const val shadowPlugin = "7.1.2" - const val appCompat = "1.4.2" - const val navigation = "2.5.1" - const val fragmentKtx = "1.5.1" + const val kotlin = "1.9.25" // also in buildSrc build.gradle.kts file + const val gradlePlugin = "8.1.0" // also in buildSrc build.gradle.kts file + const val detektPlugin = "1.23.6" + const val ktlintPlugin = "12.1.1" + const val gradleVersionsPlugin = "0.51.0" + const val dokkaPlugin = "1.9.20" + const val shadowPlugin = "8.0.0" + const val ksp = "1.9.25-1.0.20" + const val dagger = "2.51.1" + const val appCompat = "1.7.0" + const val navigation = "2.7.7" + const val fragmentKtx = "1.8.2" const val constraintLayout = "2.1.4" - const val dagger = "2.43.2" - const val materialComponents = "1.6.1" - const val apacheCommons = "3.12.0" + const val materialComponents = "1.12.0" + const val apacheCommons = "3.15.0" const val javaPoet = "1.13.0" // also in buildSrc build.gradle.kts file - const val kotlinPoet = "1.12.0" - const val incap = "0.3" - const val autoService = "1.0" - const val ksp = "1.7.0-1.0.6" + const val kotlinPoet = "1.18.1" + const val incap = "1.0.0" + const val autoService = "1.1.1" + const val ktlint = "1.3.1" const val jUnit = "4.13.2" - const val jUnitExt = "1.1.2" - const val truth = "1.1.3" - const val ktCompileTesting = "1.4.9" - const val testParamInjector = "1.0" + const val truth = "1.4.4" + const val ktCompileTesting = "1.6.0" + const val testParamInjector = "1.16" } object deps { object plugins { - const val androidGradle = "com.android.tools.build:gradle:${versions.gradlePlugin}" - const val kotlinGradle = "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}" - const val daggerHiltGradle = "com.google.dagger:hilt-android-gradle-plugin:${versions.dagger}" + const val kotlin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}" + const val android = "com.android.tools.build:gradle:${versions.gradlePlugin}" + const val ksp = "com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin:${versions.ksp}" + const val daggerHilt = "com.google.dagger:hilt-android-gradle-plugin:${versions.dagger}" const val gradleVersions = "com.github.ben-manes:gradle-versions-plugin:${versions.gradleVersionsPlugin}" const val dokka = "org.jetbrains.dokka:dokka-gradle-plugin:${versions.dokkaPlugin}" const val shadow = "gradle.plugin.com.github.johnrengelman:shadow:${versions.shadowPlugin}" @@ -136,7 +139,6 @@ object deps { const val kspCore = "com.google.devtools.ksp:symbol-processing:${versions.ksp}" const val kspApi = "com.google.devtools.ksp:symbol-processing-api:${versions.ksp}" const val jUnit = "junit:junit:${versions.jUnit}" - const val jUnitExt = "androidx.test.ext:junit:${versions.jUnitExt}" const val truth = "com.google.truth:truth:${versions.truth}" const val kspCompileTesting = "com.github.tschuchortdev:kotlin-compile-testing-ksp:${versions.ktCompileTesting}" const val testParamInjector = "com.google.testparameterinjector:test-parameter-injector:${versions.testParamInjector}" diff --git a/buildSrc/src/main/java/Plugins.kt b/buildSrc/src/main/java/Plugins.kt index 732b0d68..c2409fc5 100644 --- a/buildSrc/src/main/java/Plugins.kt +++ b/buildSrc/src/main/java/Plugins.kt @@ -75,7 +75,7 @@ fun PluginDependenciesSpec.kotlinKapt(): PluginDependencySpec { } fun PluginDependenciesSpec.ksp(): PluginDependencySpec { - return (id(PLUGIN_KSP) version versions.ksp) + return id(PLUGIN_KSP) } fun PluginDependenciesSpec.daggerHiltAndroid(): PluginDependencySpec { diff --git a/common-utils/build.gradle.kts b/common-utils/build.gradle.kts index 92a21868..847f3b8d 100644 --- a/common-utils/build.gradle.kts +++ b/common-utils/build.gradle.kts @@ -17,3 +17,7 @@ plugins { kotlin() } + +kotlin { + jvmToolchain(appConfig.exportableLibJavaCompatVersion) +} diff --git a/compiler-processing/build.gradle.kts b/compiler-processing/build.gradle.kts index 63ac179a..91afc184 100644 --- a/compiler-processing/build.gradle.kts +++ b/compiler-processing/build.gradle.kts @@ -18,6 +18,10 @@ plugins { kotlin() } +kotlin { + jvmToolchain(appConfig.exportableLibJavaCompatVersion) +} + dependencies { implementation(project(deps.local.commonUtils)) diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/XBackend.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/XBackend.kt index c595cd95..dbcaec6a 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/XBackend.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/XBackend.kt @@ -18,5 +18,5 @@ package com.paulrybitskyi.hiltbinder.compiler.processing enum class XBackend { JAVAC, - KSP + KSP, } diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/XFiler.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/XFiler.kt index 673f57c7..0d44442a 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/XFiler.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/XFiler.kt @@ -23,7 +23,7 @@ interface XFiler { val name: String, val extension: String, val content: String, - val originatingElements: List + val originatingElements: List, ) fun createSourceFile(file: File) diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/factories/XElementFactory.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/factories/XElementFactory.kt index 4a77697f..a4ebd474 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/factories/XElementFactory.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/factories/XElementFactory.kt @@ -32,7 +32,8 @@ internal object XElementFactory { ElementKind.CLASS, ElementKind.ENUM, ElementKind.INTERFACE, - ElementKind.ANNOTATION_TYPE -> XTypeElementFactory.createJavacTypeElement(env, delegate.unsafeCast()) + ElementKind.ANNOTATION_TYPE, + -> XTypeElementFactory.createJavacTypeElement(env, delegate.unsafeCast()) else -> error("A Javac element with the kind = ${delegate.kind} is not supported.") } } diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/factories/XProcessingEnvFactory.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/factories/XProcessingEnvFactory.kt index b78a01eb..a862ca51 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/factories/XProcessingEnvFactory.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/factories/XProcessingEnvFactory.kt @@ -28,14 +28,14 @@ object XProcessingEnvFactory { fun createJavacEnv( processingEnv: ProcessingEnvironment, - roundEnv: RoundEnvironment + roundEnv: RoundEnvironment, ): XProcessingEnv { return JavacProcessingEnv(processingEnv, roundEnv) } fun createKspEnv( processingEnv: SymbolProcessorEnvironment, - resolver: Resolver + resolver: Resolver, ): XProcessingEnv { return KspProcessingEnv(processingEnv, resolver) } diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacAnnotation.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacAnnotation.kt index 6a1472c1..13e7bfbf 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacAnnotation.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacAnnotation.kt @@ -30,7 +30,7 @@ import javax.lang.model.element.AnnotationMirror internal class JavacAnnotation( private val env: JavacProcessingEnv, - private val delegate: AnnotationMirror + private val delegate: AnnotationMirror, ) : XAnnotation { override val type: XType by lazy { diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacAnnotationValue.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacAnnotationValue.kt index 653b02c9..becb90a0 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacAnnotationValue.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacAnnotationValue.kt @@ -24,7 +24,7 @@ import javax.lang.model.type.TypeMirror internal class JavacAnnotationValue( private val env: JavacProcessingEnv, - private val value: Any? + private val value: Any?, ) : XAnnotationValue { override fun getAsBoolean(default: Boolean): Boolean { diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacElement.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacElement.kt index e61c2c22..1311b8f8 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacElement.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacElement.kt @@ -31,7 +31,7 @@ import javax.lang.model.element.Parameterizable internal abstract class JavacElement( protected val env: JavacProcessingEnv, - open val delegate: Element + open val delegate: Element, ) : XElement { override val packageName: String diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacFiler.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacFiler.kt index 3c17ea30..6ceeb29c 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacFiler.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacFiler.kt @@ -23,7 +23,7 @@ import javax.annotation.processing.Filer import javax.lang.model.element.Element internal class JavacFiler( - private val delegate: Filer + private val delegate: Filer, ) : XFiler { override fun createSourceFile(file: XFiler.File) { diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacLogger.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacLogger.kt index e63a269b..cc6ecd29 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacLogger.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacLogger.kt @@ -24,7 +24,7 @@ import javax.lang.model.element.Element import javax.tools.Diagnostic internal class JavacLogger( - private val delegate: Messager + private val delegate: Messager, ) : XLogger { override fun info(message: String, element: XElement?) { diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacOriginatingElement.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacOriginatingElement.kt index a168f7bd..de2e9c6f 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacOriginatingElement.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacOriginatingElement.kt @@ -20,5 +20,5 @@ import com.paulrybitskyi.hiltbinder.compiler.processing.XOriginatingElement import javax.lang.model.element.Element internal class JavacOriginatingElement( - val element: Element + val element: Element, ) : XOriginatingElement diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacProcessingEnv.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacProcessingEnv.kt index 2ac8b911..6a58ae0c 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacProcessingEnv.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacProcessingEnv.kt @@ -36,7 +36,7 @@ import javax.lang.model.util.Types internal class JavacProcessingEnv( private val delegate: ProcessingEnvironment, - private val roundEnvironment: RoundEnvironment + private val roundEnvironment: RoundEnvironment, ) : XProcessingEnv { val elementUtils: Elements = delegate.elementUtils diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacRoundEnv.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacRoundEnv.kt index fd45d297..c611a669 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacRoundEnv.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacRoundEnv.kt @@ -23,7 +23,7 @@ import javax.annotation.processing.RoundEnvironment internal class JavacRoundEnv( private val env: JavacProcessingEnv, - private val delegate: RoundEnvironment + private val delegate: RoundEnvironment, ) : XRoundEnv { override fun getElementsAnnotatedWith(annotationQualifiedName: String): Sequence { diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacType.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacType.kt index c99fcc79..1d4e3658 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacType.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacType.kt @@ -28,7 +28,7 @@ import javax.lang.model.type.TypeMirror internal class JavacType( private val env: JavacProcessingEnv, - private val delegate: TypeMirror + private val delegate: TypeMirror, ) : XType { override val element: XElement by lazy { diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacTypeElement.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacTypeElement.kt index b85255f2..645fa143 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacTypeElement.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/JavacTypeElement.kt @@ -30,7 +30,7 @@ import javax.lang.model.element.TypeElement internal class JavacTypeElement( env: JavacProcessingEnv, - override val delegate: TypeElement + override val delegate: TypeElement, ) : JavacElement(env, delegate), XTypeElement { override val qualifiedName: String by lazy { diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/utils/PoetUtils.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/utils/PoetUtils.kt index 6d25ad6b..66b91a6f 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/utils/PoetUtils.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/javac/utils/PoetUtils.kt @@ -52,6 +52,6 @@ internal fun AnnotationMirror.toKotlinAnnoSpec(): KotlinAnnotationSpec { private fun throwUnsupportedOpError(): Nothing { throw UnsupportedOperationException( - "Converting Javac types to KotlinPoet types is currently not supported." + "Converting Javac types to KotlinPoet types is currently not supported.", ) } diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspAnnotation.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspAnnotation.kt index 3b39a48c..8c920ca2 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspAnnotation.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspAnnotation.kt @@ -29,7 +29,7 @@ import com.paulrybitskyi.hiltbinder.compiler.processing.utils.KotlinAnnotationSp internal class KspAnnotation( private val env: KspProcessingEnv, - private val delegate: KSAnnotation + private val delegate: KSAnnotation, ) : XAnnotation { override val type: XType by lazy { diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspAnnotationValue.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspAnnotationValue.kt index 05a79efe..db684fc0 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspAnnotationValue.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspAnnotationValue.kt @@ -26,7 +26,7 @@ import com.paulrybitskyi.hiltbinder.compiler.processing.ksp.utils.simpleName internal class KspAnnotationValue( private val env: KspProcessingEnv, - private val value: Any? + private val value: Any?, ) : XAnnotationValue { override fun getAsBoolean(default: Boolean): Boolean { diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspElement.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspElement.kt index e48ac435..d762abbd 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspElement.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspElement.kt @@ -29,7 +29,7 @@ import com.paulrybitskyi.hiltbinder.compiler.processing.ksp.utils.simpleNameStr internal abstract class KspElement( protected val env: KspProcessingEnv, - open val delegate: KSDeclaration + open val delegate: KSDeclaration, ) : XElement { override val packageName: String diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspFiler.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspFiler.kt index e3cdadcc..39a79219 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspFiler.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspFiler.kt @@ -23,18 +23,18 @@ import com.paulrybitskyi.hiltbinder.common.utils.safeCast import com.paulrybitskyi.hiltbinder.compiler.processing.XFiler internal class KspFiler( - private val delegate: CodeGenerator + private val delegate: CodeGenerator, ) : XFiler { override fun createSourceFile(file: XFiler.File) { delegate.createNewFile( dependencies = Dependencies( aggregating = true, - sources = file.getOriginatingSourceFiles() + sources = file.getOriginatingSourceFiles(), ), packageName = file.packageName, fileName = file.name, - extensionName = file.extension + extensionName = file.extension, ) .writer() .use { writer -> writer.write(file.content) } diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspLogger.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspLogger.kt index 6c17b6f5..4bfb7d2e 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspLogger.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspLogger.kt @@ -23,7 +23,7 @@ import com.paulrybitskyi.hiltbinder.compiler.processing.XElement import com.paulrybitskyi.hiltbinder.compiler.processing.XLogger internal class KspLogger( - private val delegate: KSPLogger + private val delegate: KSPLogger, ) : XLogger { override fun info(message: String, element: XElement?) { diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspOriginatingElement.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspOriginatingElement.kt index bbe520e3..ead1221c 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspOriginatingElement.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspOriginatingElement.kt @@ -20,5 +20,5 @@ import com.google.devtools.ksp.symbol.KSFile import com.paulrybitskyi.hiltbinder.compiler.processing.XOriginatingElement internal class KspOriginatingElement( - val file: KSFile + val file: KSFile, ) : XOriginatingElement diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspProcessingEnv.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspProcessingEnv.kt index d5524840..49abe4ca 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspProcessingEnv.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspProcessingEnv.kt @@ -35,7 +35,7 @@ import com.paulrybitskyi.hiltbinder.compiler.processing.ksp.utils.getTypeByName internal class KspProcessingEnv( private val delegate: SymbolProcessorEnvironment, - val resolver: Resolver + val resolver: Resolver, ) : XProcessingEnv { override val backend = XBackend.KSP diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspRoundEnv.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspRoundEnv.kt index 9a9ef1fa..2768b717 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspRoundEnv.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspRoundEnv.kt @@ -21,7 +21,7 @@ import com.paulrybitskyi.hiltbinder.compiler.processing.XRoundEnv import com.paulrybitskyi.hiltbinder.compiler.processing.factories.XElementFactory internal class KspRoundEnv( - private val env: KspProcessingEnv + private val env: KspProcessingEnv, ) : XRoundEnv { override fun getElementsAnnotatedWith(annotationQualifiedName: String): Sequence { diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspType.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspType.kt index 3b72488f..f6a41d3f 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspType.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspType.kt @@ -28,7 +28,7 @@ import com.paulrybitskyi.hiltbinder.compiler.processing.utils.KotlinTypeName internal class KspType( private val env: KspProcessingEnv, - val delegate: KSType + val delegate: KSType, ) : XType { override val element: XElement by lazy { diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspTypeElement.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspTypeElement.kt index 1dfbcf13..e8bb82c8 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspTypeElement.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/KspTypeElement.kt @@ -32,7 +32,7 @@ import com.paulrybitskyi.hiltbinder.compiler.processing.utils.KotlinClassName internal class KspTypeElement( env: KspProcessingEnv, - override val delegate: KSClassDeclaration + override val delegate: KSClassDeclaration, ) : KspElement(env, delegate), XTypeElement { override val qualifiedName: String by lazy { diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/utils/PoetUtils.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/utils/PoetUtils.kt index 14628bef..3a81e9ac 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/utils/PoetUtils.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/utils/PoetUtils.kt @@ -82,7 +82,7 @@ private fun KSTypeArgument.toKotlinTypeName(): KotlinTypeName { throw IllegalArgumentException("Unexpected node: $node.") } }, - Unit + Unit, ) } @@ -153,7 +153,7 @@ private fun ArrayList<*>.toCodeBlock(argName: String): CodeBlock { private fun CodeBlock.Companion.create( argName: String, format: String, - vararg args: Any? + vararg args: Any?, ): CodeBlock { return of("$argName$format", *args) } @@ -172,6 +172,6 @@ internal fun KSAnnotation.toJavaAnnoSpec(): JavaAnnotationSpec { private fun throwUnsupportedOpError(): Nothing { throw UnsupportedOperationException( - "Converting KSP types to JavaPoet types is currently not supported." + "Converting KSP types to JavaPoet types is currently not supported.", ) } diff --git a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/utils/SymbolUtils.kt b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/utils/SymbolUtils.kt index 043d2c44..ec3fd037 100644 --- a/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/utils/SymbolUtils.kt +++ b/compiler-processing/src/main/java/com/paulrybitskyi/hiltbinder/compiler/processing/ksp/utils/SymbolUtils.kt @@ -46,7 +46,7 @@ internal val KSClassDeclaration.isClass: Boolean get() = classKind in listOf( ClassKind.CLASS, ClassKind.ENUM_CLASS, - ClassKind.OBJECT + ClassKind.OBJECT, ) internal val KSDeclaration.packageNameStr: String diff --git a/config/detekt/detekt.yml b/config/detekt/detekt.yml index 25711ddf..d4c02350 100644 --- a/config/detekt/detekt.yml +++ b/config/detekt/detekt.yml @@ -10,6 +10,7 @@ build: config: validation: true warningsAsErrors: false + checkExhaustiveness: false # when writing own rules with new properties, exclude the property path e.g.: 'my_rule_set,.*>.*>[my_property]' excludes: '' @@ -46,6 +47,8 @@ output-reports: # - 'TxtOutputReport' # - 'XmlOutputReport' # - 'HtmlOutputReport' + # - 'MdOutputReport' + # - 'SarifOutputReport' comments: active: true @@ -62,6 +65,9 @@ comments: EndOfSentenceFormat: active: false endOfSentenceFormat: '([.?!][ \t\n\r\f<])|([.?!:]$)' + KDocReferencesNonPublicProperty: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] OutdatedDocumentation: active: false matchTypeParameters: true @@ -69,20 +75,26 @@ comments: allowParamOnConstructorProperties: false UndocumentedPublicClass: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] searchInNestedClass: true searchInInnerClass: true searchInInnerObject: true searchInInnerInterface: true + searchInProtectedClass: false UndocumentedPublicFunction: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] + searchProtectedFunction: false UndocumentedPublicProperty: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] + searchProtectedProperty: false complexity: active: true + CognitiveComplexMethod: + active: false + threshold: 15 ComplexCondition: active: true threshold: 4 @@ -91,7 +103,8 @@ complexity: threshold: 10 includeStaticDeclarations: false includePrivateDeclarations: false - ComplexMethod: + ignoreOverloaded: false + CyclomaticComplexMethod: active: true threshold: 15 ignoreSingleWhenExpression: false @@ -133,18 +146,27 @@ complexity: NestedBlockDepth: active: true threshold: 4 + NestedScopeFunctions: + active: false + threshold: 1 + functions: + - 'kotlin.apply' + - 'kotlin.run' + - 'kotlin.with' + - 'kotlin.let' + - 'kotlin.also' ReplaceSafeCallChainWithRun: active: false StringLiteralDuplication: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] threshold: 3 ignoreAnnotation: true excludeStringsWithLessThan5Characters: true ignoreStringsRegex: '$^' TooManyFunctions: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] thresholdInFiles: 20 thresholdInClasses: 20 thresholdInInterfaces: 20 @@ -153,25 +175,28 @@ complexity: ignoreDeprecated: false ignorePrivate: false ignoreOverridden: false + ignoreAnnotatedFunctions: [] coroutines: active: true GlobalCoroutineUsage: active: false InjectDispatcher: - active: false + active: true dispatcherNames: - 'IO' - 'Default' - 'Unconfined' RedundantSuspendModifier: - active: false + active: true SleepInsteadOfDelay: + active: true + SuspendFunSwallowedCancellation: active: false SuspendFunWithCoroutineScopeReceiver: active: false SuspendFunWithFlowReturnType: - active: false + active: true empty-blocks: active: true @@ -192,7 +217,7 @@ empty-blocks: active: true EmptyFunctionBlock: active: true - ignoreOverridden: true + ignoreOverridden: false EmptyIfBlock: active: true EmptyInitBlock: @@ -218,8 +243,8 @@ exceptions: - 'hashCode' - 'toString' InstanceOfCheckForException: - active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] NotImplementedDeclaration: active: false ObjectExtendsThrowable: @@ -245,7 +270,7 @@ exceptions: active: false ThrowingExceptionsWithoutMessageOrCause: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] exceptions: - 'ArrayIndexOutOfBoundsException' - 'Exception' @@ -260,7 +285,7 @@ exceptions: active: true TooGenericExceptionCaught: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] exceptionNames: - 'ArrayIndexOutOfBoundsException' - 'Error' @@ -284,7 +309,6 @@ naming: BooleanPropertyNaming: active: false allowedPattern: '^(is|has|are)' - ignoreOverridden: true ClassNaming: active: true classPattern: '[A-Z][a-zA-Z0-9]*' @@ -293,7 +317,6 @@ naming: parameterPattern: '[a-z][A-Za-z0-9]*' privateParameterPattern: '[a-z][A-Za-z0-9]*' excludeClassPattern: '$^' - ignoreOverridden: true EnumNaming: active: true enumEntryPattern: '[A-Z][_a-zA-Z0-9]*' @@ -308,17 +331,15 @@ naming: minimumFunctionNameLength: 3 FunctionNaming: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] functionPattern: '[a-z][a-zA-Z0-9]*' excludeClassPattern: '$^' - ignoreOverridden: true FunctionParameterNaming: active: true parameterPattern: '[a-z][A-Za-z0-9]*' excludeClassPattern: '$^' - ignoreOverridden: true InvalidPackageDeclaration: - active: false + active: true rootPackage: '' requireRootInDeclaration: false LambdaParameterNaming: @@ -331,7 +352,7 @@ naming: active: true ignoreOverridden: true NoNameShadowing: - active: false + active: true NonBooleanPropertyPrefixedWithIs: active: false ObjectPropertyNaming: @@ -358,27 +379,33 @@ naming: variablePattern: '[a-z][A-Za-z0-9]*' privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*' excludeClassPattern: '$^' - ignoreOverridden: true performance: active: true ArrayPrimitive: active: true + CouldBeSequence: + active: false + threshold: 3 ForEachOnRange: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] SpreadOperator: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] + UnnecessaryPartOfBinaryExpression: + active: false UnnecessaryTemporaryInstantiation: active: true potential-bugs: active: true AvoidReferentialEquality: - active: false + active: true forbiddenTypePatterns: - 'kotlin.String' + CastNullableToNonNullableType: + active: false CastToNullableType: active: false Deprecation: @@ -386,7 +413,7 @@ potential-bugs: DontDowncastCollectionTypes: active: false DoubleMutabilityForCollection: - active: false + active: true mutableTypes: - 'kotlin.collections.MutableList' - 'kotlin.collections.MutableMap' @@ -396,10 +423,9 @@ potential-bugs: - 'java.util.HashSet' - 'java.util.LinkedHashMap' - 'java.util.HashMap' - DuplicateCaseInWhenExpression: - active: true ElseCaseInsteadOfExhaustiveWhen: active: false + ignoredSubjectTypes: [] EqualsAlwaysReturnsTrueOrFalse: active: true EqualsWithHashCodeExist: @@ -409,15 +435,22 @@ potential-bugs: ExplicitGarbageCollectionCall: active: true HasPlatformType: - active: false + active: true IgnoredReturnValue: - active: false - restrictToAnnotatedMethods: true + active: true + restrictToConfig: true returnValueAnnotations: + - 'CheckResult' - '*.CheckResult' + - 'CheckReturnValue' - '*.CheckReturnValue' ignoreReturnValueAnnotations: + - 'CanIgnoreReturnValue' - '*.CanIgnoreReturnValue' + returnValueTypes: + - 'kotlin.sequences.Sequence' + - 'kotlinx.coroutines.flow.*Flow' + - 'java.util.stream.*Stream' ignoreFunctionCall: [] ImplicitDefaultLocale: active: true @@ -432,60 +465,84 @@ potential-bugs: active: true LateinitUsage: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] ignoreOnClassesPattern: '' MapGetWithNotNullAssertionOperator: - active: false + active: true MissingPackageDeclaration: active: false excludes: ['**/*.kts'] - MissingWhenCase: - active: true - allowElseExpression: true NullCheckOnMutableProperty: active: false NullableToStringCall: active: false - RedundantElseInWhen: - active: true + PropertyUsedBeforeDeclaration: + active: false UnconditionalJumpStatementInLoop: active: false + UnnecessaryNotNullCheck: + active: false UnnecessaryNotNullOperator: active: true UnnecessarySafeCall: active: true UnreachableCatchBlock: - active: false + active: true UnreachableCode: active: true UnsafeCallOnNullableType: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] UnsafeCast: active: true UnusedUnaryOperator: - active: false + active: true UselessPostfixExpression: - active: false + active: true WrongEqualsTypeParameter: active: true style: active: true + AlsoCouldBeApply: + active: false + BracesOnIfStatements: + active: false + singleLine: 'never' + multiLine: 'always' + BracesOnWhenStatements: + active: false + singleLine: 'necessary' + multiLine: 'consistent' CanBeNonNullable: active: false + CascadingCallWrapping: + active: false + includeElvis: true ClassOrdering: active: false CollapsibleIfStatements: active: false DataClassContainsFunctions: active: false - conversionFunctionPrefix: 'to' + conversionFunctionPrefix: + - 'to' + allowOperators: false DataClassShouldBeImmutable: active: false DestructuringDeclarationWithTooManyEntries: - active: false + active: true maxDestructuringEntries: 3 + DoubleNegativeLambda: + active: false + negativeFunctions: + - reason: 'Use `takeIf` instead.' + value: 'takeUnless' + - reason: 'Use `all` instead.' + value: 'none' + negativeFunctionNameParts: + - 'not' + - 'non' EqualsNullCall: active: true EqualsOnSignatureLine: @@ -493,18 +550,37 @@ style: ExplicitCollectionElementAccessMethod: active: false ExplicitItLambdaParameter: - active: false + active: true ExpressionBodySyntax: active: false includeLineWrapping: false + ForbiddenAnnotation: + active: false + annotations: + - reason: 'it is a java annotation. Use `Suppress` instead.' + value: 'java.lang.SuppressWarnings' + - reason: 'it is a java annotation. Use `kotlin.Deprecated` instead.' + value: 'java.lang.Deprecated' + - reason: 'it is a java annotation. Use `kotlin.annotation.MustBeDocumented` instead.' + value: 'java.lang.annotation.Documented' + - reason: 'it is a java annotation. Use `kotlin.annotation.Target` instead.' + value: 'java.lang.annotation.Target' + - reason: 'it is a java annotation. Use `kotlin.annotation.Retention` instead.' + value: 'java.lang.annotation.Retention' + - reason: 'it is a java annotation. Use `kotlin.annotation.Repeatable` instead.' + value: 'java.lang.annotation.Repeatable' + - reason: 'Kotlin does not support @Inherited annotation, see https://youtrack.jetbrains.com/issue/KT-22265' + value: 'java.lang.annotation.Inherited' ForbiddenComment: active: true - values: - - 'FIXME:' - - 'STOPSHIP:' - - 'TODO:' + comments: + - reason: 'Forbidden FIXME todo marker in comment, please fix the problem.' + value: 'FIXME:' + - reason: 'Forbidden STOPSHIP todo marker in comment, please address the problem before shipping the code.' + value: 'STOPSHIP:' + - reason: 'Forbidden TODO todo marker in comment, please do the changes.' + value: 'TODO:' allowedPatterns: '' - customMessage: '' ForbiddenImport: active: false imports: [] @@ -512,35 +588,28 @@ style: ForbiddenMethodCall: active: false methods: - - 'kotlin.io.print' - - 'kotlin.io.println' - ForbiddenPublicDataClass: - active: true - excludes: ['**'] - ignorePackages: - - '*.internal' - - '*.internal.*' - ForbiddenVoid: + - reason: 'print does not allow you to configure the output stream. Use a logger instead.' + value: 'kotlin.io.print' + - reason: 'println does not allow you to configure the output stream. Use a logger instead.' + value: 'kotlin.io.println' + ForbiddenSuppress: active: false + rules: [] + ForbiddenVoid: + active: true ignoreOverridden: false ignoreUsageInGenerics: false FunctionOnlyReturningConstant: active: true ignoreOverridableFunction: true ignoreActualFunction: true - excludedFunctions: '' - LibraryCodeMustSpecifyReturnType: - active: true - excludes: ['**'] - LibraryEntitiesShouldNotBePublic: - active: true - excludes: ['**'] + excludedFunctions: [] LoopWithTooManyJumpStatements: active: true maxJumpCount: 1 MagicNumber: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/*.kts'] ignoreNumbers: - '-1' - '0' @@ -556,36 +625,44 @@ style: ignoreEnums: false ignoreRanges: false ignoreExtensionFunctions: true - MandatoryBracesIfStatements: - active: false MandatoryBracesLoops: active: false + MaxChainedCallsOnSameLine: + active: false + maxChainedCalls: 5 MaxLineLength: active: true maxLineLength: 120 excludePackageStatements: true excludeImportStatements: true excludeCommentStatements: false + excludeRawStrings: true MayBeConst: active: true ModifierOrder: active: true MultilineLambdaItParameter: active: false + MultilineRawStringIndentation: + active: false + indentSize: 4 + trimmingMethods: + - 'trimIndent' + - 'trimMargin' NestedClassesVisibility: active: true NewLineAtEndOfFile: active: true NoTabs: active: false - ObjectLiteralToLambda: + NullableBooleanCheck: active: false + ObjectLiteralToLambda: + active: true OptionalAbstractKeyword: active: true OptionalUnit: active: false - OptionalWhenBraces: - active: false PreferToOverPairSyntax: active: false ProtectedMemberInFinalClass: @@ -593,13 +670,14 @@ style: RedundantExplicitType: active: false RedundantHigherOrderMapUsage: - active: false + active: true RedundantVisibilityModifierRule: active: false ReturnCount: active: true max: 2 - excludedFunctions: 'equals' + excludedFunctions: + - 'equals' excludeLabeled: false excludeReturnFromLambda: true excludeGuardClauses: true @@ -609,12 +687,21 @@ style: active: true SpacingBetweenPackageAndImports: active: false + StringShouldBeRawString: + active: false + maxEscapedCharacterCount: 2 + ignoredCharacters: [] ThrowsCount: active: true max: 2 excludeGuardClauses: false TrailingWhitespace: active: false + TrimMultilineRawString: + active: false + trimmingMethods: + - 'trimIndent' + - 'trimMargin' UnderscoresInNumericLiterals: active: false acceptableLength: 4 @@ -625,8 +712,12 @@ style: active: false UnnecessaryApply: active: true - UnnecessaryFilter: + UnnecessaryBackticks: + active: false + UnnecessaryBracesAroundTrailingLambda: active: false + UnnecessaryFilter: + active: true UnnecessaryInheritance: active: true UnnecessaryInnerClass: @@ -635,23 +726,30 @@ style: active: false UnnecessaryParentheses: active: false + allowForUnclearPrecedence: false UntilInsteadOfRangeTo: active: false UnusedImports: active: false + UnusedParameter: + active: true + allowedNames: 'ignored|expected' UnusedPrivateClass: active: true UnusedPrivateMember: active: true - allowedNames: '(_|ignored|expected|serialVersionUID)' + allowedNames: '' + UnusedPrivateProperty: + active: true + allowedNames: '_|ignored|expected|serialVersionUID' UseAnyOrNoneInsteadOfFind: - active: false + active: true UseArrayLiteralsInAnnotations: - active: false + active: true UseCheckNotNull: - active: false + active: true UseCheckOrError: - active: false + active: true UseDataClass: active: false allowVars: false @@ -661,13 +759,18 @@ style: active: false UseIfInsteadOfWhen: active: false + ignoreWhenContainingVariableDeclaration: false UseIsNullOrEmpty: + active: true + UseLet: active: false UseOrEmpty: - active: false + active: true UseRequire: - active: false + active: true UseRequireNotNull: + active: true + UseSumOfInsteadOfFlatMapSize: active: false UselessCallOnNotNull: active: true @@ -675,8 +778,8 @@ style: active: true VarCouldBeVal: active: true + ignoreLateinitVar: false WildcardImport: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] excludeImports: - 'java.util.*' diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2a927200..d7b551f2 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-all.zip diff --git a/hilt-binder-compiler/build.gradle.kts b/hilt-binder-compiler/build.gradle.kts index 68e70761..5e3dfc56 100644 --- a/hilt-binder-compiler/build.gradle.kts +++ b/hilt-binder-compiler/build.gradle.kts @@ -22,6 +22,10 @@ plugins { shadow() } +kotlin { + jvmToolchain(appConfig.exportableLibJavaCompatVersion) +} + // Custom configuration used for dependencies that are copied // into the library jar instead of adding it as a POM dependency. val shadowed: Configuration = configurations.create("shadowed") { diff --git a/hilt-binder-compiler/libs/hilt-android-classes-2.48.jar b/hilt-binder-compiler/libs/hilt-android-classes-2.48.jar new file mode 100644 index 0000000000000000000000000000000000000000..cf1fdd597597e78a840aedf64444c277da767a28 GIT binary patch literal 106635 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Ν>*Qi- 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�x8vj3{~4$ThQKX8IX; zYJmIEdHYVFi~!~)CBMEK$$b7XVs;uM#{Xj3zt1Q+B{u_Sv3V5#F5R-Tru_6Gb|r0QW311 zODU}ftNjg2?npz~XlV}$N(xyFKIOz-Fm4zM&8>JTcpncy5E>>~Ibi^s?}R1;L5nzt}g|6-D7$ z01fqjNyGm__Wq#Z|B=1lY3FQV(Vp&3@!n_E^&}@h3xYp$^nJS{skK5~l95Z(D&XiI z;MAjCktr(M@803+=?rQWOQ0jZ-fcKuO#(4oNeAq-JHQGvj%C_-KZ_YDDa2;eV?c5!WCQY%q(r z;&|UaMvC~XVN?P0rT^3qMKY1v8OvxOa$c0C*f+n3aGsp+AZ)aqp*72|-Q;MUd8*pK zN^wHQc761>jpG4ox#SnwQ~L|u{@$&^|7V^3UxFOkpFHm0r{4I@tPRbqO@8kkSViyx zf*OQxD_z9-asu-xZ&ZWh7iQHch~qye61`E5U93o|n2T*``Jh81#Pb1Pe6gB-2zC%3 z@AxtCIAaN~4L8s~#kVwGS9w26Psd*#`aI8$1rYqLZ)D%`x0EshsJ~5v-Lss$^G!X0 zp%ZcK>~qz%(Plv|8~n3LAfDdh>lUjR|Bv~~{KM_y&14sKhvtNuwfCgbSf)>x6n%?B zD>|h9?Ik6h@_GC6wh!v}1=vXzxzJ=mGes6J(}{PcMSj&^lh(Mt%Z*1WWO#l61xbDS zac6S5_j}kBfE=8Eq5t3Of7CxA*q^wFl7CzS_}#k)X7hp|=fut#)r zA)u}pZjGz`LHQM%lLNp{WV19Ne5Dzdn%%f;TwXzkK`<4k#SVtU2RPMmxD9yFeR8To zQhp-eHuoh*&>P>c-u|4uF_ej_fZ`7NMCLydRWDx?ssFVANbk;r;n=am^^^2m?>KlN zBla`5AFdQPb00qx@Cn)gub=w`@}GRhm!dhJwV}O@nIWI;?{KRDa)1>U zK7^9BT3|PbQ>(>tO8;l2!fDP=67FcF^&6kf`sH3mX#GH z9sO_zwqZ0r@-m!ow^tvF!)TmFt{2n2hJ?1TRRRT|`3V+25t&gH;@-DTEu5D0MclL7ZdD-uG+Jx5P-Z#nl^R$#%ql+Ifz z>6*0Wl6VEdP)VHMD+z%NTZRX9WeFZsYKLocwq#R{Z%PR8b)HK~!FQ6=e)XnDbuBYQ zpw~z=l7Sy-h)&B|XhzK&mzo(H_vaZ&NufURO*bkCdzZHt@ct96);Hhp!o7a*1>av= zi;M~4L7;fMvv4QxC4lLRz9aayLWkr@RW-QT7)luA#IvDQLKqQF*U#@W@+KRMH5U?- zTA#vK2EpH`L^l?U!dThoM~tZN9={?FkVBQf+<|5Z=mGcYi6aImreU3b%z zwE*xs81IKkNhKh#I!xXnB9i#*zZo|NGDGC!C(4p7$+c=CmQWRCbsRym%R|?6TlqR# ztUbLaX*8b%XK;L%&FM8_eBOd^C^Wp|kbcg!)4VhEbbgHQ4V2hL*eR+$WXP;AH&&gH zg=NN6o*xg^$*5Dl?bMkpk;^=MPI~Rf;O{);TV$w2l+Cp?KP8`lj~8f-e)FCCV1s|8$YsXzM?)NrL83``MfhZj9QKAfO zDv2bdzuTGHXnl`5=&%Rhehu6Kfr#x2P6tWU0YVSv;#6WVLM z!DjCfdoJ+ilL1_pg@E{n5M9xu*v@5osqlL0TPxcSH|htszMwW#=UT+A)9O6ftNkt^ zH~g2L-$CI&-Es!gDGr!`Xx?&$lozL$r>t@twQ8>)6m3-lm3c;Af4#Zu`X))=g|q{M z(PYu2F2h{cj1%nMZq0k!W3WoxI9mTC^QdG%^^5s=AC?)BmnK1>e3kH=PsRPdWd9 zhz6Y4^M<2%xj6>U>OZCX%~S-( zsJu}VX6sCYe}g>WyDRur_Lk;RL{Tx}IW(O`kITlr7>!fVoBKJoj{FwO8ltbzye}T~ zxnPbkHT}9sDT02HhgU&vRw@iik5fQHO_jl8fT^$~ZKSIisY}GvCKC;e@A(|0bKF6F zk$hKkrQh5k-cgjoh9_g1ycMY_vlM5uj@dzr1V(^8TBdLgc4|^+1=CV(f+^4(H*qq8 zy&0Rfr1R1v0a*o>x*~y>USU2feabdy(*1knL@JudwyytGjT1i`#>5z%@nLW^oDL5-l(v8n4BhJwMG8KsDK&msd}B<@CE zIg2NsX8mo`M+;jpkagr_b;OIYW}|E}+tt-$d9BYnDVyZ=1F~-+8^qrc>Vn_}(;Y7} zXnfddPvm{Lz_8FehHT~P{-_Sb*lh{qS0gM8p|h4tlxtc_TtsXX;6E1YFi6X3+?l;L z6spFS;!@=dmvG%dPv2SBTW1V9Ih-dEN}#HW;g;ltZf%JG1h|ZyV!*}x}Sa|d8--}$o&A^&T;r(IdjUNICG)D zE~fnHAv9C~9%3m-5`t8Y9)el@fLs_ESg_=ic$B!pq`7Zg4oYo3AxBhupCo5e&AP+0 ze|hW0w=yFga_7>fi`wU`=PbI~C8jO}QB~7w<>AXOfJMQ#x969~bgwi&kk~fml$MFV zRhot+%S|F#7?&ti8)BU{k?PUTsCS$w1S0^wo36pHiOWm^oDCeXsM-ZxMaGz=d3zKJ zd83?5M2|btTB%keDUvKrxiJi%=IFej**$7r>-gr&0-yTow4z?s;{)!XG%D2Io}+K} zJHcXQ*p>p0CL`8OFyAW7FKu!%kAyz-G(E8rLuz?yY%oPVoP0toW+}<1q_6Z*(b&5V zO#svFnzL`$1FxY5WvSoKuU*Gq-{hM=97seFpK4DC6kBD@`M{x669i> zUm^OCRl^s9N+nDtTqyO(Uy4sfq3##lCt|8F8L4@G<}@0Tn<>3h(!SN0^m ztuR7&a3Q8uqUpfLh`oOvZK>hBBnL&b>$nzU=q+of%!-XoS(iS>@rElx&k4|%)&^)K zpYyPzrK0v#rBs+q{QQDtxq1Q%>2yTQak~_U{P(Z&!2(y-b6?vE>lTzu87IRw6R5!C zZ8_;tFTb|9XKF?l#t9*4qJI4V+~QqxJQFo#5lHv#8^3Qf}Ud<&)X z1r~|^E)4z{w2H-)w$ndIJ;rmeYH$v|3)nSQ(IO=^}MDgxFf}b?Dg?Qxv_cEn^ zFYa(x3Oof1gR^X9h-?eY9}kra!@UW{W8gd$I0~t^LZ$>}uL5TEorPS0)7t z0NlSrIh{qLug9MoeQ3_p*p1RKQ~O$nzJg-OGb)G3ToX{#-w@<0LC;sUd)X+nZE3bt zQGf3iBeporq%*HOI>HX}dkY_8va$Y7TZe@u-`W9Js~{ypJNl!$)Xr9f_U?dKzGeJ2 zO9~9X{+1lQ&D8g-<}z#~Tq(xL8G-DXWcNvV zo`uz+me|AaJ@^H@Dr+hm;7Syx>v3@8^?{&0W3vX9)9kR*?4~y}0ac+76pK)3=s(5k zktuXa@vLZzKYENjcffxa=)u-PLdtfK+vrbV{b2;sZL!Nl(mRnyvH!NB`=0)|E~m`l z^1}h`MceA)kXNunzzT>KGXzwl&J(k2Qo$NJl#7FOxTP)++nxTrix{SC1TUdFNdK*v z_vAB<4irMledL--`cqDD#`ELAbq!=U;f*#CN}Df2&y#T&EuNn?p|xHx=C`PCYGpmP zJp&548-y2YRG#0(a>*S!2bhG!*hW}J_*FKJQnr`shYqb<`gU3KOI*6FcP>N8D7oG} z5Pi+ODRxn_)&l2Uy5Qw@K#`M0kK;fLb?8fw3EKR;f$je@X`T{=h4q>RLenv_pTM=yp6b zxHEGP{=wl8Nm@cl>2O2Eioe8iFO7CX&~1X4^@h}GJ`h3>Lu!iuoA4ZEYldWF)DhI0 z>73GZ(`R32*4Bpr#Mk~Uyzfm)gKa%0D2CZ9tj56fDrEDFJ8tmJ_rqwh5C!KpwBCEA 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

DJbc!BSjo4O;+Ehmc!~37Rkh% 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%0D+~l+GpkdDGHu{U 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 diff --git a/hilt-binder-compiler/libs/hilt-core-classes-2.36.jar b/hilt-binder-compiler/libs/hilt-core-classes-2.36.jar index 02c8e3431ef7df6336b769c8246f272c59bf9443..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 GIT binary patch literal 0 HcmV?d00001 literal 17727 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

LPY zZ654hoJL~`d`FtNsNY&X_Qk{aUZrYA%?%{{F}`YzN_Bx~8b-bc-8G8OMr{(SU$d2G zMt&3HmdqR&lQuvXopE|Plw4&&35W(5v1syUe~adKlvNvf@{v_;=cT$BHL)_GZpP4Uon{>O6$-jT{G(p4Jdr(P~ zr=hMTZs1@c*ljmtjexb#Z$R8b`zc5VZ$|z&DvN5yja=muQ0%1z-W)=RAc=&O0LS$A z#%ucvw7gi51F8GmLx~Pfr*NgCzZ4s%t_Dd(1@(&qS#mTah}dE=z=P;}ZP#!xb@)|6 z1#C@CyeMjtL21j%PejH8U$h5^`O?S;j%UeO?ts@PwlnW;OicC^-#0>-GF8f+8UeH3 z_A<8#73(T;e7n;U>pm-ql3yV_U`nO8_V&wompFm>BC(;$lQAJ07w)OH5T9lYY^+uH zm9<31ptZTwg(wu>h&^JG_A!#2fiJjYd&BgL`Pp~8M%P$v`UG}dk`!t8J!`zpK%L=@ z+p&0$cf6lQcMI8XEZi6Da*1h}yJuOauAVf0(6Q$xM$*2=aKGX)-lRSeiJWlmT-9*2)hr9U9bU8QzJ5I=U?l=#;Rlht**YtHSj|y9>p3zm9h^t@KR)Z`9rH@#%zYn%7=^jU0BGyK5x{yh!|c=F6S0j=NwSzj5OA=<(m|saZ^=U(4f&gYi?Oj~Xcpifa!f=twOMde9V)n)o{tmH|RdL45y z49Oe<>08be%BckC!V;6Nm>DO&MgtzVx|(uFDpz~M4fSF&r6+GxXXUz?kWVhS zH>~k};H`u;(Hi?hkr(bRa=|9c%*(e{)6C<(K3k#TKx4*6*=9vmRB1uHz!4uv;Ab*Y zu<2`;xL{B1qH+8>g<31;YZ}SbstV!7H1n_bOEJx2g2bu4L6t3c@x7l1t?42XH(B5r zC-<}FYA;~5#$8Rg?&VKgVv2m1y>r`)@Cyp`?swQYf14jd1>+ei-~)IZI4aHyfZ*d( z^wVe0drTIt`x6>_smN$aa44wCa;ZqDD#*%cYH_N_Zmab6C@XPrzPX^p!TP$l|A_|o zAm8*yCr(8bb_JC;u8&c$5M*{DB8d1e6)QRu`Lo?u(r~`-N_2fYZkPW~ok!jGyaftk zL#HHU1S!bpG;aYv2TaJzIzQ(CeX-`e1w2Q)ccy(68c_dy7!s6oTG-n|8a6p$+BrE) z?VUiJZXhRTNZy?9E#K8azImkY^SgFgDa8(;9vbu-)m;3VJGspBY}9A?*dJYp9&kq#Q*OT zfgR^>r}OtX(2nj?N&G*J1B(y6%fYqG}U@4$K<~m1r`cAVc4z}Xp_*XC{g?Z>K`pb@R+a- zB4;=MAf&?auX;VN`vo2zwy=KI)*B&dlYfQ(m!1=NRM_hC*_+2a#5?~h>fc-S+!8(f zIIuNc{!?v3z7f;?={WzqLqREpt+PUF!>7V@`F|eapV07b5?ZJ|mEB)K!>=EZve1tT_0XQ%SFmBUxU;HL(g*gWf$ zo>g@C{X O`S%HOt5o^!PX8aN(recM literal 0 HcmV?d00001 diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderJavacProcessor.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderJavacProcessor.kt index 9df6bd36..4c157dcf 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderJavacProcessor.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderJavacProcessor.kt @@ -18,13 +18,13 @@ package com.paulrybitskyi.hiltbinder.processor import com.google.auto.service.AutoService import com.paulrybitskyi.hiltbinder.processor.utils.BIND_TYPE_QUALIFIED_NAME +import net.ltgt.gradle.incap.IncrementalAnnotationProcessor +import net.ltgt.gradle.incap.IncrementalAnnotationProcessorType import javax.annotation.processing.AbstractProcessor import javax.annotation.processing.Processor import javax.annotation.processing.RoundEnvironment import javax.lang.model.SourceVersion import javax.lang.model.element.TypeElement -import net.ltgt.gradle.incap.IncrementalAnnotationProcessor -import net.ltgt.gradle.incap.IncrementalAnnotationProcessorType @IncrementalAnnotationProcessor(IncrementalAnnotationProcessorType.AGGREGATING) @AutoService(Processor::class) diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderKspProcessor.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderKspProcessor.kt index d7191f8b..bf4a5a22 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderKspProcessor.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderKspProcessor.kt @@ -24,7 +24,7 @@ import com.google.devtools.ksp.processing.SymbolProcessorProvider import com.google.devtools.ksp.symbol.KSAnnotated internal class HiltBinderKspProcessor( - private val processingEnv: SymbolProcessorEnvironment + private val processingEnv: SymbolProcessorEnvironment, ) : SymbolProcessor { override fun process(resolver: Resolver): List { diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderProcessor.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderProcessor.kt index a5be8f09..533af511 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderProcessor.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderProcessor.kt @@ -28,7 +28,7 @@ internal class HiltBinderProcessor( private val roundEnv: XRoundEnv, private val logger: XLogger, private val annotationsParser: AnnotationsParser, - private val moduleFileGenerator: ModuleFileGenerator + private val moduleFileGenerator: ModuleFileGenerator, ) { fun process() { diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderProcessorFactory.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderProcessorFactory.kt index baba02d2..8f7b4596 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderProcessorFactory.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderProcessorFactory.kt @@ -29,19 +29,19 @@ internal object HiltBinderProcessorFactory { fun createJavacProcessor( processingEnv: ProcessingEnvironment, - roundEnv: RoundEnvironment + roundEnv: RoundEnvironment, ): HiltBinderProcessor { return createProcessor( - processingEnv = XProcessingEnvFactory.createJavacEnv(processingEnv, roundEnv) + processingEnv = XProcessingEnvFactory.createJavacEnv(processingEnv, roundEnv), ) } fun createKspProcessor( processingEnv: SymbolProcessorEnvironment, - resolver: Resolver + resolver: Resolver, ): HiltBinderProcessor { return createProcessor( - processingEnv = XProcessingEnvFactory.createKspEnv(processingEnv, resolver) + processingEnv = XProcessingEnvFactory.createKspEnv(processingEnv, resolver), ) } @@ -50,7 +50,7 @@ internal object HiltBinderProcessorFactory { roundEnv = processingEnv.roundEnv, logger = processingEnv.logger, annotationsParser = AnnotationsParserFactory.create(processingEnv), - moduleFileGenerator = ModuleFileGeneratorFactory.create(processingEnv) + moduleFileGenerator = ModuleFileGeneratorFactory.create(processingEnv), ) } } diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/Language.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/Language.kt index bce2ed49..f389a3d3 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/Language.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/Language.kt @@ -18,5 +18,5 @@ package com.paulrybitskyi.hiltbinder.processor.generator internal enum class Language(val fileExtension: String) { JAVA("java"), - KOTLIN("kt") + KOTLIN("kt"), } diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/ModuleFileGenerator.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/ModuleFileGenerator.kt index 01b39b67..2f0904c3 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/ModuleFileGenerator.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/ModuleFileGenerator.kt @@ -26,7 +26,7 @@ import com.paulrybitskyi.hiltbinder.processor.model.ModuleSchema internal class ModuleFileGenerator( private val outputLanguage: Language, private val moduleFileContentGenerator: ModuleFileContentGenerator, - private val filer: XFiler + private val filer: XFiler, ) { fun generateModuleFile(moduleSchema: ModuleSchema) { @@ -36,7 +36,7 @@ internal class ModuleFileGenerator( name = moduleSchema.interfaceName, extension = outputLanguage.fileExtension, content = fileContent, - originatingElements = moduleSchema.getOriginatingElements() + originatingElements = moduleSchema.getOriginatingElements(), ) filer.createSourceFile(file) diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/ModuleFileGeneratorFactory.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/ModuleFileGeneratorFactory.kt index f61f8584..41a19651 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/ModuleFileGeneratorFactory.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/ModuleFileGeneratorFactory.kt @@ -34,7 +34,7 @@ internal object ModuleFileGeneratorFactory { return ModuleFileGenerator( outputLanguage = outputLanguage, moduleFileContentGenerator = createModuleFileContentGenerator(outputLanguage), - filer = processingEnv.filer + filer = processingEnv.filer, ) } @@ -57,13 +57,13 @@ internal object ModuleFileGeneratorFactory { private fun createJavaModuleFileContentGenerator(): JavaModuleFileContentGenerator { return JavaModuleFileContentGenerator( - typeSpecFactory = createJavaTypeSpecFactory() + typeSpecFactory = createJavaTypeSpecFactory(), ) } private fun createJavaTypeSpecFactory(): JavaTypeSpecFactory { return JavaTypeSpecFactory( - bindingMethodSpecFactory = createJavaBindingMethodSpecFactory() + bindingMethodSpecFactory = createJavaBindingMethodSpecFactory(), ) } @@ -73,13 +73,13 @@ internal object ModuleFileGeneratorFactory { private fun createKotlinModuleFileContentGenerator(): KotlinModuleFileContentGenerator { return KotlinModuleFileContentGenerator( - typeSpecFactory = createKotlinTypeSpecFactory() + typeSpecFactory = createKotlinTypeSpecFactory(), ) } private fun createKotlinTypeSpecFactory(): KotlinTypeSpecFactory { return KotlinTypeSpecFactory( - bindingMethodSpecFactory = createKotlinBindingMethodSpecFactory() + bindingMethodSpecFactory = createKotlinBindingMethodSpecFactory(), ) } diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/content/BindingMethodSpecFactory.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/content/BindingMethodSpecFactory.kt index db30b5ec..203679d9 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/content/BindingMethodSpecFactory.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/content/BindingMethodSpecFactory.kt @@ -23,7 +23,7 @@ internal interface BindingMethodSpecFactory { } internal fun BindingMethodSpecFactory.createMethodSpecs( - bindingSchemas: List + bindingSchemas: List, ): List { return bindingSchemas.map(::createMethodSpec) } diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/content/java/JavaBindingMethodSpecFactory.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/content/java/JavaBindingMethodSpecFactory.kt index c0dbd1e0..f498455f 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/content/java/JavaBindingMethodSpecFactory.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/content/java/JavaBindingMethodSpecFactory.kt @@ -45,7 +45,7 @@ internal class JavaBindingMethodSpecFactory : BindingMethodSpecFactory { override fun createTypeSpec(moduleSchema: ModuleSchema): TypeSpec { diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/content/kotlin/KotlinBindingMethodSpecFactory.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/content/kotlin/KotlinBindingMethodSpecFactory.kt index b6c2058a..ee90bf0f 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/content/kotlin/KotlinBindingMethodSpecFactory.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/generator/content/kotlin/KotlinBindingMethodSpecFactory.kt @@ -45,7 +45,7 @@ internal class KotlinBindingMethodSpecFactory : BindingMethodSpecFactory { override fun createTypeSpec(moduleSchema: ModuleSchema): TypeSpec { diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/model/BindingSchema.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/model/BindingSchema.kt index d1bfe725..2df062a3 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/model/BindingSchema.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/model/BindingSchema.kt @@ -27,5 +27,5 @@ internal class BindingSchema( val methodName: String, val paramType: XTypeElement, val paramName: String, - val returnType: ReturnType + val returnType: ReturnType, ) diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/model/ModuleSchema.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/model/ModuleSchema.kt index f94fb26e..91f4ddf0 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/model/ModuleSchema.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/model/ModuleSchema.kt @@ -22,5 +22,5 @@ internal class ModuleSchema( val packageName: String, val interfaceName: String, val componentType: XTypeElement, - val bindings: List + val bindings: List, ) diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/model/PredefinedHiltComponent.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/model/PredefinedHiltComponent.kt index cf91d707..399c45fc 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/model/PredefinedHiltComponent.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/model/PredefinedHiltComponent.kt @@ -19,46 +19,46 @@ package com.paulrybitskyi.hiltbinder.processor.model internal enum class PredefinedHiltComponent( val simpleName: String, val qualifiedName: String, - val scopeQualifiedName: String + val scopeQualifiedName: String, ) { SINGLETON( simpleName = "SingletonComponent", qualifiedName = "dagger.hilt.components.SingletonComponent", - scopeQualifiedName = "javax.inject.Singleton" + scopeQualifiedName = "javax.inject.Singleton", ), ACTIVITY_RETAINED( simpleName = "ActivityRetainedComponent", qualifiedName = "dagger.hilt.android.components.ActivityRetainedComponent", - scopeQualifiedName = "dagger.hilt.android.scopes.ActivityRetainedScoped" + scopeQualifiedName = "dagger.hilt.android.scopes.ActivityRetainedScoped", ), SERVICE( simpleName = "ServiceComponent", qualifiedName = "dagger.hilt.android.components.ServiceComponent", - scopeQualifiedName = "dagger.hilt.android.scopes.ServiceScoped" + scopeQualifiedName = "dagger.hilt.android.scopes.ServiceScoped", ), ACTIVITY( simpleName = "ActivityComponent", qualifiedName = "dagger.hilt.android.components.ActivityComponent", - scopeQualifiedName = "dagger.hilt.android.scopes.ActivityScoped" + scopeQualifiedName = "dagger.hilt.android.scopes.ActivityScoped", ), VIEW_MODEL( simpleName = "ViewModelComponent", qualifiedName = "dagger.hilt.android.components.ViewModelComponent", - scopeQualifiedName = "dagger.hilt.android.scopes.ViewModelScoped" + scopeQualifiedName = "dagger.hilt.android.scopes.ViewModelScoped", ), FRAGMENT( simpleName = "FragmentComponent", qualifiedName = "dagger.hilt.android.components.FragmentComponent", - scopeQualifiedName = "dagger.hilt.android.scopes.FragmentScoped" + scopeQualifiedName = "dagger.hilt.android.scopes.FragmentScoped", ), VIEW( simpleName = "ViewComponent", qualifiedName = "dagger.hilt.android.components.ViewComponent", - scopeQualifiedName = "dagger.hilt.android.scopes.ViewScoped" + scopeQualifiedName = "dagger.hilt.android.scopes.ViewScoped", ), VIEW_WITH_FRAGMENT( simpleName = "ViewWithFragmentComponent", qualifiedName = "dagger.hilt.android.components.ViewWithFragmentComponent", - scopeQualifiedName = "dagger.hilt.android.scopes.ViewScoped" - ) + scopeQualifiedName = "dagger.hilt.android.scopes.ViewScoped", + ), } diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/AnnotationsParser.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/AnnotationsParser.kt index fa780d6f..b9d451da 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/AnnotationsParser.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/AnnotationsParser.kt @@ -28,7 +28,7 @@ import com.paulrybitskyi.hiltbinder.processor.parser.providers.PackageNameProvid internal class AnnotationsParser( private val bindingSchemaFactory: BindingSchemaFactory, private val moduleSchemaFactory: ModuleSchemaFactory, - private val packageNameProvider: PackageNameProvider + private val packageNameProvider: PackageNameProvider, ) { fun parse(annotatedElements: Sequence): List { diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/AnnotationsParserFactory.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/AnnotationsParserFactory.kt index 014631b1..c391bbd3 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/AnnotationsParserFactory.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/AnnotationsParserFactory.kt @@ -34,7 +34,7 @@ internal object AnnotationsParserFactory { return AnnotationsParser( bindingSchemaFactory = createBindingSchemaFactory(processingEnv), moduleSchemaFactory = createModuleSchemaFactory(processingEnv), - packageNameProvider = createPackageNameProvider() + packageNameProvider = createPackageNameProvider(), ) } @@ -44,7 +44,7 @@ internal object AnnotationsParserFactory { contributionTypeDetector = createContributionTypeDetector(processingEnv), qualifierAnnotationDetector = createQualifierAnnotationDetector(processingEnv), bindingReturnTypeDetector = createBindingReturnTypeDetector(processingEnv), - bindingMethodNameFactory = createBindingMethodNameFactory() + bindingMethodNameFactory = createBindingMethodNameFactory(), ) } @@ -52,7 +52,7 @@ internal object AnnotationsParserFactory { return HiltComponentDetector( processingEnv = processingEnv, predefinedHiltComponentMapper = createPredefinedHiltComponentMapper(), - messageProvider = createMessageProvider() + messageProvider = createMessageProvider(), ) } @@ -67,21 +67,21 @@ internal object AnnotationsParserFactory { private fun createContributionTypeDetector(processingEnv: XProcessingEnv): ContributionTypeDetector { return ContributionTypeDetector( processingEnv = processingEnv, - messageProvider = createMessageProvider() + messageProvider = createMessageProvider(), ) } private fun createQualifierAnnotationDetector(processingEnv: XProcessingEnv): QualifierAnnotationDetector { return QualifierAnnotationDetector( processingEnv = processingEnv, - messageProvider = createMessageProvider() + messageProvider = createMessageProvider(), ) } private fun createBindingReturnTypeDetector(processingEnv: XProcessingEnv): BindingReturnTypeDetector { return BindingReturnTypeDetector( processingEnv = processingEnv, - messageProvider = createMessageProvider() + messageProvider = createMessageProvider(), ) } @@ -92,7 +92,7 @@ internal object AnnotationsParserFactory { private fun createModuleSchemaFactory(processingEnv: XProcessingEnv): ModuleSchemaFactory { return ModuleSchemaFactory( processingEnv = processingEnv, - moduleInterfaceNameFactory = createModuleInterfaceNameFactory() + moduleInterfaceNameFactory = createModuleInterfaceNameFactory(), ) } diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/HiltBinderException.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/HiltBinderException.kt index 140ca7a1..b5f51341 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/HiltBinderException.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/HiltBinderException.kt @@ -20,5 +20,5 @@ import com.paulrybitskyi.hiltbinder.compiler.processing.XElement internal class HiltBinderException( message: String, - val element: XElement? = null + val element: XElement? = null, ) : Exception(message) diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/PredefinedHiltComponentMapper.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/PredefinedHiltComponentMapper.kt index 0740f700..8d263a24 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/PredefinedHiltComponentMapper.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/PredefinedHiltComponentMapper.kt @@ -33,7 +33,7 @@ internal class PredefinedHiltComponentMapper { BindType.Component.VIEW_WITH_FRAGMENT -> PredefinedHiltComponent.VIEW_WITH_FRAGMENT else -> throw IllegalArgumentException( - "Cannot map the component ${component::class.qualifiedName} to a Hilt's predefined one." + "Cannot map the component ${component::class.qualifiedName} to a Hilt's predefined one.", ) } } diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/detectors/BindingReturnTypeDetector.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/detectors/BindingReturnTypeDetector.kt index 543a8035..fec6f991 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/detectors/BindingReturnTypeDetector.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/detectors/BindingReturnTypeDetector.kt @@ -36,7 +36,7 @@ import com.paulrybitskyi.hiltbinder.processor.utils.typeElement internal class BindingReturnTypeDetector( private val processingEnv: XProcessingEnv, - private val messageProvider: MessageProvider + private val messageProvider: MessageProvider, ) { fun detectReturnType(annotatedElement: XTypeElement): ReturnType { @@ -51,14 +51,14 @@ internal class BindingReturnTypeDetector( (collection == Collection.NONE) -> ReturnType.Generic.Parameterized(returnType) else -> ReturnType.Generic.UnboundedWildcard( type = returnType, - typeParamCount = returnType.element.typeParameterCount + typeParamCount = returnType.element.typeParameterCount, ) } } private fun retrieveReturnType( bindAnnotation: XAnnotation, - annotatedElement: XTypeElement + annotatedElement: XTypeElement, ): XType { val returnType = detectExplicitReturnType(bindAnnotation, annotatedElement) ?: inferReturnType(annotatedElement) @@ -79,7 +79,7 @@ internal class BindingReturnTypeDetector( private fun detectExplicitReturnType( bindAnnotation: XAnnotation, - annotatedElement: XTypeElement + annotatedElement: XTypeElement, ): XType? { if (!bindAnnotation.hasExplicitReturnType()) return null @@ -89,7 +89,7 @@ internal class BindingReturnTypeDetector( val parameterizedReturnType = findParameterizedReturnType( annotatedElement, - explicitReturnType.qualifiedName + explicitReturnType.qualifiedName, ) return (parameterizedReturnType ?: explicitReturnType) @@ -104,7 +104,7 @@ internal class BindingReturnTypeDetector( private fun findParameterizedReturnType( annotatedElement: XTypeElement, - parameterizedTypeName: String + parameterizedTypeName: String, ): XType? { fun MutableList.addTypeElementSuperTypes(typeElement: XTypeElement) { if (typeElement.isClass) { @@ -160,7 +160,7 @@ internal class BindingReturnTypeDetector( val returnTypeName = returnType.qualifiedName val errorMessage = messageProvider.noSubtypeRelationError( bindingTypeName = bindingTypeName, - returnTypeName = returnTypeName + returnTypeName = returnTypeName, ) throw HiltBinderException(errorMessage, bindingType.element) diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/detectors/ContributionTypeDetector.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/detectors/ContributionTypeDetector.kt index 16b23ba8..2d1ad899 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/detectors/ContributionTypeDetector.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/detectors/ContributionTypeDetector.kt @@ -30,7 +30,7 @@ import com.paulrybitskyi.hiltbinder.processor.utils.getTypeUnsafely internal class ContributionTypeDetector( private val processingEnv: XProcessingEnv, - private val messageProvider: MessageProvider + private val messageProvider: MessageProvider, ) { fun detectType(annotatedElement: XTypeElement): ContributionType? { diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/detectors/HiltComponentDetector.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/detectors/HiltComponentDetector.kt index 8ea6de2a..03a6c10a 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/detectors/HiltComponentDetector.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/detectors/HiltComponentDetector.kt @@ -37,7 +37,7 @@ import com.paulrybitskyi.hiltbinder.processor.utils.typeElement internal class HiltComponentDetector( private val processingEnv: XProcessingEnv, private val predefinedHiltComponentMapper: PredefinedHiltComponentMapper, - private val messageProvider: MessageProvider + private val messageProvider: MessageProvider, ) { fun detectComponent(annotatedElement: XTypeElement): HiltComponent { @@ -69,7 +69,7 @@ internal class HiltComponentDetector( val hasViewScope = annotatedElement.hasAnnotation(viewScopeType) val withFragmentBindingsType = processingEnv.getTypeUnsafely( - WITH_FRAGMENT_BINDINGS_TYPE_QUALIFIED_NAME + WITH_FRAGMENT_BINDINGS_TYPE_QUALIFIED_NAME, ) val hasWithFragmentBindingsAnno = annotatedElement.hasAnnotation(withFragmentBindingsType) @@ -93,7 +93,7 @@ internal class HiltComponentDetector( private fun detectExplicitCustomComponent( bindAnnotation: XAnnotation, - annotatedElement: XTypeElement + annotatedElement: XTypeElement, ): HiltComponent.Custom { val defaultType = processingEnv.getBindAnnotationDefaultType() val customComponentType = checkNotNull(bindAnnotation.getCustomComponentArg(defaultType)) @@ -101,7 +101,7 @@ internal class HiltComponentDetector( if (customComponentType == defaultType) { throw HiltBinderException( messageProvider.undefinedCustomComponentError(), - annotatedElement + annotatedElement, ) } @@ -111,7 +111,7 @@ internal class HiltComponentDetector( private fun checkComponentMismatch( componentInferredFromScope: HiltComponent?, explicitComponent: HiltComponent?, - annotatedElement: XTypeElement + annotatedElement: XTypeElement, ) { val mismatchExists = ( (componentInferredFromScope != null) && diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/detectors/QualifierAnnotationDetector.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/detectors/QualifierAnnotationDetector.kt index 5c921acb..ca0465c0 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/detectors/QualifierAnnotationDetector.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/detectors/QualifierAnnotationDetector.kt @@ -29,7 +29,7 @@ import com.paulrybitskyi.hiltbinder.processor.utils.getWithQualifierArg internal class QualifierAnnotationDetector( private val processingEnv: XProcessingEnv, - private val messageProvider: MessageProvider + private val messageProvider: MessageProvider, ) { fun detectAnnotation(annotatedElement: XTypeElement): XAnnotation? { diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/factories/BindingMethodNameFactory.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/factories/BindingMethodNameFactory.kt index 778db67a..627f2f84 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/factories/BindingMethodNameFactory.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/factories/BindingMethodNameFactory.kt @@ -30,7 +30,7 @@ internal class BindingMethodNameFactory { val qualifiedName = annotatedElement.qualifiedName val formattedQualifiedName = qualifiedName.replace( PACKAGE_SEPARATOR, - METHOD_NAME_WORD_SEPARATOR + METHOD_NAME_WORD_SEPARATOR, ) return (METHOD_NAME_PREFIX + formattedQualifiedName) diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/factories/BindingSchemaFactory.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/factories/BindingSchemaFactory.kt index c3d4fb7b..089fefa2 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/factories/BindingSchemaFactory.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/factories/BindingSchemaFactory.kt @@ -28,7 +28,7 @@ internal class BindingSchemaFactory( private val contributionTypeDetector: ContributionTypeDetector, private val qualifierAnnotationDetector: QualifierAnnotationDetector, private val bindingReturnTypeDetector: BindingReturnTypeDetector, - private val bindingMethodNameFactory: BindingMethodNameFactory + private val bindingMethodNameFactory: BindingMethodNameFactory, ) { private companion object { @@ -51,7 +51,7 @@ internal class BindingSchemaFactory( methodName = methodName, paramType = annotatedElement, paramName = BINDING_PARAM_NAME, - returnType = returnType + returnType = returnType, ) } } diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/factories/ModuleSchemaFactory.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/factories/ModuleSchemaFactory.kt index 9cce0e61..fa299183 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/factories/ModuleSchemaFactory.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/parser/factories/ModuleSchemaFactory.kt @@ -25,19 +25,19 @@ import com.paulrybitskyi.hiltbinder.processor.model.qualifiedName internal class ModuleSchemaFactory( private val processingEnv: XProcessingEnv, - private val moduleInterfaceNameFactory: ModuleInterfaceNameFactory + private val moduleInterfaceNameFactory: ModuleInterfaceNameFactory, ) { fun createModuleSchema( packageName: String, component: HiltComponent, - bindings: List + bindings: List, ): ModuleSchema { return ModuleSchema( packageName = packageName, interfaceName = moduleInterfaceNameFactory.createInterfaceName(component), componentType = component.toTypeElement(), - bindings = bindings.sortedBy(BindingSchema::methodName) + bindings = bindings.sortedBy(BindingSchema::methodName), ) } diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/utils/AnnotatedUtils.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/utils/AnnotatedUtils.kt index 9337a71c..25173a54 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/utils/AnnotatedUtils.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/utils/AnnotatedUtils.kt @@ -31,7 +31,7 @@ internal fun XAnnotated.getAnnotation(annotationType: XType): XAnnotation? { } internal fun XAnnotated.getAnnoMarkedWithAnotherAnno( - anotherAnnoType: XType + anotherAnnoType: XType, ): XAnnotation? { return annotations.firstOrNull { it.type.element.hasAnnotation(anotherAnnoType) diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/utils/AnnotationUtils.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/utils/AnnotationUtils.kt index 0067b1be..bbd4aca3 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/utils/AnnotationUtils.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/utils/AnnotationUtils.kt @@ -26,7 +26,7 @@ internal fun XAnnotation.getBooleanValue(name: String, default: Boolean): Boolea internal fun > XAnnotation.getEnumValue( name: String, valueOf: (String) -> T, - default: T + default: T, ): T { return (args[name]?.getAsEnum(valueOf, default) ?: default) } diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/utils/BindAnnotationUtils.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/utils/BindAnnotationUtils.kt index 08899eb9..9e2907c2 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/utils/BindAnnotationUtils.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/utils/BindAnnotationUtils.kt @@ -46,7 +46,7 @@ internal fun XAnnotation.getInstallInArg(): Component { return getEnumValue( BIND_ANNOTATION_PARAM_INSTALL_IN, Component::valueOf, - Component.NONE + Component.NONE, ) } @@ -58,7 +58,7 @@ internal fun XAnnotation.getContributesToArg(): Collection { return getEnumValue( BIND_ANNOTATION_PARAM_CONTRIBUTES_TO, Collection::valueOf, - Collection.NONE + Collection.NONE, ) } diff --git a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/utils/ProcessingEnvUtils.kt b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/utils/ProcessingEnvUtils.kt index 38cdf313..8ebdaffc 100644 --- a/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/utils/ProcessingEnvUtils.kt +++ b/hilt-binder-compiler/src/main/java/com/paulrybitskyi/hiltbinder/processor/utils/ProcessingEnvUtils.kt @@ -31,6 +31,6 @@ internal fun XProcessingEnv.getRootType(backend: XBackend = this.backend): XType when (backend) { XBackend.JAVAC -> OBJECT_TYPE_QUALIFIED_NAME XBackend.KSP -> ANY_TYPE_QUALIFIED_NAME - } + }, ) } diff --git a/hilt-binder-compiler/src/test/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderTest.kt b/hilt-binder-compiler/src/test/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderTest.kt index a6196a23..07469e0c 100644 --- a/hilt-binder-compiler/src/test/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderTest.kt +++ b/hilt-binder-compiler/src/test/java/com/paulrybitskyi/hiltbinder/processor/HiltBinderTest.kt @@ -34,12 +34,14 @@ import com.tschuchort.compiletesting.SourceFile.Companion.java import com.tschuchort.compiletesting.SourceFile.Companion.kotlin import com.tschuchort.compiletesting.kspSourcesDir import com.tschuchort.compiletesting.symbolProcessorProviders -import java.io.File +import org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi import org.junit.Test import org.junit.runner.RunWith +import java.io.File @Suppress("LargeClass", "LongMethod", "MaxLineLength") @RunWith(TestParameterInjector::class) +@OptIn(ExperimentalCompilerApi::class) internal class HiltBinderTest { internal companion object { @@ -49,12 +51,12 @@ internal class HiltBinderTest { enum class Scenario( val processorType: ProcessorType, val inputLanguage: Language, - val outputLanguage: Language + val outputLanguage: Language, ) { JAVAC_JAVA_IN_JAVA_OUT(ProcessorType.JAVAC, Language.JAVA, Language.JAVA), JAVAC_KOTLIN_IN_JAVA_OUT(ProcessorType.JAVAC, Language.KOTLIN, Language.JAVA), KSP_JAVA_IN_KOTLIN_OUT(ProcessorType.KSP, Language.JAVA, Language.KOTLIN), - KSP_KOTLIN_IN_KOTLIN_OUT(ProcessorType.KSP, Language.KOTLIN, Language.KOTLIN) + KSP_KOTLIN_IN_KOTLIN_OUT(ProcessorType.KSP, Language.KOTLIN, Language.KOTLIN), } private val JAVA_TESTABLE_FILE = java("Testable.java", "public interface Testable {}") @@ -86,8 +88,8 @@ internal class HiltBinderTest { @BindType public class Test implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -98,8 +100,8 @@ internal class HiltBinderTest { @BindType class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -138,7 +140,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -158,8 +160,8 @@ internal class HiltBinderTest { @BindType(to = Testable.class) public class Test implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -170,8 +172,8 @@ internal class HiltBinderTest { @BindType(to = Testable::class) class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -210,7 +212,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -230,8 +232,8 @@ internal class HiltBinderTest { @BindType public class Test extends AbstractTest {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_ABSTRACT_TEST_FILE, @@ -242,8 +244,8 @@ internal class HiltBinderTest { @BindType class Test : AbstractTest() - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -282,7 +284,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -302,8 +304,8 @@ internal class HiltBinderTest { @BindType(to = AbstractTest.class) public class Test extends AbstractTest {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_ABSTRACT_TEST_FILE, @@ -314,8 +316,8 @@ internal class HiltBinderTest { @BindType(to = AbstractTest::class) class Test : AbstractTest() - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -354,7 +356,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -368,11 +370,11 @@ internal class HiltBinderTest { Language.JAVA -> listOf( java( "Testable1.java", - "public interface Testable1 {}" + "public interface Testable1 {}", ), java( "Testable2.java", - "public interface Testable2 {}" + "public interface Testable2 {}", ), java( "Test.java", @@ -381,17 +383,17 @@ internal class HiltBinderTest { @BindType(to = Testable1.class) public class Test implements Testable1, Testable2 {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( kotlin( "Testable1.kt", - "interface Testable1" + "interface Testable1", ), kotlin( "Testable2.kt", - "interface Testable2" + "interface Testable2", ), kotlin( "Test.kt", @@ -400,8 +402,8 @@ internal class HiltBinderTest { @BindType(to = Testable1::class) class Test : Testable1, Testable2 - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -440,7 +442,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -461,8 +463,8 @@ internal class HiltBinderTest { @BindType(to = AbstractTest.class) public class Test extends AbstractTest implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -474,8 +476,8 @@ internal class HiltBinderTest { @BindType(to = AbstractTest::class) class Test : AbstractTest(), Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -514,7 +516,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -535,8 +537,8 @@ internal class HiltBinderTest { @BindType(to = Testable.class) public class Test extends AbstractTest implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -548,8 +550,8 @@ internal class HiltBinderTest { @BindType(to = Testable::class) class Test : AbstractTest(), Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -588,7 +590,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -607,8 +609,8 @@ internal class HiltBinderTest { @BindType(to = Object.class) public class Test {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( kotlin( @@ -618,8 +620,8 @@ internal class HiltBinderTest { @BindType(to = Any::class) class Test - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -660,7 +662,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -680,8 +682,8 @@ internal class HiltBinderTest { @BindType(to = Object.class) public class Test extends AbstractTest {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_ABSTRACT_TEST_FILE, @@ -692,8 +694,8 @@ internal class HiltBinderTest { @BindType(to = Any::class) class Test : AbstractTest() - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -734,7 +736,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -754,8 +756,8 @@ internal class HiltBinderTest { @BindType(to = Object.class) public class Test implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -766,8 +768,8 @@ internal class HiltBinderTest { @BindType(to = Any::class) class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -808,7 +810,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -829,8 +831,8 @@ internal class HiltBinderTest { @BindType(to = Object.class) public class Test extends AbstractTest implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -842,8 +844,8 @@ internal class HiltBinderTest { @BindType(to = Any::class) class Test : AbstractTest(), Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -884,7 +886,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -899,7 +901,7 @@ internal class HiltBinderTest { JAVA_TESTABLE_FILE, java( "AbstractTest.java", - "public abstract class AbstractTest implements Testable {}" + "public abstract class AbstractTest implements Testable {}", ), java( "Test.java", @@ -908,14 +910,14 @@ internal class HiltBinderTest { @BindType(to = Testable.class) public class Test extends AbstractTest {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, kotlin( "AbstractTest.kt", - "abstract class AbstractTest : Testable" + "abstract class AbstractTest : Testable", ), kotlin( "Test.kt", @@ -924,8 +926,8 @@ internal class HiltBinderTest { @BindType(to = Testable::class) class Test : AbstractTest() - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -964,7 +966,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -978,11 +980,11 @@ internal class HiltBinderTest { Language.JAVA -> listOf( java( "AbstractAbstractTest.java", - "public abstract class AbstractAbstractTest {}" + "public abstract class AbstractAbstractTest {}", ), java( "AbstractTest.java", - "public abstract class AbstractTest extends AbstractAbstractTest {}" + "public abstract class AbstractTest extends AbstractAbstractTest {}", ), java( "Test.java", @@ -991,17 +993,17 @@ internal class HiltBinderTest { @BindType(to = AbstractAbstractTest.class) public class Test extends AbstractTest {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( kotlin( "AbstractAbstractTest.kt", - "abstract class AbstractAbstractTest" + "abstract class AbstractAbstractTest", ), kotlin( "AbstractTest.kt", - "abstract class AbstractTest : AbstractAbstractTest()" + "abstract class AbstractTest : AbstractAbstractTest()", ), kotlin( "Test.kt", @@ -1010,8 +1012,8 @@ internal class HiltBinderTest { @BindType(to = AbstractAbstractTest::class) class Test : AbstractTest() - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -1050,7 +1052,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -1065,7 +1067,7 @@ internal class HiltBinderTest { JAVA_TESTABLE_FILE, java( "UnitTestable.java", - "public interface UnitTestable extends Testable {}" + "public interface UnitTestable extends Testable {}", ), java( "Test.java", @@ -1074,14 +1076,14 @@ internal class HiltBinderTest { @BindType(to = Testable.class) public class Test implements UnitTestable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, kotlin( "UnitTestable.kt", - "interface UnitTestable : Testable" + "interface UnitTestable : Testable", ), kotlin( "Test.kt", @@ -1090,8 +1092,8 @@ internal class HiltBinderTest { @BindType(to = Testable::class) class Test : UnitTestable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -1130,7 +1132,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -1150,8 +1152,8 @@ internal class HiltBinderTest { @BindType public enum Test implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -1162,8 +1164,8 @@ internal class HiltBinderTest { @BindType enum class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -1202,7 +1204,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -1222,8 +1224,8 @@ internal class HiltBinderTest { @BindType(to = Testable.class) public enum Test implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -1234,8 +1236,8 @@ internal class HiltBinderTest { @BindType(to = Testable::class) enum class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -1274,7 +1276,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -1295,8 +1297,8 @@ internal class HiltBinderTest { @BindType object Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) val expectedGeneratedFile = when (scenario.outputLanguage) { Language.JAVA -> """ @@ -1334,7 +1336,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -1355,8 +1357,8 @@ internal class HiltBinderTest { @BindType(to = Testable::class) object Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) val expectedGeneratedFile = when (scenario.outputLanguage) { Language.JAVA -> """ @@ -1394,7 +1396,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -1415,8 +1417,8 @@ internal class HiltBinderTest { @BindType object Test : AbstractTest() - """.trimIndent() - ) + """.trimIndent(), + ), ) val expectedGeneratedFile = when (scenario.outputLanguage) { Language.JAVA -> """ @@ -1454,7 +1456,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -1475,8 +1477,8 @@ internal class HiltBinderTest { @BindType(to = AbstractTest::class) object Test : AbstractTest() - """.trimIndent() - ) + """.trimIndent(), + ), ) val expectedGeneratedFile = when (scenario.outputLanguage) { Language.JAVA -> """ @@ -1514,7 +1516,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -1528,7 +1530,7 @@ internal class HiltBinderTest { Language.JAVA -> listOf( java( "Testable.java", - "public interface Testable {}" + "public interface Testable {}", ), java( "Test.java", @@ -1537,13 +1539,13 @@ internal class HiltBinderTest { @BindType public class Test implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( kotlin( "Testable.kt", - "interface Testable" + "interface Testable", ), kotlin( "Test.kt", @@ -1552,8 +1554,8 @@ internal class HiltBinderTest { @BindType class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -1594,7 +1596,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -1608,7 +1610,7 @@ internal class HiltBinderTest { Language.JAVA -> listOf( java( "Testable.java", - "public interface Testable {}" + "public interface Testable {}", ), java( "Test.java", @@ -1617,13 +1619,13 @@ internal class HiltBinderTest { @BindType(to = Testable.class) public class Test implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( kotlin( "Testable.kt", - "interface Testable" + "interface Testable", ), kotlin( "Test.kt", @@ -1632,8 +1634,8 @@ internal class HiltBinderTest { @BindType(to = Testable::class) class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -1674,7 +1676,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -1688,11 +1690,11 @@ internal class HiltBinderTest { Language.JAVA -> listOf( java( "Testable.java", - "public interface Testable {}" + "public interface Testable {}", ), java( "UnitTestable.java", - "public interface UnitTestable extends Testable {}" + "public interface UnitTestable extends Testable {}", ), java( "Test.java", @@ -1701,17 +1703,17 @@ internal class HiltBinderTest { @BindType(to = Testable.class) public class Test implements UnitTestable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( kotlin( "Testable.kt", - "interface Testable" + "interface Testable", ), kotlin( "UnitTestable.kt", - "interface UnitTestable : Testable" + "interface UnitTestable : Testable", ), kotlin( "Test.kt", @@ -1720,8 +1722,8 @@ internal class HiltBinderTest { @BindType(to = Testable::class) class Test : UnitTestable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -1762,7 +1764,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -1776,7 +1778,7 @@ internal class HiltBinderTest { Language.JAVA -> listOf( java( "AbstractTest.java", - "public abstract class AbstractTest {}" + "public abstract class AbstractTest {}", ), java( "Test.java", @@ -1785,13 +1787,13 @@ internal class HiltBinderTest { @BindType public class Test extends AbstractTest {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( kotlin( "AbstractTest.kt", - "abstract class AbstractTest" + "abstract class AbstractTest", ), kotlin( "Test.kt", @@ -1800,8 +1802,8 @@ internal class HiltBinderTest { @BindType class Test : AbstractTest() - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -1842,7 +1844,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -1856,7 +1858,7 @@ internal class HiltBinderTest { Language.JAVA -> listOf( java( "AbstractTest.java", - "public abstract class AbstractTest {}" + "public abstract class AbstractTest {}", ), java( "Test.java", @@ -1865,13 +1867,13 @@ internal class HiltBinderTest { @BindType(to = AbstractTest.class) public class Test extends AbstractTest {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( kotlin( "AbstractTest.kt", - "abstract class AbstractTest" + "abstract class AbstractTest", ), kotlin( "Test.kt", @@ -1880,8 +1882,8 @@ internal class HiltBinderTest { @BindType(to = AbstractTest::class) class Test : AbstractTest() - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -1922,7 +1924,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -1936,11 +1938,11 @@ internal class HiltBinderTest { Language.JAVA -> listOf( java( "AbstractAbstractTest.java", - "public abstract class AbstractAbstractTest {}" + "public abstract class AbstractAbstractTest {}", ), java( "AbstractTest.java", - "public abstract class AbstractTest extends AbstractAbstractTest {}" + "public abstract class AbstractTest extends AbstractAbstractTest {}", ), java( "Test.java", @@ -1949,17 +1951,17 @@ internal class HiltBinderTest { @BindType(to = AbstractAbstractTest.class) public class Test extends AbstractTest {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( kotlin( "AbstractAbstractTest.kt", - "abstract class AbstractAbstractTest" + "abstract class AbstractAbstractTest", ), kotlin( "AbstractTest.kt", - "abstract class AbstractTest : AbstractAbstractTest()" + "abstract class AbstractTest : AbstractAbstractTest()", ), kotlin( "Test.kt", @@ -1968,8 +1970,8 @@ internal class HiltBinderTest { @BindType(to = AbstractAbstractTest::class) class Test : AbstractTest() - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -2010,7 +2012,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -2024,19 +2026,19 @@ internal class HiltBinderTest { Language.JAVA -> listOf( java( "Testable.java", - "public interface Testable {}" + "public interface Testable {}", ), java( "Testable1.java", - "public interface Testable1 {}" + "public interface Testable1 {}", ), java( "Testable2.java", - "public interface Testable2 {}" + "public interface Testable2 {}", ), java( "Testable3.java", - "public interface Testable3 {}" + "public interface Testable3 {}", ), java( "Test.java", @@ -2049,25 +2051,25 @@ internal class HiltBinderTest { Testable2, Testable3 > {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( kotlin( "Testable.kt", - "interface Testable" + "interface Testable", ), kotlin( "Testable1.kt", - "interface Testable1" + "interface Testable1", ), kotlin( "Testable2.kt", - "interface Testable2" + "interface Testable2", ), kotlin( "Testable3.kt", - "interface Testable3" + "interface Testable3", ), kotlin( "Test.kt", @@ -2080,8 +2082,8 @@ internal class HiltBinderTest { Testable2, Testable3<*, *, *> > - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -2128,7 +2130,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -2147,8 +2149,8 @@ internal class HiltBinderTest { @BindType public class Test {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( kotlin( @@ -2158,8 +2160,8 @@ internal class HiltBinderTest { @BindType class Test - """.trimIndent() - ) + """.trimIndent(), + ), ) } val compilation = setupCompilation(sourceFiles, scenario.processorType) @@ -2175,11 +2177,11 @@ internal class HiltBinderTest { Language.JAVA -> listOf( java( "Testable1.java", - "public interface Testable1 {}" + "public interface Testable1 {}", ), java( "Testable2.java", - "public interface Testable2 {}" + "public interface Testable2 {}", ), java( "Test.java", @@ -2188,17 +2190,17 @@ internal class HiltBinderTest { @BindType public class Test implements Testable1, Testable2 {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( kotlin( "Testable1.kt", - "interface Testable1" + "interface Testable1", ), kotlin( "Testable2.kt", - "interface Testable2" + "interface Testable2", ), kotlin( "Test.kt", @@ -2207,8 +2209,8 @@ internal class HiltBinderTest { @BindType class Test : Testable1, Testable2 - """.trimIndent() - ) + """.trimIndent(), + ), ) } val compilation = setupCompilation(sourceFiles, scenario.processorType) @@ -2231,8 +2233,8 @@ internal class HiltBinderTest { @BindType public class Test extends AbstractTest implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -2244,8 +2246,8 @@ internal class HiltBinderTest { @BindType class Test : AbstractTest(), Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val compilation = setupCompilation(sourceFiles, scenario.processorType) @@ -2267,8 +2269,8 @@ internal class HiltBinderTest { @BindType(to = Testable.class) public class Test {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -2279,8 +2281,8 @@ internal class HiltBinderTest { @BindType(to = Testable::class) class Test - """.trimIndent() - ) + """.trimIndent(), + ), ) } val compilation = setupCompilation(sourceFiles, scenario.processorType) @@ -2302,8 +2304,8 @@ internal class HiltBinderTest { @BindType(to = AbstractTest.class) public class Test {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_ABSTRACT_TEST_FILE, @@ -2314,8 +2316,8 @@ internal class HiltBinderTest { @BindType(to = AbstractTest::class) class Test - """.trimIndent() - ) + """.trimIndent(), + ), ) } val compilation = setupCompilation(sourceFiles, scenario.processorType) @@ -2348,8 +2350,8 @@ internal class HiltBinderTest { $withFragmentBindingAnnotation @BindType public class Test implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -2362,8 +2364,8 @@ internal class HiltBinderTest { $withFragmentBindingAnnotation @BindType class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -2402,7 +2404,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( interfaceName, - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -2427,8 +2429,8 @@ internal class HiltBinderTest { @BindType(installIn = BindType.Component.${predefinedComponent.name}) public class Test implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -2439,8 +2441,8 @@ internal class HiltBinderTest { @BindType(installIn = BindType.Component.${predefinedComponent.name}) class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -2479,7 +2481,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( interfaceName, - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -2512,8 +2514,8 @@ internal class HiltBinderTest { $withFragmentBindingAnnotation @BindType(installIn = BindType.Component.${predefinedComponent.name}) public class Test implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -2526,8 +2528,8 @@ internal class HiltBinderTest { $withFragmentBindingAnnotation @BindType(installIn = BindType.Component.${predefinedComponent.name}) class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -2566,7 +2568,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( interfaceName, - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -2607,8 +2609,8 @@ internal class HiltBinderTest { $withFragmentBindingAnnotation @BindType(installIn = BindType.Component.${mismatchedExplicitComponent.name}) public class Test implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -2621,8 +2623,8 @@ internal class HiltBinderTest { $withFragmentBindingAnnotation @BindType(installIn = BindType.Component.${mismatchedExplicitComponent.name}) class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val compilation = setupCompilation(sourceFiles, scenario.processorType) @@ -2649,7 +2651,7 @@ internal class HiltBinderTest { @Scope @Retention(RetentionPolicy.RUNTIME) public @interface CustomScope {} - """.trimIndent() + """.trimIndent(), ), java( "CustomComponent.java", @@ -2660,7 +2662,7 @@ internal class HiltBinderTest { @CustomScope @DefineComponent(parent = SingletonComponent.class) public interface CustomComponent {} - """.trimIndent() + """.trimIndent(), ), java( "Test.java", @@ -2673,8 +2675,8 @@ internal class HiltBinderTest { ) @CustomScope public class Test implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -2687,7 +2689,7 @@ internal class HiltBinderTest { @CustomScope @DefineComponent(parent = SingletonComponent::class) interface CustomComponent - """.trimIndent() + """.trimIndent(), ), kotlin( "CustomScope.kt", @@ -2697,7 +2699,7 @@ internal class HiltBinderTest { @Scope @Retention(value = AnnotationRetention.RUNTIME) annotation class CustomScope - """.trimIndent() + """.trimIndent(), ), kotlin( "Test.kt", @@ -2710,8 +2712,8 @@ internal class HiltBinderTest { ) @CustomScope class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -2748,7 +2750,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_CustomComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -2769,7 +2771,7 @@ internal class HiltBinderTest { @DefineComponent(parent = SingletonComponent.class) public interface CustomComponent {} - """.trimIndent() + """.trimIndent(), ), java( "Test.java", @@ -2781,8 +2783,8 @@ internal class HiltBinderTest { customComponent = CustomComponent.class ) public class Test implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -2794,7 +2796,7 @@ internal class HiltBinderTest { @DefineComponent(parent = SingletonComponent::class) interface CustomComponent - """.trimIndent() + """.trimIndent(), ), kotlin( "Test.kt", @@ -2806,8 +2808,8 @@ internal class HiltBinderTest { customComponent = CustomComponent::class ) class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -2844,7 +2846,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_CustomComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -2868,7 +2870,7 @@ internal class HiltBinderTest { @Scope @Retention(RetentionPolicy.RUNTIME) public @interface CustomScope {} - """.trimIndent() + """.trimIndent(), ), java( "CustomComponent.java", @@ -2879,7 +2881,7 @@ internal class HiltBinderTest { @CustomScope @DefineComponent(parent = SingletonComponent.class) public interface CustomComponent {} - """.trimIndent() + """.trimIndent(), ), java( "Test1.java", @@ -2892,7 +2894,7 @@ internal class HiltBinderTest { ) @CustomScope public class Test1 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test2.java", @@ -2904,8 +2906,8 @@ internal class HiltBinderTest { customComponent = CustomComponent.class ) public class Test2 implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -2918,7 +2920,7 @@ internal class HiltBinderTest { @CustomScope @DefineComponent(parent = SingletonComponent::class) interface CustomComponent - """.trimIndent() + """.trimIndent(), ), kotlin( "CustomScope.kt", @@ -2928,7 +2930,7 @@ internal class HiltBinderTest { @Scope @Retention(value = AnnotationRetention.RUNTIME) annotation class CustomScope - """.trimIndent() + """.trimIndent(), ), kotlin( "Test.kt", @@ -2947,8 +2949,8 @@ internal class HiltBinderTest { customComponent = CustomComponent::class ) class Test2 : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -2991,7 +2993,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_CustomComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -3011,8 +3013,8 @@ internal class HiltBinderTest { @BindType(installIn = BindType.Component.CUSTOM) public class Test implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -3023,8 +3025,8 @@ internal class HiltBinderTest { @BindType(installIn = BindType.Component.CUSTOM) class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val compilation = setupCompilation(sourceFiles, scenario.processorType) @@ -3049,8 +3051,8 @@ internal class HiltBinderTest { @Named("test") @BindType(withQualifier = true) public class Test implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -3064,8 +3066,8 @@ internal class HiltBinderTest { @Named("test") @BindType(withQualifier = true) class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -3108,7 +3110,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -3138,7 +3140,7 @@ internal class HiltBinderTest { enum Type { ONE } } - """.trimIndent() + """.trimIndent(), ), java( "Test.java", @@ -3148,8 +3150,8 @@ internal class HiltBinderTest { @CustomQualifier(type = CustomQualifier.Type.ONE) @BindType(withQualifier = true) public class Test implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -3165,7 +3167,7 @@ internal class HiltBinderTest { enum class Type { ONE } } - """.trimIndent() + """.trimIndent(), ), kotlin( "Test.kt", @@ -3175,8 +3177,8 @@ internal class HiltBinderTest { @CustomQualifier(CustomQualifier.Type.ONE) @BindType(withQualifier = true) class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -3219,7 +3221,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -3239,8 +3241,8 @@ internal class HiltBinderTest { @BindType(withQualifier = true) public class Test implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -3251,8 +3253,8 @@ internal class HiltBinderTest { @BindType(withQualifier = true) class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val compilation = setupCompilation(sourceFiles, scenario.processorType) @@ -3269,7 +3271,7 @@ internal class HiltBinderTest { JAVA_TESTABLE_FILE, java( "CustomQualifierType.java", - "public enum CustomQualifierType { ONE, TWO, THREE }" + "public enum CustomQualifierType { ONE, TWO, THREE }", ), java( "InnerAnno.java", @@ -3285,11 +3287,11 @@ internal class HiltBinderTest { Class classValue(); } - """.trimIndent() + """.trimIndent(), ), java( "CustomQualifierClass.java", - "public class CustomQualifierClass {}" + "public class CustomQualifierClass {}", ), java( "CustomQualifier.java", @@ -3329,7 +3331,7 @@ internal class HiltBinderTest { Class[] classArray(); } - """.trimIndent() + """.trimIndent(), ), java( "Test.java", @@ -3359,8 +3361,8 @@ internal class HiltBinderTest { shortArray = { Short.MIN_VALUE, Short.MAX_VALUE }, intArray = { 0, 10, 20 }, longArray = { 10L, 20L, 30L }, - floatArray = { Float.MAX_VALUE, Float.MIN_VALUE }, - doubleArray = { 100.0, 200.0, 300.0 }, + floatArray = { 50.250f, 100.500f, 150.750f }, + doubleArray = { 100.33, 200.66, 300.99 }, stringArray = { "one", "two", "three" }, enumArray = { CustomQualifierType.ONE, @@ -3387,8 +3389,8 @@ internal class HiltBinderTest { ) @BindType(withQualifier = true) public class Test implements Testable { } - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -3402,7 +3404,7 @@ internal class HiltBinderTest { THREE } - """.trimIndent() + """.trimIndent(), ), kotlin( "InnerAnno.kt", @@ -3415,11 +3417,11 @@ internal class HiltBinderTest { val longValue: Long, val classValue: KClass<*> ) - """.trimIndent() + """.trimIndent(), ), kotlin( "CustomQualifierClass.kt", - "class CustomQualifierClass" + "class CustomQualifierClass", ), kotlin( "CustomQualifier.kt", @@ -3456,7 +3458,7 @@ internal class HiltBinderTest { val annotationArray: Array, val classArray: Array> ) - """.trimIndent() + """.trimIndent(), ), kotlin( "Test.kt", @@ -3486,8 +3488,8 @@ internal class HiltBinderTest { shortArray = [Short.MIN_VALUE, Short.MAX_VALUE], intArray = [0, 10, 20], longArray = [10L, 20L, 30L], - floatArray = [Float.MAX_VALUE, Float.MIN_VALUE], - doubleArray = [100.0, 200.0, 300.0], + floatArray = [50.250f, 100.500f, 150.750f], + doubleArray = [100.33, 200.66, 300.99], stringArray = ["one", "two", "three"], enumArray = [ CustomQualifierType.ONE, @@ -3514,8 +3516,8 @@ internal class HiltBinderTest { ) @BindType(withQualifier = true) class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -3572,13 +3574,14 @@ internal class HiltBinderTest { 30 }, floatArray = { - 3.4028235E38f, - 1.4E-45f + 50.25f, + 100.5f, + 150.75f }, doubleArray = { - 100.0, - 200.0, - 300.0 + 100.33, + 200.66, + 300.99 }, stringArray = { "one", @@ -3619,7 +3622,7 @@ internal class HiltBinderTest { boolValue = true, byteValue = 10, charValue = ',', - shortValue = 32767, + shortValue = 32_767, intValue = -10, longValue = 100, floatValue = -15.0f, @@ -3632,11 +3635,11 @@ internal class HiltBinderTest { boolArray = [true, false], byteArray = [100, 105], charArray = ['A', 'B', 'C'], - shortArray = [-32768, 32767], + shortArray = [-32_768, 32_767], intArray = [0, 10, 20], longArray = [10, 20, 30], - floatArray = [3.4028235E38f, 1.4E-45f], - doubleArray = [100.0, 200.0, 300.0], + floatArray = [50.25f, 100.5f, 150.75f], + doubleArray = [100.33, 200.66, 300.99], stringArray = ["one", "two", "three"], enumArray = [CustomQualifierType.ONE, CustomQualifierType.TWO, CustomQualifierType.THREE], annotationArray = [InnerAnno(intValue = 0, longValue = 1, classValue = Test::class), @@ -3651,7 +3654,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -3671,7 +3674,7 @@ internal class HiltBinderTest { @BindType(contributesTo = BindType.Collection.SET) public class Test1 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test2.java", @@ -3680,7 +3683,7 @@ internal class HiltBinderTest { @BindType(contributesTo = BindType.Collection.SET) public class Test2 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test3.java", @@ -3689,8 +3692,8 @@ internal class HiltBinderTest { @BindType(contributesTo = BindType.Collection.SET) public class Test3 implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -3701,7 +3704,7 @@ internal class HiltBinderTest { @BindType(contributesTo = BindType.Collection.SET) class Test1 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test2.kt", @@ -3710,7 +3713,7 @@ internal class HiltBinderTest { @BindType(contributesTo = BindType.Collection.SET) class Test2 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test3.kt", @@ -3719,8 +3722,8 @@ internal class HiltBinderTest { @BindType(contributesTo = BindType.Collection.SET) class Test3 : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -3779,7 +3782,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -3793,7 +3796,7 @@ internal class HiltBinderTest { Language.JAVA -> listOf( java( "Testable.java", - "public interface Testable {}" + "public interface Testable {}", ), java( "Test1.java", @@ -3802,7 +3805,7 @@ internal class HiltBinderTest { @BindType(contributesTo = BindType.Collection.SET) public class Test1 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test2.java", @@ -3811,7 +3814,7 @@ internal class HiltBinderTest { @BindType(contributesTo = BindType.Collection.SET) public class Test2 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test3.java", @@ -3820,13 +3823,13 @@ internal class HiltBinderTest { @BindType(contributesTo = BindType.Collection.SET) public class Test3 implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( kotlin( "Testable.kt", - "interface Testable" + "interface Testable", ), kotlin( "Test1.kt", @@ -3835,7 +3838,7 @@ internal class HiltBinderTest { @BindType(contributesTo = BindType.Collection.SET) class Test1 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test2.kt", @@ -3844,7 +3847,7 @@ internal class HiltBinderTest { @BindType(contributesTo = BindType.Collection.SET) class Test2 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test3.kt", @@ -3853,8 +3856,8 @@ internal class HiltBinderTest { @BindType(contributesTo = BindType.Collection.SET) class Test3 : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -3913,7 +3916,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -3939,7 +3942,7 @@ internal class HiltBinderTest { withQualifier = true ) public class Test1 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test2.java", @@ -3954,7 +3957,7 @@ internal class HiltBinderTest { withQualifier = true ) public class Test2 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test3.java", @@ -3969,8 +3972,8 @@ internal class HiltBinderTest { withQualifier = true ) public class Test3 implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -3987,7 +3990,7 @@ internal class HiltBinderTest { withQualifier = true ) class Test1 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test2.kt", @@ -4002,7 +4005,7 @@ internal class HiltBinderTest { withQualifier = true ) class Test2 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test3.kt", @@ -4017,8 +4020,8 @@ internal class HiltBinderTest { withQualifier = true ) class Test3 : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -4085,7 +4088,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -4105,8 +4108,8 @@ internal class HiltBinderTest { @BindType(contributesTo = BindType.Collection.MAP) public class Test implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -4117,8 +4120,8 @@ internal class HiltBinderTest { @BindType(contributesTo = BindType.Collection.MAP) class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val compilation = setupCompilation(sourceFiles, scenario.processorType) @@ -4142,7 +4145,7 @@ internal class HiltBinderTest { @MapIntKey(1) @BindType(contributesTo = BindType.Collection.MAP) public class Test1 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test2.java", @@ -4153,7 +4156,7 @@ internal class HiltBinderTest { @MapIntKey(2) @BindType(contributesTo = BindType.Collection.MAP) public class Test2 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test3.java", @@ -4164,8 +4167,8 @@ internal class HiltBinderTest { @MapIntKey(3) @BindType(contributesTo = BindType.Collection.MAP) public class Test3 implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -4178,7 +4181,7 @@ internal class HiltBinderTest { @MapIntKey(1) @BindType(contributesTo = BindType.Collection.MAP) class Test1 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test2.kt", @@ -4189,7 +4192,7 @@ internal class HiltBinderTest { @MapIntKey(2) @BindType(contributesTo = BindType.Collection.MAP) class Test2 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test3.kt", @@ -4200,8 +4203,8 @@ internal class HiltBinderTest { @MapIntKey(3) @BindType(contributesTo = BindType.Collection.MAP) class Test3 : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -4268,7 +4271,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -4290,7 +4293,7 @@ internal class HiltBinderTest { @MapLongKey(1L) @BindType(contributesTo = BindType.Collection.MAP) public class Test1 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test2.java", @@ -4301,7 +4304,7 @@ internal class HiltBinderTest { @MapLongKey(2L) @BindType(contributesTo = BindType.Collection.MAP) public class Test2 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test3.java", @@ -4312,8 +4315,8 @@ internal class HiltBinderTest { @MapLongKey(3L) @BindType(contributesTo = BindType.Collection.MAP) public class Test3 implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -4326,7 +4329,7 @@ internal class HiltBinderTest { @MapLongKey(1L) @BindType(contributesTo = BindType.Collection.MAP) class Test1 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test2.kt", @@ -4337,7 +4340,7 @@ internal class HiltBinderTest { @MapLongKey(2L) @BindType(contributesTo = BindType.Collection.MAP) class Test2 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test3.kt", @@ -4348,8 +4351,8 @@ internal class HiltBinderTest { @MapLongKey(3L) @BindType(contributesTo = BindType.Collection.MAP) class Test3 : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -4416,7 +4419,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -4438,7 +4441,7 @@ internal class HiltBinderTest { @MapStringKey("one") @BindType(contributesTo = BindType.Collection.MAP) public class Test1 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test2.java", @@ -4449,7 +4452,7 @@ internal class HiltBinderTest { @MapStringKey("two") @BindType(contributesTo = BindType.Collection.MAP) public class Test2 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test3.java", @@ -4460,8 +4463,8 @@ internal class HiltBinderTest { @MapStringKey("three") @BindType(contributesTo = BindType.Collection.MAP) public class Test3 implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -4474,7 +4477,7 @@ internal class HiltBinderTest { @MapStringKey("one") @BindType(contributesTo = BindType.Collection.MAP) class Test1 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test2.kt", @@ -4485,7 +4488,7 @@ internal class HiltBinderTest { @MapStringKey("two") @BindType(contributesTo = BindType.Collection.MAP) class Test2 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test3.kt", @@ -4496,8 +4499,8 @@ internal class HiltBinderTest { @MapStringKey("three") @BindType(contributesTo = BindType.Collection.MAP) class Test3 : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -4564,7 +4567,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -4586,7 +4589,7 @@ internal class HiltBinderTest { @MapClassKey(Test1.class) @BindType(contributesTo = BindType.Collection.MAP) public class Test1 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test2.java", @@ -4597,7 +4600,7 @@ internal class HiltBinderTest { @MapClassKey(Test2.class) @BindType(contributesTo = BindType.Collection.MAP) public class Test2 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test3.java", @@ -4608,8 +4611,8 @@ internal class HiltBinderTest { @MapClassKey(Test3.class) @BindType(contributesTo = BindType.Collection.MAP) public class Test3 implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -4622,7 +4625,7 @@ internal class HiltBinderTest { @MapClassKey(Test1::class) @BindType(contributesTo = BindType.Collection.MAP) class Test1 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test2.kt", @@ -4633,7 +4636,7 @@ internal class HiltBinderTest { @MapClassKey(Test2::class) @BindType(contributesTo = BindType.Collection.MAP) class Test2 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test3.kt", @@ -4644,8 +4647,8 @@ internal class HiltBinderTest { @MapClassKey(Test3::class) @BindType(contributesTo = BindType.Collection.MAP) class Test3 : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -4712,7 +4715,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -4726,7 +4729,7 @@ internal class HiltBinderTest { Language.JAVA -> listOf( java( "Testable.java", - "public interface Testable {}" + "public interface Testable {}", ), java( "Test1.java", @@ -4737,7 +4740,7 @@ internal class HiltBinderTest { @MapClassKey(Test1.class) @BindType(contributesTo = BindType.Collection.MAP) public class Test1 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test2.java", @@ -4748,7 +4751,7 @@ internal class HiltBinderTest { @MapClassKey(Test2.class) @BindType(contributesTo = BindType.Collection.MAP) public class Test2 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test3.java", @@ -4759,13 +4762,13 @@ internal class HiltBinderTest { @MapClassKey(Test3.class) @BindType(contributesTo = BindType.Collection.MAP) public class Test3 implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( kotlin( "Testable.kt", - "interface Testable" + "interface Testable", ), kotlin( "Test1.kt", @@ -4776,7 +4779,7 @@ internal class HiltBinderTest { @MapClassKey(Test1::class) @BindType(contributesTo = BindType.Collection.MAP) class Test1 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test2.kt", @@ -4787,7 +4790,7 @@ internal class HiltBinderTest { @MapClassKey(Test2::class) @BindType(contributesTo = BindType.Collection.MAP) class Test2 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test3.kt", @@ -4798,8 +4801,8 @@ internal class HiltBinderTest { @MapClassKey(Test3::class) @BindType(contributesTo = BindType.Collection.MAP) class Test3 : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -4866,7 +4869,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -4897,7 +4900,7 @@ internal class HiltBinderTest { enum Type { ONE, TWO, THREE } } - """.trimIndent() + """.trimIndent(), ), java( "Test1.java", @@ -4907,7 +4910,7 @@ internal class HiltBinderTest { @TestMapKey(TestMapKey.Type.ONE) @BindType(contributesTo = BindType.Collection.MAP) public class Test1 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test2.java", @@ -4917,7 +4920,7 @@ internal class HiltBinderTest { @TestMapKey(TestMapKey.Type.TWO) @BindType(contributesTo = BindType.Collection.MAP) public class Test2 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test3.java", @@ -4927,8 +4930,8 @@ internal class HiltBinderTest { @TestMapKey(TestMapKey.Type.THREE) @BindType(contributesTo = BindType.Collection.MAP) public class Test3 implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -4950,7 +4953,7 @@ internal class HiltBinderTest { } } - """.trimIndent() + """.trimIndent(), ), kotlin( "Test1.kt", @@ -4960,7 +4963,7 @@ internal class HiltBinderTest { @TestMapKey(TestMapKey.Type.ONE) @BindType(contributesTo = BindType.Collection.MAP) class Test1 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test2.kt", @@ -4970,7 +4973,7 @@ internal class HiltBinderTest { @TestMapKey(TestMapKey.Type.TWO) @BindType(contributesTo = BindType.Collection.MAP) class Test2 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test3.kt", @@ -4980,8 +4983,8 @@ internal class HiltBinderTest { @TestMapKey(TestMapKey.Type.THREE) @BindType(contributesTo = BindType.Collection.MAP) class Test3 : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -5046,7 +5049,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -5060,7 +5063,7 @@ internal class HiltBinderTest { Language.JAVA -> listOf( java( "Testable.java", - "public interface Testable {}" + "public interface Testable {}", ), java( "TestMapKey.java", @@ -5080,7 +5083,7 @@ internal class HiltBinderTest { enum Type { ONE, TWO, THREE } } - """.trimIndent() + """.trimIndent(), ), java( "Test1.java", @@ -5090,7 +5093,7 @@ internal class HiltBinderTest { @TestMapKey(TestMapKey.Type.ONE) @BindType(contributesTo = BindType.Collection.MAP) public class Test1 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test2.java", @@ -5100,7 +5103,7 @@ internal class HiltBinderTest { @TestMapKey(TestMapKey.Type.TWO) @BindType(contributesTo = BindType.Collection.MAP) public class Test2 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test3.java", @@ -5110,13 +5113,13 @@ internal class HiltBinderTest { @TestMapKey(TestMapKey.Type.THREE) @BindType(contributesTo = BindType.Collection.MAP) public class Test3 implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( kotlin( "Testable.kt", - "interface Testable" + "interface Testable", ), kotlin( "TestMapKey.kt", @@ -5136,7 +5139,7 @@ internal class HiltBinderTest { } } - """.trimIndent() + """.trimIndent(), ), kotlin( "Test1.kt", @@ -5146,7 +5149,7 @@ internal class HiltBinderTest { @TestMapKey(TestMapKey.Type.ONE) @BindType(contributesTo = BindType.Collection.MAP) class Test1 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test2.kt", @@ -5156,7 +5159,7 @@ internal class HiltBinderTest { @TestMapKey(TestMapKey.Type.TWO) @BindType(contributesTo = BindType.Collection.MAP) class Test2 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test3.kt", @@ -5166,8 +5169,8 @@ internal class HiltBinderTest { @TestMapKey(TestMapKey.Type.THREE) @BindType(contributesTo = BindType.Collection.MAP) class Test3 : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -5232,7 +5235,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -5260,7 +5263,7 @@ internal class HiltBinderTest { @MapClassKey(Test1.class) @Named("one") public class Test1 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test2.java", @@ -5277,7 +5280,7 @@ internal class HiltBinderTest { @MapClassKey(Test2.class) @Named("two") public class Test2 implements Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test3.java", @@ -5294,8 +5297,8 @@ internal class HiltBinderTest { @MapClassKey(Test3.class) @Named("three") public class Test3 implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( KOTLIN_TESTABLE_FILE, @@ -5314,7 +5317,7 @@ internal class HiltBinderTest { @MapClassKey(Test1::class) @Named("one") class Test1 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test2.kt", @@ -5331,7 +5334,7 @@ internal class HiltBinderTest { @MapClassKey(Test2::class) @Named("two") class Test2 : Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test3.kt", @@ -5348,8 +5351,8 @@ internal class HiltBinderTest { @MapClassKey(Test3::class) @Named("three") class Test3 : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -5424,7 +5427,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -5442,7 +5445,7 @@ internal class HiltBinderTest { package com.paulrybitskyi.hiltbinder.test; public interface Testable {} - """.trimIndent() + """.trimIndent(), ), java( "Test.java", @@ -5456,8 +5459,8 @@ internal class HiltBinderTest { @Named("test") @BindType(withQualifier = true) public class Test implements Testable {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( kotlin( @@ -5466,7 +5469,7 @@ internal class HiltBinderTest { package com.paulrybitskyi.hiltbinder.test interface Testable - """.trimIndent() + """.trimIndent(), ), kotlin( "Test.kt", @@ -5480,8 +5483,8 @@ internal class HiltBinderTest { @Named("test") @BindType(withQualifier = true) class Test : Testable - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -5528,7 +5531,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "com/paulrybitskyi/hiltbinder/test/HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -5546,7 +5549,7 @@ internal class HiltBinderTest { package com.paulrybitskyi.hiltbinder.testing.feature1.interfaces.testing; public interface Testable1 {} - """.trimIndent() + """.trimIndent(), ), java( "Testable2.java", @@ -5554,7 +5557,7 @@ internal class HiltBinderTest { package com.paulrybitskyi.hiltbinder.testing.feature2.repositories.model; public interface Testable2 {} - """.trimIndent() + """.trimIndent(), ), java( "Testable3.java", @@ -5562,7 +5565,7 @@ internal class HiltBinderTest { package com.paulrybitskyi.hiltbinder.testing.utils.interfaces; public interface Testable3 {} - """.trimIndent() + """.trimIndent(), ), java( "Test1.java", @@ -5573,7 +5576,7 @@ internal class HiltBinderTest { @BindType public class Test1 implements Testable1 {} - """.trimIndent() + """.trimIndent(), ), java( "Test2.java", @@ -5584,7 +5587,7 @@ internal class HiltBinderTest { @BindType public class Test2 implements Testable2 {} - """.trimIndent() + """.trimIndent(), ), java( "Test3.java", @@ -5595,8 +5598,8 @@ internal class HiltBinderTest { @BindType public class Test3 implements Testable3 {} - """.trimIndent() - ) + """.trimIndent(), + ), ) Language.KOTLIN -> listOf( kotlin( @@ -5605,7 +5608,7 @@ internal class HiltBinderTest { package com.paulrybitskyi.hiltbinder.testing.feature1.interfaces.testing interface Testable1 - """.trimIndent() + """.trimIndent(), ), kotlin( "Testable2.kt", @@ -5613,7 +5616,7 @@ internal class HiltBinderTest { package com.paulrybitskyi.hiltbinder.testing.feature2.repositories.model interface Testable2 - """.trimIndent() + """.trimIndent(), ), kotlin( "Testable3.kt", @@ -5621,7 +5624,7 @@ internal class HiltBinderTest { package com.paulrybitskyi.hiltbinder.testing.utils.interfaces interface Testable3 - """.trimIndent() + """.trimIndent(), ), kotlin( "Test1.kt", @@ -5632,7 +5635,7 @@ internal class HiltBinderTest { @BindType class Test1 : Testable1 - """.trimIndent() + """.trimIndent(), ), kotlin( "Test2.kt", @@ -5643,7 +5646,7 @@ internal class HiltBinderTest { @BindType class Test2 : Testable2 - """.trimIndent() + """.trimIndent(), ), kotlin( "Test3.kt", @@ -5654,8 +5657,8 @@ internal class HiltBinderTest { @BindType class Test3 : Testable3 - """.trimIndent() - ) + """.trimIndent(), + ), ) } val expectedGeneratedFile = when (scenario.outputLanguage) { @@ -5727,7 +5730,7 @@ internal class HiltBinderTest { val result = compilation.compile() val actualGeneratedFile = compilation.getGeneratedFile( "com/paulrybitskyi/hiltbinder/testing/HiltBinder_SingletonComponentModule", - scenario.outputLanguage + scenario.outputLanguage, ) assertThat(result.exitCode).isEqualTo(ExitCode.OK) @@ -5737,7 +5740,7 @@ internal class HiltBinderTest { private fun setupCompilation( sourceFiles: List, - processorType: ProcessorType + processorType: ProcessorType, ): KotlinCompilation { val compilation = KotlinCompilation().apply { sources = sourceFiles diff --git a/hilt-binder/build.gradle.kts b/hilt-binder/build.gradle.kts index d2c9781f..8b997777 100644 --- a/hilt-binder/build.gradle.kts +++ b/hilt-binder/build.gradle.kts @@ -18,6 +18,10 @@ plugins { kotlin() } +kotlin { + jvmToolchain(appConfig.exportableLibJavaCompatVersion) +} + dependencies { implementation(deps.vanillaDagger) } diff --git a/hilt-binder/src/main/java/com/paulrybitskyi/hiltbinder/BindType.kt b/hilt-binder/src/main/java/com/paulrybitskyi/hiltbinder/BindType.kt index ed15a29c..20d92f28 100644 --- a/hilt-binder/src/main/java/com/paulrybitskyi/hiltbinder/BindType.kt +++ b/hilt-binder/src/main/java/com/paulrybitskyi/hiltbinder/BindType.kt @@ -415,7 +415,7 @@ annotation class BindType( val installIn: Component = Component.NONE, val customComponent: KClass<*> = Nothing::class, val contributesTo: Collection = Collection.NONE, - val withQualifier: Boolean = false + val withQualifier: Boolean = false, ) { /** @@ -434,7 +434,7 @@ annotation class BindType( VIEW, VIEW_WITH_FRAGMENT, - CUSTOM + CUSTOM, } /** @@ -445,6 +445,6 @@ annotation class BindType( NONE, SET, - MAP + MAP, } } diff --git a/sample-deps-javac/build.gradle.kts b/sample-deps-javac/build.gradle.kts index 8d3a3838..61103b8b 100644 --- a/sample-deps-javac/build.gradle.kts +++ b/sample-deps-javac/build.gradle.kts @@ -23,8 +23,8 @@ android { compileSdk = appConfig.compileSdkVersion defaultConfig { + namespace = "com.paulrybitskyi.hiltbinder.sample.javac" minSdk = appConfig.minSdkVersion - targetSdk = appConfig.targetSdkVersion testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } @@ -35,6 +35,11 @@ android { proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") } } + + compileOptions { + sourceCompatibility = appConfig.androidModuleJavaCompatVersion + targetCompatibility = appConfig.androidModuleJavaCompatVersion + } } dependencies { diff --git a/sample-deps-javac/src/main/AndroidManifest.xml b/sample-deps-javac/src/main/AndroidManifest.xml deleted file mode 100644 index 85db8c9f..00000000 --- a/sample-deps-javac/src/main/AndroidManifest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - \ No newline at end of file diff --git a/sample-deps-kapt/build.gradle.kts b/sample-deps-kapt/build.gradle.kts index 312ecd16..badea0ac 100644 --- a/sample-deps-kapt/build.gradle.kts +++ b/sample-deps-kapt/build.gradle.kts @@ -25,8 +25,8 @@ android { compileSdk = appConfig.compileSdkVersion defaultConfig { + namespace = "com.paulrybitskyi.hiltbinder.sample.kapt" minSdk = appConfig.minSdkVersion - targetSdk = appConfig.targetSdkVersion testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } @@ -37,6 +37,15 @@ android { proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") } } + + compileOptions { + sourceCompatibility = appConfig.androidModuleJavaCompatVersion + targetCompatibility = appConfig.androidModuleJavaCompatVersion + } + + kotlinOptions { + jvmTarget = appConfig.androidModuleKotlinCompatVersion.toString() + } } dependencies { diff --git a/sample-deps-kapt/src/main/AndroidManifest.xml b/sample-deps-kapt/src/main/AndroidManifest.xml deleted file mode 100644 index e62f633d..00000000 --- a/sample-deps-kapt/src/main/AndroidManifest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - \ No newline at end of file diff --git a/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/ActivityDeps.kt b/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/ActivityDeps.kt index 89e835bc..a2153208 100644 --- a/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/ActivityDeps.kt +++ b/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/ActivityDeps.kt @@ -35,7 +35,7 @@ interface KaptKotlinActivityDep2 @BindType( to = KaptKotlinActivityDep2::class, - installIn = BindType.Component.ACTIVITY + installIn = BindType.Component.ACTIVITY, ) internal class KaptKotlinActivityDep2Impl @Inject constructor() : KaptKotlinActivityDep2 @@ -62,7 +62,7 @@ interface KaptKotlinActivityDep5 @ActivityScoped @BindType( to = KaptKotlinActivityDep5::class, - installIn = BindType.Component.ACTIVITY + installIn = BindType.Component.ACTIVITY, ) internal class KaptKotlinActivityDep5Impl @Inject constructor() : KaptKotlinActivityDep5 @@ -73,21 +73,21 @@ interface KaptKotlinActivityDep6 @ActivityScoped @BindType( installIn = BindType.Component.ACTIVITY, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinActivityDep6Impl1 @Inject constructor() : KaptKotlinActivityDep6 @ActivityScoped @BindType( installIn = BindType.Component.ACTIVITY, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinActivityDep6Impl2 @Inject constructor() : KaptKotlinActivityDep6 @ActivityScoped @BindType( installIn = BindType.Component.ACTIVITY, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinActivityDep6Impl3 @Inject constructor() : KaptKotlinActivityDep6 @@ -97,21 +97,21 @@ interface KaptKotlinActivityDep7 @BindType( installIn = BindType.Component.ACTIVITY, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapStringKey("dep1_1") internal class KaptKotlinActivityDep7Impl1 @Inject constructor() : KaptKotlinActivityDep7 @BindType( installIn = BindType.Component.ACTIVITY, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapStringKey("dep1_2") internal class KaptKotlinActivityDep7Impl2 @Inject constructor() : KaptKotlinActivityDep7 @BindType( installIn = BindType.Component.ACTIVITY, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapStringKey("dep1_3") internal class KaptKotlinActivityDep7Impl3 @Inject constructor() : KaptKotlinActivityDep7 @@ -122,7 +122,7 @@ interface KaptKotlinActivityDep8 @BindType( installIn = BindType.Component.ACTIVITY, - withQualifier = true + withQualifier = true, ) @Named("dep8") internal class KaptKotlinActivityDep8Impl @Inject constructor() : KaptKotlinActivityDep8 @@ -140,7 +140,7 @@ abstract class KaptKotlinActivityDep10 @BindType( to = KaptKotlinActivityDep10::class, - installIn = BindType.Component.ACTIVITY + installIn = BindType.Component.ACTIVITY, ) internal class KaptKotlinActivityDep10Impl @Inject constructor() : KaptKotlinActivityDep10() @@ -150,18 +150,18 @@ abstract class KaptKotlinActivityDep11 @BindType( installIn = BindType.Component.ACTIVITY, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinActivityDep11Impl1 @Inject constructor() : KaptKotlinActivityDep11() @BindType( installIn = BindType.Component.ACTIVITY, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinActivityDep11Impl2 @Inject constructor() : KaptKotlinActivityDep11() @BindType( installIn = BindType.Component.ACTIVITY, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinActivityDep11Impl3 @Inject constructor() : KaptKotlinActivityDep11() diff --git a/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/CustomDeps.kt b/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/CustomDeps.kt index c69f7b94..0f2a9a02 100644 --- a/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/CustomDeps.kt +++ b/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/CustomDeps.kt @@ -47,7 +47,7 @@ interface KaptKotlinCustomComponentDep1 @BindType( installIn = BindType.Component.CUSTOM, - customComponent = KaptKotlinCustomComponent::class + customComponent = KaptKotlinCustomComponent::class, ) internal class KaptKotlinCustomComponentDep1Impl @Inject constructor() : KaptKotlinCustomComponentDep1 @@ -58,14 +58,14 @@ abstract class KaptKotlinCustomComponentDep2 @KaptKotlinCustomScope @BindType( installIn = BindType.Component.CUSTOM, - customComponent = KaptKotlinCustomComponent::class + customComponent = KaptKotlinCustomComponent::class, ) internal class KaptKotlinCustomComponentDep2Impl @Inject constructor() : KaptKotlinCustomComponentDep2() // ###################################################################################################### class KaptKotlinCustomComponentManager @Inject constructor( - private val customComponentBuilder: KaptKotlinCustomComponent.Builder + private val customComponentBuilder: KaptKotlinCustomComponent.Builder, ) { private var customComponent: KaptKotlinCustomComponent? = null @@ -85,7 +85,7 @@ class KaptKotlinCustomComponentManager @Inject constructor( val dependenciesProvider = EntryPoints.get( customComponent!!, - DependenciesProvider::class.java + DependenciesProvider::class.java, ) customComponentDep1 = dependenciesProvider.getCustomComponentDep1() diff --git a/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/FragmentDeps.kt b/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/FragmentDeps.kt index 023103fe..4684365b 100644 --- a/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/FragmentDeps.kt +++ b/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/FragmentDeps.kt @@ -35,7 +35,7 @@ interface KaptKotlinFragmentDep2 @BindType( to = KaptKotlinFragmentDep2::class, - installIn = BindType.Component.FRAGMENT + installIn = BindType.Component.FRAGMENT, ) internal class KaptKotlinFragmentDep2Impl @Inject constructor() : KaptKotlinFragmentDep2 @@ -62,7 +62,7 @@ interface KaptKotlinFragmentDep5 @FragmentScoped @BindType( to = KaptKotlinFragmentDep5::class, - installIn = BindType.Component.FRAGMENT + installIn = BindType.Component.FRAGMENT, ) internal class KaptKotlinFragmentDep5Impl @Inject constructor() : KaptKotlinFragmentDep5 @@ -73,21 +73,21 @@ interface KaptKotlinFragmentDep6 @FragmentScoped @BindType( installIn = BindType.Component.FRAGMENT, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinFragmentDep6Impl1 @Inject constructor() : KaptKotlinFragmentDep6 @FragmentScoped @BindType( installIn = BindType.Component.FRAGMENT, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinFragmentDep6Impl2 @Inject constructor() : KaptKotlinFragmentDep6 @FragmentScoped @BindType( installIn = BindType.Component.FRAGMENT, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinFragmentDep6Impl3 @Inject constructor() : KaptKotlinFragmentDep6 @@ -97,21 +97,21 @@ interface KaptKotlinFragmentDep7 @BindType( installIn = BindType.Component.FRAGMENT, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapLongKey(1L) internal class KaptKotlinFragmentDep7Impl1 @Inject constructor() : KaptKotlinFragmentDep7 @BindType( installIn = BindType.Component.FRAGMENT, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapLongKey(2L) internal class KaptKotlinFragmentDep7Impl2 @Inject constructor() : KaptKotlinFragmentDep7 @BindType( installIn = BindType.Component.FRAGMENT, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapLongKey(3L) internal class KaptKotlinFragmentDep7Impl3 @Inject constructor() : KaptKotlinFragmentDep7 @@ -122,10 +122,10 @@ interface KaptKotlinFragmentDep8 @BindType( installIn = BindType.Component.FRAGMENT, - withQualifier = true + withQualifier = true, ) @Named("dep8") -internal class KaptKotlinFragmentDep8Impl @Inject constructor () : KaptKotlinFragmentDep8 +internal class KaptKotlinFragmentDep8Impl @Inject constructor() : KaptKotlinFragmentDep8 // ###################################################################################################### @@ -140,7 +140,7 @@ abstract class KaptKotlinFragmentDep10 @BindType( to = KaptKotlinFragmentDep10::class, - installIn = BindType.Component.FRAGMENT + installIn = BindType.Component.FRAGMENT, ) internal class KaptKotlinFragmentDep10Impl @Inject constructor() : KaptKotlinFragmentDep10() @@ -150,18 +150,18 @@ abstract class KaptKotlinFragmentDep11 @BindType( installIn = BindType.Component.FRAGMENT, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinFragmentDep11Impl1 @Inject constructor() : KaptKotlinFragmentDep11() @BindType( installIn = BindType.Component.FRAGMENT, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinFragmentDep11Impl2 @Inject constructor() : KaptKotlinFragmentDep11() @BindType( installIn = BindType.Component.FRAGMENT, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinFragmentDep11Impl3 @Inject constructor() : KaptKotlinFragmentDep11() diff --git a/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/SingletonDeps.kt b/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/SingletonDeps.kt index 6c408d0d..e1fc3139 100644 --- a/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/SingletonDeps.kt +++ b/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/SingletonDeps.kt @@ -49,7 +49,7 @@ interface KaptKotlinSingletonDep4 @BindType( to = KaptKotlinSingletonDep4::class, - installIn = BindType.Component.SINGLETON + installIn = BindType.Component.SINGLETON, ) internal class KaptKotlinSingletonDep4Impl @Inject constructor() : KaptKotlinSingletonDep4 @@ -76,7 +76,7 @@ interface KaptKotlinSingletonDep7 @Singleton @BindType( to = KaptKotlinSingletonDep7::class, - installIn = BindType.Component.SINGLETON + installIn = BindType.Component.SINGLETON, ) internal class KaptKotlinSingletonDep7Impl @Inject constructor() : KaptKotlinSingletonDep7 diff --git a/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/ViewDeps.kt b/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/ViewDeps.kt index 9d7a3a3c..57ae03ff 100644 --- a/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/ViewDeps.kt +++ b/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/ViewDeps.kt @@ -60,7 +60,7 @@ interface KaptKotlinViewDep5 @ViewScoped @BindType( to = KaptKotlinViewDep5::class, - installIn = BindType.Component.VIEW + installIn = BindType.Component.VIEW, ) internal class KaptKotlinViewDep5Impl @Inject constructor() : KaptKotlinViewDep5 @@ -71,21 +71,21 @@ interface KaptKotlinViewDep6 @ViewScoped @BindType( installIn = BindType.Component.VIEW, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinViewDep6Impl1 @Inject constructor() : KaptKotlinViewDep6 @ViewScoped @BindType( installIn = BindType.Component.VIEW, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinViewDep6Impl2 @Inject constructor() : KaptKotlinViewDep6 @ViewScoped @BindType( installIn = BindType.Component.VIEW, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinViewDep6Impl3 @Inject constructor() : KaptKotlinViewDep6 @@ -95,21 +95,21 @@ interface KaptKotlinViewDep7 @BindType( installIn = BindType.Component.VIEW, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapLongKey(1L) internal class KaptKotlinViewDep7Impl1 @Inject constructor() : KaptKotlinViewDep7 @BindType( installIn = BindType.Component.VIEW, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapLongKey(2L) internal class KaptKotlinViewDep7Impl2 @Inject constructor() : KaptKotlinViewDep7 @BindType( installIn = BindType.Component.VIEW, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapLongKey(3L) internal class KaptKotlinViewDep7Impl3 @Inject constructor() : KaptKotlinViewDep7 @@ -120,7 +120,7 @@ interface KaptKotlinViewDep8 @BindType( installIn = BindType.Component.VIEW, - withQualifier = true + withQualifier = true, ) @Named("dep8") internal class KaptKotlinViewDep8Impl @Inject constructor() : KaptKotlinViewDep8 @@ -138,7 +138,7 @@ abstract class KaptKotlinViewDep10 @BindType( to = KaptKotlinViewDep10::class, - installIn = BindType.Component.VIEW + installIn = BindType.Component.VIEW, ) internal class KaptKotlinViewDep10Impl @Inject constructor() : KaptKotlinViewDep10() @@ -148,19 +148,19 @@ abstract class KaptKotlinViewDep11 @BindType( installIn = BindType.Component.VIEW, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinViewDep11Impl1 @Inject constructor() : KaptKotlinViewDep11() @BindType( installIn = BindType.Component.VIEW, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinViewDep11Impl2 @Inject constructor() : KaptKotlinViewDep11() @BindType( installIn = BindType.Component.VIEW, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinViewDep11Impl3 @Inject constructor() : KaptKotlinViewDep11() diff --git a/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/ViewModelDeps.kt b/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/ViewModelDeps.kt index a805b517..0ac170a4 100644 --- a/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/ViewModelDeps.kt +++ b/sample-deps-kapt/src/main/java/com/paulrybitskyi/hiltbinder/sample/kapt/kotlin/ViewModelDeps.kt @@ -35,7 +35,7 @@ interface KaptKotlinViewModelDep2 @BindType( to = KaptKotlinViewModelDep2::class, - installIn = BindType.Component.VIEW_MODEL + installIn = BindType.Component.VIEW_MODEL, ) internal class KaptKotlinViewModelDep2Impl @Inject constructor() : KaptKotlinViewModelDep2 @@ -62,7 +62,7 @@ interface KaptKotlinViewModelDep5 @ViewModelScoped @BindType( to = KaptKotlinViewModelDep5::class, - installIn = BindType.Component.VIEW_MODEL + installIn = BindType.Component.VIEW_MODEL, ) internal class KaptKotlinViewModelDep5Impl @Inject constructor() : KaptKotlinViewModelDep5 @@ -73,21 +73,21 @@ interface KaptKotlinViewModelDep6 @ViewModelScoped @BindType( installIn = BindType.Component.VIEW_MODEL, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinViewModelDep6Impl1 @Inject constructor() : KaptKotlinViewModelDep6 @ViewModelScoped @BindType( installIn = BindType.Component.VIEW_MODEL, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinViewModelDep6Impl2 @Inject constructor() : KaptKotlinViewModelDep6 @ViewModelScoped @BindType( installIn = BindType.Component.VIEW_MODEL, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinViewModelDep6Impl3 @Inject constructor() : KaptKotlinViewModelDep6 @@ -97,21 +97,21 @@ interface KaptKotlinViewModelDep7 @BindType( installIn = BindType.Component.VIEW_MODEL, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapIntKey(1) internal class KaptKotlinViewModelDep7Impl1 @Inject constructor() : KaptKotlinViewModelDep7 @BindType( installIn = BindType.Component.VIEW_MODEL, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapIntKey(2) internal class KaptKotlinViewModelDep7Impl2 @Inject constructor() : KaptKotlinViewModelDep7 @BindType( installIn = BindType.Component.VIEW_MODEL, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapIntKey(3) internal class KaptKotlinViewModelDep7Impl3 @Inject constructor() : KaptKotlinViewModelDep7 @@ -122,7 +122,7 @@ interface KaptKotlinViewModelDep8 @BindType( installIn = BindType.Component.VIEW_MODEL, - withQualifier = true + withQualifier = true, ) @Named("dep8") internal class KaptKotlinViewModelDep8Impl @Inject constructor() : KaptKotlinViewModelDep8 @@ -140,7 +140,7 @@ abstract class KaptKotlinViewModelDep10 @BindType( to = KaptKotlinViewModelDep10::class, - installIn = BindType.Component.VIEW_MODEL + installIn = BindType.Component.VIEW_MODEL, ) internal class KaptKotlinViewModelDep10Impl @Inject constructor() : KaptKotlinViewModelDep10() @@ -150,18 +150,18 @@ abstract class KaptKotlinViewModelDep11 @BindType( installIn = BindType.Component.VIEW_MODEL, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinViewModelDep11Impl1 @Inject constructor() : KaptKotlinViewModelDep11() @BindType( installIn = BindType.Component.VIEW_MODEL, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinViewModelDep11Impl2 @Inject constructor() : KaptKotlinViewModelDep11() @BindType( installIn = BindType.Component.VIEW_MODEL, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KaptKotlinViewModelDep11Impl3 @Inject constructor() : KaptKotlinViewModelDep11() diff --git a/sample-deps-ksp/build.gradle.kts b/sample-deps-ksp/build.gradle.kts index f11fd25f..a4fa8c7e 100644 --- a/sample-deps-ksp/build.gradle.kts +++ b/sample-deps-ksp/build.gradle.kts @@ -26,8 +26,8 @@ android { compileSdk = appConfig.compileSdkVersion defaultConfig { + namespace = "com.paulrybitskyi.hiltbinder.sample.ksp" minSdk = appConfig.minSdkVersion - targetSdk = appConfig.targetSdkVersion testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } @@ -54,6 +54,15 @@ android { proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") } } + + compileOptions { + sourceCompatibility = appConfig.androidModuleJavaCompatVersion + targetCompatibility = appConfig.androidModuleJavaCompatVersion + } + + kotlinOptions { + jvmTarget = appConfig.androidModuleKotlinCompatVersion.toString() + } } dependencies { diff --git a/sample-deps-ksp/src/main/AndroidManifest.xml b/sample-deps-ksp/src/main/AndroidManifest.xml deleted file mode 100644 index 193bf0df..00000000 --- a/sample-deps-ksp/src/main/AndroidManifest.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - \ No newline at end of file diff --git a/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/ActivityDeps.kt b/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/ActivityDeps.kt index c6cebc02..fd7cdaf3 100644 --- a/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/ActivityDeps.kt +++ b/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/ActivityDeps.kt @@ -35,7 +35,7 @@ interface KspKotlinActivityDep2 @BindType( to = KspKotlinActivityDep2::class, - installIn = BindType.Component.ACTIVITY + installIn = BindType.Component.ACTIVITY, ) internal class KspKotlinActivityDep2Impl @Inject constructor() : KspKotlinActivityDep2 @@ -62,7 +62,7 @@ interface KspKotlinActivityDep5 @ActivityScoped @BindType( to = KspKotlinActivityDep5::class, - installIn = BindType.Component.ACTIVITY + installIn = BindType.Component.ACTIVITY, ) internal class KspKotlinActivityDep5Impl @Inject constructor() : KspKotlinActivityDep5 @@ -73,21 +73,21 @@ interface KspKotlinActivityDep6 @ActivityScoped @BindType( installIn = BindType.Component.ACTIVITY, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinActivityDep6Impl1 @Inject constructor() : KspKotlinActivityDep6 @ActivityScoped @BindType( installIn = BindType.Component.ACTIVITY, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinActivityDep6Impl2 @Inject constructor() : KspKotlinActivityDep6 @ActivityScoped @BindType( installIn = BindType.Component.ACTIVITY, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinActivityDep6Impl3 @Inject constructor() : KspKotlinActivityDep6 @@ -97,21 +97,21 @@ interface KspKotlinActivityDep7 @BindType( installIn = BindType.Component.ACTIVITY, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapStringKey("dep1_1") internal class KspKotlinActivityDep7Impl1 @Inject constructor() : KspKotlinActivityDep7 @BindType( installIn = BindType.Component.ACTIVITY, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapStringKey("dep1_2") internal class KspKotlinActivityDep7Impl2 @Inject constructor() : KspKotlinActivityDep7 @BindType( installIn = BindType.Component.ACTIVITY, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapStringKey("dep1_3") internal class KspKotlinActivityDep7Impl3 @Inject constructor() : KspKotlinActivityDep7 @@ -122,7 +122,7 @@ interface KspKotlinActivityDep8 @BindType( installIn = BindType.Component.ACTIVITY, - withQualifier = true + withQualifier = true, ) @Named("dep8") internal class KspKotlinActivityDep8Impl @Inject constructor() : KspKotlinActivityDep8 @@ -140,7 +140,7 @@ abstract class KspKotlinActivityDep10 @BindType( to = KspKotlinActivityDep10::class, - installIn = BindType.Component.ACTIVITY + installIn = BindType.Component.ACTIVITY, ) internal class KspKotlinActivityDep10Impl @Inject constructor() : KspKotlinActivityDep10() @@ -150,18 +150,18 @@ abstract class KspKotlinActivityDep11 @BindType( installIn = BindType.Component.ACTIVITY, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinActivityDep11Impl1 @Inject constructor() : KspKotlinActivityDep11() @BindType( installIn = BindType.Component.ACTIVITY, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinActivityDep11Impl2 @Inject constructor() : KspKotlinActivityDep11() @BindType( installIn = BindType.Component.ACTIVITY, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinActivityDep11Impl3 @Inject constructor() : KspKotlinActivityDep11() diff --git a/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/CustomDeps.kt b/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/CustomDeps.kt index bb409a54..4a9dde03 100644 --- a/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/CustomDeps.kt +++ b/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/CustomDeps.kt @@ -47,7 +47,7 @@ interface KspKotlinCustomComponentDep1 @BindType( installIn = BindType.Component.CUSTOM, - customComponent = KspKotlinCustomComponent::class + customComponent = KspKotlinCustomComponent::class, ) internal class KspKotlinCustomComponentDep1Impl @Inject constructor() : KspKotlinCustomComponentDep1 @@ -58,14 +58,14 @@ abstract class KspKotlinCustomComponentDep2 @KspKotlinCustomScope @BindType( installIn = BindType.Component.CUSTOM, - customComponent = KspKotlinCustomComponent::class + customComponent = KspKotlinCustomComponent::class, ) internal class KspKotlinCustomComponentDep2Impl @Inject constructor() : KspKotlinCustomComponentDep2() // ###################################################################################################### class KspKotlinCustomComponentManager @Inject constructor( - private val customComponentBuilder: KspKotlinCustomComponent.Builder + private val customComponentBuilder: KspKotlinCustomComponent.Builder, ) { private var customComponent: KspKotlinCustomComponent? = null @@ -85,7 +85,7 @@ class KspKotlinCustomComponentManager @Inject constructor( val dependenciesProvider = EntryPoints.get( customComponent!!, - DependenciesProvider::class.java + DependenciesProvider::class.java, ) customComponentDep1 = dependenciesProvider.getCustomComponentDep1() diff --git a/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/FragmentDeps.kt b/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/FragmentDeps.kt index 885a6cb7..8dba4004 100644 --- a/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/FragmentDeps.kt +++ b/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/FragmentDeps.kt @@ -35,7 +35,7 @@ interface KspKotlinFragmentDep2 @BindType( to = KspKotlinFragmentDep2::class, - installIn = BindType.Component.FRAGMENT + installIn = BindType.Component.FRAGMENT, ) internal class KspKotlinFragmentDep2Impl @Inject constructor() : KspKotlinFragmentDep2 @@ -62,7 +62,7 @@ interface KspKotlinFragmentDep5 @FragmentScoped @BindType( to = KspKotlinFragmentDep5::class, - installIn = BindType.Component.FRAGMENT + installIn = BindType.Component.FRAGMENT, ) internal class KspKotlinFragmentDep5Impl @Inject constructor() : KspKotlinFragmentDep5 @@ -73,21 +73,21 @@ interface KspKotlinFragmentDep6 @FragmentScoped @BindType( installIn = BindType.Component.FRAGMENT, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinFragmentDep6Impl1 @Inject constructor() : KspKotlinFragmentDep6 @FragmentScoped @BindType( installIn = BindType.Component.FRAGMENT, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinFragmentDep6Impl2 @Inject constructor() : KspKotlinFragmentDep6 @FragmentScoped @BindType( installIn = BindType.Component.FRAGMENT, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinFragmentDep6Impl3 @Inject constructor() : KspKotlinFragmentDep6 @@ -97,21 +97,21 @@ interface KspKotlinFragmentDep7 @BindType( installIn = BindType.Component.FRAGMENT, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapLongKey(1L) internal class KspKotlinFragmentDep7Impl1 @Inject constructor() : KspKotlinFragmentDep7 @BindType( installIn = BindType.Component.FRAGMENT, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapLongKey(2L) internal class KspKotlinFragmentDep7Impl2 @Inject constructor() : KspKotlinFragmentDep7 @BindType( installIn = BindType.Component.FRAGMENT, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapLongKey(3L) internal class KspKotlinFragmentDep7Impl3 @Inject constructor() : KspKotlinFragmentDep7 @@ -122,10 +122,10 @@ interface KspKotlinFragmentDep8 @BindType( installIn = BindType.Component.FRAGMENT, - withQualifier = true + withQualifier = true, ) @Named("dep8") -internal class KspKotlinFragmentDep8Impl @Inject constructor () : KspKotlinFragmentDep8 +internal class KspKotlinFragmentDep8Impl @Inject constructor() : KspKotlinFragmentDep8 // ###################################################################################################### @@ -140,7 +140,7 @@ abstract class KspKotlinFragmentDep10 @BindType( to = KspKotlinFragmentDep10::class, - installIn = BindType.Component.FRAGMENT + installIn = BindType.Component.FRAGMENT, ) internal class KspKotlinFragmentDep10Impl @Inject constructor() : KspKotlinFragmentDep10() @@ -150,18 +150,18 @@ abstract class KspKotlinFragmentDep11 @BindType( installIn = BindType.Component.FRAGMENT, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinFragmentDep11Impl1 @Inject constructor() : KspKotlinFragmentDep11() @BindType( installIn = BindType.Component.FRAGMENT, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinFragmentDep11Impl2 @Inject constructor() : KspKotlinFragmentDep11() @BindType( installIn = BindType.Component.FRAGMENT, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinFragmentDep11Impl3 @Inject constructor() : KspKotlinFragmentDep11() diff --git a/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/SingletonDeps.kt b/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/SingletonDeps.kt index 8dc2dcb0..0cc0d8e1 100644 --- a/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/SingletonDeps.kt +++ b/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/SingletonDeps.kt @@ -49,7 +49,7 @@ interface KspKotlinSingletonDep4 @BindType( to = KspKotlinSingletonDep4::class, - installIn = BindType.Component.SINGLETON + installIn = BindType.Component.SINGLETON, ) internal class KspKotlinSingletonDep4Impl @Inject constructor() : KspKotlinSingletonDep4 @@ -76,7 +76,7 @@ interface KspKotlinSingletonDep7 @Singleton @BindType( to = KspKotlinSingletonDep7::class, - installIn = BindType.Component.SINGLETON + installIn = BindType.Component.SINGLETON, ) internal class KspKotlinSingletonDep7Impl @Inject constructor() : KspKotlinSingletonDep7 diff --git a/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/ViewDeps.kt b/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/ViewDeps.kt index f3f96e2d..b81c7fd7 100644 --- a/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/ViewDeps.kt +++ b/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/ViewDeps.kt @@ -60,7 +60,7 @@ interface KspKotlinViewDep5 @ViewScoped @BindType( to = KspKotlinViewDep5::class, - installIn = BindType.Component.VIEW + installIn = BindType.Component.VIEW, ) internal class KspKotlinViewDep5Impl @Inject constructor() : KspKotlinViewDep5 @@ -71,21 +71,21 @@ interface KspKotlinViewDep6 @ViewScoped @BindType( installIn = BindType.Component.VIEW, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinViewDep6Impl1 @Inject constructor() : KspKotlinViewDep6 @ViewScoped @BindType( installIn = BindType.Component.VIEW, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinViewDep6Impl2 @Inject constructor() : KspKotlinViewDep6 @ViewScoped @BindType( installIn = BindType.Component.VIEW, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinViewDep6Impl3 @Inject constructor() : KspKotlinViewDep6 @@ -95,21 +95,21 @@ interface KspKotlinViewDep7 @BindType( installIn = BindType.Component.VIEW, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapLongKey(1L) internal class KspKotlinViewDep7Impl1 @Inject constructor() : KspKotlinViewDep7 @BindType( installIn = BindType.Component.VIEW, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapLongKey(2L) internal class KspKotlinViewDep7Impl2 @Inject constructor() : KspKotlinViewDep7 @BindType( installIn = BindType.Component.VIEW, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapLongKey(3L) internal class KspKotlinViewDep7Impl3 @Inject constructor() : KspKotlinViewDep7 @@ -120,7 +120,7 @@ interface KspKotlinViewDep8 @BindType( installIn = BindType.Component.VIEW, - withQualifier = true + withQualifier = true, ) @Named("dep8") internal class KspKotlinViewDep8Impl @Inject constructor() : KspKotlinViewDep8 @@ -138,7 +138,7 @@ abstract class KspKotlinViewDep10 @BindType( to = KspKotlinViewDep10::class, - installIn = BindType.Component.VIEW + installIn = BindType.Component.VIEW, ) internal class KspKotlinViewDep10Impl @Inject constructor() : KspKotlinViewDep10() @@ -148,19 +148,19 @@ abstract class KspKotlinViewDep11 @BindType( installIn = BindType.Component.VIEW, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinViewDep11Impl1 @Inject constructor() : KspKotlinViewDep11() @BindType( installIn = BindType.Component.VIEW, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinViewDep11Impl2 @Inject constructor() : KspKotlinViewDep11() @BindType( installIn = BindType.Component.VIEW, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinViewDep11Impl3 @Inject constructor() : KspKotlinViewDep11() diff --git a/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/ViewModelDeps.kt b/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/ViewModelDeps.kt index 0197b3d4..3829ae1b 100644 --- a/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/ViewModelDeps.kt +++ b/sample-deps-ksp/src/main/java/com/paulrybitskyi/hiltbinder/sample/ksp/kotlin/ViewModelDeps.kt @@ -35,7 +35,7 @@ interface KspKotlinViewModelDep2 @BindType( to = KspKotlinViewModelDep2::class, - installIn = BindType.Component.VIEW_MODEL + installIn = BindType.Component.VIEW_MODEL, ) internal class KspKotlinViewModelDep2Impl @Inject constructor() : KspKotlinViewModelDep2 @@ -62,7 +62,7 @@ interface KspKotlinViewModelDep5 @ViewModelScoped @BindType( to = KspKotlinViewModelDep5::class, - installIn = BindType.Component.VIEW_MODEL + installIn = BindType.Component.VIEW_MODEL, ) internal class KspKotlinViewModelDep5Impl @Inject constructor() : KspKotlinViewModelDep5 @@ -73,21 +73,21 @@ interface KspKotlinViewModelDep6 @ViewModelScoped @BindType( installIn = BindType.Component.VIEW_MODEL, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinViewModelDep6Impl1 @Inject constructor() : KspKotlinViewModelDep6 @ViewModelScoped @BindType( installIn = BindType.Component.VIEW_MODEL, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinViewModelDep6Impl2 @Inject constructor() : KspKotlinViewModelDep6 @ViewModelScoped @BindType( installIn = BindType.Component.VIEW_MODEL, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinViewModelDep6Impl3 @Inject constructor() : KspKotlinViewModelDep6 @@ -97,21 +97,21 @@ interface KspKotlinViewModelDep7 @BindType( installIn = BindType.Component.VIEW_MODEL, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapIntKey(1) internal class KspKotlinViewModelDep7Impl1 @Inject constructor() : KspKotlinViewModelDep7 @BindType( installIn = BindType.Component.VIEW_MODEL, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapIntKey(2) internal class KspKotlinViewModelDep7Impl2 @Inject constructor() : KspKotlinViewModelDep7 @BindType( installIn = BindType.Component.VIEW_MODEL, - contributesTo = BindType.Collection.MAP + contributesTo = BindType.Collection.MAP, ) @MapIntKey(3) internal class KspKotlinViewModelDep7Impl3 @Inject constructor() : KspKotlinViewModelDep7 @@ -122,7 +122,7 @@ interface KspKotlinViewModelDep8 @BindType( installIn = BindType.Component.VIEW_MODEL, - withQualifier = true + withQualifier = true, ) @Named("dep8") internal class KspKotlinViewModelDep8Impl @Inject constructor() : KspKotlinViewModelDep8 @@ -140,7 +140,7 @@ abstract class KspKotlinViewModelDep10 @BindType( to = KspKotlinViewModelDep10::class, - installIn = BindType.Component.VIEW_MODEL + installIn = BindType.Component.VIEW_MODEL, ) internal class KspKotlinViewModelDep10Impl @Inject constructor() : KspKotlinViewModelDep10() @@ -150,18 +150,18 @@ abstract class KspKotlinViewModelDep11 @BindType( installIn = BindType.Component.VIEW_MODEL, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinViewModelDep11Impl1 @Inject constructor() : KspKotlinViewModelDep11() @BindType( installIn = BindType.Component.VIEW_MODEL, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinViewModelDep11Impl2 @Inject constructor() : KspKotlinViewModelDep11() @BindType( installIn = BindType.Component.VIEW_MODEL, - contributesTo = BindType.Collection.SET + contributesTo = BindType.Collection.SET, ) internal class KspKotlinViewModelDep11Impl3 @Inject constructor() : KspKotlinViewModelDep11() diff --git a/sample/build.gradle.kts b/sample/build.gradle.kts index 5c429377..ac63dcef 100644 --- a/sample/build.gradle.kts +++ b/sample/build.gradle.kts @@ -26,6 +26,7 @@ android { defaultConfig { applicationId = appConfig.applicationId + namespace = appConfig.applicationId minSdk = appConfig.minSdkVersion targetSdk = appConfig.targetSdkVersion versionCode = appConfig.versionCode @@ -42,12 +43,12 @@ android { } compileOptions { - sourceCompatibility = appConfig.javaCompatibilityVersion - targetCompatibility = appConfig.javaCompatibilityVersion + sourceCompatibility = appConfig.androidModuleJavaCompatVersion + targetCompatibility = appConfig.androidModuleJavaCompatVersion } kotlinOptions { - jvmTarget = appConfig.kotlinCompatibilityVersion.toString() + jvmTarget = appConfig.androidModuleKotlinCompatVersion.toString() } } diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml index 9d70f0b3..e179fe84 100644 --- a/sample/src/main/AndroidManifest.xml +++ b/sample/src/main/AndroidManifest.xml @@ -14,9 +14,7 @@ ~ limitations under the License. --> - + , private val javacJavaActivityDep10: JavacJavaActivityDep10, - private val javacJavaActivityDeps11: Set<@JvmSuppressWildcards JavacJavaActivityDep11<*>> + private val javacJavaActivityDeps11: Set<@JvmSuppressWildcards JavacJavaActivityDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/activity/KaptJavaActivityDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/activity/KaptJavaActivityDeps.kt index 619e1b65..6dbe573f 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/activity/KaptJavaActivityDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/activity/KaptJavaActivityDeps.kt @@ -41,7 +41,7 @@ internal class KaptJavaActivityDeps @Inject constructor( @Named("dep8") private val kaptJavaActivityDep8: KaptJavaActivityDep8, private val kaptJavaActivityDep9: KaptJavaActivityDep9, private val kaptJavaActivityDep10: KaptJavaActivityDep10, - private val kaptJavaActivityDeps11: Set<@JvmSuppressWildcards KaptJavaActivityDep11<*>> + private val kaptJavaActivityDeps11: Set<@JvmSuppressWildcards KaptJavaActivityDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/activity/KaptKotlinActivityDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/activity/KaptKotlinActivityDeps.kt index de4c74b1..9eff1b28 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/activity/KaptKotlinActivityDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/activity/KaptKotlinActivityDeps.kt @@ -41,7 +41,7 @@ internal class KaptKotlinActivityDeps @Inject constructor( @Named("dep8") private val kaptKotlinActivityDep8: KaptKotlinActivityDep8, private val kaptKotlinActivityDep9: KaptKotlinActivityDep9, private val kaptKotlinActivityDep10: KaptKotlinActivityDep10, - private val kaptKotlinActivityDeps11: Set<@JvmSuppressWildcards KaptKotlinActivityDep11<*>> + private val kaptKotlinActivityDeps11: Set<@JvmSuppressWildcards KaptKotlinActivityDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/activity/KspJavaActivityDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/activity/KspJavaActivityDeps.kt index a93df81c..b685937b 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/activity/KspJavaActivityDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/activity/KspJavaActivityDeps.kt @@ -41,7 +41,7 @@ internal class KspJavaActivityDeps @Inject constructor( @Named("dep8") private val kspJavaActivityDep8: KspJavaActivityDep8, private val kspJavaActivityDep9: KspJavaActivityDep9, private val kspJavaActivityDep10: KspJavaActivityDep10, - private val kspJavaActivityDeps11: Set<@JvmSuppressWildcards KspJavaActivityDep11<*>> + private val kspJavaActivityDeps11: Set<@JvmSuppressWildcards KspJavaActivityDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/activity/KspKotlinActivityDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/activity/KspKotlinActivityDeps.kt index f65543f4..138f25b2 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/activity/KspKotlinActivityDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/activity/KspKotlinActivityDeps.kt @@ -41,7 +41,7 @@ internal class KspKotlinActivityDeps @Inject constructor( @Named("dep8") private val kspKotlinActivityDep8: KspKotlinActivityDep8, private val kspKotlinActivityDep9: KspKotlinActivityDep9, private val kspKotlinActivityDep10: KspKotlinActivityDep10, - private val kspKotlinActivityDeps11: Set<@JvmSuppressWildcards KspKotlinActivityDep11<*>> + private val kspKotlinActivityDeps11: Set<@JvmSuppressWildcards KspKotlinActivityDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/JavacJavaSingletonDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/JavacJavaSingletonDeps.kt index 5b30b80a..711aba89 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/JavacJavaSingletonDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/JavacJavaSingletonDeps.kt @@ -45,7 +45,7 @@ internal class JavacJavaSingletonDeps @Inject constructor( @Named("dep10") private val javacJavaSingletonDep10: JavacJavaSingletonDep10, private val javacJavaSingletonDep11: JavacJavaSingletonDep11, private val javacJavaSingletonDep12: JavacJavaSingletonDep12, - private val javacJavaSingletonDeps13: Set<@JvmSuppressWildcards JavacJavaSingletonDep13<*>> + private val javacJavaSingletonDeps13: Set<@JvmSuppressWildcards JavacJavaSingletonDep13<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/KaptJavaSingletonDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/KaptJavaSingletonDeps.kt index defb46ca..210fe43f 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/KaptJavaSingletonDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/KaptJavaSingletonDeps.kt @@ -45,7 +45,7 @@ internal class KaptJavaSingletonDeps @Inject constructor( @Named("dep10") private val kaptJavaSingletonDep10: KaptJavaSingletonDep10, private val kaptJavaSingletonDep11: KaptJavaSingletonDep11, private val kaptJavaSingletonDep12: KaptJavaSingletonDep12, - private val kaptJavaSingletonDeps13: Set<@JvmSuppressWildcards KaptJavaSingletonDep13<*>> + private val kaptJavaSingletonDeps13: Set<@JvmSuppressWildcards KaptJavaSingletonDep13<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/KaptKotlinSingletonDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/KaptKotlinSingletonDeps.kt index cb221dd6..1b965c1f 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/KaptKotlinSingletonDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/KaptKotlinSingletonDeps.kt @@ -45,7 +45,7 @@ internal class KaptKotlinSingletonDeps @Inject constructor( @Named("dep10") private val kaptKotlinSingletonDep10: KaptKotlinSingletonDep10, private val kaptKotlinSingletonDep11: KaptKotlinSingletonDep11, private val kaptKotlinSingletonDep12: KaptKotlinSingletonDep12, - private val kaptKotlinSingletonDeps13: Set<@JvmSuppressWildcards KaptKotlinSingletonDep13<*>> + private val kaptKotlinSingletonDeps13: Set<@JvmSuppressWildcards KaptKotlinSingletonDep13<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/KspJavaSingletonDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/KspJavaSingletonDeps.kt index 3b570e58..6d8084aa 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/KspJavaSingletonDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/KspJavaSingletonDeps.kt @@ -45,7 +45,7 @@ internal class KspJavaSingletonDeps @Inject constructor( @Named("dep10") private val kspJavaSingletonDep10: KspJavaSingletonDep10, private val kspJavaSingletonDep11: KspJavaSingletonDep11, private val kspJavaSingletonDep12: KspJavaSingletonDep12, - private val kspJavaSingletonDeps13: Set<@JvmSuppressWildcards KspJavaSingletonDep13<*>> + private val kspJavaSingletonDeps13: Set<@JvmSuppressWildcards KspJavaSingletonDep13<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/KspKotlinSingletonDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/KspKotlinSingletonDeps.kt index a72d3063..36beb510 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/KspKotlinSingletonDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/application/KspKotlinSingletonDeps.kt @@ -45,7 +45,7 @@ internal class KspKotlinSingletonDeps @Inject constructor( @Named("dep10") private val kspKotlinSingletonDep10: KspKotlinSingletonDep10, private val kspKotlinSingletonDep11: KspKotlinSingletonDep11, private val kspKotlinSingletonDep12: KspKotlinSingletonDep12, - private val kspKotlinSingletonDeps13: Set<@JvmSuppressWildcards KspKotlinSingletonDep13<*>> + private val kspKotlinSingletonDeps13: Set<@JvmSuppressWildcards KspKotlinSingletonDep13<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/JavacJavaFragmentDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/JavacJavaFragmentDeps.kt index 4e6006de..03644f0a 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/JavacJavaFragmentDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/JavacJavaFragmentDeps.kt @@ -41,7 +41,7 @@ internal class JavacJavaFragmentDeps @Inject constructor( @Named("dep8") private val javacJavaFragmentDep8: JavacJavaFragmentDep8, private val javacJavaFragmentDep9: JavacJavaFragmentDep9, private val javacJavaFragmentDep10: JavacJavaFragmentDep10, - private val javacJavaFragmentDeps11: Set<@JvmSuppressWildcards JavacJavaFragmentDep11<*>> + private val javacJavaFragmentDeps11: Set<@JvmSuppressWildcards JavacJavaFragmentDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/KaptJavaFragmentDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/KaptJavaFragmentDeps.kt index 01236ed0..f4d92f8d 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/KaptJavaFragmentDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/KaptJavaFragmentDeps.kt @@ -41,7 +41,7 @@ internal class KaptJavaFragmentDeps @Inject constructor( @Named("dep8") private val kaptJavaFragmentDep8: KaptJavaFragmentDep8, private val kaptJavaFragmentDep9: KaptJavaFragmentDep9, private val kaptJavaFragmentDep10: KaptJavaFragmentDep10, - private val kaptJavaFragmentDeps11: Set<@JvmSuppressWildcards KaptJavaFragmentDep11<*>> + private val kaptJavaFragmentDeps11: Set<@JvmSuppressWildcards KaptJavaFragmentDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/KaptKotlinFragmentDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/KaptKotlinFragmentDeps.kt index c5ebd101..45927cfe 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/KaptKotlinFragmentDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/KaptKotlinFragmentDeps.kt @@ -41,7 +41,7 @@ internal class KaptKotlinFragmentDeps @Inject constructor( @Named("dep8") private val kaptKotlinFragmentDep8: KaptKotlinFragmentDep8, private val kaptKotlinFragmentDep9: KaptKotlinFragmentDep9, private val kaptKotlinFragmentDep10: KaptKotlinFragmentDep10, - private val kaptKotlinFragmentDeps11: Set<@JvmSuppressWildcards KaptKotlinFragmentDep11<*>> + private val kaptKotlinFragmentDeps11: Set<@JvmSuppressWildcards KaptKotlinFragmentDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/KspJavaFragmentDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/KspJavaFragmentDeps.kt index fb1b8ae7..e4941518 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/KspJavaFragmentDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/KspJavaFragmentDeps.kt @@ -41,7 +41,7 @@ internal class KspJavaFragmentDeps @Inject constructor( @Named("dep8") private val kspJavaFragmentDep8: KspJavaFragmentDep8, private val kspJavaFragmentDep9: KspJavaFragmentDep9, private val kspJavaFragmentDep10: KspJavaFragmentDep10, - private val kspJavaFragmentDeps11: Set<@JvmSuppressWildcards KspJavaFragmentDep11<*>> + private val kspJavaFragmentDeps11: Set<@JvmSuppressWildcards KspJavaFragmentDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/KspKotlinFragmentDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/KspKotlinFragmentDeps.kt index 138d5e08..ae61b2fe 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/KspKotlinFragmentDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/fragment/KspKotlinFragmentDeps.kt @@ -41,7 +41,7 @@ internal class KspKotlinFragmentDeps @Inject constructor( @Named("dep8") private val kspKotlinFragmentDep8: KspKotlinFragmentDep8, private val kspKotlinFragmentDep9: KspKotlinFragmentDep9, private val kspKotlinFragmentDep10: KspKotlinFragmentDep10, - private val kspKotlinFragmentDeps11: Set<@JvmSuppressWildcards KspKotlinFragmentDep11<*>> + private val kspKotlinFragmentDeps11: Set<@JvmSuppressWildcards KspKotlinFragmentDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/JavacJavaViewModelDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/JavacJavaViewModelDeps.kt index ed2ac529..58ed0c05 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/JavacJavaViewModelDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/JavacJavaViewModelDeps.kt @@ -41,7 +41,7 @@ internal class JavacJavaViewModelDeps @Inject constructor( @Named("dep8") private val javacJavaViewModelDep8: JavacJavaViewModelDep8, private val javacJavaViewModelDep9: JavacJavaViewModelDep9, private val javacJavaViewModelDep10: JavacJavaViewModelDep10, - private val javacJavaViewModelDeps11: Set<@JvmSuppressWildcards JavacJavaViewModelDep11<*>> + private val javacJavaViewModelDeps11: Set<@JvmSuppressWildcards JavacJavaViewModelDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/KaptJavaViewModelDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/KaptJavaViewModelDeps.kt index dbea0859..695b21df 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/KaptJavaViewModelDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/KaptJavaViewModelDeps.kt @@ -41,7 +41,7 @@ internal class KaptJavaViewModelDeps @Inject constructor( @Named("dep8") private val kaptJavaViewModelDep8: KaptJavaViewModelDep8, private val kaptJavaViewModelDep9: KaptJavaViewModelDep9, private val kaptJavaViewModelDep10: KaptJavaViewModelDep10, - private val kaptJavaViewModelDeps11: Set<@JvmSuppressWildcards KaptJavaViewModelDep11<*>> + private val kaptJavaViewModelDeps11: Set<@JvmSuppressWildcards KaptJavaViewModelDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/KaptKotlinViewModelDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/KaptKotlinViewModelDeps.kt index cabfca49..9b99cc1e 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/KaptKotlinViewModelDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/KaptKotlinViewModelDeps.kt @@ -41,7 +41,7 @@ internal class KaptKotlinViewModelDeps @Inject constructor( @Named("dep8") private val kaptKotlinViewModelDep8: KaptKotlinViewModelDep8, private val kaptKotlinViewModelDep9: KaptKotlinViewModelDep9, private val kaptKotlinViewModelDep10: KaptKotlinViewModelDep10, - private val kaptKotlinViewModelDeps11: Set<@JvmSuppressWildcards KaptKotlinViewModelDep11<*>> + private val kaptKotlinViewModelDeps11: Set<@JvmSuppressWildcards KaptKotlinViewModelDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/KspJavaViewModelDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/KspJavaViewModelDeps.kt index 0d0d46e4..9cddbcae 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/KspJavaViewModelDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/KspJavaViewModelDeps.kt @@ -41,7 +41,7 @@ internal class KspJavaViewModelDeps @Inject constructor( @Named("dep8") private val kspJavaViewModelDep8: KspJavaViewModelDep8, private val kspJavaViewModelDep9: KspJavaViewModelDep9, private val kspJavaViewModelDep10: KspJavaViewModelDep10, - private val kspJavaViewModelDeps11: Set<@JvmSuppressWildcards KspJavaViewModelDep11<*>> + private val kspJavaViewModelDeps11: Set<@JvmSuppressWildcards KspJavaViewModelDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/KspKotlinViewModelDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/KspKotlinViewModelDeps.kt index 19e2e347..f69875ef 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/KspKotlinViewModelDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/KspKotlinViewModelDeps.kt @@ -41,7 +41,7 @@ internal class KspKotlinViewModelDeps @Inject constructor( @Named("dep8") private val kspKotlinViewModelDep8: KspKotlinViewModelDep8, private val kspKotlinViewModelDep9: KspKotlinViewModelDep9, private val kspKotlinViewModelDep10: KspKotlinViewModelDep10, - private val kspKotlinViewModelDeps11: Set<@JvmSuppressWildcards KspKotlinViewModelDep11<*>> + private val kspKotlinViewModelDeps11: Set<@JvmSuppressWildcards KspKotlinViewModelDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/MainFragmentViewModel.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/MainFragmentViewModel.kt index 7bd89999..5320d242 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/MainFragmentViewModel.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/viewmodel/MainFragmentViewModel.kt @@ -26,7 +26,7 @@ internal class MainFragmentViewModel @Inject constructor( private val kaptJavaDeps: KaptJavaViewModelDeps, private val kaptKotlinDeps: KaptKotlinViewModelDeps, private val kspJavaDeps: KspJavaViewModelDeps, - private val kspKotlinDeps: KspKotlinViewModelDeps + private val kspKotlinDeps: KspKotlinViewModelDeps, ) : ViewModel() { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/GreeterView.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/GreeterView.kt index 93f36ae6..c7acd689 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/GreeterView.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/GreeterView.kt @@ -26,7 +26,7 @@ import javax.inject.Inject internal class GreeterView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, - defStyleAttr: Int = 0 + defStyleAttr: Int = 0, ) : AppCompatTextView(context, attrs, defStyleAttr) { @Inject lateinit var javacJavaViewDeps: JavacJavaViewDeps diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/JavacJavaViewDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/JavacJavaViewDeps.kt index 13c48c9d..fc8a588c 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/JavacJavaViewDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/JavacJavaViewDeps.kt @@ -41,7 +41,7 @@ internal class JavacJavaViewDeps @Inject constructor( @Named("dep8") private val javacJavaViewDep8: JavacJavaViewDep8, private val javacJavaViewDep9: JavacJavaViewDep9, private val javacJavaViewDep10: JavacJavaViewDep10, - private val javacJavaViewDeps11: Set<@JvmSuppressWildcards JavacJavaViewDep11<*>> + private val javacJavaViewDeps11: Set<@JvmSuppressWildcards JavacJavaViewDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/KaptJavaViewDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/KaptJavaViewDeps.kt index 1e2dcdc1..fe5590bd 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/KaptJavaViewDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/KaptJavaViewDeps.kt @@ -41,7 +41,7 @@ internal class KaptJavaViewDeps @Inject constructor( @Named("dep8") private val kaptJavaViewDep8: KaptJavaViewDep8, private val kaptJavaViewDep9: KaptJavaViewDep9, private val kaptJavaViewDep10: KaptJavaViewDep10, - private val kaptJavaViewDeps11: Set<@JvmSuppressWildcards KaptJavaViewDep11<*>> + private val kaptJavaViewDeps11: Set<@JvmSuppressWildcards KaptJavaViewDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/KaptKotlinViewDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/KaptKotlinViewDeps.kt index 3ee94d32..02e0bddb 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/KaptKotlinViewDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/KaptKotlinViewDeps.kt @@ -41,7 +41,7 @@ internal class KaptKotlinViewDeps @Inject constructor( @Named("dep8") private val kaptKotlinViewDep8: KaptKotlinViewDep8, private val kaptKotlinViewDep9: KaptKotlinViewDep9, private val kaptKotlinViewDep10: KaptKotlinViewDep10, - private val kaptKotlinViewDeps11: Set<@JvmSuppressWildcards KaptKotlinViewDep11<*>> + private val kaptKotlinViewDeps11: Set<@JvmSuppressWildcards KaptKotlinViewDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/KspJavaViewDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/KspJavaViewDeps.kt index a978df41..c4f80577 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/KspJavaViewDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/KspJavaViewDeps.kt @@ -41,7 +41,7 @@ internal class KspJavaViewDeps @Inject constructor( @Named("dep8") private val kspJavaViewDep8: KspJavaViewDep8, private val kspJavaViewDep9: KspJavaViewDep9, private val kspJavaViewDep10: KspJavaViewDep10, - private val kspJavaViewDeps11: Set<@JvmSuppressWildcards KspJavaViewDep11<*>> + private val kspJavaViewDeps11: Set<@JvmSuppressWildcards KspJavaViewDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/KspKotlinViewDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/KspKotlinViewDeps.kt index b10b4325..cef6fe5d 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/KspKotlinViewDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/KspKotlinViewDeps.kt @@ -41,7 +41,7 @@ internal class KspKotlinViewDeps @Inject constructor( @Named("dep8") private val kspKotlinViewDep8: KspKotlinViewDep8, private val kspKotlinViewDep9: KspKotlinViewDep9, private val kspKotlinViewDep10: KspKotlinViewDep10, - private val kspKotlinViewDeps11: Set<@JvmSuppressWildcards KspKotlinViewDep11<*>> + private val kspKotlinViewDeps11: Set<@JvmSuppressWildcards KspKotlinViewDep11<*>>, ) { fun check() { diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/JavacJavaViewWithFragmentDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/JavacJavaViewWithFragmentDeps.kt index a6efe484..78021976 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/JavacJavaViewWithFragmentDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/JavacJavaViewWithFragmentDeps.kt @@ -28,5 +28,5 @@ internal class JavacJavaViewWithFragmentDeps @Inject constructor( private val javacJavaViewDep13: JavacJavaViewDep13, private val javacJavaViewDep14: JavacJavaViewDep14, private val javacJavaFragmentDep1: JavacJavaFragmentDep1, - private val javacJavaFragmentDep2: JavacJavaFragmentDep2 + private val javacJavaFragmentDep2: JavacJavaFragmentDep2, ) diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/KaptJavaViewWithFragmentDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/KaptJavaViewWithFragmentDeps.kt index 1ca6fd88..0ca04e74 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/KaptJavaViewWithFragmentDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/KaptJavaViewWithFragmentDeps.kt @@ -28,5 +28,5 @@ internal class KaptJavaViewWithFragmentDeps @Inject constructor( private val kaptJavaViewDep13: KaptJavaViewDep13, private val kaptJavaViewDep14: KaptJavaViewDep14, private val kaptJavaFragmentDep1: KaptJavaFragmentDep1, - private val kaptJavaFragmentDep2: KaptJavaFragmentDep2 + private val kaptJavaFragmentDep2: KaptJavaFragmentDep2, ) diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/KaptKotlinViewWithFragmentDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/KaptKotlinViewWithFragmentDeps.kt index f78d6777..67c136b1 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/KaptKotlinViewWithFragmentDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/KaptKotlinViewWithFragmentDeps.kt @@ -28,5 +28,5 @@ internal class KaptKotlinViewWithFragmentDeps @Inject constructor( private val kaptKotlinViewDep13: KaptKotlinViewDep13, private val kaptKotlinViewDep14: KaptKotlinViewDep14, private val kaptKotlinFragmentDep1: KaptKotlinFragmentDep1, - private val kaptKotlinFragmentDep2: KaptKotlinFragmentDep2 + private val kaptKotlinFragmentDep2: KaptKotlinFragmentDep2, ) diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/KspJavaViewWithFragmentDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/KspJavaViewWithFragmentDeps.kt index 4fe80584..bde6b414 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/KspJavaViewWithFragmentDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/KspJavaViewWithFragmentDeps.kt @@ -28,5 +28,5 @@ internal class KspJavaViewWithFragmentDeps @Inject constructor( private val kspJavaViewDep13: KspJavaViewDep13, private val kspJavaViewDep14: KspJavaViewDep14, private val kspJavaFragmentDep1: KspJavaFragmentDep1, - private val kspJavaFragmentDep2: KspJavaFragmentDep2 + private val kspJavaFragmentDep2: KspJavaFragmentDep2, ) diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/KspKotlinViewWithFragmentDeps.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/KspKotlinViewWithFragmentDeps.kt index ed716bf4..d4de6e14 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/KspKotlinViewWithFragmentDeps.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/KspKotlinViewWithFragmentDeps.kt @@ -28,5 +28,5 @@ internal class KspKotlinViewWithFragmentDeps @Inject constructor( private val kspKotlinViewDep13: KspKotlinViewDep13, private val kspKotlinViewDep14: KspKotlinViewDep14, private val kspKotlinFragmentDep1: KspKotlinFragmentDep1, - private val kspKotlinFragmentDep2: KspKotlinFragmentDep2 + private val kspKotlinFragmentDep2: KspKotlinFragmentDep2, ) diff --git a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/MoodAskerView.kt b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/MoodAskerView.kt index 4c33002c..362326e6 100644 --- a/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/MoodAskerView.kt +++ b/sample/src/main/java/com/paulrybitskyi/hiltbinder/sample/views/withfragment/MoodAskerView.kt @@ -28,7 +28,7 @@ import javax.inject.Inject internal class MoodAskerView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, - defStyleAttr: Int = 0 + defStyleAttr: Int = 0, ) : AppCompatTextView(context, attrs, defStyleAttr) { @Inject lateinit var javacJavaViewWithFragmentDeps: JavacJavaViewWithFragmentDeps