GithubHelp home page GithubHelp logo

jetbrains / intellij-arend Goto Github PK

View Code? Open in Web Editor NEW
83.0 10.0 16.0 14.98 MB

Arend plugin for IntelliJ IDEA

License: Apache License 2.0

Lex 0.63% Kotlin 99.00% Java 0.23% HTML 0.07% JavaScript 0.03% CSS 0.04%
intellij intellij-plugin arend

intellij-arend's Introduction

Arend plugin for IntelliJ IDEA

JetBrains incubator project Actions Status Downloads Version

Plugin that implements Arend support in IntelliJ IDEA and other IntelliJ-based products. Arend is a theorem prover based on Homotopy Type Theory. Visit arend-lang.github.io for more information about the Arend language.

Clone

git clone https://github.com/JetBrains/Arend
git clone https://github.com/JetBrains/intellij-arend.git
cd intellij-arend

Building

We use gradle to build the plugin. It comes with a wrapper script (gradlew or gradlew.bat in the root of the repository) which downloads appropriate version of gradle automatically as long as you have JDK (version >= 11) installed.

Common tasks are

  • ./gradlew buildPlugin — fully build plugin and create an archive at build/distributions which can be installed into IntelliJ IDEA via Install plugin from disk action found in File | Settings | Plugins.

  • ./gradlew runIde — run a development IDE with the plugin installed.

  • ./gradlew test — run all tests.

Developing

You can get the latest IntelliJ IDEA Community Edition here.

To import this project in IntelliJ, use File | New | Project from Existing Sources and select the root directory of the plugin source code.

When hacking on the plugin, you may need the following plugins -

  • Grammar-Kit - BNF Grammars and JFlex lexers editor. Readable parser/PSI code generator.
  • PsiViewer - A Program Structure Interface (PSI) tree viewer.

intellij-arend's People

Contributors

alex999990009 avatar georgcantor avatar ice1000 avatar knisht avatar marat-rkh avatar mchernyavsky avatar part-xx avatar sloboegen avatar sxhya avatar valis avatar xamgore avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

intellij-arend's Issues

Invalid Psi Elements in Definition Proxies

The exception was thrown during an attempt to reproduce another bug (which is already fixed). Not sure whether it can be reproduced at the moment. Perhaps one should try to simultaneously use inline refactorings and perform typechecking.

update failed for AnAction with ID=Vcs.ShowTabbedFileHistory
com.intellij.psi.PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type DEF_FUNCTION (class org.vclang.psi.stubs.VcDefFunctionStub$Type)
	at com.intellij.psi.PsiInvalidElementAccessException.createByNode(PsiInvalidElementAccessException.java:96)
	at com.intellij.psi.impl.source.SubstrateRef$2.getContainingFile(SubstrateRef.java:101)
	at com.intellij.extapi.psi.StubBasedPsiElementBase.getContainingFile(StubBasedPsiElementBase.java:275)
	at com.intellij.openapi.module.ModuleUtilCore.findModuleForPsiElement(ModuleUtilCore.java:79)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:42)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:36)
	at org.vclang.typechecking.execution.DefinitionProxy.getLocation(DefinitionProxy.kt:18)
	at com.intellij.execution.testframework.TestsUIUtil.getData(TestsUIUtil.java:62)
	at com.intellij.execution.testframework.TestTreeView.getData(TestTreeView.java:144)
	at com.intellij.execution.testframework.sm.runner.ui.SMTRunnerTestTreeView.getData(SMTRunnerTestTreeView.java:74)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:86)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.PsiFileRule.getData(PsiFileRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileRule.getData(VirtualFileRule.java:44)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileArrayRule.getData(VirtualFileArrayRule.java:96)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.openapi.vcs.VirtualFileStreamRule.getData(VirtualFileStreamRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.getData(DataManagerImpl.java:73)
	at com.intellij.ide.impl.DataManagerImpl.access$300(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.doGetData(DataManagerImpl.java:400)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.getData(DataManagerImpl.java:377)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:69)
	at com.intellij.openapi.vcs.actions.VcsContextWrapper.getSelectedFilesStream(VcsContextWrapper.java:104)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.getPathAndParentFile(TabbedShowHistoryAction.java:89)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.isEnabled(TabbedShowHistoryAction.java:55)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.update(TabbedShowHistoryAction.java:46)
	at com.intellij.openapi.vcs.actions.AbstractVcsAction.performUpdate(AbstractVcsAction.java:71)
	at com.intellij.openapi.vcs.actions.AbstractVcsAction.update(AbstractVcsAction.java:43)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:132)
	at com.intellij.openapi.actionSystem.impl.Utils.doUpdate(Utils.java:235)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:180)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:205)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:205)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:123)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.updateActionsImpl(ActionToolbarImpl.java:974)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.access$000(ActionToolbarImpl.java:61)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl$2.updateActionsImpl(ActionToolbarImpl.java:180)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyUpdateRunnable.run(ToolbarUpdater.java:186)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushRequest(FocusManagerImpl.java:643)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushNow(FocusManagerImpl.java:624)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushIdleRequests(FocusManagerImpl.java:594)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$doWhenFocusSettlesDown$13(FocusManagerImpl.java:476)
	at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2760)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:456)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.updateActions(ToolbarUpdater.java:108)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.access$400(ToolbarUpdater.java:40)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyTimerListener.run(ToolbarUpdater.java:158)
	at com.intellij.openapi.actionSystem.impl.WeakTimerListener.run(WeakTimerListener.java:54)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.runListenerAction(ActionManagerImpl.java:1402)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.notifyListeners(ActionManagerImpl.java:1392)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.actionPerformed(ActionManagerImpl.java:1376)
	at javax.swing.Timer.fireActionPerformed(Timer.java:313)
	at javax.swing.Timer$DoPostEvent.run(Timer.java:245)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:821)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


com.intellij.psi.PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type DEF_FUNCTION (class org.vclang.psi.stubs.VcDefFunctionStub$Type)
	at com.intellij.psi.PsiInvalidElementAccessException.createByNode(PsiInvalidElementAccessException.java:96)
	at com.intellij.psi.impl.source.SubstrateRef$2.getContainingFile(SubstrateRef.java:101)
	at com.intellij.extapi.psi.StubBasedPsiElementBase.getContainingFile(StubBasedPsiElementBase.java:275)
	at com.intellij.openapi.module.ModuleUtilCore.findModuleForPsiElement(ModuleUtilCore.java:79)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:42)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:36)
	at org.vclang.typechecking.execution.DefinitionProxy.getLocation(DefinitionProxy.kt:18)
	at com.intellij.execution.testframework.TestsUIUtil.getData(TestsUIUtil.java:62)
	at com.intellij.execution.testframework.TestTreeView.getData(TestTreeView.java:144)
	at com.intellij.execution.testframework.sm.runner.ui.SMTRunnerTestTreeView.getData(SMTRunnerTestTreeView.java:74)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:86)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.PsiFileRule.getData(PsiFileRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.getData(DataManagerImpl.java:73)
	at com.intellij.ide.impl.DataManagerImpl.access$300(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.doGetData(DataManagerImpl.java:400)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.getData(DataManagerImpl.java:377)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:69)
	at com.intellij.ide.navigationToolbar.NavBarModel.updateModel(NavBarModel.java:100)
	at com.intellij.ide.navigationToolbar.NavBarUpdateQueue.requestModelUpdateFromContextOrObject(NavBarUpdateQueue.java:95)
	at com.intellij.ide.navigationToolbar.NavBarUpdateQueue.access$100(NavBarUpdateQueue.java:43)
	at com.intellij.ide.navigationToolbar.NavBarUpdateQueue$1.lambda$run$0(NavBarUpdateQueue.java:70)
	at com.intellij.openapi.util.AsyncResult.lambda$doWhenDone$1(AsyncResult.java:77)
	at com.intellij.openapi.util.ExecutionCallback.doWhenExecuted(ExecutionCallback.java:100)
	at com.intellij.openapi.util.ActionCallback.doWhenDone(ActionCallback.java:111)
	at com.intellij.openapi.util.AsyncResult.doWhenDone(AsyncResult.java:77)
	at com.intellij.ide.navigationToolbar.NavBarUpdateQueue$1.run(NavBarUpdateQueue.java:69)
	at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:337)
	at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:327)
	at com.intellij.util.ui.update.MergingUpdateQueue.lambda$flush$1(MergingUpdateQueue.java:277)
	at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2760)
	at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:288)
	at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:246)
	at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:246)
	at com.intellij.util.Alarm$Request.runSafely(Alarm.java:417)
	at com.intellij.util.Alarm$Request.access$700(Alarm.java:344)
	at com.intellij.util.Alarm$Request$1.run(Alarm.java:384)
	at com.intellij.util.Alarm$Request.run(Alarm.java:395)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at com.intellij.util.concurrency.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:237)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:821)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


com.intellij.psi.PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type DEF_FUNCTION (class org.vclang.psi.stubs.VcDefFunctionStub$Type)
	at com.intellij.psi.PsiInvalidElementAccessException.createByNode(PsiInvalidElementAccessException.java:96)
	at com.intellij.psi.impl.source.SubstrateRef$2.getContainingFile(SubstrateRef.java:101)
	at com.intellij.extapi.psi.StubBasedPsiElementBase.getContainingFile(StubBasedPsiElementBase.java:275)
	at com.intellij.openapi.module.ModuleUtilCore.findModuleForPsiElement(ModuleUtilCore.java:79)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:42)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:36)
	at org.vclang.typechecking.execution.DefinitionProxy.getLocation(DefinitionProxy.kt:18)
	at com.intellij.execution.testframework.TestsUIUtil.getData(TestsUIUtil.java:62)
	at com.intellij.execution.testframework.TestTreeView.getData(TestTreeView.java:144)
	at com.intellij.execution.testframework.sm.runner.ui.SMTRunnerTestTreeView.getData(SMTRunnerTestTreeView.java:74)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:86)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.PsiFileRule.getData(PsiFileRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileRule.getData(VirtualFileRule.java:44)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileArrayRule.getData(VirtualFileArrayRule.java:96)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.openapi.vcs.VirtualFileStreamRule.getData(VirtualFileStreamRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.getData(DataManagerImpl.java:73)
	at com.intellij.ide.impl.DataManagerImpl.access$300(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.doGetData(DataManagerImpl.java:400)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.getData(DataManagerImpl.java:377)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:69)
	at com.intellij.openapi.vcs.actions.VcsContextWrapper.getSelectedFilesStream(VcsContextWrapper.java:104)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.getPathAndParentFile(TabbedShowHistoryAction.java:89)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.isEnabled(TabbedShowHistoryAction.java:55)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.update(TabbedShowHistoryAction.java:46)
	at com.intellij.openapi.vcs.actions.AbstractVcsAction.performUpdate(AbstractVcsAction.java:71)
	at com.intellij.openapi.vcs.actions.AbstractVcsAction.update(AbstractVcsAction.java:43)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:132)
	at com.intellij.openapi.actionSystem.impl.Utils.doUpdate(Utils.java:235)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:180)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:205)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:205)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:123)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.updateActionsImpl(ActionToolbarImpl.java:974)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.access$000(ActionToolbarImpl.java:61)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl$2.updateActionsImpl(ActionToolbarImpl.java:180)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyUpdateRunnable.run(ToolbarUpdater.java:186)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushRequest(FocusManagerImpl.java:643)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushNow(FocusManagerImpl.java:624)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushIdleRequests(FocusManagerImpl.java:594)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$doWhenFocusSettlesDown$13(FocusManagerImpl.java:476)
	at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2760)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:456)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.updateActions(ToolbarUpdater.java:108)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.access$400(ToolbarUpdater.java:40)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyTimerListener.run(ToolbarUpdater.java:158)
	at com.intellij.openapi.actionSystem.impl.WeakTimerListener.run(WeakTimerListener.java:54)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.runListenerAction(ActionManagerImpl.java:1402)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.notifyListeners(ActionManagerImpl.java:1392)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.actionPerformed(ActionManagerImpl.java:1376)
	at javax.swing.Timer.fireActionPerformed(Timer.java:313)
	at javax.swing.Timer$DoPostEvent.run(Timer.java:245)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:821)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


