enso/lib/rust/parser
Kaz Wesley 4d4a2990a0
Distinguish assignment/thunk by statement context (#11324)
Align `Assignment`/`Function` distinction in AST with compiler's implemented semantics:
- The ambiguous case `funcOrVar = expression` is now parsed as a `Function` when in a `Type` definition or in the top level of a module. I.e. it is an `Assignment` in contexts where the RHS is evaluated immediately when the binding is evaluated, and a `Function` in contexts where the RHS is evaluated each time the bound name is evaluated.
- `Assignment` statements now may only occur in function bodies.

Correcting this distinction lays the groundwork for #11302.

Other changes:
- Fixed incorrect source code locations for negative literals and negated expressions.

# Important Notes
New APIs:
- The parser now exposes a `parse_block` entry point, which allows parsing input lines as if in the body of a function. The previous entry point has been renamed to `parse_module`.
2024-10-18 17:54:55 +00:00
..
debug Distinguish assignment/thunk by statement context (#11324) 2024-10-18 17:54:55 +00:00
doc-parser Distinguish assignment/thunk by statement context (#11324) 2024-10-18 17:54:55 +00:00
generate-java Distinguish assignment/thunk by statement context (#11324) 2024-10-18 17:54:55 +00:00
jni Distinguish assignment/thunk by statement context (#11324) 2024-10-18 17:54:55 +00:00
schema Remove all usages of unstable rust features (#10813) 2024-08-22 14:09:17 +00:00
src Distinguish assignment/thunk by statement context (#11324) 2024-10-18 17:54:55 +00:00
Cargo.toml Remove all usages of unstable rust features (#10813) 2024-08-22 14:09:17 +00:00