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

crash when indexing the test files from full-moon lua parser #117

Open
matthargett opened this issue Jan 18, 2022 · 0 comments
Open

crash when indexing the test files from full-moon lua parser #117

matthargett opened this issue Jan 18, 2022 · 0 comments

Comments

@matthargett
Copy link

Environment

Name Version
IDEA version 2021.3.2
Luanalysis version 1.2.2-IDEA203
OS macOS 11.6.2

Preferences

Lua

Name Setting
Language level Lua 5.1

Type Safety

Name Setting
Strict nil checks
Unknown type (any) is indexable ☑️
Unknown type (any) is callabale ☑️

What are the steps to reproduce this issue?

  1. in CLion, add Rust and LuaAnalysis plugins
  2. checkout the full-moon source code at https://github.com/Kampfkarren/full-moon/
  3. File -> Open -> full-moon

What happens?

crash on indexing the source test files:

Error while indexing /Users/mhargett/Library/Application Support/JetBrains/Toolbox/apps/CLion/ch-0/213.6461.75/CLion.app.plugins/IntelliJ-Luanalysis/lib/IntelliJ-Luanalysis-1.2.2-IDEA203.jar!/std/Lua53/bit32.def.lua
To reindex this file IDEA has to be restarted

java.lang.NoClassDefFoundError: Could not initialize class com.tang.intellij.lua.ty.TyTable
	at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:509)
	at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:103)
	at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:61)
	at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:37)
	at com.tang.intellij.lua.ty.LuaTypeInfer$inferType$1.invoke(LuaTypeInfer.kt:27)
	at com.tang.intellij.lua.ty.LuaTypeInfer$inferType$1.invoke(LuaTypeInfer.kt:24)
	at com.tang.intellij.lua.search.RecursionGuardsKt.withRecursionGuard(RecursionGuards.kt:52)
	at com.tang.intellij.lua.ty.LuaTypeInfer.inferType(LuaTypeInfer.kt:26)
	at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:32)
	at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:163)
	at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:33)
	at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:55)
	at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:34)
	at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:60)
	at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:55)
	at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:31)
	at com.tang.intellij.lua.psi.LuaPsiImplUtilKt$guessTypeAt$1.invoke(LuaPsiImplUtil.kt:267)
	at com.tang.intellij.lua.psi.LuaPsiImplUtilKt$guessTypeAt$1.invoke(LuaPsiImplUtil.kt)
	at com.tang.intellij.lua.search.SearchContext.withIndex(SearchContext.kt:118)
	at com.tang.intellij.lua.psi.LuaPsiImplUtilKt.guessTypeAt(LuaPsiImplUtil.kt:266)
	at com.tang.intellij.lua.psi.impl.LuaExprListImpl.guessTypeAt(LuaExprListImpl.java:46)
	at com.tang.intellij.lua.ty.ExpressionsKt$getType$2.invoke(Expressions.kt:415)
	at com.tang.intellij.lua.ty.ExpressionsKt$getType$2.invoke(Expressions.kt)
	at com.tang.intellij.lua.search.SearchContext.withIndex(SearchContext.kt:118)
	at com.tang.intellij.lua.ty.ExpressionsKt.getType(Expressions.kt:414)
	at com.tang.intellij.lua.ty.ExpressionsKt.access$getType(Expressions.kt:1)
	at com.tang.intellij.lua.ty.ExpressionsKt$infer$3.compute(Expressions.kt:390)
	at com.tang.intellij.lua.ty.ExpressionsKt$infer$3.compute(Expressions.kt)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.tang.intellij.lua.ext.UtilsKt.recursionGuard(utils.kt:23)
	at com.tang.intellij.lua.ext.UtilsKt.recursionGuard$default(utils.kt:22)
	at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:355)
	at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:109)
	at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:61)
	at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:37)
	at com.tang.intellij.lua.ty.LuaTypeInfer$inferType$1.invoke(LuaTypeInfer.kt:27)
	at com.tang.intellij.lua.ty.LuaTypeInfer$inferType$1.invoke(LuaTypeInfer.kt:24)
	at com.tang.intellij.lua.search.RecursionGuardsKt.withRecursionGuard(RecursionGuards.kt:52)
	at com.tang.intellij.lua.ty.LuaTypeInfer.inferType(LuaTypeInfer.kt:26)
	at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:32)
	at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:163)
	at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:33)
	at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:55)
	at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:34)
	at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:60)
	at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:55)
	at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:31)
	at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:56)
	at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:37)
	at com.tang.intellij.lua.ty.LuaTypeInfer$inferType$1.invoke(LuaTypeInfer.kt:27)
	at com.tang.intellij.lua.ty.LuaTypeInfer$inferType$1.invoke(LuaTypeInfer.kt:24)
	at com.tang.intellij.lua.search.RecursionGuardsKt.withRecursionGuard(RecursionGuards.kt:52)
	at com.tang.intellij.lua.ty.LuaTypeInfer.inferType(LuaTypeInfer.kt:26)
	at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:32)
	at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:163)
	at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:33)
	at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:55)
	at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:34)
	at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:60)
	at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:55)
	at com.tang.intellij.lua.stubs.LuaClassMethodType$createStub$1.invoke(LuaClassMethodDefStatStub.kt:47)
	at com.tang.intellij.lua.stubs.LuaClassMethodType$createStub$1.invoke(LuaClassMethodDefStatStub.kt:34)
	at com.tang.intellij.lua.search.SearchContext$Companion$withDumb$1.invoke(SearchContext.kt:93)
	at com.tang.intellij.lua.search.SearchContext$Companion$withDumb$1.invoke(SearchContext.kt:34)
	at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:68)
	at com.tang.intellij.lua.search.SearchContext$Companion.withDumb(SearchContext.kt:90)
	at com.tang.intellij.lua.search.SearchContext$Companion.withDumb(SearchContext.kt:86)
	at com.tang.intellij.lua.stubs.LuaClassMethodType.createStub(LuaClassMethodDefStatStub.kt:46)
	at com.tang.intellij.lua.stubs.LuaClassMethodType.createStub(LuaClassMethodDefStatStub.kt:34)
	at com.intellij.psi.stubs.DefaultStubBuilder$StubBuildingWalkingVisitor.createStub(DefaultStubBuilder.java:85)
	at com.intellij.psi.stubs.DefaultStubBuilder$StubBuildingWalkingVisitor.visitNode(DefaultStubBuilder.java:60)
	at com.intellij.psi.stubs.DefaultStubBuilder$StubBuildingWalkingVisitor.buildStubTree(DefaultStubBuilder.java:55)
	at com.intellij.psi.stubs.DefaultStubBuilder.buildStubTreeFor(DefaultStubBuilder.java:33)
	at com.intellij.psi.stubs.DefaultStubBuilder.buildStubTree(DefaultStubBuilder.java:22)
	at com.intellij.psi.stubs.StubTreeBuilder.lambda$buildStubTree$1(StubTreeBuilder.java:143)
	at com.intellij.psi.stubs.StubTreeBuilder.handleStubBuilderException(StubTreeBuilder.java:98)
	at com.intellij.psi.stubs.StubTreeBuilder.buildStubTree(StubTreeBuilder.java:143)
	at com.intellij.psi.stubs.StubUpdatingIndex$1.computeValue(StubUpdatingIndex.java:179)
	at com.intellij.psi.stubs.StubUpdatingIndex$1.computeValue(StubUpdatingIndex.java:156)
	at com.intellij.psi.stubs.StubUpdatingIndex$1.computeValue(StubUpdatingIndex.java:123)
	at com.intellij.util.indexing.SingleEntryIndexer.map(SingleEntryIndexer.java:30)
	at com.intellij.util.indexing.SingleEntryIndexer.map(SingleEntryIndexer.java:19)
	at com.intellij.util.indexing.impl.MapReduceIndex.mapByIndexer(MapReduceIndex.java:306)
	at com.intellij.util.indexing.impl.MapReduceIndex.mapInput(MapReduceIndex.java:297)
	at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.mapInput(VfsAwareMapReduceIndex.java:182)
	at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.mapInput(VfsAwareMapReduceIndex.java:47)
	at com.intellij.util.indexing.impl.MapReduceIndex.mapInputAndPrepareUpdate(MapReduceIndex.java:244)
	at com.intellij.psi.stubs.StubUpdatingIndexStorage.mapInputAndPrepareUpdate(StubUpdatingIndexStorage.java:60)
	at com.intellij.psi.stubs.StubUpdatingIndexStorage.mapInputAndPrepareUpdate(StubUpdatingIndexStorage.java:19)
	at com.intellij.util.indexing.FileBasedIndexImpl.updateSingleIndex(FileBasedIndexImpl.java:1551)
	at com.intellij.util.indexing.FileBasedIndexImpl.lambda$doIndexFileContent$27(FileBasedIndexImpl.java:1422)
	at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.freezeFileTypeTemporarilyIn(FileTypeManagerImpl.java:627)
	at com.intellij.util.indexing.FileBasedIndexImpl.doIndexFileContent(FileBasedIndexImpl.java:1371)
	at com.intellij.util.indexing.FileBasedIndexImpl.indexFileContent(FileBasedIndexImpl.java:1325)
	at com.intellij.util.indexing.contentQueue.IndexUpdateRunner.lambda$indexOneFileOfJob$5(IndexUpdateRunner.java:267)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:521)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$3(NonBlockingReadActionImpl.java:486)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1084)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:75)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:158)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:115)
	at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:57)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:188)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:624)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:698)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:646)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:623)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:175)
	at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:57)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:112)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:75)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:486)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.executeSynchronously(NonBlockingReadActionImpl.java:421)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl.executeSynchronously(NonBlockingReadActionImpl.java:186)
	at com.intellij.util.indexing.contentQueue.IndexUpdateRunner.indexOneFileOfJob(IndexUpdateRunner.java:270)
	at com.intellij.util.indexing.contentQueue.IndexUpdateRunner.lambda$indexJobsFairly$4(IndexUpdateRunner.java:210)
	at com.intellij.openapi.progress.impl.ProgressSuspender.executeNonSuspendableSection(ProgressSuspender.java:83)
	at com.intellij.util.indexing.contentQueue.IndexUpdateRunner.indexJobsFairly(IndexUpdateRunner.java:213)
	at com.intellij.util.indexing.contentQueue.IndexUpdateRunner.lambda$doIndexFiles$3(IndexUpdateRunner.java:147)
	at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:246)
	at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:32)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:225)
	at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:213)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:214)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
	at java.base/java.lang.Thread.run(Thread.java:829)

What were you expecting to happen?

I don't expect the test files to parse cleanly (I expect squiggles), especially since Luau syntax isn't supported, but it shouldn't crash when CLion is trying to index the files.

Any logs, error output, etc?

See above.

Any other comments?

As side note, the luacheck option in the plugin settings should probably be replaced by selene (which is built using full-moon).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant