Ayaz Hafiz
2517695ce4
Fix deriving of hash ability for recursive tag unions
2022-10-05 12:01:02 -05:00
Ayaz
02b02901bc
Update crates/compiler/test_gen/src/gen_abilities.rs
...
Signed-off-by: Ayaz <20735482+ayazhafiz@users.noreply.github.com>
2022-10-04 18:58:30 -05:00
Ayaz Hafiz
c7bd4e1c1c
Support upcasting bools to ints in the wasm backend
2022-10-04 18:55:45 -05:00
Ayaz Hafiz
725054b8f3
Add TODO recursive tag union hashing test
2022-10-04 18:17:35 -05:00
Ayaz Hafiz
5389cdd87f
Add gen test for newtype, byte union, unit tag union hash deriving
2022-10-04 18:11:41 -05:00
Ayaz Hafiz
41c9985c53
Support newtypes and unit tag union hash deriving
2022-10-04 18:11:37 -05:00
Ayaz Hafiz
251b3865d9
Implement tag union discriminant extraction for byte- and newtype-variants
2022-10-04 18:04:46 -05:00
Ayaz Hafiz
00ca8f2f80
Add gen test for deriving hash for heterogenous tags
2022-10-04 17:28:35 -05:00
Ayaz Hafiz
ff70832068
Derive hash for tag unions with a discriminant
2022-10-04 17:19:30 -05:00
Ayaz Hafiz
5eb00c4f94
Generate derive keys for tags
2022-10-04 16:23:24 -05:00
Ayaz Hafiz
fd54cdfdd1
Low-level to extract discriminant from a tag union
2022-10-04 16:17:05 -05:00
Ayaz Hafiz
7421485973
Remove clone
2022-10-04 15:37:03 -05:00
Ayaz Hafiz
5870de54ae
Add gen tests for record hash deriving
2022-10-04 15:29:20 -05:00
Ayaz Hafiz
46f111c6dd
Add hash deriving for records
2022-10-04 15:23:41 -05:00
Ayaz Hafiz
ad4d98be9c
Add derive key generation for record hashing
2022-10-04 14:42:00 -05:00
Ayaz Hafiz
fd421c005d
Refactor hash immediate tests
2022-10-04 14:40:53 -05:00
Ayaz Hafiz
6d7f664194
Add test for hashing list of lists
2022-10-04 14:40:21 -05:00
Ayaz Hafiz
c2c15d3ee1
Skip pending test on wasm
2022-10-04 14:39:55 -05:00
Ayaz Hafiz
085c73dffe
Clippy
2022-10-04 14:10:29 -05:00
Ayaz Hafiz
f2c30a699c
Remove stray dbg
2022-10-04 14:09:40 -05:00
Ayaz Hafiz
42ddcb70df
Add derive test for List of strings
2022-10-04 14:09:40 -05:00
Ayaz Hafiz
5b833e57b5
Support derivation of Hash for Str and List
2022-10-04 14:09:40 -05:00
Ayaz Hafiz
294244ae25
Make sure flex unifies with rigid-able vars correctly
2022-10-04 14:09:40 -05:00
Ayaz Hafiz
715d88510c
Add tests for immediates of the Hash ability
2022-10-04 14:09:40 -05:00
Ayaz Hafiz
8844cd256e
Make sure Num.minU128
/Num.maxU128
is properly exposed
2022-10-04 14:09:40 -05:00
Ayaz Hafiz
427528e659
Add deriving of immediates for the Hash ability
2022-10-04 14:09:39 -05:00
Ayaz Hafiz
f68cb3b0ed
Flip order of hash
signature
2022-10-04 12:14:07 -05:00
Ayaz Hafiz
e9efc95425
Obligation checking for the Hash
ability
...
This implements type-level checks that types can and cannot implement
the `Hash` ability.
Part of #4195
2022-10-04 10:51:14 -05:00
Ayaz Hafiz
ca4ee908f8
Avoid shadowing Hash in mono tests
2022-10-04 10:23:39 -05:00
Ayaz Hafiz
1c8ed27e58
Avoid Hash shadowing in abilities tests
2022-10-04 10:23:09 -05:00
Ayaz Hafiz
eadbc0912a
Update the compiler to be aware of Hash
2022-10-04 10:22:22 -05:00
Ayaz Hafiz
76510ec323
Add Hash.roc builtin module
2022-10-04 10:14:29 -05:00
Ayaz Hafiz
f6c21cc933
Correctly format abilities with comments
2022-10-04 10:03:51 -05:00
Ayaz
f145610be0
Merge pull request #4125 from roc-lang/fix-module-name-mismatches
...
Assorted QoL improvements to incorrect module importing
2022-10-04 06:37:19 -05:00
Ayaz
6ff59f6dc7
Merge pull request #4182 from roc-lang/i4151
...
Correctly format nested pipeline operators
2022-10-03 14:53:02 -05:00
Ayaz Hafiz
bbb2083dd6
Correctly format nested pipeline operators
...
Closes #4151
2022-10-03 14:18:17 -05:00
Ayaz Hafiz
92b754f292
Illegal self recursion on toplevel defs
...
Closes #4153
2022-10-03 13:14:56 -05:00
Richard Feldman
2764ebb94c
Merge pull request #4146 from roc-lang/format-char-with-spaces
...
Properly format characters with escape sequences
2022-10-02 23:09:10 -07:00
Ayaz Hafiz
ec40c3aa0e
Derive Copy
2022-10-02 21:42:43 -05:00
Ayaz Hafiz
5bf71edf0c
Some cleanup
2022-10-02 21:42:28 -05:00
Ayaz Hafiz
e1aadbc6ef
Add clone comment
2022-10-02 21:41:10 -05:00
Ayaz Hafiz
a6cf21dcf9
Revert "Lints"
...
This reverts commit f7e85b5295a44217bde9b6b83d188d84ee863d0c.
2022-10-02 21:39:48 -05:00
Ayaz Hafiz
f3689b1146
Fmt
2022-10-02 21:38:04 -05:00
Ayaz Hafiz
852fd0a127
Lints
2022-10-02 21:38:04 -05:00
Ayaz Hafiz
0cc9ea4b05
Detect and report module names that don't match what they are used as
...
Prior to this commit, if you had a module structure like
```
| - A.roc
| - Dep
| - B.roc
```
where `B.roc` was defined as
```
interface B exposes [] imports []
```
and `A.roc` was defined as
```
interface A exposes [] imports [Dep.B]
```
The compiler would hang on you. The reason is that even though we expect
`B` to be named `Dep.B` relative to `A`, that would not be enforced.
With this patch, we now enforce such naming schemes - a module must have
the namespaced name it is referenced by. Currently, we determine the
expected namespaced name by looking at how transitive dependencies of the
root module reference the module. In the future, once we have a package
ecosystem and a solid idea of "package roots", we can use the "package
root" to determine how a module should be named.
Closes #4094
2022-10-02 21:38:03 -05:00
Ayaz Hafiz
a5ebd7f477
Comments and optimizations for builtins
2022-10-02 21:38:03 -05:00
Ayaz Hafiz
5d649666fa
Detect and report module import cycles
...
Closes #3557
2022-10-02 21:38:03 -05:00
Ayaz Hafiz
c67be21636
Check that module names correspond to the paths they are defined in
...
Closes #3440
Closes #4050
2022-10-02 21:38:02 -05:00
Ayaz Hafiz
3883867b5c
Properly format characters with escape sequences
...
Ran into this just now
2022-10-02 17:10:34 -05:00
Ayaz Hafiz
877714e9c0
Unused imports in gen-abilities
2022-09-30 14:24:06 -05:00