google / ksp

Kotlin Symbol Processing API
https://github.com/google/ksp
Apache License 2.0
2.82k stars 265 forks source link

`Unresolved local class Foo.<no name provided>` when running Dagger via KSP #1535

Open lwasyl opened 1 year ago

lwasyl commented 1 year ago

I wasn't sure where to open the issue but since it happens for K2 only, I guess it's mostly related to KSP.

Basically Dagger-KSP will fail with the exception below. The referenced class is public, accessible from the module which fails KSP, and has just a regular @Scope and @Inject annotations. I'm not able to dig in deeper at this moment, I hope the root cause will be possible to find by stacktrace only:

> Task :app:kspDevDebugKotlin FAILED
e: [ksp] java.lang.UnsupportedOperationException: Unresolved local class: com/toptal/talent/domain/dashboard/jobActivity/categoryEntries/JobActivityCategoryPagingStateProvider.<no name provided>
        at org.jetbrains.kotlin.descriptors.NotFoundClasses$classes$1.invoke(NotFoundClasses.kt:35)
        at org.jetbrains.kotlin.descriptors.NotFoundClasses$classes$1.invoke(NotFoundClasses.kt:33)
        at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:578)
        at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull.invoke(LockBasedStorageManager.java:681)
        at org.jetbrains.kotlin.descriptors.NotFoundClasses.getClass(NotFoundClasses.kt:97)
        at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.typeConstructor$notFoundClass(TypeDeserializer.kt:151)
        at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.typeConstructor(TypeDeserializer.kt:156)
        at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.simpleType(TypeDeserializer.kt:91)
        at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.type(TypeDeserializer.kt:68)
        at org.jetbrains.kotlin.serialization.deserialization.MemberDeserializer.loadProperty(MemberDeserializer.kt:57)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation.computeProperties(DeserializedMemberScope.kt:314)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation.access$computeProperties(DeserializedMemberScope.kt:228)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation$properties$1.invoke(DeserializedMemberScope.kt:253)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation$properties$1.invoke(DeserializedMemberScope.kt:253)
        at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:578)
        at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull.invoke(LockBasedStorageManager.java:681)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation.getContributedVariables(DeserializedMemberScope.kt:338)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation.addFunctionsAndPropertiesTo(DeserializedMemberScope.kt:352)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope.computeDescriptors(DeserializedMemberScope.kt:115)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor$DeserializedClassMemberScope$allDescriptors$1.invoke(DeserializedClassDescriptor.kt:277)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor$DeserializedClassMemberScope$allDescriptors$1.invoke(DeserializedClassDescriptor.kt:276)
        at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:408)
        at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:527)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor$DeserializedClassMemberScope.getContributedDescriptors(DeserializedClassDescriptor.kt:287)
        at org.jetbrains.kotlin.resolve.scopes.MemberScopeKt.getDescriptorsFiltered(MemberScope.kt:87)
        at org.jetbrains.kotlin.resolve.scopes.MemberScopeKt.getDescriptorsFiltered$default(MemberScope.kt:82)
        at com.google.devtools.ksp.symbol.impl.binary.KSClassDeclarationDescriptorImpl$declarations$2.invoke(KSClassDeclarationDescriptorImpl.kt:101)
        at com.google.devtools.ksp.symbol.impl.binary.KSClassDeclarationDescriptorImpl$declarations$2.invoke(KSClassDeclarationDescriptorImpl.kt:99)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
        at com.google.devtools.ksp.symbol.impl.binary.KSClassDeclarationDescriptorImpl.getDeclarations(KSClassDeclarationDescriptorImpl.kt:99)
        at com.google.devtools.ksp.symbol.impl.UtilsKt.getDeclarationsInSourceOrder(utils.kt:469)
        at com.google.devtools.ksp.processing.impl.ResolverImpl.getDeclarationsInSourceOrder(ResolverImpl.kt:1139)
        at dagger.spi.shaded.androidx.room.compiler.processing.ksp.KspTypeElement.getDeclarationsInSourceOrder(KspTypeElement.kt:415)
        at dagger.spi.shaded.androidx.room.compiler.processing.ksp.KspTypeElement$_declaredProperties$2.invoke(KspTypeElement.kt:161)
        at dagger.spi.shaded.androidx.room.compiler.processing.ksp.KspTypeElement$_declaredProperties$2.invoke(KspTypeElement.kt:159)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
        at dagger.spi.shaded.androidx.room.compiler.processing.ksp.KspTypeElement.get_declaredProperties(KspTypeElement.kt:159)
        at dagger.spi.shaded.androidx.room.compiler.processing.ksp.KspTypeElement.access$get_declaredProperties(KspTypeElement.kt:57)
        at dagger.spi.shaded.androidx.room.compiler.processing.ksp.KspTypeElement$_declaredFields$2.invoke(KspTypeElement.kt:176)
        at dagger.spi.shaded.androidx.room.compiler.processing.ksp.KspTypeElement$_declaredFields$2.invoke(KspTypeElement.kt:175)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
        at dagger.spi.shaded.androidx.room.compiler.processing.ksp.KspTypeElement.get_declaredFields(KspTypeElement.kt:175)
        at dagger.spi.shaded.androidx.room.compiler.processing.ksp.KspTypeElement.getDeclaredFields(KspTypeElement.kt:248)
        at dagger.internal.codegen.validation.InjectValidator.validateForMembersInjectionInternalUncached(InjectValidator.java:371)
        at dagger.internal.codegen.base.Util.reentrantComputeIfAbsent(Util.java:33)
        at dagger.internal.codegen.validation.InjectValidator.validateForMembersInjectionInternal(InjectValidator.java:361)
        at dagger.internal.codegen.validation.InjectValidator.validateUncached(InjectValidator.java:142)
        at dagger.internal.codegen.base.Util.reentrantComputeIfAbsent(Util.java:33)
        at dagger.internal.codegen.validation.InjectValidator.validate(InjectValidator.java:137)
        at dagger.internal.codegen.validation.InjectBindingRegistryImpl.getOrFindProvisionBinding(InjectBindingRegistryImpl.java:343)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.lookUpBindings(BindingGraphFactory.java:425)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.createDelegateBinding(BindingGraphFactory.java:546)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.createDelegateBindings(BindingGraphFactory.java:527)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.getLocalExplicitBindings(BindingGraphFactory.java:710)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.lookUpBindings(BindingGraphFactory.java:370)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.createDelegateBinding(BindingGraphFactory.java:546)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.createDelegateBindings(BindingGraphFactory.java:527)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.getLocalExplicitBindings(BindingGraphFactory.java:710)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.lookUpBindings(BindingGraphFactory.java:370)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.resolve(BindingGraphFactory.java:813)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.resolveDependencies(BindingGraphFactory.java:828)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.resolve(BindingGraphFactory.java:815)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.resolveDependencies(BindingGraphFactory.java:828)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.resolve(BindingGraphFactory.java:815)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.resolveDependencies(BindingGraphFactory.java:828)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.resolve(BindingGraphFactory.java:815)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.resolveDependencies(BindingGraphFactory.java:828)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.resolve(BindingGraphFactory.java:815)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.resolveDependencies(BindingGraphFactory.java:828)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.resolve(BindingGraphFactory.java:815)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.resolveDependencies(BindingGraphFactory.java:828)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.resolve(BindingGraphFactory.java:815)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.resolveDependencies(BindingGraphFactory.java:828)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.resolveMembersInjection(BindingGraphFactory.java:771)
        at dagger.internal.codegen.binding.BindingGraphFactory$Resolver.access$1300(BindingGraphFactory.java:302)
        at dagger.internal.codegen.binding.BindingGraphFactory.lambda$createLegacyBindingGraph$5(BindingGraphFactory.java:208)
        at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
        at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1921)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
        at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
        at dagger.internal.codegen.binding.BindingGraphFactory.createLegacyBindingGraph(BindingGraphFactory.java:205)
        at dagger.internal.codegen.binding.BindingGraphFactory.createLegacyBindingGraph(BindingGraphFactory.java:234)
        at dagger.internal.codegen.binding.BindingGraphFactory.createLegacyBindingGraph(BindingGraphFactory.java:234)
        at dagger.internal.codegen.binding.BindingGraphFactory.createLegacyBindingGraph(BindingGraphFactory.java:234)
        at dagger.internal.codegen.binding.BindingGraphFactory.create(BindingGraphFactory.java:112)
        at dagger.internal.codegen.processingstep.ComponentProcessingStep.processRootComponent(ComponentProcessingStep.java:117)
        at dagger.internal.codegen.processingstep.ComponentProcessingStep.process(ComponentProcessingStep.java:88)
        at dagger.internal.codegen.processingstep.ComponentProcessingStep.process(ComponentProcessingStep.java:50)
        at dagger.internal.codegen.processingstep.TypeCheckingProcessingStep.lambda$process$0(TypeCheckingProcessingStep.java:82)
        at com.google.common.collect.RegularImmutableMap.forEach(RegularImmutableMap.java:297)
        at dagger.internal.codegen.processingstep.TypeCheckingProcessingStep.process(TypeCheckingProcessingStep.java:70)
        at dagger.internal.codegen.processingstep.TypeCheckingProcessingStep.process(TypeCheckingProcessingStep.java:48)
        at dagger.spi.shaded.androidx.room.compiler.processing.XProcessingStep.process(XProcessingStep.kt:59)
        at dagger.spi.shaded.androidx.room.compiler.processing.CommonProcessorDelegate.processRound(XBasicAnnotationProcessor.kt:130)
        at dagger.spi.shaded.androidx.room.compiler.processing.ksp.KspBasicAnnotationProcessor.process(KspBasicAnnotationProcessor.kt:62)
        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.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:112)
        at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:77)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:256)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:247)
        at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:115)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:247)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:87)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:43)
        at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:165)
        at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:50)
        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.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        at java.base/java.lang.reflect.Method.invoke(Method.java:578)
        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:714)
        at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
        at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:598)
        at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:844)
        at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:721)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
        at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:720)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at java.base/java.lang.Thread.run(Thread.java:1623)