com.intellij.psi.PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type DEF_FUNCTION (class org.vclang.psi.stubs.VcDefFunctionStub$Type)
	at com.intellij.psi.PsiInvalidElementAccessException.createByNode(PsiInvalidElementAccessException.java:96)
	at com.intellij.psi.impl.source.SubstrateRef$2.getContainingFile(SubstrateRef.java:101)
	at com.intellij.extapi.psi.StubBasedPsiElementBase.getContainingFile(StubBasedPsiElementBase.java:275)
	at com.intellij.openapi.module.ModuleUtilCore.findModuleForPsiElement(ModuleUtilCore.java:79)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:42)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:36)
	at org.vclang.typechecking.execution.DefinitionProxy.getLocation(DefinitionProxy.kt:18)
	at com.intellij.execution.testframework.TestsUIUtil.getData(TestsUIUtil.java:62)
	at com.intellij.execution.testframework.TestTreeView.getData(TestTreeView.java:144)
	at com.intellij.execution.testframework.sm.runner.ui.SMTRunnerTestTreeView.getData(SMTRunnerTestTreeView.java:74)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:86)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.PsiFileRule.getData(PsiFileRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileRule.getData(VirtualFileRule.java:44)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileArrayRule.getData(VirtualFileArrayRule.java:96)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.openapi.vcs.VirtualFileStreamRule.getData(VirtualFileStreamRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.getData(DataManagerImpl.java:73)
	at com.intellij.ide.impl.DataManagerImpl.access$300(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.doGetData(DataManagerImpl.java:400)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.getData(DataManagerImpl.java:377)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:69)
	at com.intellij.openapi.vcs.actions.VcsContextWrapper.getSelectedFilesStream(VcsContextWrapper.java:104)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.getPathAndParentFile(TabbedShowHistoryAction.java:89)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.isEnabled(TabbedShowHistoryAction.java:55)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.update(TabbedShowHistoryAction.java:46)
	at com.intellij.openapi.vcs.actions.AbstractVcsAction.performUpdate(AbstractVcsAction.java:71)
	at com.intellij.openapi.vcs.actions.AbstractVcsAction.update(AbstractVcsAction.java:43)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:132)
	at com.intellij.openapi.actionSystem.impl.Utils.doUpdate(Utils.java:235)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:180)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:205)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:205)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:123)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.updateActionsImpl(ActionToolbarImpl.java:974)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.access$000(ActionToolbarImpl.java:61)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl$2.updateActionsImpl(ActionToolbarImpl.java:180)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyUpdateRunnable.run(ToolbarUpdater.java:186)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushRequest(FocusManagerImpl.java:643)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushNow(FocusManagerImpl.java:624)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushIdleRequests(FocusManagerImpl.java:594)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$doWhenFocusSettlesDown$13(FocusManagerImpl.java:476)
	at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2760)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:456)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.updateActions(ToolbarUpdater.java:108)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.access$400(ToolbarUpdater.java:40)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyTimerListener.run(ToolbarUpdater.java:158)
	at com.intellij.openapi.actionSystem.impl.WeakTimerListener.run(WeakTimerListener.java:54)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.runListenerAction(ActionManagerImpl.java:1402)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.notifyListeners(ActionManagerImpl.java:1392)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.actionPerformed(ActionManagerImpl.java:1376)
	at javax.swing.Timer.fireActionPerformed(Timer.java:313)
	at javax.swing.Timer$DoPostEvent.run(Timer.java:245)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:821)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


com.intellij.psi.PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type DEF_FUNCTION (class org.vclang.psi.stubs.VcDefFunctionStub$Type)
	at com.intellij.psi.PsiInvalidElementAccessException.createByNode(PsiInvalidElementAccessException.java:96)
	at com.intellij.psi.impl.source.SubstrateRef$2.getContainingFile(SubstrateRef.java:101)
	at com.intellij.extapi.psi.StubBasedPsiElementBase.getContainingFile(StubBasedPsiElementBase.java:275)
	at com.intellij.openapi.module.ModuleUtilCore.findModuleForPsiElement(ModuleUtilCore.java:79)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:42)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:36)
	at org.vclang.typechecking.execution.DefinitionProxy.getLocation(DefinitionProxy.kt:18)
	at com.intellij.execution.testframework.TestsUIUtil.getData(TestsUIUtil.java:62)
	at com.intellij.execution.testframework.TestTreeView.getData(TestTreeView.java:144)
	at com.intellij.execution.testframework.sm.runner.ui.SMTRunnerTestTreeView.getData(SMTRunnerTestTreeView.java:74)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:86)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.PsiFileRule.getData(PsiFileRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileRule.getData(VirtualFileRule.java:44)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileArrayRule.getData(VirtualFileArrayRule.java:96)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.openapi.vcs.VirtualFileStreamRule.getData(VirtualFileStreamRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.getData(DataManagerImpl.java:73)
	at com.intellij.ide.impl.DataManagerImpl.access$300(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.doGetData(DataManagerImpl.java:400)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.getData(DataManagerImpl.java:377)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:69)
	at com.intellij.openapi.vcs.actions.VcsContextWrapper.getSelectedFilesStream(VcsContextWrapper.java:104)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.getPathAndParentFile(TabbedShowHistoryAction.java:89)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.isEnabled(TabbedShowHistoryAction.java:55)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.update(TabbedShowHistoryAction.java:46)
	at com.intellij.openapi.vcs.actions.AbstractVcsAction.performUpdate(AbstractVcsAction.java:71)
	at com.intellij.openapi.vcs.actions.AbstractVcsAction.update(AbstractVcsAction.java:43)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:132)
	at com.intellij.openapi.actionSystem.impl.Utils.doUpdate(Utils.java:235)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:180)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:205)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:205)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:123)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.updateActionsImpl(ActionToolbarImpl.java:974)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.access$000(ActionToolbarImpl.java:61)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl$2.updateActionsImpl(ActionToolbarImpl.java:180)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyUpdateRunnable.run(ToolbarUpdater.java:186)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushRequest(FocusManagerImpl.java:643)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushNow(FocusManagerImpl.java:624)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushIdleRequests(FocusManagerImpl.java:594)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$doWhenFocusSettlesDown$13(FocusManagerImpl.java:476)
	at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2760)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:456)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.updateActions(ToolbarUpdater.java:108)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.access$400(ToolbarUpdater.java:40)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyTimerListener.run(ToolbarUpdater.java:158)
	at com.intellij.openapi.actionSystem.impl.WeakTimerListener.run(WeakTimerListener.java:54)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.runListenerAction(ActionManagerImpl.java:1402)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.notifyListeners(ActionManagerImpl.java:1392)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.actionPerformed(ActionManagerImpl.java:1376)
	at javax.swing.Timer.fireActionPerformed(Timer.java:313)
	at javax.swing.Timer$DoPostEvent.run(Timer.java:245)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:821)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


com.intellij.psi.PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type DEF_FUNCTION (class org.vclang.psi.stubs.VcDefFunctionStub$Type)
	at com.intellij.psi.PsiInvalidElementAccessException.createByNode(PsiInvalidElementAccessException.java:96)
	at com.intellij.psi.impl.source.SubstrateRef$2.getContainingFile(SubstrateRef.java:101)
	at com.intellij.extapi.psi.StubBasedPsiElementBase.getContainingFile(StubBasedPsiElementBase.java:275)
	at com.intellij.openapi.module.ModuleUtilCore.findModuleForPsiElement(ModuleUtilCore.java:79)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:42)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:36)
	at org.vclang.typechecking.execution.DefinitionProxy.getLocation(DefinitionProxy.kt:18)
	at com.intellij.execution.testframework.TestsUIUtil.getData(TestsUIUtil.java:62)
	at com.intellij.execution.testframework.TestTreeView.getData(TestTreeView.java:144)
	at com.intellij.execution.testframework.sm.runner.ui.SMTRunnerTestTreeView.getData(SMTRunnerTestTreeView.java:74)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:86)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.PsiFileRule.getData(PsiFileRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileRule.getData(VirtualFileRule.java:44)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileArrayRule.getData(VirtualFileArrayRule.java:96)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.openapi.vcs.VirtualFileStreamRule.getData(VirtualFileStreamRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.getData(DataManagerImpl.java:73)
	at com.intellij.ide.impl.DataManagerImpl.access$300(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.doGetData(DataManagerImpl.java:400)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.getData(DataManagerImpl.java:377)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:69)
	at com.intellij.openapi.vcs.actions.VcsContextWrapper.getSelectedFilesStream(VcsContextWrapper.java:104)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.getPathAndParentFile(TabbedShowHistoryAction.java:89)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.isEnabled(TabbedShowHistoryAction.java:55)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.update(TabbedShowHistoryAction.java:46)
	at com.intellij.openapi.vcs.actions.AbstractVcsAction.performUpdate(AbstractVcsAction.java:71)
	at com.intellij.openapi.vcs.actions.AbstractVcsAction.update(AbstractVcsAction.java:43)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:132)
	at com.intellij.openapi.actionSystem.impl.Utils.doUpdate(Utils.java:235)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:180)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:205)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:205)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:123)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.updateActionsImpl(ActionToolbarImpl.java:974)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.access$000(ActionToolbarImpl.java:61)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl$2.updateActionsImpl(ActionToolbarImpl.java:180)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyUpdateRunnable.run(ToolbarUpdater.java:186)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushRequest(FocusManagerImpl.java:643)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushNow(FocusManagerImpl.java:624)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushIdleRequests(FocusManagerImpl.java:594)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$doWhenFocusSettlesDown$13(FocusManagerImpl.java:476)
	at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2760)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:456)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.updateActions(ToolbarUpdater.java:108)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.access$400(ToolbarUpdater.java:40)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyTimerListener.run(ToolbarUpdater.java:158)
	at com.intellij.openapi.actionSystem.impl.WeakTimerListener.run(WeakTimerListener.java:54)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.runListenerAction(ActionManagerImpl.java:1402)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.notifyListeners(ActionManagerImpl.java:1392)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.actionPerformed(ActionManagerImpl.java:1376)
	at javax.swing.Timer.fireActionPerformed(Timer.java:313)
	at javax.swing.Timer$DoPostEvent.run(Timer.java:245)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:821)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


