Expand description
Project-wide error type.
Error::Thrown is unusual: it represents a value-carrying control-flow
signal rather than an interpreter-internal failure. The evaluator
propagates it like any other error via ?, and an enclosing
Expr::TryCatch is the only site that pattern-matches it back into a
normal evaluation. An Error::Thrown that reaches the top boundary
is converted to Error::UncaughtException for the user. The payload
is boxed because it carries the full heap state at the moment of the
throw and would otherwise inflate every fallible Result size.
Structs§
- Thrown
Payload - Payload of a propagating throw: the thrown value plus the heap and fuel
at the moment the throw was raised. Carried inside
Error::Thrownbehind aBoxso theResultdiscriminant stays small.
Enums§
- Error
- All errors in lambda-throw-cat.