Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failure to build KMP JS Target with KSP 1.9.20-1.0.14 #319

Closed
AlexBurdu opened this issue Nov 15, 2023 · 4 comments
Closed

Failure to build KMP JS Target with KSP 1.9.20-1.0.14 #319

AlexBurdu opened this issue Nov 15, 2023 · 4 comments
Labels
blocked by 3rd-party bug Something isn't working ksp

Comments

@AlexBurdu
Copy link

AlexBurdu commented Nov 15, 2023

Updated Kotlin to 1.9.2 and KSP to 1.9.20-1.0.14 recently and the JS target in a KMP project is now failing with the below stacktrace. It only fails for the JS target; the other targets build fine if I remove JS.

e: java.lang.AssertionError: Rewrite at slice LEXICAL_SCOPE key: ANNOTATION_ENTRY old value: org.jetbrains.kotlin.resolve.scopes.LexicalScope$Base@52de31fa@1390293498 new value: org.jetbrains.kotlin.resolve.scopes.LexicalScope$Base@3e8875f7@1049130487
<File name: KotlinInjectExample.kt, Physical: true>
<ELEMENT>@Component</ELEMENT>
abstract class AppComponent {
  abstract val repo: Repository

  @Provides
  protected fun jsonParser(): JsonParser = RealJsonParser()

  protected val RealHttp.bind: Http
    @Provides get() = this