com.intellij.psi.PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type DEF_FUNCTION (class org.vclang.psi.stubs.VcDefFunctionStub$Type)
	at com.intellij.psi.PsiInvalidElementAccessException.createByNode(PsiInvalidElementAccessException.java:96)
	at com.intellij.psi.impl.source.SubstrateRef$2.getContainingFile(SubstrateRef.java:101)
	at com.intellij.extapi.psi.StubBasedPsiElementBase.getContainingFile(StubBasedPsiElementBase.java:275)
	at com.intellij.openapi.module.ModuleUtilCore.findModuleForPsiElement(ModuleUtilCore.java:79)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:42)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:36)
	at org.vclang.typechecking.execution.DefinitionProxy.getLocation(DefinitionProxy.kt:18)
	at com.intellij.execution.testframework.TestsUIUtil.getData(TestsUIUtil.java:62)
	at com.intellij.execution.testframework.TestTreeView.getData(TestTreeView.java:144)
	at com.intellij.execution.testframework.sm.runner.ui.SMTRunnerTestTreeView.getData(SMTRunnerTestTreeView.java:74)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:86)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.PsiFileRule.getData(PsiFileRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileRule.getData(VirtualFileRule.java:44)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileArrayRule.getData(VirtualFileArrayRule.java:96)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.openapi.vcs.VirtualFileStreamRule.getData(VirtualFileStreamRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.getData(DataManagerImpl.java:73)
	at com.intellij.ide.impl.DataManagerImpl.access$300(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.doGetData(DataManagerImpl.java:400)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.getData(DataManagerImpl.java:377)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:69)
	at com.intellij.openapi.vcs.actions.VcsContextWrapper.getSelectedFilesStream(VcsContextWrapper.java:104)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.getPathAndParentFile(TabbedShowHistoryAction.java:89)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.isEnabled(TabbedShowHistoryAction.java:55)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.update(TabbedShowHistoryAction.java:46)
	at com.intellij.openapi.vcs.actions.AbstractVcsAction.performUpdate(AbstractVcsAction.java:71)
	at com.intellij.openapi.vcs.actions.AbstractVcsAction.update(AbstractVcsAction.java:43)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:132)
	at com.intellij.openapi.actionSystem.impl.Utils.doUpdate(Utils.java:235)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:180)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:205)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:205)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:123)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.updateActionsImpl(ActionToolbarImpl.java:974)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.access$000(ActionToolbarImpl.java:61)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl$2.updateActionsImpl(ActionToolbarImpl.java:180)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyUpdateRunnable.run(ToolbarUpdater.java:186)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushRequest(FocusManagerImpl.java:643)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushNow(FocusManagerImpl.java:624)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushIdleRequests(FocusManagerImpl.java:594)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$doWhenFocusSettlesDown$13(FocusManagerImpl.java:476)
	at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2760)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:456)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.updateActions(ToolbarUpdater.java:108)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.access$400(ToolbarUpdater.java:40)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyTimerListener.run(ToolbarUpdater.java:158)
	at com.intellij.openapi.actionSystem.impl.WeakTimerListener.run(WeakTimerListener.java:54)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.runListenerAction(ActionManagerImpl.java:1402)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.notifyListeners(ActionManagerImpl.java:1392)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.actionPerformed(ActionManagerImpl.java:1376)
	at javax.swing.Timer.fireActionPerformed(Timer.java:313)
	at javax.swing.Timer$DoPostEvent.run(Timer.java:245)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:821)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


com.intellij.psi.PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type DEF_FUNCTION (class org.vclang.psi.stubs.VcDefFunctionStub$Type)
	at com.intellij.psi.PsiInvalidElementAccessException.createByNode(PsiInvalidElementAccessException.java:96)
	at com.intellij.psi.impl.source.SubstrateRef$2.getContainingFile(SubstrateRef.java:101)
	at com.intellij.extapi.psi.StubBasedPsiElementBase.getContainingFile(StubBasedPsiElementBase.java:275)
	at com.intellij.openapi.module.ModuleUtilCore.findModuleForPsiElement(ModuleUtilCore.java:79)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:42)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:36)
	at org.vclang.typechecking.execution.DefinitionProxy.getLocation(DefinitionProxy.kt:18)
	at com.intellij.execution.testframework.TestsUIUtil.getData(TestsUIUtil.java:62)
	at com.intellij.execution.testframework.TestTreeView.getData(TestTreeView.java:144)
	at com.intellij.execution.testframework.sm.runner.ui.SMTRunnerTestTreeView.getData(SMTRunnerTestTreeView.java:74)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:86)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.PsiFileRule.getData(PsiFileRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileRule.getData(VirtualFileRule.java:44)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileArrayRule.getData(VirtualFileArrayRule.java:96)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.openapi.vcs.VirtualFileStreamRule.getData(VirtualFileStreamRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.getData(DataManagerImpl.java:73)
	at com.intellij.ide.impl.DataManagerImpl.access$300(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.doGetData(DataManagerImpl.java:400)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.getData(DataManagerImpl.java:377)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:69)
	at com.intellij.openapi.vcs.actions.VcsContextWrapper.getSelectedFilesStream(VcsContextWrapper.java:104)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.getPathAndParentFile(TabbedShowHistoryAction.java:89)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.isEnabled(TabbedShowHistoryAction.java:55)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.update(TabbedShowHistoryAction.java:46)
	at com.intellij.openapi.vcs.actions.AbstractVcsAction.performUpdate(AbstractVcsAction.java:71)
	at com.intellij.openapi.vcs.actions.AbstractVcsAction.update(AbstractVcsAction.java:43)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:132)
	at com.intellij.openapi.actionSystem.impl.Utils.doUpdate(Utils.java:235)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:180)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:205)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:205)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:123)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.updateActionsImpl(ActionToolbarImpl.java:974)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.access$000(ActionToolbarImpl.java:61)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl$2.updateActionsImpl(ActionToolbarImpl.java:180)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyUpdateRunnable.run(ToolbarUpdater.java:186)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushRequest(FocusManagerImpl.java:643)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushNow(FocusManagerImpl.java:624)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushIdleRequests(FocusManagerImpl.java:594)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$doWhenFocusSettlesDown$13(FocusManagerImpl.java:476)
	at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2760)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:456)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.updateActions(ToolbarUpdater.java:108)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.access$400(ToolbarUpdater.java:40)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyTimerListener.run(ToolbarUpdater.java:158)
	at com.intellij.openapi.actionSystem.impl.WeakTimerListener.run(WeakTimerListener.java:54)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.runListenerAction(ActionManagerImpl.java:1402)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.notifyListeners(ActionManagerImpl.java:1392)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.actionPerformed(ActionManagerImpl.java:1376)
	at javax.swing.Timer.fireActionPerformed(Timer.java:313)
	at javax.swing.Timer$DoPostEvent.run(Timer.java:245)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:821)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


com.intellij.psi.PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type DEF_FUNCTION (class org.vclang.psi.stubs.VcDefFunctionStub$Type)
	at com.intellij.psi.PsiInvalidElementAccessException.createByNode(PsiInvalidElementAccessException.java:96)
	at com.intellij.psi.impl.source.SubstrateRef$2.getContainingFile(SubstrateRef.java:101)
	at com.intellij.extapi.psi.StubBasedPsiElementBase.getContainingFile(StubBasedPsiElementBase.java:275)
	at com.intellij.openapi.module.ModuleUtilCore.findModuleForPsiElement(ModuleUtilCore.java:79)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:42)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:36)
	at org.vclang.typechecking.execution.DefinitionProxy.getLocation(DefinitionProxy.kt:18)
	at com.intellij.execution.testframework.TestsUIUtil.getData(TestsUIUtil.java:62)
	at com.intellij.execution.testframework.TestTreeView.getData(TestTreeView.java:144)
	at com.intellij.execution.testframework.sm.runner.ui.SMTRunnerTestTreeView.getData(SMTRunnerTestTreeView.java:74)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:86)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.PsiFileRule.getData(PsiFileRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileRule.getData(VirtualFileRule.java:44)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileArrayRule.getData(VirtualFileArrayRule.java:96)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.openapi.vcs.VirtualFileStreamRule.getData(VirtualFileStreamRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.getData(DataManagerImpl.java:73)
	at com.intellij.ide.impl.DataManagerImpl.access$300(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.doGetData(DataManagerImpl.java:400)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.getData(DataManagerImpl.java:377)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:69)
	at com.intellij.openapi.vcs.actions.VcsContextWrapper.getSelectedFilesStream(VcsContextWrapper.java:104)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.getPathAndParentFile(TabbedShowHistoryAction.java:89)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.isEnabled(TabbedShowHistoryAction.java:55)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.update(TabbedShowHistoryAction.java:46)
	at com.intellij.openapi.vcs.actions.AbstractVcsAction.performUpdate(AbstractVcsAction.java:71)
	at com.intellij.openapi.vcs.actions.AbstractVcsAction.update(AbstractVcsAction.java:43)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:132)
	at com.intellij.openapi.actionSystem.impl.Utils.doUpdate(Utils.java:235)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:180)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:205)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:205)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:123)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.updateActionsImpl(ActionToolbarImpl.java:974)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.access$000(ActionToolbarImpl.java:61)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl$2.updateActionsImpl(ActionToolbarImpl.java:180)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyUpdateRunnable.run(ToolbarUpdater.java:186)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushRequest(FocusManagerImpl.java:643)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushNow(FocusManagerImpl.java:624)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushIdleRequests(FocusManagerImpl.java:594)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$doWhenFocusSettlesDown$13(FocusManagerImpl.java:476)
	at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2760)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:456)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.updateActions(ToolbarUpdater.java:108)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.access$400(ToolbarUpdater.java:40)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyTimerListener.run(ToolbarUpdater.java:158)
	at com.intellij.openapi.actionSystem.impl.WeakTimerListener.run(WeakTimerListener.java:54)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.runListenerAction(ActionManagerImpl.java:1402)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.notifyListeners(ActionManagerImpl.java:1392)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.actionPerformed(ActionManagerImpl.java:1376)
	at javax.swing.Timer.fireActionPerformed(Timer.java:313)
	at javax.swing.Timer$DoPostEvent.run(Timer.java:245)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:821)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


com.intellij.psi.PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type DEF_FUNCTION (class org.vclang.psi.stubs.VcDefFunctionStub$Type)
	at com.intellij.psi.PsiInvalidElementAccessException.createByNode(PsiInvalidElementAccessException.java:96)
	at com.intellij.psi.impl.source.SubstrateRef$2.getContainingFile(SubstrateRef.java:101)
	at com.intellij.extapi.psi.StubBasedPsiElementBase.getContainingFile(StubBasedPsiElementBase.java:275)
	at com.intellij.openapi.module.ModuleUtilCore.findModuleForPsiElement(ModuleUtilCore.java:79)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:42)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:36)
	at org.vclang.typechecking.execution.DefinitionProxy.getLocation(DefinitionProxy.kt:18)
	at com.intellij.execution.testframework.TestsUIUtil.getData(TestsUIUtil.java:62)
	at com.intellij.execution.testframework.TestTreeView.getData(TestTreeView.java:144)
	at com.intellij.execution.testframework.sm.runner.ui.SMTRunnerTestTreeView.getData(SMTRunnerTestTreeView.java:74)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:86)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.PsiFileRule.getData(PsiFileRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.getData(DataManagerImpl.java:73)
	at com.intellij.ide.impl.DataManagerImpl.access$300(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.doGetData(DataManagerImpl.java:400)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.getData(DataManagerImpl.java:377)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:69)
	at com.intellij.ide.navigationToolbar.NavBarModel.updateModel(NavBarModel.java:100)
	at com.intellij.ide.navigationToolbar.NavBarUpdateQueue.requestModelUpdateFromContextOrObject(NavBarUpdateQueue.java:95)
	at com.intellij.ide.navigationToolbar.NavBarUpdateQueue.access$100(NavBarUpdateQueue.java:43)
	at com.intellij.ide.navigationToolbar.NavBarUpdateQueue$1.lambda$run$0(NavBarUpdateQueue.java:70)
	at com.intellij.openapi.util.AsyncResult.lambda$doWhenDone$1(AsyncResult.java:77)
	at com.intellij.openapi.util.ExecutionCallback.doWhenExecuted(ExecutionCallback.java:100)
	at com.intellij.openapi.util.ActionCallback.doWhenDone(ActionCallback.java:111)
	at com.intellij.openapi.util.AsyncResult.doWhenDone(AsyncResult.java:77)
	at com.intellij.ide.navigationToolbar.NavBarUpdateQueue$1.run(NavBarUpdateQueue.java:69)
	at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:337)
	at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:327)
	at com.intellij.util.ui.update.MergingUpdateQueue.lambda$flush$1(MergingUpdateQueue.java:277)
	at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2760)
	at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:288)
	at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:246)
	at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:246)
	at com.intellij.util.Alarm$Request.runSafely(Alarm.java:417)
	at com.intellij.util.Alarm$Request.access$700(Alarm.java:344)
	at com.intellij.util.Alarm$Request$1.run(Alarm.java:384)
	at com.intellij.util.Alarm$Request.run(Alarm.java:395)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at com.intellij.util.concurrency.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:237)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:821)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