mehdisamavat commented 11 months ago

Hi @lwasyl I face it too Did you find any solution?

Tolriq commented 10 months ago

Facing the same error with k2 in 1.9.20 and ksp 1.9.20-1.0.14

This only happen in 2 specific modules trying to inject another class from another module.

[ksp] java.lang.UnsupportedOperationException: Unresolved local class: app/symfonik/core/webserver/WebServerManager.<no name provided>
    at org.jetbrains.kotlin.descriptors.NotFoundClasses$classes$1.invoke(NotFoundClasses.kt:35)
    at org.jetbrains.kotlin.descriptors.NotFoundClasses$classes$1.invoke(NotFoundClasses.kt:33)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:578)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull.invoke(LockBasedStorageManager.java:681)
    at org.jetbrains.kotlin.descriptors.NotFoundClasses.getClass(NotFoundClasses.kt:97)
    at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.typeConstructor$notFoundClass(TypeDeserializer.kt:151)
    at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.typeConstructor(TypeDeserializer.kt:156)
    at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.simpleType(TypeDeserializer.kt:91)
    at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.type(TypeDeserializer.kt:68)
    at org.jetbrains.kotlin.serialization.deserialization.MemberDeserializer.loadProperty(MemberDeserializer.kt:57)
    at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation.computeProperties(DeserializedMemberScope.kt:314)
    at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation.access$computeProperties(DeserializedMemberScope.kt:228)
    at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation$properties$1.invoke(DeserializedMemberScope.kt:253)
    at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation$properties$1.invoke(DeserializedMemberScope.kt:253)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:578)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull.invoke(LockBasedStorageManager.java:681)
    at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation.getContributedVariables(DeserializedMemberScope.kt:338)
    at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation.addFunctionsAndPropertiesTo(DeserializedMemberScope.kt:352)
    at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope.computeDescriptors(DeserializedMemberScope.kt:115)
    at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor$DeserializedClassMemberScope$allDescriptors$1.invoke(DeserializedClassDescriptor.kt:277)
    at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor$DeserializedClassMemberScope$allDescriptors$1.invoke(DeserializedClassDescriptor.kt:276)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:408)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:527)
    at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor$DeserializedClassMemberScope.getContributedDescriptors(DeserializedClassDescriptor.kt:287)
    at org.jetbrains.kotlin.resolve.scopes.MemberScopeKt.getDescriptorsFiltered(MemberScope.kt:87)
    at org.jetbrains.kotlin.resolve.scopes.MemberScopeKt.getDescriptorsFiltered$default(MemberScope.kt:82)
    at com.google.devtools.ksp.symbol.impl.binary.KSClassDeclarationDescriptorImpl$declarations$2.invoke(KSClassDeclarationDescriptorImpl.kt:101)
    at com.google.devtools.ksp.symbol.impl.binary.KSClassDeclarationDescriptorImpl$declarations$2.invoke(KSClassDeclarationDescriptorImpl.kt:99)
    at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
    at com.google.devtools.ksp.symbol.impl.binary.KSClassDeclarationDescriptorImpl.getDeclarations(KSClassDeclarationDescriptorImpl.kt:99)
    at com.google.devtools.ksp.UtilsKt.getDeclaredFunctions(utils.kt:94)
    at com.google.devtools.ksp.UtilsKt.getConstructors(utils.kt:108)
    at dagger.spi.shaded.androidx.room.compiler.processing.ksp.KspTypeElement.getConstructors(KspTypeElement.kt:326)
    at dagger.internal.codegen.binding.AssistedInjectionAnnotations.assistedInjectedConstructors(AssistedInjectionAnnotations.java:132)
    at dagger.internal.codegen.binding.AssistedInjectionAnnotations.isAssistedInjectionType(AssistedInjectionAnnotations.java:69)
    at dagger.internal.codegen.validation.DependencyRequestValidator$Validator.checkType(DependencyRequestValidator.java:160)
    at dagger.internal.codegen.validation.DependencyRequestValidator$Validator.validate(DependencyRequestValidator.java:134)
    at dagger.internal.codegen.validation.DependencyRequestValidator.validateDependencyRequest(DependencyRequestValidator.java:92)
    at dagger.internal.codegen.validation.InjectValidator.validateDependencyRequest(InjectValidator.java:350)
    at dagger.internal.codegen.validation.InjectValidator.validateConstructor(InjectValidator.java:226)
    at dagger.internal.codegen.validation.InjectValidator.validateUncached(InjectValidator.java:154)
    at dagger.internal.codegen.base.Util.reentrantComputeIfAbsent(Util.java:33)
    at dagger.internal.codegen.validation.InjectValidator.validate(InjectValidator.java:137)
    at dagger.internal.codegen.validation.InjectBindingRegistryImpl.tryRegisterConstructor(InjectBindingRegistryImpl.java:290)
    at dagger.internal.codegen.validation.InjectBindingRegistryImpl.tryRegisterInjectConstructor(InjectBindingRegistryImpl.java:274)
    at dagger.internal.codegen.processingstep.InjectProcessingStep.process(InjectProcessingStep.java:73)
    at dagger.internal.codegen.processingstep.TypeCheckingProcessingStep.lambda$process$0(TypeCheckingProcessingStep.java:82)
    at com.google.common.collect.RegularImmutableMap.forEach(RegularImmutableMap.java:196)
    at dagger.internal.codegen.processingstep.TypeCheckingProcessingStep.process(TypeCheckingProcessingStep.java:70)
    at dagger.internal.codegen.processingstep.TypeCheckingProcessingStep.process(TypeCheckingProcessingStep.java:48)
    at dagger.spi.shaded.androidx.room.compiler.processing.XProcessingStep.process(XProcessingStep.kt:59)
    at dagger.spi.shaded.androidx.room.compiler.processing.CommonProcessorDelegate.processRound(XBasicAnnotationProcessor.kt:130)
    at dagger.spi.shaded.androidx.room.compiler.processing.ksp.KspBasicAnnotationProcessor.process(KspBasicAnnotationProcessor.kt:62)
    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.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:112)
    at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:77)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:256)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:247)
    at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:115)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:247)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:87)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:43)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:165)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:50)
    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 jdk.internal.reflect.GeneratedMethodAccessor93.invoke(Unknown Source)
    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)
