mirror of
https://github.com/roc-lang/roc.git
synced 2025-12-23 08:48:03 +00:00
The ? operator now desugars expr? to a match expression that unwraps Ok
values and early returns Err values:
match expr {
Ok(#ok) => #ok,
Err(#err) => return Err(#err),
}
Implementation details:
- Use pre-interned identifiers (#ok, #err) for synthetic variables
- Use pre-interned Ok/Err tag names from CommonIdents
- Create applied_tag patterns for Ok and Err
- Build match branches with proper scope isolation
- Mark synthetic patterns as used to avoid unused variable warnings
- Create e_lookup_local, e_tag, and e_return expressions for branch bodies
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| cli | ||
| fuzzing | ||
| fx | ||
| int | ||
| playground-integration | ||
| snapshots | ||
| str | ||
| serialization_size_check.zig | ||