Arend
Arend copied to clipboard
IAE in IDE
java.lang.IllegalArgumentException: Illegal Capacity: -4
at java.base/java.util.ArrayList.<init>(ArrayList.java:158)
at org.arend.typechecking.visitor.CheckTypeVisitor.checkAllImplemented(CheckTypeVisitor.java:900)
at org.arend.typechecking.visitor.DefinitionTypechecker.typecheckCoClauses(DefinitionTypechecker.java:660)
at org.arend.typechecking.visitor.DefinitionTypechecker.typecheckFunctionBody(DefinitionTypechecker.java:890)
at org.arend.typechecking.visitor.DefinitionTypechecker.visitFunction(DefinitionTypechecker.java:147)
at org.arend.typechecking.visitor.DefinitionTypechecker.visitFunction(DefinitionTypechecker.java:65)
at org.arend.term.concrete.Concrete$BaseFunctionDefinition.accept(Concrete.java:1860)
at org.arend.typechecking.order.listener.TypecheckingOrderingListener.unitFound(TypecheckingOrderingListener.java:219)
at org.arend.typechecking.order.Ordering.unitFound(Ordering.java:165)
at org.arend.typechecking.order.Ordering.unitFound(Ordering.java:23)
at org.arend.typechecking.order.BellmanFord.doOrderRecursively(BellmanFord.java:54)
at org.arend.typechecking.order.BellmanFord.order(BellmanFord.java:24)
at org.arend.typechecking.order.Ordering.order(Ordering.java:96)
at org.arend.typechecking.order.listener.TypecheckingOrderingListener.lambda$typecheckDefinitions$0(TypecheckingOrderingListener.java:99)
at org.arend.typechecking.computation.ComputationRunner.run(ComputationRunner.java:33)
at org.arend.typechecking.order.listener.TypecheckingOrderingListener.typecheckDefinitions(TypecheckingOrderingListener.java:96)
at org.arend.highlight.BackgroundTypecheckerPass$typecheckDefinition$$inlined$let$lambda$1.invoke(BackgroundTypecheckerPass.kt:69)
at org.arend.highlight.BackgroundTypecheckerPass$typecheckDefinition$$inlined$let$lambda$1.invoke(BackgroundTypecheckerPass.kt:26)
at org.arend.typechecking.DefinitionBlacklistService.runTimed(DefinitionBlacklistService.kt:24)
at org.arend.highlight.BackgroundTypecheckerPass.typecheckDefinition(BackgroundTypecheckerPass.kt:68)
at org.arend.highlight.BackgroundTypecheckerPass.collectInfo(BackgroundTypecheckerPass.kt:108)
at org.arend.highlight.BaseGroupPass.collectInformationWithProgress(BaseGroupPass.kt:47)
at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:84)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:52)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$null$1(PassExecutorService.java:434)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1106)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:427)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:625)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:570)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:426)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:402)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:168)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:168)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:400)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:171)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
Though it's happened in the IDE, the stacktrace indicates that it's in the compiler. So I reported it here.
I think it's caused by broken bin files.
or by broken caches in IDE.
Yes, but probably we should be more error tolerant? (This error is happened after a set of normal IDE operations, so it can happen to users as well)
Yes, it happens a lot. We have a bunch of issues that are intendent to fix this.
Added error handling for this
java.lang.IllegalArgumentException: Too many implemented fields (expected 3): {A=a = a', contraction=Jl {A} {a} (\lam (x : A) => (=) (inv {A} {a} {a} (p a a) *> p a x)) (inv_*> {A} {a} {a} (p a a)) {a'}, A=a = a', center=inv {A} {a} {a} (p a a) *> p a a', contraction=Jl {A} {a} (\lam (x : A) => (=) (inv {A} {a} {a} (p a a) *> p a x)) (inv_*> {A} {a} {a} (p a a)) {a'}, center=inv {A} {a} {a} (p a a) *> p a a'}
at org.arend.typechecking.visitor.CheckTypeVisitor.checkAllImplemented(CheckTypeVisitor.java:1193)
at org.arend.typechecking.visitor.CheckTypeVisitor.visitNew(CheckTypeVisitor.java:1180)
at org.arend.typechecking.visitor.CheckTypeVisitor.visitNew(CheckTypeVisitor.java:92)
at org.arend.term.concrete.Concrete$NewExpression.accept(Concrete.java:753)
at org.arend.typechecking.visitor.CheckTypeVisitor.checkExpr(CheckTypeVisitor.java:606)
at org.arend.typechecking.visitor.DefinitionTypechecker.typecheckFunctionBody(DefinitionTypechecker.java:1068)
at org.arend.typechecking.visitor.DefinitionTypechecker.visitFunction(DefinitionTypechecker.java:158)
at org.arend.typechecking.visitor.DefinitionTypechecker.visitFunction(DefinitionTypechecker.java:64)
at org.arend.term.concrete.Concrete$BaseFunctionDefinition.accept(Concrete.java:2086)
at org.arend.typechecking.order.listener.TypecheckingOrderingListener.unitFound(TypecheckingOrderingListener.java:222)
at org.arend.typechecking.order.listener.CollectingOrderingListener$MyUnit.feedTo(CollectingOrderingListener.java:49)
at org.arend.typechecking.BackgroundTypechecker$typecheckDefinition$ok$1$1.get(BackgroundTypechecker.kt:86)
at org.arend.typechecking.BackgroundTypechecker$typecheckDefinition$ok$1$1.get(BackgroundTypechecker.kt:20)
at org.arend.typechecking.computation.ComputationRunner.run(ComputationRunner.java:37)
at org.arend.typechecking.computation.BooleanComputationRunner.run(BooleanComputationRunner.java:8)
at org.arend.typechecking.BackgroundTypechecker$typecheckDefinition$ok$1.invoke(BackgroundTypechecker.kt:85)
at org.arend.typechecking.BackgroundTypechecker$typecheckDefinition$ok$1.invoke(BackgroundTypechecker.kt:20)
at org.arend.typechecking.DefinitionBlacklistService.runTimed(DefinitionBlacklistService.kt:25)
at org.arend.typechecking.BackgroundTypechecker.typecheckDefinition(BackgroundTypechecker.kt:84)
at org.arend.typechecking.BackgroundTypechecker.runTypechecker(BackgroundTypechecker.kt:64)
at org.arend.highlight.ArendHighlightingPass$applyInformationWithProgress$2.invoke(ArendHighlightingPass.kt:201)
at org.arend.highlight.ArendHighlightingPass$applyInformationWithProgress$2.invoke(ArendHighlightingPass.kt:34)
at org.arend.typechecking.TypecheckingTaskQueue$addTask$2.run(TypecheckingTaskQueue.kt:43)
at com.intellij.util.RunnableCallable.call(RunnableCallable.java:20)
at com.intellij.util.RunnableCallable.call(RunnableCallable.java:11)
at com.intellij.openapi.application.impl.ApplicationImpl$1.call(ApplicationImpl.java:268)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
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:834)