  companion object
}
	at org.jetbrains.kotlin.com.intellij.openapi.diagnostic.DefaultLogger.error(DefaultLogger.java:54)
	at org.jetbrains.kotlin.com.intellij.openapi.diagnostic.Logger.error(Logger.java:182)
	at org.jetbrains.kotlin.util.slicedMap.Slices.logErrorAboutRewritingNonEqualObjects(Slices.java:158)
	at org.jetbrains.kotlin.util.slicedMap.Slices.access$000(Slices.java:30)
	at org.jetbrains.kotlin.util.slicedMap.Slices$1.processRewrite(Slices.java:42)
	at org.jetbrains.kotlin.util.slicedMap.SlicedMapImpl.put(SlicedMapImpl.java:65)
	at org.jetbrains.kotlin.resolve.BindingTraceContext.record(BindingTraceContext.java:150)
	at org.jetbrains.kotlin.storage.LockBasedLazyResolveStorageManager$LockProtectedTrace$record$1.invoke(LockBasedLazyResolveStorageManager.kt:70)
	at org.jetbrains.kotlin.storage.LockBasedLazyResolveStorageManager$LockProtectedTrace$record$1.invoke(LockBasedLazyResolveStorageManager.kt:70)
	at org.jetbrains.kotlin.storage.LockBasedStorageManager.compute(LockBasedStorageManager.java:290)
	at org.jetbrains.kotlin.storage.LockBasedLazyResolveStorageManager$LockProtectedTrace.record(LockBasedLazyResolveStorageManager.kt:70)
	at org.jetbrains.kotlin.resolve.calls.CallResolver.resolveCallForConstructor(CallResolver.java:380)
	at org.jetbrains.kotlin.resolve.calls.CallResolver.resolveFunctionCall(CallResolver.java:334)
	at org.jetbrains.kotlin.resolve.calls.CallResolver.resolveFunctionCall(CallResolver.java:303)
	at org.jetbrains.kotlin.resolve.AnnotationResolverImpl.resolveAnnotationCall(AnnotationResolverImpl.java:167)
	at com.google.devtools.ksp.symbol.impl.binary.KSAnnotationDescriptorImplKt.getValueArguments(KSAnnotationDescriptorImpl.kt:200)
	at com.google.devtools.ksp.symbol.impl.binary.KSAnnotationDescriptorImplKt.createKSValueArguments(KSAnnotationDescriptorImpl.kt:237)
	at com.google.devtools.ksp.symbol.impl.kotlin.KSAnnotationImpl$arguments$2.invoke(KSAnnotationImpl.kt:83)
	at com.google.devtools.ksp.symbol.impl.kotlin.KSAnnotationImpl$arguments$2.invoke(KSAnnotationImpl.kt:82)
	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
	at com.google.devtools.ksp.symbol.impl.kotlin.KSAnnotationImpl.getArguments(KSAnnotationImpl.kt:82)
	at com.google.devtools.ksp.visitor.KSValidateVisitor.visitAnnotation(KSValidateVisitor.kt:50)
	at com.google.devtools.ksp.visitor.KSValidateVisitor.visitAnnotation(KSValidateVisitor.kt:5)
	at com.google.devtools.ksp.symbol.impl.kotlin.KSAnnotationImpl.accept(KSAnnotationImpl.kt:110)
	at com.google.devtools.ksp.visitor.KSValidateVisitor.visitAnnotated(KSValidateVisitor.kt:40)
	at com.google.devtools.ksp.visitor.KSValidateVisitor.visitDeclaration(KSValidateVisitor.kt:23)
	at com.google.devtools.ksp.visitor.KSValidateVisitor.visitClassDeclaration(KSValidateVisitor.kt:67)
	at com.google.devtools.ksp.visitor.KSValidateVisitor.visitClassDeclaration(KSValidateVisitor.kt:5)
	at com.google.devtools.ksp.symbol.impl.kotlin.KSClassDeclarationImpl.accept(KSClassDeclarationImpl.kt:135)
	at me.tatarka.inject.compiler.ksp.InjectProcessor.validate(InjectProcessor.kt:84)
	at me.tatarka.inject.compiler.ksp.InjectProcessor.process(InjectProcessor.kt:51)
	at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension$doAnalysis$8$1.invoke(KotlinSymbolProcessingExtension.kt:305)
	at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension$doAnalysis$8$1.invoke(KotlinSymbolProcessingExtension.kt:303)
	at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.handleException(KotlinSymbolProcessingExtension.kt:409)
	at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.doAnalysis(KotlinSymbolProcessingExtension.kt:303)
	at org.jetbrains.kotlin.js.analyze.AbstractTopDownAnalyzerFacadeForWeb.analyzeFilesWithGivenTrace(TopDownAnalyzerFacadeForJS.kt:142)
	at org.jetbrains.kotlin.js.analyze.AbstractTopDownAnalyzerFacadeForWeb.analyzeFiles(TopDownAnalyzerFacadeForJS.kt:94)
	at org.jetbrains.kotlin.ir.backend.js.ModulesStructure$runAnalysis$1.invoke(klib.kt:534)
	at org.jetbrains.kotlin.ir.backend.js.ModulesStructure$runAnalysis$1.invoke(klib.kt:533)
	at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:115)
	at org.jetbrains.kotlin.ir.backend.js.ModulesStructure.runAnalysis(klib.kt:533)
	at org.jetbrains.kotlin.ir.backend.js.PrepareAnalyzedSourceModuleKt.prepareAnalyzedSourceModule(prepareAnalyzedSourceModule.kt:30)
	at org.jetbrains.kotlin.ir.backend.js.PrepareAnalyzedSourceModuleKt.prepareAnalyzedSourceModule$default(prepareAnalyzedSourceModule.kt:17)
	at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.processSourceModule(K2JsIrCompiler.kt:427)
	at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.doExecute(K2JsIrCompiler.kt:273)
	at org.jetbrains.kotlin.cli.js.K2JSCompiler.doExecute(K2JSCompiler.java:181)
	at org.jetbrains.kotlin.cli.js.K2JSCompiler.doExecute(K2JSCompiler.java:72)
	at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:104)
	at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:48)
	at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
	at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1523)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
	at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
	at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
	at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.Throwable: Rewrite at slice LEXICAL_SCOPE key: ANNOTATION_ENTRY old value: org.jetbrains.kotlin.resolve.scopes.LexicalScope$Base@52de31fa@1390293498 new value: org.jetbrains.kotlin.resolve.scopes.LexicalScope$Base@3e8875f7@1049130487
<File name: KotlinInjectExample.kt, Physical: true>
<ELEMENT>@Component</ELEMENT>
abstract class AppComponent {
  abstract val repo: Repository

  @Provides
  protected fun jsonParser(): JsonParser = RealJsonParser()

  protected val RealHttp.bind: Http
    @Provides get() = this

  companion object
}
	... 67 more


java.lang.AssertionError: Rewrite at slice LEXICAL_SCOPE key: ANNOTATION_ENTRY old value: org.jetbrains.kotlin.resolve.scopes.LexicalScope$Base@52de31fa@1390293498 new value: org.jetbrains.kotlin.resolve.scopes.LexicalScope$Base@3e8875f7@1049130487
<File name: KotlinInjectExample.kt, Physical: true>
<ELEMENT>@Component</ELEMENT>
abstract class AppComponent {
  abstract val repo: Repository