com.intellij.psi.PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type DEF_FUNCTION (class org.vclang.psi.stubs.VcDefFunctionStub$Type)
	at com.intellij.psi.PsiInvalidElementAccessException.createByNode(PsiInvalidElementAccessException.java:96)
	at com.intellij.psi.impl.source.SubstrateRef$2.getContainingFile(SubstrateRef.java:101)
	at com.intellij.extapi.psi.StubBasedPsiElementBase.getContainingFile(StubBasedPsiElementBase.java:275)
	at com.intellij.openapi.module.ModuleUtilCore.findModuleForPsiElement(ModuleUtilCore.java:79)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:42)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:36)
	at org.vclang.typechecking.execution.DefinitionProxy.getLocation(DefinitionProxy.kt:18)
	at com.intellij.execution.testframework.TestsUIUtil.getData(TestsUIUtil.java:62)
	at com.intellij.execution.testframework.TestTreeView.getData(TestTreeView.java:144)
	at com.intellij.execution.testframework.sm.runner.ui.SMTRunnerTestTreeView.getData(SMTRunnerTestTreeView.java:74)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:86)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.PsiFileRule.getData(PsiFileRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.getData(DataManagerImpl.java:73)
	at com.intellij.ide.impl.DataManagerImpl.access$300(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.doGetData(DataManagerImpl.java:400)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.getData(DataManagerImpl.java:377)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:69)
	at com.intellij.ide.navigationToolbar.NavBarModel.updateModel(NavBarModel.java:100)
	at com.intellij.ide.navigationToolbar.NavBarUpdateQueue.requestModelUpdateFromContextOrObject(NavBarUpdateQueue.java:95)
	at com.intellij.ide.navigationToolbar.NavBarUpdateQueue.access$100(NavBarUpdateQueue.java:43)
	at com.intellij.ide.navigationToolbar.NavBarUpdateQueue$1.lambda$run$0(NavBarUpdateQueue.java:70)
	at com.intellij.openapi.util.AsyncResult.lambda$doWhenDone$1(AsyncResult.java:77)
	at com.intellij.openapi.util.ExecutionCallback.doWhenExecuted(ExecutionCallback.java:100)
	at com.intellij.openapi.util.ActionCallback.doWhenDone(ActionCallback.java:111)
	at com.intellij.openapi.util.AsyncResult.doWhenDone(AsyncResult.java:77)
	at com.intellij.ide.navigationToolbar.NavBarUpdateQueue$1.run(NavBarUpdateQueue.java:69)
	at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:337)
	at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:327)
	at com.intellij.util.ui.update.MergingUpdateQueue.lambda$flush$1(MergingUpdateQueue.java:277)
	at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2760)
	at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:288)
	at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:246)
	at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:246)
	at com.intellij.util.Alarm$Request.runSafely(Alarm.java:417)
	at com.intellij.util.Alarm$Request.access$700(Alarm.java:344)
	at com.intellij.util.Alarm$Request$1.run(Alarm.java:384)
	at com.intellij.util.Alarm$Request.run(Alarm.java:395)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at com.intellij.util.concurrency.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:237)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:821)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


com.intellij.psi.PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type DEF_FUNCTION (class org.vclang.psi.stubs.VcDefFunctionStub$Type)
	at com.intellij.psi.PsiInvalidElementAccessException.createByNode(PsiInvalidElementAccessException.java:96)
	at com.intellij.psi.impl.source.SubstrateRef$2.getContainingFile(SubstrateRef.java:101)
	at com.intellij.extapi.psi.StubBasedPsiElementBase.getContainingFile(StubBasedPsiElementBase.java:275)
	at com.intellij.openapi.module.ModuleUtilCore.findModuleForPsiElement(ModuleUtilCore.java:79)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:42)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:36)
	at org.vclang.typechecking.execution.DefinitionProxy.getLocation(DefinitionProxy.kt:18)
	at com.intellij.execution.testframework.TestsUIUtil.getData(TestsUIUtil.java:62)
	at com.intellij.execution.testframework.TestTreeView.getData(TestTreeView.java:144)
	at com.intellij.execution.testframework.sm.runner.ui.SMTRunnerTestTreeView.getData(SMTRunnerTestTreeView.java:74)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:86)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.PsiFileRule.getData(PsiFileRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileRule.getData(VirtualFileRule.java:44)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileArrayRule.getData(VirtualFileArrayRule.java:96)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.openapi.vcs.VirtualFileStreamRule.getData(VirtualFileStreamRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.getData(DataManagerImpl.java:73)
	at com.intellij.ide.impl.DataManagerImpl.access$300(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.doGetData(DataManagerImpl.java:400)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.getData(DataManagerImpl.java:377)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:69)
	at com.intellij.openapi.vcs.actions.VcsContextWrapper.getSelectedFilesStream(VcsContextWrapper.java:104)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.getPathAndParentFile(TabbedShowHistoryAction.java:89)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.isEnabled(TabbedShowHistoryAction.java:55)
	at com.intellij.openapi.vcs.actions.TabbedShowHistoryAction.update(TabbedShowHistoryAction.java:46)
	at com.intellij.openapi.vcs.actions.AbstractVcsAction.performUpdate(AbstractVcsAction.java:71)
	at com.intellij.openapi.vcs.actions.AbstractVcsAction.update(AbstractVcsAction.java:43)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:132)
	at com.intellij.openapi.actionSystem.impl.Utils.doUpdate(Utils.java:235)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:180)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:205)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:205)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:123)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.updateActionsImpl(ActionToolbarImpl.java:974)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.access$000(ActionToolbarImpl.java:61)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl$2.updateActionsImpl(ActionToolbarImpl.java:180)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyUpdateRunnable.run(ToolbarUpdater.java:186)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushRequest(FocusManagerImpl.java:643)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushNow(FocusManagerImpl.java:624)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.flushIdleRequests(FocusManagerImpl.java:594)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$doWhenFocusSettlesDown$13(FocusManagerImpl.java:476)
	at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2760)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:456)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.updateActions(ToolbarUpdater.java:108)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.access$400(ToolbarUpdater.java:40)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyTimerListener.run(ToolbarUpdater.java:158)
	at com.intellij.openapi.actionSystem.impl.WeakTimerListener.run(WeakTimerListener.java:54)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.runListenerAction(ActionManagerImpl.java:1402)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.notifyListeners(ActionManagerImpl.java:1392)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.actionPerformed(ActionManagerImpl.java:1376)
	at javax.swing.Timer.fireActionPerformed(Timer.java:313)
	at javax.swing.Timer$DoPostEvent.run(Timer.java:245)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:821)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


com.intellij.psi.PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type DEF_FUNCTION (class org.vclang.psi.stubs.VcDefFunctionStub$Type)
	at com.intellij.psi.PsiInvalidElementAccessException.createByNode(PsiInvalidElementAccessException.java:96)
	at com.intellij.psi.impl.source.SubstrateRef$2.getContainingFile(SubstrateRef.java:101)
	at com.intellij.extapi.psi.StubBasedPsiElementBase.getContainingFile(StubBasedPsiElementBase.java:275)
	at com.intellij.openapi.module.ModuleUtilCore.findModuleForPsiElement(ModuleUtilCore.java:79)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:42)
	at com.intellij.execution.PsiLocation.<init>(PsiLocation.java:36)
	at org.vclang.typechecking.execution.DefinitionProxy.getLocation(DefinitionProxy.kt:18)
	at com.intellij.execution.testframework.TestsUIUtil.getData(TestsUIUtil.java:62)
	at com.intellij.execution.testframework.TestTreeView.getData(TestTreeView.java:144)
	at com.intellij.execution.testframework.sm.runner.ui.SMTRunnerTestTreeView.getData(SMTRunnerTestTreeView.java:74)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:86)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.PsiFileRule.getData(PsiFileRule.java:31)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileArrayRule.getData(VirtualFileArrayRule.java:98)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.access$000(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$1.getData(DataManagerImpl.java:96)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
	at com.intellij.ide.impl.dataRules.VirtualFileRule.getData(VirtualFileRule.java:39)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProvider(DataManagerImpl.java:93)
	at com.intellij.ide.impl.DataManagerImpl.getData(DataManagerImpl.java:73)
	at com.intellij.ide.impl.DataManagerImpl.access$300(DataManagerImpl.java:58)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.doGetData(DataManagerImpl.java:400)
	at com.intellij.ide.impl.DataManagerImpl$MyDataContext.getData(DataManagerImpl.java:377)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:69)
	at com.intellij.codeEditor.printing.PrintAction.update(PrintAction.java:41)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:132)
	at com.intellij.openapi.actionSystem.impl.Utils.doUpdate(Utils.java:235)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:180)
	at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:123)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.updateActionsImpl(ActionToolbarImpl.java:974)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.access$000(ActionToolbarImpl.java:61)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl$2.updateActionsImpl(ActionToolbarImpl.java:180)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater$MyUpdateRunnable.run(ToolbarUpdater.java:186)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.updateActions(ToolbarUpdater.java:101)
	at com.intellij.openapi.actionSystem.impl.ToolbarUpdater.updateActions(ToolbarUpdater.java:93)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.updateActionsImmediately(ActionToolbarImpl.java:967)
	at com.intellij.openapi.actionSystem.impl.ActionToolbarImpl.addNotify(ActionToolbarImpl.java:214)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at com.intellij.ui.JBSplitter.addNotify(JBSplitter.java:109)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at com.intellij.ui.tabs.impl.JBTabsImpl.addNotify(JBTabsImpl.java:453)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at com.intellij.execution.ui.layout.impl.GridImpl.addNotify(GridImpl.java:85)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at com.intellij.ui.tabs.impl.JBTabsImpl.addNotify(JBTabsImpl.java:453)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at com.intellij.execution.ui.layout.impl.RunnerContentUi$MyComponent.addNotify(RunnerContentUi.java:1426)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at java.awt.Container.addNotify(Container.java:2773)
	at javax.swing.JComponent.addNotify(JComponent.java:4740)
	at java.awt.Container.addImpl(Container.java:1121)
	at java.awt.Container.add(Container.java:417)
	at com.intellij.openapi.ui.ThreeComponentsSplitter.setLastComponent(ThreeComponentsSplitter.java:434)
	at com.intellij.openapi.wm.impl.ToolWindowsPane.setComponent(ToolWindowsPane.java:364)
	at com.intellij.openapi.wm.impl.ToolWindowsPane.access$400(ToolWindowsPane.java:57)
	at com.intellij.openapi.wm.impl.ToolWindowsPane$AddAndSplitDockedComponentCmd.run(ToolWindowsPane.java:857)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:416)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:399)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:821)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Scopes behave differently for ArendFile and inside ArendWhere.

