usethesource / rascal

The implementation of the Rascal meta-programming language (including interpreter, type checker, parser generator, compiler and JVM based run-time system)
http://www.rascal-mpl.org
Other
399 stars 78 forks source link

Ambiguous code: deep match with `loc` literal #1413

Open rodinaarssen opened 4 years ago

rodinaarssen commented 4 years ago

Describe the bug

Deep matching a loc literal is ambiguous.

To Reproduce

rascal>/|foo:///| := tree
Unexpected failure during parsing of current command: 
Ambiguous code (internal error), /|foo:///| := tree
org.rascalmpl.interpreter.asserts.Ambiguous: Ambiguous code (internal error), /|foo:///| := tree
        at org.rascalmpl.parser.uptr.UPTRNodeFactory.buildAmbiguityNode(UPTRNodeFactory.java:71)
        at org.rascalmpl.parser.uptr.UPTRNodeFactory.createAmbiguityNode(UPTRNodeFactory.java:76)
        at org.rascalmpl.parser.uptr.UPTRNodeFactory.createAmbiguityNode(UPTRNodeFactory.java:22)
        at org.rascalmpl.parser.gtd.result.out.SortContainerNodeFlattener.convertToUPTR(SortContainerNodeFlattener.java:183)
        at org.rascalmpl.parser.gtd.result.out.DefaultNodeFlattener.convert(DefaultNodeFlattener.java:63)
        at org.rascalmpl.parser.gtd.result.out.DefaultNodeFlattener.convert(DefaultNodeFlattener.java:80)
        at org.rascalmpl.parser.gtd.SGTDBF.buildResult(SGTDBF.java:1297)
        at org.rascalmpl.parser.gtd.SGTDBF.parse(SGTDBF.java:1236)
        at org.rascalmpl.parser.gtd.SGTDBF.parse(SGTDBF.java:1240)
        at org.rascalmpl.parser.gtd.SGTDBF.parse(SGTDBF.java:1252)
        at org.rascalmpl.interpreter.Evaluator.parseCommand(Evaluator.java:1060)
        at org.rascalmpl.interpreter.Evaluator.parseCommand(Evaluator.java:1050)
        at org.rascalmpl.repl.RascalInterpreterREPL.isStatementComplete(RascalInterpreterREPL.java:184)
        at org.rascalmpl.repl.BaseRascalREPL.handleInput(BaseRascalREPL.java:106)
        at org.rascalmpl.eclipse.repl.RascalTerminalConnector$2.handleInput(RascalTerminalConnector.java:294)
        at org.rascalmpl.repl.BaseREPL.handleInput(BaseREPL.java:166)
        at org.rascalmpl.repl.BaseREPL.run(BaseREPL.java:329)
        at org.rascalmpl.eclipse.repl.RascalTerminalConnector$1.run(RascalTerminalConnector.java:137)
>>>>>>>
cancelled

Desktop (please complete the following information):

jurgenvinju commented 4 years ago

Good find.