Commit graph

1821 commits

Author SHA1 Message Date
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
a08b45263b
Merge branch 'main' into shift-signature
Signed-off-by: Ayaz <20735482+ayazhafiz@users.noreply.github.com>
2022-10-04 12:58:09 -05:00
Ayaz Hafiz
dea7661068
Have Num.shift*By functions shift by a U8
302305020
2022-10-04 12:28:33 -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
Anton-4
dacf542942
Merge branch 'main' of github.com:roc-lang/roc into simplify_examples 2022-10-04 15:01:25 +02: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
Ayaz Hafiz
c97cdc0753
Fix load tests 2022-09-30 13:40:35 -05:00
Ayaz Hafiz
cc125d62bc
Remove redundant reference 2022-09-30 13:40:35 -05:00
Ayaz Hafiz
f745debc73
Fix scope tests 2022-09-30 13:40:34 -05:00
Ayaz Hafiz
92aa0912ea
Report unused imports in modules 2022-09-30 13:40:34 -05:00
Ayaz Hafiz
5f117be306
Improve error message when shadowing builtin type
Closes #3109
2022-09-30 13:40:34 -05:00
Ayaz Hafiz
ae122a0aea
Improve style 2022-09-30 13:40:34 -05:00
Ayaz Hafiz
c521668d4c
Simplify how builtin types are added to a module 2022-09-30 13:40:33 -05:00
Ayaz Hafiz
2028dd5b0c
Add function to get exposed types of builtin module 2022-09-30 13:40:33 -05:00
Ayaz Hafiz
6832d4054f
Better name imported symbols to apply or hint symbols 2022-09-30 13:40:33 -05:00
Anton-4
0aa590dfe7
Merge branch 'main' of github.com:roc-lang/roc into simplify_examples 2022-09-30 19:27:30 +02:00
Jan Van Bruggen
f6c981294a
Merge pull request #4126 from roc-lang/i4064
Str.splitFirst should not find match if needle is longer than haystack
2022-09-29 23:30:56 -06:00
Jan Van Bruggen
cd5747a15c
Run formatter even though it makes matchesAtHelp uglier
Signed-off-by: Jan Van Bruggen <JanCVanB@pm.me>
2022-09-29 23:28:34 -06:00
Jan Van Bruggen
5d814b3ea5
Refactor matchesAtHelp for clarity
Signed-off-by: Jan Van Bruggen <JanCVanB@pm.me>
2022-09-29 23:28:27 -06:00
Ayaz Hafiz
c9c2f61e3e
Add some docs to matchesAtHelp 2022-09-29 22:32:16 -05:00
Ayaz Hafiz
1d7dc65800
Str.splitFirst should not find match if needle is longer than haystack
Closes #4064
2022-09-28 13:14:36 -05:00
Anton-4
eaacb86ad9
Merge branch 'main' of github.com:roc-lang/roc into simplify_examples 2022-09-28 19:48:46 +02:00
Folkert
2e5f207283
Merge remote-tracking branch 'origin/main' into csv_decoding-server_example 2022-09-28 16:39:34 +02:00
Folkert
9106479d07
access out of bounds in string split 2022-09-28 15:17:07 +02:00
Folkert
f44a30cf48
fix off-by-one error in List.dropAt 2022-09-28 14:57:55 +02:00
Anton-4
735d4c13bb
Merge branch 'main' into simplify_examples
Signed-off-by: Anton-4 <17049058+Anton-4@users.noreply.github.com>
2022-09-28 11:54:44 +02:00
Ayaz Hafiz
2a508721ed
Don't resolve builtin modules imported from platform interfaces as namespaced 2022-09-27 17:57:45 -05:00