The following piece of code is perfectly legal when written inside ArendFile:

\data Bar 
  | myCons
\open Bar -- Here Bar is seen by the resolver

However if we put this code block inside a module we will get a broken reference:

\module Foo \where {
  \data Bar
    | myCons
  \open Bar -- Resolving error
}

Implement Move refactorings

Meaning: move refactorings between different source roots
When a definition is moved -- all modules with usages should have their headers updated and possibly the usages themselves should be renamed

Invalid identifiers in using lists obstruct valid identifiers in namespaces

See the commented out test in ResolveRefQuickFixTest to reproduce the bug.

This problem leads to reference resolving issues that currently cannot be fixed by the current implementation of Auto Imports. One of the following should be done:

  • either namespaces implementation is modified so that invalid identifiers in using lists do not pollute namespaces (preferable solution)
  • AutoImport algorithm is modified so that it proposes quickfix hints that actually solve the issue

Feature: swap parameters

image

It is a common task to swap parameters with each other on infix operators. =, +, etc. It would be nice, if the plugin suggested to swap it for you (by pressing Alt+Enter for example).

Add "Remove already implemented field" intention

When a field is already implemented there should be an intention that removes this field. For example, there should be such an intention for coclause x => 1 in the following code:

\record C | x : Nat
\record D \extends C | x => 0
\func f : D \cowith | x => 1

NPE and checker crash

Type checker "successfully" checks that code:

\data List (A : \Type) | nil | cons A (List A)

\func \infixl 4 ++ {A : \Type} (xs ys : List A) : List A \elim xs
  | nil => ys
  | cons x xs => cons x (xs ++ ys)

\func reverse {A : \Type} (xs : List A) : List A
  | nil => nil
  | cons x xs => reverse xs ++ cons x nil

\func ++nil {A : \Type} (xs : List A) : xs ++ nil = xs
    | nil => idp
    | cons x xs => pmap (\lam xs => cons x xs) (++nil xs)

-- Это утверждение будет полезно для доказательства.
\func reverse++ {A : \Type} (xs ys : List A) : reverse (xs ++ ys) = reverse ys ++ reverse xs \elim xs
    | nil => sym (++nil (reverse ys))
    | cons x xs => pmap (\lam list => list ++ (cons x nil)) {?}

P.S. check test time

Keyword completion

The main difficulty is with understanding what keywords are admissible at current cursor position.
Should be similar to the problems encountered during the implementation of Ctrl+P

Smarter highlighting and quickfixing of nameresolver errors

When the same identifier is imported from two modules, it would be better to highlight only the imported identifiers and not the namespace commands themselves. Also it would be great to have quickfixes proposed in this situation (e.g. rename identifier f into something user-defined).

--A.vc and B.vc both implement function f;
\import A (f) -- suggested quickfix: rename f
\import B -- suggested quickfix: add f to hiding list (or suggest renaming f)

Exception on startup

Related to issue#21

In file: file://C:/Users/Fedor.Part/Workspace/vclang-lib/test/Data/Fin.vc: Not a stub type: FIELD_DEF_IDENTIFIER in class org.vclang.psi.impl.VcFieldDefIdentifierImpl
java.lang.ClassCastException: Not a stub type: FIELD_DEF_IDENTIFIER in class org.vclang.psi.impl.VcFieldDefIdentifierImpl
at com.intellij.extapi.psi.StubBasedPsiElementBase.getElementType(StubBasedPsiElementBase.java:369)
at org.vclang.psi.ext.VcStubbedElementImpl.toString(VcCompositeElement.kt:98)
at com.intellij.psi.impl.DebugUtil$TreeToBuffer.visitNode(DebugUtil.java:186)
at com.intellij.psi.impl.source.tree.RecursiveTreeElementWalkingVisitor.visitComposite(RecursiveTreeElementWalkingVisitor.java:80)
at com.intellij.psi.impl.source.tree.CompositeElement.acceptTree(CompositeElement.java:148)
at com.intellij.psi.impl.source.tree.RecursiveTreeElementWalkingVisitor$1.visit(RecursiveTreeElementWalkingVisitor.java:66)
at com.intellij.psi.impl.source.tree.RecursiveTreeElementWalkingVisitor$1.visit(RecursiveTreeElementWalkingVisitor.java:58)
at com.intellij.util.WalkingState.walkChildren(WalkingState.java:65)
at com.intellij.util.WalkingState.elementStarted(WalkingState.java:52)
at com.intellij.psi.impl.source.tree.RecursiveTreeElementWalkingVisitor.visitNode(RecursiveTreeElementWalkingVisitor.java:85)
at com.intellij.psi.impl.DebugUtil$TreeToBuffer.visitNode(DebugUtil.java:212)
at com.intellij.psi.impl.source.tree.RecursiveTreeElementWalkingVisitor.visitComposite(RecursiveTreeElementWalkingVisitor.java:80)
at com.intellij.psi.impl.source.tree.CompositeElement.acceptTree(CompositeElement.java:148)
at com.intellij.psi.impl.DebugUtil.treeToBuffer(DebugUtil.java:148)
at com.intellij.psi.impl.DebugUtil.psiToBuffer(DebugUtil.java:464)
at com.intellij.psi.impl.DebugUtil.psiToString(DebugUtil.java:448)
at com.intellij.psi.impl.DebugUtil.psiToString(DebugUtil.java:443)
at com.intellij.psi.impl.DebugUtil.psiToString(DebugUtil.java:439)
at com.intellij.psi.stubs.StubTreeLoader.stubTreeAndIndexDoNotMatch(StubTreeLoader.java:94)
at com.intellij.psi.impl.source.PsiFileImpl.reportStubAstMismatch(PsiFileImpl.java:338)
at com.intellij.psi.impl.source.PsiFileImpl$1.visitNode(PsiFileImpl.java:302)
at com.intellij.psi.impl.source.tree.RecursiveTreeElementWalkingVisitor.visitComposite(RecursiveTreeElementWalkingVisitor.java:80)
at com.intellij.psi.impl.source.tree.CompositeElement.acceptTree(CompositeElement.java:148)
at com.intellij.psi.impl.source.tree.RecursiveTreeElementWalkingVisitor$1.visit(RecursiveTreeElementWalkingVisitor.java:66)
at com.intellij.psi.impl.source.tree.RecursiveTreeElementWalkingVisitor$1.visit(RecursiveTreeElementWalkingVisitor.java:58)
at com.intellij.util.WalkingState.walkChildren(WalkingState.java:65)
at com.intellij.util.WalkingState.elementStarted(WalkingState.java:52)
at com.intellij.psi.impl.source.tree.RecursiveTreeElementWalkingVisitor.visitNode(RecursiveTreeElementWalkingVisitor.java:85)
at com.intellij.psi.impl.source.PsiFileImpl$1.visitNode(PsiFileImpl.java:311)
at com.intellij.psi.impl.source.tree.RecursiveTreeElementWalkingVisitor.visitComposite(RecursiveTreeElementWalkingVisitor.java:80)
at com.intellij.psi.impl.source.tree.CompositeElement.acceptTree(CompositeElement.java:148)
at com.intellij.psi.impl.source.PsiFileImpl.calcStubAstBindings(PsiFileImpl.java:285)
at com.intellij.psi.impl.source.PsiFileImpl.loadTreeElement(PsiFileImpl.java:190)
at com.intellij.psi.impl.source.PsiFileImpl.calcTreeElement(PsiFileImpl.java:836)
at com.intellij.extapi.psi.StubBasedPsiElementBase.getNode(StubBasedPsiElementBase.java:141)
at com.intellij.extapi.psi.StubBasedPsiElementBase.getParent(StubBasedPsiElementBase.java:363)
at org.vclang.quickfix.ResolveRefQuickFix$Companion.getDecision(ResolveRefQuickFix.kt:177)
at org.vclang.annotation.VcHighlightingAnnotator.annotate(VcHighlightingAnnotator.kt:38)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.runAnnotators(DefaultHighlightVisitor.java:139)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.visit(DefaultHighlightVisitor.java:102)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.runVisitors(GeneralHighlightingPass.java:368)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.lambda$collectHighlights$5(GeneralHighlightingPass.java:301)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:327)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.lambda$analyzeByVisitors$6(GeneralHighlightingPass.java:330)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.analyze(DefaultHighlightVisitor.java:86)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:330)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.collectHighlights(GeneralHighlightingPass.java:298)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.collectInformationWithProgress(GeneralHighlightingPass.java:238)
at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:83)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:70)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$null$1(PassExecutorService.java:438)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1161)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:431)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:548)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:493)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:94)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:430)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:406)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:142)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:250)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:404)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:165)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

Refactorings and Typecheckerstate behave incoherently which may lead to an NPE

To reproduce on vclang-lib library:

  • typecheck "Trunc.vc";
  • rename some function lying in different module, say rename "Pointed" from Spheres.vc to "PointedType" using Shift+F6;
  • open Spheres.vc and notice that typechecker state is incorrect (i.e. icons that vizualize it are little green circles while in reality they all should have been reset);
  • try to modify the contents of the definition of PointedType in any way;
  • get an NPE as below:

Element class com.intellij.psi.impl.source.tree.CompositeElement of type DEF_FUNCTION (class org.vclang.psi.stubs.VcDefFunctionStub$Type)
com.intellij.psi.PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type DEF_FUNCTION (class org.vclang.psi.stubs.VcDefFunctionStub$Type)
at com.intellij.psi.PsiInvalidElementAccessException.createByNode(PsiInvalidElementAccessException.java:96)
at com.intellij.psi.impl.source.SubstrateRef$2.getContainingFile(SubstrateRef.java:101)
at com.intellij.extapi.psi.StubBasedPsiElementBase.getContainingFile(StubBasedPsiElementBase.java:275)
at org.vclang.typechecking.TypeCheckingServiceImpl$VcSourceInfoProvider.sourceOf(TypeCheckingService.kt:272)
at org.vclang.typechecking.TypeCheckingServiceImpl$VcSourceInfoProvider.sourceOf(TypeCheckingService.kt:265)
at com.jetbrains.jetpad.vclang.module.caching.sourceless.CacheSourceInfoProvider.sourceOf(CacheSourceInfoProvider.java:18)
at com.jetbrains.jetpad.vclang.module.caching.LocalizedTypecheckerState.getLocal(LocalizedTypecheckerState.java:41)
at com.jetbrains.jetpad.vclang.module.caching.LocalizedTypecheckerState.reset(LocalizedTypecheckerState.java:54)
at com.jetbrains.jetpad.vclang.typechecking.order.DependencyCollector.update(DependencyCollector.java:55)
at org.vclang.typechecking.TypeCheckingServiceImpl$TypeCheckerPsiTreeChangeListener.processParent(TypeCheckingService.kt:242)
at org.vclang.typechecking.TypeCheckingServiceImpl$TypeCheckerPsiTreeChangeListener.beforeChildReplacement(TypeCheckingService.kt:226)
at com.intellij.psi.impl.PsiManagerImpl.fireEvent(PsiManagerImpl.java:386)
at com.intellij.psi.impl.PsiManagerImpl.beforeChildReplacement(PsiManagerImpl.java:257)
at com.intellij.psi.impl.source.text.DiffLog$ReplaceEntry.doActualPsiChange(DiffLog.java:115)
at com.intellij.psi.impl.source.text.DiffLog.performActualPsiChange(DiffLog.java:54)
at com.intellij.psi.impl.DocumentCommitThread$2.runInner(DocumentCommitThread.java:871)
at com.intellij.pom.impl.PomTransactionBase.run(PomTransactionBase.java:46)
at com.intellij.pom.core.impl.PomModelImpl.runTransaction(PomModelImpl.java:158)
at com.intellij.psi.impl.DocumentCommitThread.lambda$doActualPsiChange$8(DocumentCommitThread.java:868)
at com.intellij.psi.impl.source.codeStyle.CodeStyleManagerImpl.lambda$performActionWithFormatterDisabled$5(CodeStyleManagerImpl.java:676)
at com.intellij.psi.impl.source.PostprocessReformattingAspect.disablePostprocessFormattingInside(PostprocessReformattingAspect.java:116)
at com.intellij.psi.impl.source.codeStyle.CodeStyleManagerImpl.lambda$performActionWithFormatterDisabled$7(CodeStyleManagerImpl.java:705)
at com.intellij.formatting.FormatterImpl.runWithFormattingDisabled(FormatterImpl.java:903)
at com.intellij.psi.impl.source.codeStyle.CodeStyleManagerImpl.performActionWithFormatterDisabled(CodeStyleManagerImpl.java:703)
at com.intellij.psi.impl.source.codeStyle.CodeStyleManagerImpl.performActionWithFormatterDisabled(CodeStyleManagerImpl.java:675)
at com.intellij.psi.impl.DocumentCommitThread.doActualPsiChange(DocumentCommitThread.java:855)
at com.intellij.psi.impl.DocumentCommitThread.lambda$doCommit$7(DocumentCommitThread.java:774)
at com.intellij.psi.impl.PsiDocumentManagerBase.commitToExistingPsi(PsiDocumentManagerBase.java:399)
at com.intellij.psi.impl.PsiDocumentManagerBase.finishCommitInWriteAction(PsiDocumentManagerBase.java:375)
at com.intellij.psi.impl.PsiDocumentManagerImpl.finishCommitInWriteAction(PsiDocumentManagerImpl.java:145)
at com.intellij.psi.impl.PsiDocumentManagerBase$3.run(PsiDocumentManagerBase.java:333)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1031)
at com.intellij.psi.impl.PsiDocumentManagerBase.finishCommit(PsiDocumentManagerBase.java:340)
at com.intellij.psi.impl.DocumentCommitThread.lambda$createEdtRunnable$5(DocumentCommitThread.java:592)
at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:86)
at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:109)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:416)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:399)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:821)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

3 Problems with typing curly brackets

  • when typing opening curly brace "{" the pairing brace is not added automatically (as in Java)
  • if already there is a pair of curly braces "{}" and the user attempts to type one more pair of curly braces inside the original one (i.e. he wants to get something like "{{}}") the second curly brace typed by the user is "swallowed" by the IDE and the result is "{{}"
  • IDE incorrectly determines closing curly brace in the following example: \new {A => {?}}

Allow instances of partially implemented classes or forbid them completely

The following 2 pieces of code demonstrate incoherent behavior of instance mechanism in typechecker and errors highlighting in IDE

Piece of code 1:
\class Foo1 (X Y : Nat)
\func bar => Foo1 {X => 1}
\instance f : bar | Y => 0 --IDE higlights 2 errors (bar is not a class + can't find field Y in bar)

Piece of code 2:
\class Foo1 (X : Nat)
\func bar => Foo1 {X => 1}
\instance f : bar --IDE higlights error here but no typechecking errors reported

Either only class names should be allowed in instances (then typecheker should report error in the 2nd example) or partially implemented classes should also be allowed in instances (then no errors should be reported in the 1st example).

Exception in ArendStructureViewModel

java.lang.IllegalStateException: Unexpected tree element
at org.arend.structure.ArendStructureViewModel.isAlwaysLeaf(ArendStructureViewModel.kt:38)
at com.intellij.ide.structureView.newStructureView.StructureViewComponent$MyNodeWrapper.isAlwaysLeaf(StructureViewComponent.java:767)
at com.intellij.ide.util.treeView.smartTree.SmartTreeStructure.isAlwaysLeaf(SmartTreeStructure.java:87)
at com.intellij.ide.util.treeView.AbstractTreeStructure.getLeafState(AbstractTreeStructure.java:81)
at com.intellij.ui.tree.StructureTreeModel$Node.(StructureTreeModel.java:416)
at com.intellij.ui.tree.StructureTreeModel$Node.(StructureTreeModel.java:410)
at com.intellij.ui.tree.StructureTreeModel.getValidChildren(StructureTreeModel.java:389)
at com.intellij.ui.tree.StructureTreeModel.validateChildren(StructureTreeModel.java:297)
at com.intellij.ui.tree.StructureTreeModel.getNode(StructureTreeModel.java:291)
at com.intellij.ui.tree.StructureTreeModel.getChildren(StructureTreeModel.java:311)
at com.intellij.ui.tree.AsyncTreeModel$CmdGetChildren.getNode(AsyncTreeModel.java:559)
at com.intellij.ui.tree.AsyncTreeModel$ObsolescentCommand.get(AsyncTreeModel.java:453)
at com.intellij.ui.tree.AsyncTreeModel$ObsolescentCommand.get(AsyncTreeModel.java:419)
at com.intellij.util.concurrency.Command$Processor.lambda$process$1(Command.java:48)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1168)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:70)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:123)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:164)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:582)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:532)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:87)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:151)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:112)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:70)
at com.intellij.util.concurrency.Invoker.invokeSafely(Invoker.java:152)
at com.intellij.util.concurrency.Invoker.lambda$invokeLater$0(Invoker.java:90)
at com.intellij.util.concurrency.Invoker$BackgroundThread.lambda$offer$0(Invoker.java:318)
at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:227)
at com.intellij.util.concurrency.BoundedTaskExecutor.access$100(BoundedTaskExecutor.java:26)
at com.intellij.util.concurrency.BoundedTaskExecutor$2$1.run(BoundedTaskExecutor.java:200)
at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:229)
at com.intellij.util.concurrency.BoundedTaskExecutor$2.run(BoundedTaskExecutor.java:194)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

Compability with IDEA 2018.3 EAP

There is a problem that plugin is incompatible with eap version of new IDEA. Maybe point is in version tag in plugin.xml or something.

Improve TypeCheckRunConfigurationEditor

  1. No gui controls in "Create new Arend project" window

  2. Want to have smarter Run Configuration gui controls for typechecking arend definitions
    Want to have list of all definitions in completion list (replace TextBox'es with smarter controls) -- see RunConfiguration for Groovy

Upload releases to plugins repository

Hello! When you fix a bug in the plugin, users have to rebuild it and add to the IDE with their hands. It is better to store the plugin in the Jetbrains plugins repository — then users can update it with a mouse click.

There are two ways to solve this. The first is to publish releases on GitHub in the form of zip files. It can be done automatically, just add a couple of lines to .travis.yaml. This eliminates the git-clone-gradlew phaze.

To throw out the phase of manual downloading and importing, you need to register on the plugins website. Create a permanent token, and use it to upload the plugin file, like in here. The complete guide can be found here.

NullPointerException on type check

NPE occures while typechecking file hw03.ard (imports modified lect03.ard). I run Ctrl+Shift+F10 with mouse cursor set on a free line between definitions (like line 217). Full exception stack trace.

java.lang.Throwable: [ERROR] An exception happened while persisting module: hw03
  java.lang.NullPointerException
	at org.arend.module.serialization.ExpressionSerialization.writeBindingRef
                                                 (ExpressionSerialization.java:77)

2 bugs in scopes

File f1.vc:
\func a => 0 \where {
\func b => 0 \where {
\func c => 0
}
}

File f2.vc
\import f1
\open a
\open b -- "b" is accessible here although it shoudn't
\func d => b

File f3.vc
\import f1 (a \as a')
\func d => a'.b -- can't access "b" here

Expand the comment on [Enter]

I pressed [Enter] before the word "Может" expecting IDEA to move the sentence on the next line, saving the comment environment. But it didn't work.

image

Import error

Latest version of plugin throws exception during project initialization. After that imports not working (unresolved reference on every \import smth)

java.lang.AssertionError
	at org.arend.core.context.param.UntypedDependentLink.<init>(UntypedDependentLink.java:15)
	at org.arend.module.serialization.ExpressionDeserialization.readParameter(ExpressionDeserialization.java:153)
	at org.arend.module.serialization.DefinitionDeserialization.readPattern(DefinitionDeserialization.java:272)
	at org.arend.module.serialization.DefinitionDeserialization.readPatterns(DefinitionDeserialization.java:264)
	at org.arend.module.serialization.DefinitionDeserialization.fillInDataDefinition(DefinitionDeserialization.java:173)
	at org.arend.module.serialization.DefinitionDeserialization.fillInDefinition(DefinitionDeserialization.java:48)
	at org.arend.module.serialization.ModuleDeserialization.readModule(ModuleDeserialization.java:50)
	at org.arend.source.StreamBinarySource.load(StreamBinarySource.java:115)
	at org.arend.source.SourceLoader.fillInBinary(SourceLoader.java:92)
	at org.arend.source.StreamBinarySource.load(StreamBinarySource.java:106)
	at org.arend.source.SourceLoader.fillInBinary(SourceLoader.java:92)
	at org.arend.source.SourceLoader.loadBinary(SourceLoader.java:87)
	at org.arend.library.SourceLibrary.load(SourceLibrary.java:160)
	at org.arend.module.ArendRawLibrary.load(ArendRawLibrary.kt:36)
	at org.arend.library.LibraryManager.loadLibrary(LibraryManager.java:157)
	at org.arend.ArendStartupActivity.runActivity(ArendStartupActivity.kt:32)

Unable to run `./gradlew runIde`

Received the following error when I ran ./gradlew runIde --stacktrace:

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':prepareSandbox'.
> Could not resolve all files for configuration ':runtime'.
   > Could not resolve project :Arend.
     Required by:
         project :
      > Project : declares a dependency from configuration 'compile' to configuration 'default' which is not declared in the descriptor for project :Arend.

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.internal.tasks.TaskDependencyResolveException: Could not determine the dependencies of task ':prepareSandbox'.
        at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext.getDependencies(CachingTaskDependencyResolveContext.java:66)
        at org.gradle.execution.taskgraph.TaskDependencyResolver.resolveDependenciesFor(TaskDependencyResolver.java:46)
        at org.gradle.execution.taskgraph.LocalTaskInfo.getDependencies(LocalTaskInfo.java:89)
        at org.gradle.execution.taskgraph.LocalTaskInfo.resolveDependencies(LocalTaskInfo.java:62)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.addToTaskGraph(DefaultTaskExecutionPlan.java:167)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.addTasks(DefaultTaskExecutionGraph.java:122)
        at org.gradle.execution.TaskNameResolvingBuildConfigurationAction.configure(TaskNameResolvingBuildConfigurationAction.java:47)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:48)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.access$000(DefaultBuildConfigurationActionExecuter.java:25)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter$1.proceed(DefaultBuildConfigurationActionExecuter.java:54)
        at org.gradle.execution.DefaultTasksBuildExecutionAction.configure(DefaultTasksBuildExecutionAction.java:44)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:48)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.access$000(DefaultBuildConfigurationActionExecuter.java:25)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter$1.proceed(DefaultBuildConfigurationActionExecuter.java:54)
        at org.gradle.execution.ExcludedTaskFilteringBuildConfigurationAction.configure(ExcludedTaskFilteringBuildConfigurationAction.java:47)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:48)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.select(DefaultBuildConfigurationActionExecuter.java:36)
        at org.gradle.initialization.DefaultGradleLauncher$CalculateTaskGraph.run(DefaultGradleLauncher.java:297)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.initialization.DefaultGradleLauncher.constructTaskGraph(DefaultGradleLauncher.java:187)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:142)
        at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:121)
        at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:77)
        at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:74)
        at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:152)
        at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:38)
        at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:96)
        at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:74)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.run(RunAsBuildOperationBuildActionRunner.java:47)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:43)
        at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:50)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:46)
        at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:74)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:46)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:32)
        at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39)
        at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:80)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:53)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:62)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:34)
        at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
        at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
        at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
        at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
        at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:59)
        at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
        at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:59)
        at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:44)
        at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:46)
        at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:30)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':runtime'.
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.rethrowFailure(DefaultConfiguration.java:1050)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access$1700(DefaultConfiguration.java:125)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:1024)
        at org.gradle.api.internal.file.AbstractFileCollection.iterator(AbstractFileCollection.java:76)
        at org.gradle.api.internal.file.AbstractFileCollection$4.iterator(AbstractFileCollection.java:271)
        at org.jetbrains.intellij.tasks.PrepareSandboxTask$_configurePlugin_closure4$_closure8.doCall(PrepareSandboxTask.groovy:117)
        at org.jetbrains.intellij.tasks.PrepareSandboxTask$_configurePlugin_closure4.doCall(PrepareSandboxTask.groovy:116)
        at org.jetbrains.intellij.tasks.PrepareSandboxTask$_configurePlugin_closure4.doCall(PrepareSandboxTask.groovy)
        at org.gradle.api.internal.file.collections.BuildDependenciesOnlyFileCollectionResolveContext.add(BuildDependenciesOnlyFileCollectionResolveContext.java:70)
        at org.gradle.api.internal.file.collections.BuildDependenciesOnlyFileCollectionResolveContext.add(BuildDependenciesOnlyFileCollectionResolveContext.java:84)
        at org.gradle.api.internal.file.collections.BuildDependenciesOnlyFileCollectionResolveContext.add(BuildDependenciesOnlyFileCollectionResolveContext.java:84)
        at org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection.visitContents(DefaultConfigurableFileCollection.java:108)
        at org.gradle.api.internal.file.CompositeFileCollection.visitDependencies(CompositeFileCollection.java:187)
        at org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection.visitDependencies(DefaultConfigurableFileCollection.java:114)
        at org.gradle.api.internal.file.CompositeFileCollection$1.visitDependencies(CompositeFileCollection.java:136)
        at org.gradle.api.internal.file.CompositeFileTree$FilteredFileTree.visitDependencies(CompositeFileTree.java:128)
        at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext$TaskGraphImpl.getNodeValues(CachingTaskDependencyResolveContext.java:96)
        at org.gradle.internal.graph.CachingDirectedGraphWalker$GraphWithEmpyEdges.getNodeValues(CachingDirectedGraphWalker.java:211)
        at org.gradle.internal.graph.CachingDirectedGraphWalker.doSearch(CachingDirectedGraphWalker.java:121)
        at org.gradle.internal.graph.CachingDirectedGraphWalker.findValues(CachingDirectedGraphWalker.java:73)
        at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext.getDependencies(CachingTaskDependencyResolveContext.java:64)
        ... 90 more