  @Provides
  protected fun jsonParser(): JsonParser = RealJsonParser()

  protected val RealHttp.bind: Http
    @Provides get() = this

  companion object
}
	at org.jetbrains.kotlin.com.intellij.openapi.diagnostic.DefaultLogger.error(DefaultLogger.java:54)
	at org.jetbrains.kotlin.com.intellij.openapi.diagnostic.Logger.error(Logger.java:182)
	at org.jetbrains.kotlin.util.slicedMap.Slices.logErrorAboutRewritingNonEqualObjects(Slices.java:158)
	at org.jetbrains.kotlin.util.slicedMap.Slices.access$000(Slices.java:30)
	at org.jetbrains.kotlin.util.slicedMap.Slices$1.processRewrite(Slices.java:42)
	at org.jetbrains.kotlin.util.slicedMap.SlicedMapImpl.put(SlicedMapImpl.java:65)
	at org.jetbrains.kotlin.resolve.BindingTraceContext.record(BindingTraceContext.java:150)
	at org.jetbrains.kotlin.storage.LockBasedLazyResolveStorageManager$LockProtectedTrace$record$1.invoke(LockBasedLazyResolveStorageManager.kt:70)
	at org.jetbrains.kotlin.storage.LockBasedLazyResolveStorageManager$LockProtectedTrace$record$1.invoke(LockBasedLazyResolveStorageManager.kt:70)
	at org.jetbrains.kotlin.storage.LockBasedStorageManager.compute(LockBasedStorageManager.java:290)
	at org.jetbrains.kotlin.storage.LockBasedLazyResolveStorageManager$LockProtectedTrace.record(LockBasedLazyResolveStorageManager.kt:70)
	at org.jetbrains.kotlin.resolve.calls.CallResolver.resolveCallForConstructor(CallResolver.java:380)
	at org.jetbrains.kotlin.resolve.calls.CallResolver.resolveFunctionCall(CallResolver.java:334)
	at org.jetbrains.kotlin.resolve.calls.CallResolver.resolveFunctionCall(CallResolver.java:303)
	at org.jetbrains.kotlin.resolve.AnnotationResolverImpl.resolveAnnotationCall(AnnotationResolverImpl.java:167)
	at com.google.devtools.ksp.symbol.impl.binary.KSAnnotationDescriptorImplKt.getValueArguments(KSAnnotationDescriptorImpl.kt:200)
	at com.google.devtools.ksp.symbol.impl.binary.KSAnnotationDescriptorImplKt.createKSValueArguments(KSAnnotationDescriptorImpl.kt:237)
	at com.google.devtools.ksp.symbol.impl.kotlin.KSAnnotationImpl$arguments$2.invoke(KSAnnotationImpl.kt:83)
	at com.google.devtools.ksp.symbol.impl.kotlin.KSAnnotationImpl$arguments$2.invoke(KSAnnotationImpl.kt:82)
	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
	at com.google.devtools.ksp.symbol.impl.kotlin.KSAnnotationImpl.getArguments(KSAnnotationImpl.kt:82)
	at com.google.devtools.ksp.visitor.KSValidateVisitor.visitAnnotation(KSValidateVisitor.kt:50)
	at com.google.devtools.ksp.visitor.KSValidateVisitor.visitAnnotation(KSValidateVisitor.kt:5)
	at com.google.devtools.ksp.symbol.impl.kotlin.KSAnnotationImpl.accept(KSAnnotationImpl.kt:110)
	at com.google.devtools.ksp.visitor.KSValidateVisitor.visitAnnotated(KSValidateVisitor.kt:40)
	at com.google.devtools.ksp.visitor.KSValidateVisitor.visitDeclaration(KSValidateVisitor.kt:23)
	at com.google.devtools.ksp.visitor.KSValidateVisitor.visitClassDeclaration(KSValidateVisitor.kt:67)
	at com.google.devtools.ksp.visitor.KSValidateVisitor.visitClassDeclaration(KSValidateVisitor.kt:5)
	at com.google.devtools.ksp.symbol.impl.kotlin.KSClassDeclarationImpl.accept(KSClassDeclarationImpl.kt:135)
	at me.tatarka.inject.compiler.ksp.InjectProcessor.validate(InjectProcessor.kt:84)
	at me.tatarka.inject.compiler.ksp.InjectProcessor.process(InjectProcessor.kt:51)
	at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension$doAnalysis$8$1.invoke(KotlinSymbolProcessingExtension.kt:305)
	at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension$doAnalysis$8$1.invoke(KotlinSymbolProcessingExtension.kt:303)
	at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.handleException(KotlinSymbolProcessingExtension.kt:409)
	at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.doAnalysis(KotlinSymbolProcessingExtension.kt:303)
	at org.jetbrains.kotlin.js.analyze.AbstractTopDownAnalyzerFacadeForWeb.analyzeFilesWithGivenTrace(TopDownAnalyzerFacadeForJS.kt:142)
	at org.jetbrains.kotlin.js.analyze.AbstractTopDownAnalyzerFacadeForWeb.analyzeFiles(TopDownAnalyzerFacadeForJS.kt:94)
	at org.jetbrains.kotlin.ir.backend.js.ModulesStructure$runAnalysis$1.invoke(klib.kt:534)
	at org.jetbrains.kotlin.ir.backend.js.ModulesStructure$runAnalysis$1.invoke(klib.kt:533)
	at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:115)
	at org.jetbrains.kotlin.ir.backend.js.ModulesStructure.runAnalysis(klib.kt:533)
	at org.jetbrains.kotlin.ir.backend.js.PrepareAnalyzedSourceModuleKt.prepareAnalyzedSourceModule(prepareAnalyzedSourceModule.kt:30)
	at org.jetbrains.kotlin.ir.backend.js.PrepareAnalyzedSourceModuleKt.prepareAnalyzedSourceModule$default(prepareAnalyzedSourceModule.kt:17)
	at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.processSourceModule(K2JsIrCompiler.kt:427)
	at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.doExecute(K2JsIrCompiler.kt:273)
	at org.jetbrains.kotlin.cli.js.K2JSCompiler.doExecute(K2JSCompiler.java:181)
	at org.jetbrains.kotlin.cli.js.K2JSCompiler.doExecute(K2JSCompiler.java:72)
	at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:104)
	at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:48)
	at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
	at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1523)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
	at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
	at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
	at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.Throwable: Rewrite at slice LEXICAL_SCOPE key: ANNOTATION_ENTRY old value: org.jetbrains.kotlin.resolve.scopes.LexicalScope$Base@52de31fa@1390293498 new value: org.jetbrains.kotlin.resolve.scopes.LexicalScope$Base@3e8875f7@1049130487
