kotlin-language-server
kotlin-language-server copied to clipboard
No declarations or definitions can be resolved
I have VSCode setup on Windows remoting into WSL.
I have the fwcd extension installed, as well as Gradle for Java + others.
When I download a fresh gradle project from, say, spring initializr - I get some declaration/definition support immediately (I can go-to-definition of @SpringBootApplication for example) and the extension appears to work more-or-less like expected.
However on closing the project - it never works correctly again. Anytime I reopen the project, it either shows no errors, but I cannot go to any definition that is not local to the file I'm working on, or it cannot find any reference at all.
I do notice a big ol' stack trace in the Kotlin language server logs, but I'm unsure what the root cause of the compilation error is here.
I suspect that when I don't see the unresoved reference errors, but cannot go-to-definition as the definition is not found, this may be a different error and can open seperately.
Fresh startup logs from the Kotlin language server:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Sep 16, 2023 9:34:04 AM org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint lambda$recursiveFindRpcMethods$2
SEVERE: A delegate object is null, jsonrpc methods of 'public default org.eclipse.lsp4j.services.NotebookDocumentService org.eclipse.lsp4j.services.LanguageServer.getNotebookDocumentService()' are ignored
[Info - 9:34:05 AM] main Adding script definitions [null]
[Info - 9:34:05 AM] main Kotlin Language Server: Version 1.3.5
[Error - 9:34:05 AM] main A delegate object is null, jsonrpc methods of 'public default org.eclipse.lsp4j.services.NotebookDocumentService org.eclipse.lsp4j.services.LanguageServer.getNotebookDocumentService()' are ignored
[Info - 9:34:05 AM] main Connected to client
[Info - 9:34:05 AM] async0 Adding workspace folder myscaryproject
[Info - 9:34:05 AM] async0 Adding .../myscaryproject/MyscaryprojectApplicationTests.kt, .../myscaryproject/MyscaryprojectApplication.kt under /home/grant/myscaryproject to source path
[Info - 9:34:05 AM] async0 Searching for dependencies and Java sources in workspace root /home/grant/myscaryproject
[Info - 9:34:05 AM] async0 Classpath has not changed. Fetching from cache
[Info - 9:34:05 AM] async0 Adding 55 files to class path
[Info - 9:34:05 AM] async0 Update build script path
[Info - 9:34:05 AM] async0 Build script classpath has not changed. Fetching from cache
[Info - 9:34:05 AM] async0 Adding [/home/grant/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.8.22/636bf8b320e7627482771bbac9ed7246773c02bd/kotlin-stdlib-1.8.22.jar] to build script class path
[Info - 9:34:05 AM] async0 Reinstantiating compiler
[Info - 9:34:05 AM] async0 Adding script definitions [null]
[Info - 9:34:05 AM] async0 Adding script definitions [null]
[Info - 9:34:05 AM] client Updated configuration: {"kotlin":{"java":{"home":"/usr/lib/jvm/java-17-openjdk-amd64"},"languageServer":{"enabled":true,"path":"","transport":"stdio","port":0,"debugAttach":{"enabled":false,"port":5005,"autoSuspend":false}},"trace":{"server":"off"},"compiler":{"jvm":{"target":"17"}},"linting":{"debounceTime":250},"indexing":{"enabled":true},"completion":{"snippets":{"enabled":true}},"debugAdapter":{"enabled":true,"path":""},"debounceTime":250,"externalSources":{"useKlsScheme":true,"autoConvertToKotlin":false},"snippetsEnabled":true}}
[Info - 9:34:05 AM] async3 Find symbols in .../myscaryproject/MyscaryprojectApplication.kt
[Info - 9:34:06 AM] async3 Finished in 216 ms
[Info - 9:34:06 AM] async3 Ranged semantic tokens in .../myscaryproject/MyscaryprojectApplication.kt
[Info - 9:34:07 AM] async4 Updating symbol index...
[Info - 9:34:07 AM] async4 Updated symbol index in 28 ms! (2 symbol(s))
[Info - 9:34:07 AM] async4 Updating symbol index...
[Info - 9:34:07 AM] async4 Updated symbol index in 0 ms! (3 symbol(s))
[Info - 9:34:07 AM] async4 Updating symbol index...
[Info - 9:34:07 AM] async4 Updated symbol index in 0 ms! (5 symbol(s))
[Info - 9:34:07 AM] async3 Found 35 tokens
[Info - 9:34:07 AM] async3 Finished in 1554 ms
[Info - 9:34:07 AM] async3 Full semantic tokens in .../myscaryproject/MyscaryprojectApplication.kt
[Info - 9:34:07 AM] async3 Found 35 tokens
[Info - 9:34:07 AM] async3 Finished in 3 ms
[Error - 9:34:07 AM] org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during file facade code generation
File being compiled: mock:////home/grant/myscaryproject/src/test/kotlin/com/example/myscaryproject/MyscaryprojectApplicationTests.kt
The root cause java.lang.IllegalStateException was thrown at: org.jetbrains.kotlin.codegen.state.KotlinTypeMapper$typeMappingConfiguration$1.processErrorType(KotlinTypeMapper.kt:124)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.backend.common.CodegenUtil.reportBackendException(CodegenUtil.kt:241)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generate(PackageCodegenImpl.java:78)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.DefaultCodegenFactory.generatePackage(CodegenFactory.kt:143)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.DefaultCodegenFactory.invokeLowerings(CodegenFactory.kt:122)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.CodegenFactory.generateModule(CodegenFactory.kt:44)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.compileCorrectFiles(KotlinCodegenFacade.java:45)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.compileCorrectFiles(KotlinCodegenFacade.java:54)
[Error - 9:34:07 AM] at org.javacs.kt.compiler.Compiler.generateCode(Compiler.kt:580)
[Error - 9:34:07 AM] at org.javacs.kt.SourcePath.save(SourcePath.kt:277)
[Error - 9:34:07 AM] at org.javacs.kt.SourcePath.saveAllFiles(SourcePath.kt:289)
[Error - 9:34:07 AM] at org.javacs.kt.KotlinTextDocumentService$lintAll$1.invoke(KotlinTextDocumentService.kt:270)
[Error - 9:34:07 AM] at org.javacs.kt.KotlinTextDocumentService$lintAll$1.invoke(KotlinTextDocumentService.kt:268)
[Error - 9:34:07 AM] at org.javacs.kt.util.Debouncer.submitImmediately$lambda$1(Debouncer.kt:27)
[Error - 9:34:07 AM] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
[Error - 9:34:07 AM] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[Error - 9:34:07 AM] at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
[Error - 9:34:07 AM] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[Error - 9:34:07 AM] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[Error - 9:34:07 AM] at java.base/java.lang.Thread.run(Thread.java:833)
[Error - 9:34:07 AM] Caused by: java.lang.IllegalStateException: Error type encountered: [Error type: Unresolved type for SpringBootTest] (ErrorType).
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.state.KotlinTypeMapper$typeMappingConfiguration$1.processErrorType(KotlinTypeMapper.kt:124)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.load.kotlin.DescriptorBasedTypeSignatureMappingKt.mapType(descriptorBasedTypeSignatureMapping.kt:83)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.state.KotlinTypeMapper.mapType(KotlinTypeMapper.kt:276)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.state.KotlinTypeMapper.mapType$default(KotlinTypeMapper.kt:267)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.state.KotlinTypeMapper.mapType(KotlinTypeMapper.kt)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.AnnotationCodegen.genAnnotation(AnnotationCodegen.java:385)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.AnnotationCodegen.genAnnotations(AnnotationCodegen.java:153)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.AnnotationCodegen.genAnnotations(AnnotationCodegen.java:116)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.ImplementationBodyCodegen.generateDeclaration(ImplementationBodyCodegen.java:248)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.MemberCodegen.generate(MemberCodegen.java:122)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.MemberCodegen.genClassOrObject(MemberCodegen.java:305)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.MemberCodegen.genClassOrObject(MemberCodegen.java:289)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generateClassesAndObjectsInFile(PackageCodegenImpl.java:119)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generateFile(PackageCodegenImpl.java:138)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generate(PackageCodegenImpl.java:70)
[Error - 9:34:07 AM] ... 17 more
[Error - 9:34:07 AM] org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during file facade code generation
File being compiled: mock:////home/grant/myscaryproject/src/main/kotlin/com/example/myscaryproject/MyscaryprojectApplication.kt
The root cause java.lang.IllegalStateException was thrown at: org.jetbrains.kotlin.codegen.state.KotlinTypeMapper$typeMappingConfiguration$1.processErrorType(KotlinTypeMapper.kt:124)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.backend.common.CodegenUtil.reportBackendException(CodegenUtil.kt:241)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generate(PackageCodegenImpl.java:78)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.DefaultCodegenFactory.generatePackage(CodegenFactory.kt:143)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.DefaultCodegenFactory.invokeLowerings(CodegenFactory.kt:122)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.CodegenFactory.generateModule(CodegenFactory.kt:44)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.compileCorrectFiles(KotlinCodegenFacade.java:45)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.compileCorrectFiles(KotlinCodegenFacade.java:54)
[Error - 9:34:07 AM] at org.javacs.kt.compiler.Compiler.generateCode(Compiler.kt:580)
[Error - 9:34:07 AM] at org.javacs.kt.SourcePath.save(SourcePath.kt:277)
[Error - 9:34:07 AM] at org.javacs.kt.SourcePath.saveAllFiles(SourcePath.kt:289)
[Error - 9:34:07 AM] at org.javacs.kt.KotlinTextDocumentService$lintAll$1.invoke(KotlinTextDocumentService.kt:270)
[Error - 9:34:07 AM] at org.javacs.kt.KotlinTextDocumentService$lintAll$1.invoke(KotlinTextDocumentService.kt:268)
[Error - 9:34:07 AM] at org.javacs.kt.util.Debouncer.submitImmediately$lambda$1(Debouncer.kt:27)
[Error - 9:34:07 AM] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
[Error - 9:34:07 AM] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[Error - 9:34:07 AM] at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
[Error - 9:34:07 AM] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[Error - 9:34:07 AM] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[Error - 9:34:07 AM] at java.base/java.lang.Thread.run(Thread.java:833)
[Error - 9:34:07 AM] Caused by: java.lang.IllegalStateException: Error type encountered: [Error type: Unresolved type for SpringBootApplication] (ErrorType).
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.state.KotlinTypeMapper$typeMappingConfiguration$1.processErrorType(KotlinTypeMapper.kt:124)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.load.kotlin.DescriptorBasedTypeSignatureMappingKt.mapType(descriptorBasedTypeSignatureMapping.kt:83)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.state.KotlinTypeMapper.mapType(KotlinTypeMapper.kt:276)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.state.KotlinTypeMapper.mapType$default(KotlinTypeMapper.kt:267)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.state.KotlinTypeMapper.mapType(KotlinTypeMapper.kt)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.AnnotationCodegen.genAnnotation(AnnotationCodegen.java:385)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.AnnotationCodegen.genAnnotations(AnnotationCodegen.java:153)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.AnnotationCodegen.genAnnotations(AnnotationCodegen.java:116)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.ImplementationBodyCodegen.generateDeclaration(ImplementationBodyCodegen.java:248)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.MemberCodegen.generate(MemberCodegen.java:122)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.MemberCodegen.genClassOrObject(MemberCodegen.java:305)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.MemberCodegen.genClassOrObject(MemberCodegen.java:289)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generateClassesAndObjectsInFile(PackageCodegenImpl.java:119)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generateFile(PackageCodegenImpl.java:138)
[Error - 9:34:07 AM] at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generate(PackageCodegenImpl.java:70)
[Error - 9:34:07 AM] ... 17 more
[Info - 9:34:07 AM] debounce0 Linting .../myscaryproject/MyscaryprojectApplication.kt
[Info - 9:34:07 AM] async4 Updating full symbol index...
[Info - 9:34:07 AM] debounce0 Reported 7 diagnostics in .../myscaryproject/MyscaryprojectApplication.kt
I get the same problem, but I'm on macos. My project compiles fine when I run gradle build
. I have tried both the automatically downloaded language server and a local build from Github.
@MagnusMG , would you like to share some logs? Would help a lot when debugging causes for the issues 🙂
My guess based upon this and my earlier experiences makes me think that the recently introduced caching solution (#337 ) have some bugs. Some projects have been behaving weirdly, and I've had to delete the symbol database to get it working again. This is usually found in the root of your project, called kls_database.db
. Might be a temporary workaround for someone experiencing weird issues like this.
Seems like VSCode saves the files in a special workspace directory, example on my Mac: Library/Application\ Support/Code/User/workspaceStorage/184e57edab10e06220a4a0d28a068565/fwcd.kotlin/kls_database.db
. Think it is somewhere inside APPDATA or whatever on Windows. Might not be the issue, but always good for the person googling in the future to get some suggestions 😛 (or if any of you want to fiddle with deleting these files as a workaround).
I found the file kls_database.db
and deleted it. (Well, I deleted the entire folder workSpaceStorage
). Still the same problem.
I noticed that I don't have any problems in other, similar projects. So it is nothing particular with my VSCode setup, but just this project. I'll create a new project fresh from gradle init
, copy my source files into it, and see if I can get it to work.
I created a new folder, ran gradle init
, and then copied the source code files from the old folder into the new one, and the gradle.build
files, and then it all worked fine. I would be great to know more precisely what went wrong, but this workaround is much better than nothing.