Caused by: org.gradle.internal.resolve.ModuleVersionResolveException: Could not resolve project :Arend.
Required by:
    project :
        at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.EdgeState.calculateTargetConfigurations(EdgeState.java:169)
        at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.EdgeState.attachToTargetConfigurations(EdgeState.java:112)
        at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.attachToTargetRevisionsSerially(DependencyGraphBuilder.java:306)
        at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.resolveEdges(DependencyGraphBuilder.java:193)
        at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.traverseGraph(DependencyGraphBuilder.java:146)
        at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.resolve(DependencyGraphBuilder.java:117)
        at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultArtifactDependencyResolver.resolve(DefaultArtifactDependencyResolver.java:119)
        at org.gradle.api.internal.artifacts.ivyservice.DefaultConfigurationResolver.resolveGraph(DefaultConfigurationResolver.java:167)
        at org.gradle.api.internal.artifacts.ivyservice.ShortCircuitEmptyConfigurationResolver.resolveGraph(ShortCircuitEmptyConfigurationResolver.java:82)
        at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingConfigurationResolver.resolveGraph(ErrorHandlingConfigurationResolver.java:66)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$5.run(DefaultConfiguration.java:534)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveGraphIfRequired(DefaultConfiguration.java:525)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveToStateOrLater(DefaultConfiguration.java:510)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access$1800(DefaultConfiguration.java:125)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getSelectedArtifacts(DefaultConfiguration.java:1033)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:1021)
        ... 108 more
Caused by: org.gradle.internal.component.model.ConfigurationNotFoundException: Project : declares a dependency from configuration 'compile' to configuration 'default' which is not declared in the descriptor for project :Arend.
        at org.gradle.internal.component.model.LocalComponentDependencyMetadata.selectConfigurations(LocalComponentDependencyMetadata.java:123)
        at org.gradle.internal.component.local.model.DslOriginDependencyMetadataWrapper.selectConfigurations(DslOriginDependencyMetadataWrapper.java:60)
        at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.EdgeState.calculateTargetConfigurations(EdgeState.java:166)
        ... 128 more


* Get more help at https://help.gradle.org

BUILD FAILED in 0s

Exception on using Ctrl+P on arguments of equality operator

Got an exception when attempted to use Ctrl+P on usages of equality (=) from Prelude.

org.vclang.resolving.DataLocatedReferable cannot be cast to com.jetbrains.jetpad.vclang.term.abs.Abstract$ParametersHolder
java.lang.ClassCastException: org.vclang.resolving.DataLocatedReferable cannot be cast to com.jetbrains.jetpad.vclang.term.abs.Abstract$ParametersHolder
at org.vclang.codeInsight.VcParameterInfoHandler.findArgInParsedBinopSeq(VcParameterInfoHandler.kt:207)
at org.vclang.codeInsight.VcParameterInfoHandler.access$findArgInParsedBinopSeq(VcParameterInfoHandler.kt:28)
at org.vclang.codeInsight.VcParameterInfoHandler$locateArg$1.visitBinOpSequence(VcParameterInfoHandler.kt:267)
at org.vclang.codeInsight.VcParameterInfoHandler$locateArg$1.visitBinOpSequence(VcParameterInfoHandler.kt:234)
at org.vclang.psi.ext.VcArgumentAppExprImplMixin.accept(VcArgumentAppExprImplMixin.kt:10)
at org.vclang.codeInsight.VcParameterInfoHandler.locateArg(VcParameterInfoHandler.kt:234)
at org.vclang.codeInsight.VcParameterInfoHandler.findAppExpr(VcParameterInfoHandler.kt:344)
at org.vclang.codeInsight.VcParameterInfoHandler.findElementForUpdatingParameterInfo(VcParameterInfoHandler.kt:362)
at org.vclang.codeInsight.VcParameterInfoHandler.findElementForUpdatingParameterInfo(VcParameterInfoHandler.kt:28)
at com.intellij.codeInsight.hint.ParameterInfoController.updateComponent(ParameterInfoController.java:319)
at com.intellij.openapi.project.DumbService.withAlternativeResolveEnabled(DumbService.java:278)
at com.intellij.codeInsight.hint.ParameterInfoController.lambda$null$1(ParameterInfoController.java:265)
at com.intellij.psi.impl.PsiDocumentManagerBase.lambda$null$5(PsiDocumentManagerBase.java:574)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:314)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:416)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:399)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:821)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Can't access class field synonyms.

In the following piece of code one can't access class field synonym "+" in AddMonoid via "AddMonoid.+" (however one can access Monoid.*).

\class Monoid (El : \Set) {
* : El -> El -> El
}

\class AddMonoid => Monoid {
| * => \infixl 6 +
}

The problem is most probably caused by erroneous implementation of getFieldReferables() in ClassDefinitionAdapter.

NPE in serialization after definition is typechecked

null
java.lang.NullPointerException
at com.jetbrains.jetpad.vclang.module.serialization.ExpressionSerialization.writeBindingRef(ExpressionSerialization.java:76)
at com.jetbrains.jetpad.vclang.module.serialization.ExpressionSerialization.visitReference(ExpressionSerialization.java:249)
at com.jetbrains.jetpad.vclang.module.serialization.ExpressionSerialization.visitReference(ExpressionSerialization.java:24)
at com.jetbrains.jetpad.vclang.core.expr.ReferenceExpression.accept(ReferenceExpression.java:26)
at com.jetbrains.jetpad.vclang.module.serialization.ExpressionSerialization.writeExpr(ExpressionSerialization.java:156)
at com.jetbrains.jetpad.vclang.module.serialization.ExpressionSerialization.writeType(ExpressionSerialization.java:65)
at com.jetbrains.jetpad.vclang.module.serialization.ExpressionSerialization.writeSingleParameter(ExpressionSerialization.java:131)
at com.jetbrains.jetpad.vclang.module.serialization.ExpressionSerialization.writeParameters(ExpressionSerialization.java:112)
at com.jetbrains.jetpad.vclang.module.serialization.DefinitionSerialization.writeDataDefinition(DefinitionSerialization.java:132)
at com.jetbrains.jetpad.vclang.module.serialization.DefinitionSerialization.writeDefinition(DefinitionSerialization.java:65)
at com.jetbrains.jetpad.vclang.module.serialization.ModuleSerialization.writeGroup(ModuleSerialization.java:83)
at com.jetbrains.jetpad.vclang.module.serialization.ModuleSerialization.writeGroup(ModuleSerialization.java:92)
at com.jetbrains.jetpad.vclang.module.serialization.ModuleSerialization.writeModule(ModuleSerialization.java:31)
at com.jetbrains.jetpad.vclang.source.StreamBinarySource.persist(StreamBinarySource.java:119)
at com.jetbrains.jetpad.vclang.library.SourceLibrary.persistModule(SourceLibrary.java:161)
at org.vclang.typechecking.TypeCheckingServiceImpl.typeCheck(TypeCheckingService.kt:177)
at org.vclang.typechecking.execution.TypeCheckProcessHandler$startNotify$1.computeInReadAction(TypeCheckProcessHandler.kt:38)
at com.intellij.openapi.progress.util.ReadTask.performInReadAction(ReadTask.java:49)
at com.intellij.openapi.progress.util.ReadTask.lambda$runBackgroundProcess$0(ReadTask.java:66)
at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:47)
at com.intellij.openapi.progress.util.ReadTask.runBackgroundProcess(ReadTask.java:66)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runUnderProgress$5(ProgressIndicatorUtils.java:243)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:170)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:548)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:493)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:94)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:157)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:186)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runUnderProgress(ProgressIndicatorUtils.java:241)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.access$000(ProgressIndicatorUtils.java:47)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils$4.run(ProgressIndicatorUtils.java:192)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

Stub elements are created after index initialization is complete

