Commit graph

706 commits

Author SHA1 Message Date
Richard Feldman
79a08d5d0f
Fix List.get with method syntax causing cycle in layout computation
When calling List.get with method syntax (my_list.get(0)), the
interpreter was causing a cycle in layout computation because rigid
type variables weren't being properly resolved.

The fix unifies the method's first parameter type with a copy of the
receiver type before instantiation. This properly resolves rigid type
variables (like `item` in List.get) to concrete types. A copy of the
receiver type is created before unification to avoid corrupting the
original type, since unification modifies both sides.

This is the same approach used for no-args method dispatch (like
List.first), but with the additional copy step needed because the
multi-args path may reuse types across multiple method invocations.

Fixes #8662

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-13 15:43:09 -05:00
Anton-4
aa2e1b80cd
All roc syntax test (#8622)
* added all_roc_syntax_test

* fmt + test

* full test

---------

Signed-off-by: Anton-4 <17049058+Anton-4@users.noreply.github.com>
2025-12-12 18:07:03 +01:00
Richard Feldman
f8fbc2932d
Merge pull request #8651 from roc-lang/list-join-with
Add `List.join_with`
2025-12-12 11:38:12 -05:00
Richard Feldman
9cd58ee4ab
Merge pull request #8649 from roc-lang/fix-double-decref
Fix double-decref
2025-12-12 10:05:53 -05:00
Richard Feldman
6efd449282
Add List.join_with with type var alias dispatch 2025-12-12 09:21:52 -05:00
Richard Feldman
dce64de490
Merge pull request #8639 from roc-lang/expand-type-var-alias
Add test case for type var alias
2025-12-12 09:04:13 -05:00
Richard Feldman
fae5ddbbe3
Fix double-decref bug in binop_apply and unary_op_apply
When handling low-level lambdas (like Str.is_eq), the code was decrefing
arguments with borrow semantics, but the defer statements at the top of
these functions already handle decrefing. This caused a double-free when
comparing heap-allocated strings (24+ characters).

The fix removes the explicit decrefs in the low-level lambda paths since
the defer statements already handle cleanup.
2025-12-12 09:01:54 -05:00
Richard Feldman
e1019be2ef
Merge pull request #8627 from roc-lang/fix-another-aoc
Fix tag union handling
2025-12-12 07:09:54 -05:00
Anton-4
0608d4c338
Fix #8517 (#8613)
temp fix expect stack overflow

Signed-off-by: Anton-4 <17049058+Anton-4@users.noreply.github.com>
2025-12-12 11:30:33 +01:00
Richard Feldman
f0cf4e2007
Merge origin/main into fix-another-aoc
Resolved merge conflicts in:
- src/cli/test/fx_test_specs.zig (combined test entries from both branches)
- test/snapshots/fuzz_crash/fuzz_crash_027.md (took main's error message format)
- test/snapshots/fuzz_crash/fuzz_crash_028.md (took main's error message format)
2025-12-11 23:18:39 -05:00
Richard Feldman
a6c2c30661
Merge pull request #8638 from roc-lang/fix-list-first-panic-8633
Fix List.first dispatch panic
2025-12-11 23:05:16 -05:00
Richard Feldman
857b5c27f7
Add from_str test case for type var alias 2025-12-11 23:04:39 -05:00
Richard Feldman
3947f718f6
Merge pull request #8636 from roc-lang/type-var-alias
Static dispatch on non-args
2025-12-11 22:51:48 -05:00
Richard Feldman
cdafc209b9
Merge origin/main into fix-list-first-panic-8633
Resolved conflict in fx_test_specs.zig by including both:
- list_append_stdin_uaf.roc test from main
- list_first_method.roc and list_first_function.roc regression tests from this branch

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-11 21:43:44 -05:00
Richard Feldman
2d863e9073
Fix panics 2025-12-11 21:13:15 -05:00
Richard Feldman
9a4bfebf20
Merge pull request #8635 from roc-lang/fix-refcount
Add a missing refcount
2025-12-11 17:25:20 -05:00
Richard Feldman
c99b06f2e5
Improve test coverage for type variable alias static dispatch 2025-12-11 16:37:13 -05:00
Richard Feldman
28d5ab5602
Implement type variable alias for static dispatch on type parameters 2025-12-11 16:37:12 -05:00
Richard Feldman
c7fd764eb3
Add snapshot test for type var alias static dispatch 2025-12-11 16:37:07 -05:00
Richard Feldman
0d2e91a998
Merge pull request #8632 from roc-lang/type-checker-stuff
Fix some more type checker error handling
2025-12-11 16:34:50 -05:00
Richard Feldman
a3d68dbc37
Add a missing refcount 2025-12-11 16:32:07 -05:00
Richard Feldman
fd874201b3
More occurs fixes 2025-12-11 15:25:50 -05:00
Richard Feldman
f92d84323e
Fix tests 2025-12-11 11:49:45 -05:00
Richard Feldman
ca1a1fa5a6
Fix tag union handling 2025-12-11 11:46:15 -05:00
Richard Feldman
530b213843
Fix some more type checker issues 2025-12-11 07:57:17 -05:00
Luke Boswell
2c1a3f15ed
Merge remote-tracking branch 'remote/main' into build-static-lib 2025-12-11 15:40:26 +11:00
Richard Feldman
7efcc6ab59
Fix rank unification bug 2025-12-10 20:13:20 -05:00
Luke Boswell
b03c1457ea
remove stray test files 2025-12-11 11:22:08 +11:00
Luke Boswell
c31209f615
big cleanup 2025-12-11 11:20:08 +11:00
Luke Boswell
22b1ffce82
Merge remote-tracking branch 'remote/main' into build-static-lib 2025-12-11 09:05:01 +11:00
Luke Boswell
da6a25f5b4
Delete DEBUG_SUMMARY.md 2025-12-11 08:40:44 +11:00
Luke Boswell
85289d6580
WIP -- bug hunting 2025-12-11 07:32:29 +11:00
Richard Feldman
d91a8aa534
Add lint for no // ======= comments 2025-12-10 15:31:53 -05:00
Richard Feldman
b60aa9a30f
Merge pull request #8614 from roc-lang/fix-more-can-stuff
Fix more can stuff
2025-12-10 14:02:20 -05:00
Richard Feldman
7cbb76b776
Delete redundant tests 2025-12-10 13:00:30 -05:00
Richard Feldman
2f6fe8867c
Fix fold_rev static dispatch bug 2025-12-10 12:58:45 -05:00
Richard Feldman
6d6f8ab9f6
Merge remote-tracking branch 'origin/main' into fix-more-can-stuff 2025-12-10 12:47:42 -05:00
Richard Feldman
7979b38925
Fix serialization size 2025-12-10 12:47:34 -05:00
Richard Feldman
a8eb52501e
Merge pull request #8617 from roc-lang/fix-index-oob
Fix index out of bounds panic
2025-12-10 10:57:33 -05:00
Richard Feldman
002ad6a1ea
Merge pull request #8611 from roc-lang/fix-more-type-stuff
Support record extensions better
2025-12-10 07:55:38 -05:00
Luke Boswell
38c474176c
initial implementation 2025-12-10 15:37:13 +11:00
Richard Feldman
7c3579d4b9
Add doc comment and update snapshots for parser changes 2025-12-09 22:34:16 -05:00
Richard Feldman
d86b85e99f
Reproduce index out of bounds crash 2025-12-09 22:26:11 -05:00
Richard Feldman
9bbc8e5291
Fix some canonicalization import issues 2025-12-09 22:05:46 -05:00
Richard Feldman
9226337fcc
Support record extension syntax 2025-12-09 21:48:56 -05:00
Richard Feldman
a5c2cade63
Merge origin/main
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 21:43:42 -05:00
Richard Feldman
0f975ccbb0
Merge pull request #8609 from roc-lang/fix-inspect-crash
Replace `inspect` with `Str.inspect`
2025-12-09 21:41:18 -05:00
Richard Feldman
1301587cdf
Support inline record type declarations 2025-12-09 21:05:41 -05:00
Richard Feldman
27d15c104c
Remove inspect keyword and use Str.inspect instead 2025-12-09 20:43:26 -05:00
Richard Feldman
4bdaae210d
Rename Str.inspekt to Str.inspect
(now that inspect is no longer a keyword)
2025-12-09 20:03:58 -05:00