<File name: KotlinInjectExample.kt, Physical: true>
<ELEMENT>@Component</ELEMENT>
abstract class AppComponent {
  abstract val repo: Repository

  @Provides
  protected fun jsonParser(): JsonParser = RealJsonParser()

  protected val RealHttp.bind: Http
    @Provides get() = this

  companion object
}
	... 67 more

The class it tries to generate is pretty basic, as this is just a POC to integrate Kotlin Inject:

@Component
abstract class AppComponent {
  abstract val repo: Repository

  @Provides
  protected fun jsonParser(): JsonParser = RealJsonParser()

  protected val RealHttp.bind: Http
    @Provides get() = this

  companion object
}

interface Http

interface JsonParser

class RealJsonParser : JsonParser

@Inject
class RealHttp : Http

@Inject
class Api(private val http: Http, private val jsonParser: JsonParser)

@Inject
class Repository(private val api: Api)

Module build.gradle.kts file:

import org.gradle.configurationcache.extensions.capitalized
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType

plugins {
  kotlin("multiplatform")
  kotlin("native.cocoapods")
  id("org.jetbrains.compose")
  id("com.google.devtools.ksp") version "1.9.20-1.0.14"
  id("app.cash.sqldelight") version "2.0.0"
  id("com.android.library")
}