Can't reproduce this bug, but caught it once.

All stub element types should be created before index initialization is complete.
Please add the class containing stub element type constants to "stubElementTypeHolder" extension.
Registered extensions: [com.intellij.util.xml.stubs.DomElementTypeHolder, com.intellij.psi.impl.java.stubs.JavaStubElementTypes, com.intellij.lang.properties.parsing.PropertiesElementTypes, org.jetbrains.plugins.groovy.lang.parser.GroovyElementTypes, org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes]
java.lang.Throwable
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:132)
at com.intellij.psi.stubs.IStubElementType.(IStubElementType.java:41)
at org.vclang.psi.stubs.VcStubElementType.(VcStubElementType.kt:12)
at org.vclang.psi.stubs.VcClassFieldStub$Type.(StubImplementations.kt:85)
at org.vclang.psi.stubs.VcClassFieldStub$Type.(StubImplementations.kt:85)
at org.vclang.psi.stubs.StubImplementationsKt.factory(StubImplementations.kt:39)
at org.vclang.psi.VcElementTypes.(VcElementTypes.java:24)
at org.vclang.psi.VcTokenTypeKt.(VcTokenType.kt:12)
at org.vclang.parser.VcParserDefinition.getWhitespaceTokens(VcParserDefinition.kt:25)
at com.intellij.lang.impl.PsiBuilderImpl.(PsiBuilderImpl.java:162)
at com.intellij.lang.impl.PsiBuilderImpl.(PsiBuilderImpl.java:129)
at com.intellij.lang.impl.PsiBuilderFactoryImpl.createBuilder(PsiBuilderFactoryImpl.java:52)
at com.intellij.psi.tree.ILazyParseableElementType.doParseContents(ILazyParseableElementType.java:86)
at com.intellij.psi.tree.IFileElementType.parseContents(IFileElementType.java:49)
at com.intellij.psi.impl.source.tree.LazyParseableElement.ensureParsed(LazyParseableElement.java:192)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:240)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:39)
at com.intellij.psi.impl.source.tree.RecursiveTreeElementWalkingVisitor$ASTTreeGuide.getFirstChild(RecursiveTreeElementWalkingVisitor.java:47)
at com.intellij.psi.impl.source.tree.RecursiveTreeElementWalkingVisitor$ASTTreeGuide.getFirstChild(RecursiveTreeElementWalkingVisitor.java:34)
at com.intellij.util.WalkingState.next(WalkingState.java:73)
at com.intellij.util.WalkingState.walkChildren(WalkingState.java:61)
at com.intellij.util.WalkingState.elementStarted(WalkingState.java:52)
at com.intellij.psi.impl.source.tree.RecursiveTreeElementWalkingVisitor.visitNode(RecursiveTreeElementWalkingVisitor.java:85)
at com.intellij.psi.impl.GeneratedMarkerVisitor.visitNode(GeneratedMarkerVisitor.java:28)
at com.intellij.psi.impl.source.tree.RecursiveTreeElementWalkingVisitor.visitComposite(RecursiveTreeElementWalkingVisitor.java:80)
at com.intellij.psi.impl.source.tree.CompositeElement.acceptTree(CompositeElement.java:148)
at com.intellij.psi.impl.PsiFileFactoryImpl.markGenerated(PsiFileFactoryImpl.java:225)
at com.intellij.psi.impl.PsiFileFactoryImpl.trySetupPsiForFile(PsiFileFactoryImpl.java:127)
at com.intellij.psi.impl.PsiFileFactoryImpl.createFileFromText(PsiFileFactoryImpl.java:85)
at com.intellij.psi.impl.PsiFileFactoryImpl.createFileFromText(PsiFileFactoryImpl.java:73)
at com.intellij.psi.impl.PsiFileFactoryImpl.createFileFromText(PsiFileFactoryImpl.java:67)
at com.intellij.psi.impl.PsiFileFactoryImpl.createFileFromText(PsiFileFactoryImpl.java:61)
at org.vclang.module.VcPreludeLibrary.load(VcPreludeLibrary.kt:74)
at com.jetbrains.jetpad.vclang.library.LibraryManager.loadLibrary(LibraryManager.java:132)
at org.vclang.VcStartupActivity.runActivity(VcStartupActivity.kt:34)
at com.intellij.ide.startup.impl.StartupManagerImpl.runAndMeasure(StartupManagerImpl.java:176)
at com.intellij.ide.startup.impl.StartupManagerImpl.logActivityDuration(StartupManagerImpl.java:162)
at com.intellij.ide.startup.impl.StartupManagerImpl.lambda$runPostStartupActivitiesFromExtensions$1(StartupManagerImpl.java:150)
at com.intellij.ide.startup.impl.StartupManagerImpl.runActivity(StartupManagerImpl.java:367)
at com.intellij.ide.startup.impl.StartupManagerImpl.lambda$queueSmartModeActivity$2(StartupManagerImpl.java:182)
at com.intellij.openapi.project.DumbServiceImpl.updateFinished(DumbServiceImpl.java:296)
at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:86)
at com.intellij.openapi.application.TransactionGuardImpl.lambda$pollQueueLater$0(TransactionGuardImpl.java:72)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:416)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:399)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:821)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Confusing error when trying to overload constructor

I am trying to learn your nice little dependently-typed language.

Attempting to overload a constructor Agda-style,

\data List (A : \Type)
  | nil
  | \infixr 6 :: A (List A)

\data Sublist {A : \Type} (xs ys : List A) \elim xs, ys
  | nil, nil => nil

I get a confusing error message:

[ERROR] ...:7:5: 'nil' is not a constructor of data type List A
  In: nil
  While processing: Sublist

Well, in fact, 'nil' is a constructor of data type List. :)

Exception when marking an unmarked directory as a source root

To Reproduce:

  1. Open vclang-lib project in such a way that test and src directories are left unmarked (i. e. not marked as a content root)
  2. Mark test as source root or a test source root

java.lang.StringIndexOutOfBoundsException: String index out of range: -3
at java.lang.String.substring(String.java:1967)
at com.jetbrains.jetpad.vclang.module.caching.sourceless.SourcelessCacheManager.fullNameFromNameId(SourcelessCacheManager.java:118)
at com.jetbrains.jetpad.vclang.module.caching.sourceless.SourcelessCacheManager$SourcelessPersistenceProvider.registerCachedDefinition(SourcelessCacheManager.java:78)
at com.jetbrains.jetpad.vclang.module.caching.serialization.DefinitionStateDeserialization.readStubs(DefinitionStateDeserialization.java:40)
at com.jetbrains.jetpad.vclang.module.caching.CacheManager.readModule(CacheManager.java:77)
at com.jetbrains.jetpad.vclang.module.caching.CacheManager.loadCache(CacheManager.java:59)
at com.jetbrains.jetpad.vclang.module.caching.sourceless.CacheModuleScopeProvider.forCacheModule(CacheModuleScopeProvider.java:59)
at com.jetbrains.jetpad.vclang.module.caching.sourceless.CacheModuleScopeProvider.forModule(CacheModuleScopeProvider.java:39)
at com.jetbrains.jetpad.vclang.naming.scope.ImportedScope.resolveNamespace(ImportedScope.java:78)
at com.jetbrains.jetpad.vclang.naming.scope.Scope$Utils.resolveNamespace(Scope.java:66)
at com.jetbrains.jetpad.vclang.naming.scope.LexicalScope.resolve(LexicalScope.java:212)
at com.jetbrains.jetpad.vclang.naming.scope.LexicalScope.resolveName(LexicalScope.java:260)
at com.jetbrains.jetpad.vclang.naming.scope.LexicalScope.resolve(LexicalScope.java:254)
at com.jetbrains.jetpad.vclang.naming.scope.LexicalScope.resolveName(LexicalScope.java:260)
at com.jetbrains.jetpad.vclang.naming.scope.local.TelescopeScope.resolveName(TelescopeScope.java:53)
at com.jetbrains.jetpad.vclang.naming.scope.local.LetScope.resolveName(LetScope.java:42)
at com.jetbrains.jetpad.vclang.naming.scope.local.TelescopeScope.resolveName(TelescopeScope.java:53)
at com.jetbrains.jetpad.vclang.naming.scope.local.TelescopeScope.resolveName(TelescopeScope.java:53)
at org.vclang.resolving.VcReferenceImpl.resolve(VcReference.kt:57)
at com.intellij.codeInsight.TargetElementUtil.doGetReferenceOrReferencedElement(TargetElementUtil.java:389)
at com.intellij.codeInsight.TargetElementUtil.getReferenceOrReferencedElement(TargetElementUtil.java:366)
at com.intellij.codeInsight.TargetElementUtil.doFindTargetElement(TargetElementUtil.java:236)
at com.intellij.codeInsight.TargetElementUtil.findTargetElement(TargetElementUtil.java:208)
at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.doCollectInformation(IdentifierHighlighterPass.java:92)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:70)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$null$1(PassExecutorService.java:438)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1161)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:431)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:548)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:493)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:94)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:430)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:406)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:142)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:250)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:404)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:165)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

Implement formatting model builder

Current implementation of quickfixes (in particular that of InstanceQuickFix) is unsatisfactory since at the moment we have to manually calculate the neccessary indents when preparing the piece of code to be inserted into the document.

The standard way of implementing these quickfixes is the following:

  • Implement FormattingModelBuilder and the corresponding FormattingModel
  • Instead of computing indents manually the code should prepare a piece of code without indents and then use the following command: CodeStyleManager.getInstance(project).reformat(psiElement)

Exception when trying to add vclang sources as a separate module to a vclang-lib project

To reproduce: add vclang source as a module to the same project in which vclang-lib is opened. vclang sources contain *.vc files so will be perceived as a vclang library.

Somehow we should be able to dingtinguish between vclang modules and java modules...

[ERROR] Module not found: Prelude
java.lang.Throwable
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:132)
at org.vclang.typechecking.LogErrorReporter.report(LogErrorReporter.kt:19)
at com.jetbrains.jetpad.vclang.source.SourceLoader.load(SourceLoader.java:64)
at com.jetbrains.jetpad.vclang.library.SourceLibrary.load(SourceLibrary.java:108)
at com.jetbrains.jetpad.vclang.library.LibraryManager.loadLibrary(LibraryManager.java:117)
at org.vclang.VcStartupActivity.runActivity(VcStartupActivity.kt:38)
at com.intellij.ide.startup.impl.StartupManagerImpl.runAndMeasure(StartupManagerImpl.java:176)
at com.intellij.ide.startup.impl.StartupManagerImpl.logActivityDuration(StartupManagerImpl.java:162)
at com.intellij.ide.startup.impl.StartupManagerImpl.lambda$runPostStartupActivitiesFromExtensions$1(StartupManagerImpl.java:150)
at com.intellij.ide.startup.impl.StartupManagerImpl.runActivity(StartupManagerImpl.java:367)
at com.intellij.ide.startup.impl.StartupManagerImpl.lambda$queueSmartModeActivity$2(StartupManagerImpl.java:182)
at com.intellij.openapi.project.DumbServiceImpl.updateFinished(DumbServiceImpl.java:296)
at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:86)
at com.intellij.openapi.application.TransactionGuardImpl.lambda$pollQueueLater$0(TransactionGuardImpl.java:72)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:416)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:399)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:821)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Wrong syntax but successful typechecks

Plugin doesn't show any warnings, is it an expected behaviour? I have the latest plugin & compiler version. 2/2 tests are the first two functions in this file. The following functions are not typechecked 😞

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.