rascal
rascal copied to clipboard
The implementation of the Rascal meta-programming language (including interpreter, type checker, parser generator, compiler and JVM based run-time system)
**Describe the bug** `Type.rsc` is out of sync with the actual implementation of Rascal's type system **Expected behavior** `Type.rsc` defines functions like `subtype`, `lub` and `glb` on Rascal types. These...
**Describe the bug** We see the variable is checked, but the keyword field of the constructor is not checked, while it has the same error. Note that this is with...
**Describe the bug** ``` rascal>syntax P = E; ok rascal>syntax E = "e" | E "+" E; ok rascal>import ParseTree; ok rascal>firstAmbiguity(#P, "e+e+e") warning, ambiguity predicted: E "+" E lacks...
Trying to implement Type.match and Type.instantiate for NonTerminalType such that pattern matching works for types like `{&T &E}*` and `&O?` * If that works, then generic library functions like `sort`,...
**Describe the bug** In case a adt has arguments, the name of the constructor is lost when generating a json. **To Reproduce** ``` import IO; import lang::json::IO; data EnumSet =...
This adds `explicitConstructorNames` and `explicitDataType` as keyword parameters to the JSON readers and writers. An constructor `foo(bar(), what())` will be printed as such when `explicitConstructorNames=true`: ``` { _constructor = "foo",...
**Describe the bug** ``` [ERROR] Termination.rsc:053:37: Replacement expression of field update` should not have type `void` ``` in: ``` Grammar terminationWeights(Grammar g) { deps = dependencies(g.rules); weights = (); recProds...
**Describe the bug** In this pattern, the inferred type for `args` is `void` by the type-checker: `appl(r:regular(\iter-star(_)), args:![])` However, since it is the second parameter of `appl` it should at...
**Describe the bug** I will make this example simpler later, but have to store it now to keep concentrating: ``` for ( [Help 1] ``` At line 323, 254 and...