-
Notifications
You must be signed in to change notification settings - Fork 13
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
Rascal Document Symbols crashes when it is provided with an ambiguous parse tree (e.g., through usethesource/rascal#2577).
To Reproduce
Type testint foo() { } in any Rascal module.
Screenshots
Stack traces
org.rascalmpl.interpreter.staticErrors.UndeclaredField: Undeclared field: name for Tree
Advice: |https://www.rascal-mpl.org/docs/Rascal/Errors/CompileTimeErrors/UndeclaredField|
at DocumentSymbols.?(/C:/Users/Rodin/.vscode/extensions/usethesource.rascalmpl-0.13.0/assets/jars/rascal-lsp.jar!/lsp/lang/rascal/lsp/DocumentSymbols.rsc:83)
at org.rascalmpl.interpreter.result.ConstructorResult.fieldAccess(ConstructorResult.java:120)
at org.rascalmpl.interpreter.result.ConcreteSyntaxResult.fieldAccess(ConcreteSyntaxResult.java:96)
at org.rascalmpl.semantics.dynamic.Expression$FieldAccess.interpret(Expression.java:873)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.interpreter.StringTemplateConverter$Visitor$IndentingAppend.interpret(StringTemplateConverter.java:108)
at org.rascalmpl.semantics.dynamic.Statement$NonEmptyBlock.interpret(Statement.java:820)
at org.rascalmpl.semantics.dynamic.Statement$For.interpret(Statement.java:500)
at org.rascalmpl.semantics.dynamic.Literal$String.interpret(Literal.java:237)
at org.rascalmpl.semantics.dynamic.Expression$Literal.interpret(Expression.java:1601)
at org.rascalmpl.semantics.dynamic.Expression$CallOrTree.interpret(Expression.java:504)
at org.rascalmpl.semantics.dynamic.Expression$List.interpret(Expression.java:1526)
at org.rascalmpl.semantics.dynamic.Statement$Expression.interpret(Statement.java:390)
at org.rascalmpl.semantics.dynamic.Statement$Assignment.interpret(Statement.java:223)
at org.rascalmpl.semantics.dynamic.Statement$NonEmptyBlock.interpret(Statement.java:820)
at org.rascalmpl.semantics.dynamic.Statement$IfThen.interpret(Statement.java:643)
at org.rascalmpl.interpreter.utils.Cases.matchAndEval(Cases.java:443)
at org.rascalmpl.interpreter.utils.Cases$DefaultBlock.matchAndEval(Cases.java:271)
at org.rascalmpl.interpreter.TraversalEvaluator.applyCases(TraversalEvaluator.java:664)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseTop(TraversalEvaluator.java:688)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseOnce(TraversalEvaluator.java:141)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseListOnce(TraversalEvaluator.java:529)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseOnce(TraversalEvaluator.java:168)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseADTOnce(TraversalEvaluator.java:366)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseOnce(TraversalEvaluator.java:164)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseListOnce(TraversalEvaluator.java:529)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseOnce(TraversalEvaluator.java:168)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseADTOnce(TraversalEvaluator.java:366)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseOnce(TraversalEvaluator.java:164)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseListOnce(TraversalEvaluator.java:529)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseOnce(TraversalEvaluator.java:168)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseADTOnce(TraversalEvaluator.java:366)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseOnce(TraversalEvaluator.java:164)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseListOnce(TraversalEvaluator.java:529)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseOnce(TraversalEvaluator.java:168)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseADTOnce(TraversalEvaluator.java:366)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseOnce(TraversalEvaluator.java:164)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseListOnce(TraversalEvaluator.java:529)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseOnce(TraversalEvaluator.java:168)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseADTOnce(TraversalEvaluator.java:366)
at org.rascalmpl.interpreter.TraversalEvaluator.traverseOnce(TraversalEvaluator.java:164)
at org.rascalmpl.interpreter.TraversalEvaluator.traverse(TraversalEvaluator.java:123)
at org.rascalmpl.semantics.dynamic.Visit$GivenStrategy.interpret(Visit.java:146)
at org.rascalmpl.semantics.dynamic.Statement$Visit.interpret(Statement.java:1164)
at org.rascalmpl.interpreter.result.RascalFunction.runBody(RascalFunction.java:387)
at org.rascalmpl.interpreter.result.RascalFunction.call(RascalFunction.java:328)
at org.rascalmpl.interpreter.result.AbstractFunction.call(AbstractFunction.java:198)
at org.rascalmpl.interpreter.Evaluator.call(Evaluator.java:707)
at org.rascalmpl.interpreter.Evaluator.call(Evaluator.java:690)
at org.rascalmpl.interpreter.Evaluator.call(Evaluator.java:532)
at org.rascalmpl.vscode.lsp.rascal.RascalLanguageServices.lambda$getDocumentSymbols$8(RascalLanguageServices.java:223)
at org.rascalmpl.vscode.lsp.util.EvaluatorUtil.lambda$runEvaluator$0(EvaluatorUtil.java:123)
at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:642)
at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Desktop (please complete the following information):
- VS Code 0.13.0
Additional context
It could be that more contributions do not handle ambiguous trees properly
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working