kotlin {
  // Add Android target platform
  android()

  // Add iOS target platforms
  iosX64()
  iosArm64()
  iosSimulatorArm64()

  // Add JS target platform
  js(IR).browser()

  // Add JVM target platform
  jvm("jvm") {
    jvmToolchain(17)
  }

  cocoapods {
    version = "1.0.0"
    summary = "Some description for the Shared Module"
    homepage = "Link to the Shared Module homepage"
    ios.deploymentTarget = "14.1"
    podfile = project.file("../iosApp/Podfile")
    framework {
      baseName = "main"
      isStatic = true
    }
  }

  sourceSets {
    val commonMain by getting {
      kotlin.apply {
        srcDir("commonMain")
        resources.srcDir("commonMain/resources")
      }

      dependencies {
        implementation(project(":kotlin:net:burdu:libs:repository:_gradle_gen:repository"))
        implementation("org.jetbrains.compose.animation:animation:1.5.10")
        implementation("org.jetbrains.compose.components:components-resources:1.5.10")
        implementation("org.jetbrains.compose.foundation:foundation:1.5.10")
        implementation("org.jetbrains.compose.material:material:1.5.10")
        implementation("org.jetbrains.compose.runtime:runtime:1.5.10")
        implementation("org.jetbrains.compose.ui:ui:1.5.10")
        implementation("me.tatarka.inject:kotlin-inject-runtime:0.6.3")
      }
    }

    val commonTest by getting {
      kotlin.apply {
        srcDir("commonTest")
      }
    }

    // Add Android source sets
    val androidMain by getting {
      kotlin.apply {
        srcDir("androidMain")
      }
    }

    // Add Android instrumentation tests source sets
    val androidInstrumentedTest by getting {
      kotlin.apply {
        srcDir("androidTest")
      }
    }

    // Add iOS source sets
    val iosX64Main by getting
    val iosArm64Main by getting
    val iosSimulatorArm64Main by getting
    val iosMain by creating {
      dependsOn(commonMain)
      iosX64Main.dependsOn(this)
      iosArm64Main.dependsOn(this)
      iosSimulatorArm64Main.dependsOn(this)
    }

    // Add JS source sets
    val jsMain by getting {
      kotlin.apply {
        srcDir("jsMain")
      }
      dependencies {
        implementation("org.jetbrains.compose.html:html-core:1.5.10")
      }
    }

    val jsTest by getting {
      kotlin.apply {
        srcDir("jsTest")
      }
    }

    // Add JVM source sets
    val jvmMain by getting {
      kotlin.apply {
        srcDir("jvmMain")
      }
      dependencies {
        
        implementation("org.jetbrains.compose.ui:ui-tooling-preview:1.5.10")
      }
    }

    val jvmTest by getting {
      kotlin.apply {
        srcDir("jvmTest")
      }
    }
  }

}

// Add Android extension block
android {
  sourceSets["main"].apply {
    kotlin.srcDirs("androidMain")
    manifest.srcFile("androidMain/AndroidManifest.xml")
    res.srcDirs("androidMain/res")
    resources.srcDirs("commonMain/resources")
  }

  namespace = "com.my.app"
  defaultConfig {
    minSdk = 28
    targetSdk = 34
  }
  compileSdk = 34

  compileOptions {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
  }

  kotlin {
    jvmToolchain(17)
  }
}

ksp {
  arg("me.tatarka.inject.generateCompanionExtensions", "true")
}

dependencies {
  kotlin.targets.asSequence().filter { target ->
      // Don't add KSP for common target, only final platforms
      target.platformType != KotlinPlatformType.common
    }.forEach { target ->
      add(
        "ksp${target.targetName.capitalized()}",
        "me.tatarka.inject:kotlin-inject-compiler-ksp:0.6.3"
      )
    }
}
sqldelight {
  databases {
    create("Database") {
      packageName.set("com.my.app")
    }
  }
}
@AlexBurdu
Copy link
Author

Similar to issue #316 this builds just fine with KSP 1.9.10-1.0.13

@evant
Copy link
Owner

evant commented Nov 15, 2023

This one actually looks like a bug in ksp itself, you may want to file there directly

@evant evant added bug Something isn't working blocked by 3rd-party ksp labels Nov 15, 2023
@AlexBurdu
Copy link
Author

looks like it just got resolved a few hours ago: google/ksp#1591

@evant
Copy link
Owner

evant commented Nov 27, 2023

ksp fix has been released https://github.com/google/ksp/releases/tag/1.9.21-1.0.15

@evant evant closed this as completed Nov 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked by 3rd-party bug Something isn't working ksp
Projects
None yet
Development

No branches or pull requests

2 participants