KronicDeth / intellij-elixir

Elixir plugin for JetBrain's IntelliJ Platform (including Rubymine)
Other
1.83k stars 153 forks source link

Non-idempotent computation resolving org.elixir_lang.reference.Module from ElixirMatchedQualifiedAlias #1795

Closed azuken closed 2 years ago

azuken commented 4 years ago

Exception

Stacktrace

java.lang.Throwable: Non-idempotent computation: it returns different results when invoked multiple times or on different threads:
  2 != 1
  which is length of [PsiElementResolveResult with class org.elixir_lang.psi.impl.ElixirUnmatchedUnqualifiedNoParenthesesCallImpl: QueryBackend.Web, PsiElementResolveResult with class org.elixir_lang.psi.impl.ElixirUnmatchedUnqualifiedNoParenthesesCallImpl: QueryBackend.Web] and [PsiElementResolveResult with class org.elixir_lang.psi.impl.ElixirUnmatchedUnqualifiedNoParenthesesCallImpl: QueryBackend.Web]

Recomputation gives [Lcom.intellij.psi.PsiElementResolveResult;@66df21a0 (class [Lcom.intellij.psi.PsiElementResolveResult;) which is equivalent to 'fresh'
Recomputation log:
  Resolving org.elixir_lang.reference.Module(ElixirMatchedQualifiedAliasImpl(MATCHED_QUALIFIED_ALIAS):(0,16)) of class org.elixir_lang.reference.Module
    at com.intellij.openapi.diagnostic.Logger.error(Logger.java:146)
    at com.intellij.util.IdempotenceChecker.reportFailure(IdempotenceChecker.java:91)
    at com.intellij.util.IdempotenceChecker.checkEquivalence(IdempotenceChecker.java:78)
    at com.intellij.psi.impl.source.resolve.ResolveCache.cache(ResolveCache.java:286)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:214)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:152)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:167)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:160)
    at org.elixir_lang.reference.Module.multiResolve(Module.kt:29)
    at org.elixir_lang.psi.impl.QualifiableAliasImplKt.fullyResolve(QualifiableAliasImpl.kt:46)
    at org.elixir_lang.psi.impl.QualifiableAliasImplKt.toModular(QualifiableAliasImpl.kt:150)
    at org.elixir_lang.psi.impl.QualifiableAliasImplKt.maybeModularNameToModular(QualifiableAliasImpl.kt:138)
    at org.elixir_lang.psi.impl.PsiElementImplKt.maybeModularNameToModular(PsiElementImpl.kt:170)
    at org.elixir_lang.psi.Use.modular(Use.kt:71)
    at org.elixir_lang.psi.Use.callDefinitionClauseCallWhile(Use.kt:22)
    at org.elixir_lang.psi.scope.CallDefinitionClause.execute(CallDefinitionClause.kt:101)
    at org.elixir_lang.psi.scope.CallDefinitionClause.execute(CallDefinitionClause.kt:32)
    at org.elixir_lang.psi.impl.ProcessDeclarationsImpl.processDeclarationsInPreviousSibling(ProcessDeclarationsImpl.kt:289)
    at org.elixir_lang.psi.impl.ProcessDeclarationsImpl.processDeclarations(ProcessDeclarationsImpl.kt:144)
    at org.elixir_lang.psi.impl.ElixirPsiImplUtil.processDeclarations(ElixirPsiImplUtil.java:591)
    at org.elixir_lang.psi.impl.ElixirStabBodyImpl.processDeclarations(ElixirStabBodyImpl.java:64)
    at com.intellij.psi.util.PsiTreeUtil.treeWalkUp(PsiTreeUtil.java:1150)
    at org.elixir_lang.psi.scope.call_definition_clause.MultiResolve$Companion.resolveResults(MultiResolve.kt:65)
    at org.elixir_lang.psi.scope.call_definition_clause.MultiResolve$Companion.resolveResults$default(MultiResolve.kt:62)
    at org.elixir_lang.reference.resolver.Callable.resolveElement(Callable.kt:52)
    at org.elixir_lang.reference.resolver.Callable.resolve(Callable.kt:22)
    at org.elixir_lang.reference.resolver.Callable.resolve(Callable.kt:14)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolve$1(ResolveCache.java:152)
    at com.intellij.openapi.util.Computable.get(Computable.java:17)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$3(ResolveCache.java:225)
    at com.intellij.openapi.util.Computable.get(Computable.java:17)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:203)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:152)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:167)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:160)
    at org.elixir_lang.reference.ResolveWithCachingComputable.compute(Callable.kt:593)
    at org.elixir_lang.reference.ResolveWithCachingComputable.compute(Callable.kt:585)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:880)
    at org.elixir_lang.reference.CallableKt.resolveWithCaching(Callable.kt:583)
    at org.elixir_lang.reference.CallableKt.access$resolveWithCaching(Callable.kt:1)
    at org.elixir_lang.reference.Callable.multiResolve(Callable.kt:106)
    at org.elixir_lang.reference.Callable.resolve(Callable.kt:113)
    at com.intellij.codeInsight.navigation.CtrlMouseHandler.resolve(CtrlMouseHandler.java:549)
    at com.intellij.codeInsight.navigation.CtrlMouseHandler.getInfoAt(CtrlMouseHandler.java:453)
    at com.intellij.codeInsight.navigation.CtrlMouseHandler.getInfoAt(CtrlMouseHandler.java:435)
    at com.intellij.codeInsight.navigation.CtrlMouseHandler.access$1100(CtrlMouseHandler.java:88)
    at com.intellij.codeInsight.navigation.CtrlMouseHandler$TooltipProvider.doExecute(CtrlMouseHandler.java:697)
    at com.intellij.codeInsight.navigation.CtrlMouseHandler$TooltipProvider.lambda$execute$0(CtrlMouseHandler.java:675)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:486)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$2(NonBlockingReadActionImpl.java:443)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1106)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:75)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:129)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:166)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:627)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:572)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:153)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:118)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:75)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:451)
    at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$0(NonBlockingReadActionImpl.java:384)
    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.lang.Thread.run(Thread.java:834)
KronicDeth commented 2 years ago

Duplicate of #1778