A fast, friendly, functional language. https://roc-lang.org
Find a file
Richard Feldman cc3423a709
Implement ? (question mark) operator for error propagation
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>
2025-11-29 20:06:33 -05:00
.cargo Fix some tests 2025-01-10 20:49:53 -05:00
.devcontainer used roc image for devcontainer 2025-01-07 23:07:29 +00:00
.github ubuntu 22 run fx_platform tests (#8496) 2025-11-29 13:33:15 +01:00
.reuse s/rtfeldman/roc-lang/g in links to GitHub repos 2022-08-12 15:24:09 -04:00
ci fix permissions + no old CI 2025-11-27 22:27:33 +01:00
crates Bump node-forge from 1.3.1 to 1.3.2 in /crates/compiler/checkmate/www (#8462) 2025-11-27 10:40:55 +01:00
design glossary: type signature + typos upgrade (#7776) 2025-05-07 17:35:56 +02:00
devtools Update debug_tips.md (#8127) 2025-07-28 15:37:19 +02:00
docker ditch old_linux + references (#7639) 2025-02-26 12:22:07 +01:00
examples correct link 2025-03-31 18:26:20 +02:00
nix add licenses subcommand (#7787) 2025-05-17 10:30:41 +02:00
src Implement ? (question mark) operator for error propagation 2025-11-29 20:06:33 -05:00
test Implement ? (question mark) operator for error propagation 2025-11-29 20:06:33 -05:00
.gitattributes add snapshots to .gitattributes 2025-06-16 12:44:19 +02:00
.gitignore Revert .gitignore 2025-11-09 20:18:55 -05:00
.llvmenv start with flake updates 2024-07-28 15:55:36 +10:00
.rules Merge origin/main 2025-11-22 15:45:17 -05:00
AGENT.md wip 2025-07-04 21:59:03 -04:00
authors Lowercased some files (#7713) 2025-03-24 16:43:18 +01:00
build.zig fix linux segfault fx platform tests (#8497) 2025-11-29 14:24:16 +01:00
build.zig.zon Simplify DecompressingHashReader 2025-10-21 15:32:53 +00:00
BUILDING_FROM_SOURCE.md Update Zig version from 0.15.1 to 0.15.2 2025-10-31 18:21:26 +01:00
Cargo.lock Bump tracing-subscriber from 0.3.19 to 0.3.20 (#8232) 2025-09-06 18:00:22 +00:00
Cargo.toml Bump tracing-subscriber from 0.3.19 to 0.3.20 (#8232) 2025-09-06 18:00:22 +00:00
code_of_conduct.md Lowercased some files (#7713) 2025-03-24 16:43:18 +01:00
CONTRIBUTING.md better error msg when no main.roc (#8251) 2025-09-29 19:02:26 +02:00
default.nix don't use flakehub input for flake-compat and update a comment 2023-11-15 23:30:15 -05:00
flake.lock nix flake cleanup (#7576) 2025-02-04 19:05:57 +01:00
flake.nix website has moved to https://github.com/roc-lang/www.roc-lang.org (#8094) 2025-07-22 18:53:15 +02:00
Glossary.md Update Glossary.md 2025-08-12 17:39:21 +10:00
legal_details Lowercased some files (#7713) 2025-03-24 16:43:18 +01:00
LICENSE Use © instead of (c) for copyright symbol 2021-05-03 21:18:36 -04:00
mlc_config.json ignore local html files 2023-08-02 11:28:20 +02:00
README.md Update sponsors in readme 2025-07-14 11:24:45 -04:00
rust-toolchain.toml glossary: type signature + typos upgrade (#7776) 2025-05-07 17:35:56 +02:00
shell.nix feat(nix): make buildRocPackage fetch dependencies recursively (#7729) 2025-04-18 20:11:09 +02:00
typos.toml more Result>Try updates (#8382) 2025-11-14 17:10:55 +01:00
version.txt Restore version.txt 2025-08-11 22:52:07 -04:00

Work in progress!

Roc is not ready for a 0.1 release yet, but we do have:

If you'd like to contribute, get started here. Don't hesitate to ask for help on our group chat, we're friendly!

Sponsors

You can 💜 sponsor 💜 Roc on:

We are very grateful for our corporate sponsors Lambda Class, ohne-makler, and Decem:

Lambda Class logo      ohne-makler logo      Decem logo

If you would like your company to become a corporate sponsor of Roc's development, please DM Richard Feldman on Zulip!

We'd also like to express our gratitude to our generous individual sponsors! A special thanks to those sponsoring $25/month or more:

Thank you all so much for helping Roc progress!