A fast, friendly, functional language. https://roc-lang.org
Find a file
Richard Feldman e093bd1fb3
Fix TypeMismatch error on record field access during evaluation
The interpreter was unconditionally defaulting flex/rigid type variables
to Dec for all dot access expressions. This broke record field access
when the record type wasn't fully resolved at compile time, because
records are not Dec.

The fix distinguishes between method calls (args != null) and field
access (args == null). Only method calls with flex/rigid receivers
default to Dec, since numeric literals like `(-3.14).abs()` need this
for proper type resolution. Field access passes null for expected_rt_var
to let the receiver determine its own type.

Additionally, in dot_access_resolve, field names must be translated
from the CIR's identifier store to the runtime layout store's identifier
store, since these can differ between modules.

Fixes #8647

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-13 09:45:19 -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 retry on connectTcp flaky (#8652) 2025-12-12 19:16:11 +01:00
.reuse s/rtfeldman/roc-lang/g in links to GitHub repos 2022-08-12 15:24:09 -04:00
ci Add lint for no // ======= comments 2025-12-10 15:31:53 -05:00
crates Restore old list.zig 2025-12-07 14:43:58 -05: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 Fix TypeMismatch error on record field access during evaluation 2025-12-13 09:45:19 -05:00
test Fix TypeMismatch error on record field access during evaluation 2025-12-13 09:45:19 -05:00
.gitattributes add snapshots to .gitattributes 2025-06-16 12:44:19 +02:00
.gitignore Cleanup target handling and deuplication 2025-12-09 13:30:36 +11: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 #8641 (#8644) 2025-12-12 13:28:25 +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 ownership semantic docs and comptime check 2025-11-30 21:39:41 +11: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 sigfault is not a typo 2025-12-05 23:16:14 -05: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!