Hiraev commented 10 months ago

@lwasyl @Tolriq Any updates here? Have you found a workaround?

lwasyl commented 10 months ago

Still happening in Kotlin 2.0.0-Beta1 and KSP 2.0.0-Beta1-1.0.14

e: [ksp] java.lang.UnsupportedOperationException: Unresolved local class: com/redacted/SomeClassName.<no name provided>
        at org.jetbrains.kotlin.descriptors.NotFoundClasses$classes$1.invoke(NotFoundClasses.kt:35)
        at org.jetbrains.kotlin.descriptors.NotFoundClasses$classes$1.invoke(NotFoundClasses.kt:33)
        at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:578)
        at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull.invoke(LockBasedStorageManager.java:681)
        at org.jetbrains.kotlin.descriptors.NotFoundClasses.getClass(NotFoundClasses.kt:97)
        at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.typeConstructor$notFoundClass(TypeDeserializer.kt:151)
        at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.typeConstructor(TypeDeserializer.kt:156)
        at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.simpleType(TypeDeserializer.kt:91)
        at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.type(TypeDeserializer.kt:68)
        at org.jetbrains.kotlin.serialization.deserialization.MemberDeserializer.loadProperty(MemberDeserializer.kt:57)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation.computeProperties(DeserializedMemberScope.kt:314)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation.access$computeProperties(DeserializedMemberScope.kt:228)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation$properties$1.invoke(DeserializedMemberScope.kt:253)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation$properties$1.invoke(DeserializedMemberScope.kt:253)
        at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:578)
        at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull.invoke(LockBasedStorageManager.java:681)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation.getContributedVariables(DeserializedMemberScope.kt:338)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation.addFunctionsAndPropertiesTo(DeserializedMemberScope.kt:352)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope.computeDescriptors(DeserializedMemberScope.kt:115)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor$DeserializedClassMemberScope$allDescriptors$1.invoke(DeserializedClassDescriptor.kt:279)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor$DeserializedClassMemberScope$allDescriptors$1.invoke(DeserializedClassDescriptor.kt:278)
        at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:408)
        at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:527)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor$DeserializedClassMemberScope.getContributedDescriptors(DeserializedClassDescriptor.kt:289)
        at org.jetbrains.kotlin.resolve.scopes.MemberScopeKt.getDescriptorsFiltered(MemberScope.kt:87)
        at org.jetbrains.kotlin.resolve.scopes.MemberScopeKt.getDescriptorsFiltered$default(MemberScope.kt:82)
        at com.google.devtools.ksp.symbol.impl.binary.KSClassDeclarationDescriptorImpl$declarations$2.invoke(KSClassDeclarationDescriptorImpl.kt:101)
        at com.google.devtools.ksp.symbol.impl.binary.KSClassDeclarationDescriptorImpl$declarations$2.invoke(KSClassDeclarationDescriptorImpl.kt:99)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
        at com.google.devtools.ksp.symbol.impl.binary.KSClassDeclarationDescriptorImpl.getDeclarations(KSClassDeclarationDescriptorImpl.kt:99)
        at com.google.devtools.ksp.UtilsKt.getDeclaredFunctions(utils.kt:94)
        at com.google.devtools.ksp.UtilsKt.getConstructors(utils.kt:108)
        at dagger.spi.shaded.androidx.room.compiler.processing.ksp.KspTypeElement.getConstructors(KspTypeElement.kt:326)
        at dagger.internal.codegen.binding.AssistedInjectionAnnotations.assistedInjectedConstructors(AssistedInjectionAnnotations.java:132)
        at dagger.internal.codegen.binding.AssistedInjectionAnnotations.isAssistedInjectionType(AssistedInjectionAnnotations.java:69)
        at dagger.internal.codegen.validation.DependencyRequestValidator$Validator.checkType(DependencyRequestValidator.java:160)
        at dagger.internal.codegen.validation.DependencyRequestValidator$Validator.validate(DependencyRequestValidator.java:134)
        at dagger.internal.codegen.validation.DependencyRequestValidator.validateDependencyRequest(DependencyRequestValidator.java:92)
        at dagger.internal.codegen.validation.BindingMethodValidator$MethodValidator.checkParameter(BindingMethodValidator.java:233)
        at dagger.internal.codegen.validation.ProvidesMethodValidator$Validator.checkParameter(ProvidesMethodValidator.java:68)
        at dagger.internal.codegen.validation.BindingMethodValidator$MethodValidator.checkParameters(BindingMethodValidator.java:224)
        at dagger.internal.codegen.validation.BindingMethodValidator$MethodValidator.checkAdditionalProperties(BindingMethodValidator.java:149)
        at dagger.internal.codegen.validation.BindingElementValidator$ElementValidator.validate(BindingElementValidator.java:149)
        at dagger.internal.codegen.validation.BindingElementValidator$ElementValidator.access$000(BindingElementValidator.java:131)
        at dagger.internal.codegen.validation.BindingElementValidator.validateUncached(BindingElementValidator.java:80)
        at dagger.internal.codegen.base.Util.reentrantComputeIfAbsent(Util.java:33)
        at dagger.internal.codegen.validation.BindingElementValidator.validate(BindingElementValidator.java:76)
        at dagger.internal.codegen.validation.AnyBindingMethodValidator.validateUncached(AnyBindingMethodValidator.java:102)
        at dagger.internal.codegen.base.Util.reentrantComputeIfAbsent(Util.java:33)
        at dagger.internal.codegen.validation.AnyBindingMethodValidator.validate(AnyBindingMethodValidator.java:80)
        at dagger.internal.codegen.validation.ModuleValidator.validateUncached(ModuleValidator.java:174)
        at dagger.internal.codegen.validation.ModuleValidator.lambda$validate$0(ModuleValidator.java:162)
        at dagger.internal.codegen.base.Util.reentrantComputeIfAbsent(Util.java:33)
        at dagger.internal.codegen.validation.ModuleValidator.validate(ModuleValidator.java:162)
        at dagger.internal.codegen.validation.ModuleValidator.validate(ModuleValidator.java:157)
        at dagger.internal.codegen.processingstep.ModuleProcessingStep.process(ModuleProcessingStep.java:111)
        at dagger.internal.codegen.processingstep.ModuleProcessingStep.process(ModuleProcessingStep.java:50)
        at dagger.internal.codegen.processingstep.TypeCheckingProcessingStep.lambda$process$0(TypeCheckingProcessingStep.java:82)
        at com.google.common.collect.RegularImmutableMap.forEach(RegularImmutableMap.java:297)
        at dagger.internal.codegen.processingstep.TypeCheckingProcessingStep.process(TypeCheckingProcessingStep.java:70)
        at dagger.internal.codegen.processingstep.ModuleProcessingStep.process(ModuleProcessingStep.java:95)
        at dagger.internal.codegen.processingstep.ModuleProcessingStep.process(ModuleProcessingStep.java:50)
        at dagger.spi.shaded.androidx.room.compiler.processing.XProcessingStep.process(XProcessingStep.kt:59)
        at dagger.spi.shaded.androidx.room.compiler.processing.CommonProcessorDelegate.processRound(XBasicAnnotationProcessor.kt:130)
        at dagger.spi.shaded.androidx.room.compiler.processing.ksp.KspBasicAnnotationProcessor.process(KspBasicAnnotationProcessor.kt:62)
        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.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:112)
        at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:75)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:381)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:372)
        at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:115)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:372)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.runFrontendAndGenerateIrUsingClassicFrontend(KotlinToJVMBytecodeCompiler.kt:203)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:115)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:57)
        at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:176)
        at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:50)
        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:1508)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        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:714)
        at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
        at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:598)
        at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:844)
        at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:721)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
        at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:720)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at java.base/java.lang.Thread.run(Thread.java:1583)
neetopia commented 10 months ago

can anyone give a reproduce case?

Tolriq commented 10 months ago

For me this only happen about 1 module in 150 a quick repro did not work. Any temporary file or generated file or log we can provide instead? Can't share the whole project.

lwasyl commented 9 months ago

I found a cause/workaround: I observe the issue on two classes which have private properties initialized to an anonymous class and that don't have an explicit type. Something like this, where the diff shows the workaround after which ksp runs without an error:

@SomeScope
class Foo @Inject constructor() {

-  private val offendingProperty = object : SomeInterface {
+  private val offendingProperty: SomeInterface = object : SomeInterface {
     // ....
  }
}

I'm not entirely sure if an anonymous class is the only requirement for the issue to appear (can debug more if needed), but it's definitely related as providing the type completely works around the issue

eduardbosch commented 9 months ago

I had the same issue as @lwasyl Defining the explicit type on the private variable with an anonymous class solved the compilation error. Thanks @lwasyl 🙌