mirror of
https://github.com/enso-org/enso.git
synced 2024-12-24 10:02:17 +03:00
8771855993
Fix failure to parse a syntax case involving unexpected usage of annotated expressions (fixes #11691). The root cause of the bug was usage of the `matches!` macro in a situation where a `match` statement should have been used to enforce exhaustiveness. - I have corrected the bug, and reviewed all usages of the `matches!` macro. I didn't find any other *incorrect* usages of `matches!`, but I found and replaced some potentially *fragile* uses. I also simplified some unnecessary uses of `matches!`, replacing them with expressions that are more-obviously correct. - Stricter parsing: It is now a syntax error for an inline annotation to occur in the RHS of an application (e.g. `fn @Tail_Call recur`)--the precedence in this case may be surprising, so parentheses should be used around the annotated expression. `parse_all_enso_files.sh`: This PR does not affect any AST in the .enso corpus. |
||
---|---|---|
.. | ||
common/src | ||
interpreter-dsl-test/src/test/java/org/enso/interpreter/dsl/test | ||
language-server | ||
launcher/src | ||
polyglot-api/src | ||
polyglot-api-macros/src/main | ||
runner | ||
runner-common/src/main | ||
runtime | ||
runtime-benchmarks/src/main | ||
runtime-compiler/src | ||
runtime-instrument-common/src | ||
runtime-instrument-id-execution/src/main/java | ||
runtime-instrument-repl-debugger/src/main/java | ||
runtime-instrument-runtime-server/src/main/java | ||
runtime-integration-tests/src/test | ||
runtime-language-arrow/src | ||
runtime-language-epb/src | ||
runtime-parser/src | ||
runtime-suggestions/src/main | ||
runtime-test-instruments/src/main/java | ||
README.md |
The Enso Engine
The Enso engine is the codebase responsible for compiling and executing Enso code, as well as providing language server functionality to users of the language. It is subdivided into two major components:
- Language Server: The Enso language service.
- Polyglot API: The truffle-boundary safe API for communication between the language server and the runtime.
- Runner: The command-line interface for Enso.
- Runtime: The compiler and interpreter for Enso.