Agus Zubiaga
c617963b22
Load and can imports inside defs
...
After parsing a module, we now recursively traverse the tree to find
all imports inside Defs, not just the top-level ones.
Previously, imported modules were available in the entire file,
but that's no longer the case. Therefore, Scope now keeps track of
imported modules and Env::qualified_lookup checks whether a module
is available in the provided scope.
Note: Unused import warnings are still global and need to be updated.
2024-01-20 08:39:33 -03:00
Agus Zubiaga
710d62f754
Load and can new top-level imports
...
Previously, all imports were available in the header, so we could start
processing dependencies as soon as we parsed it. However, the new imports
are treated as defs, so we have to parse the whole module to find them.
This commit essentially moves the dependency resolution from the `LoadHeader`
phase to the `Parse` phase, and it updates canonicalization to introduce
module symbols into scope when a `ValueDef::ModuleImport` is encountered.
NOTE:
- The `imports` header still parses, but it's no longer wired up. I will remove
it in an upcoming commit.
- Ingested files and imports that appear in nested expressions are not
yet supported by load
2024-01-20 08:39:31 -03:00
Agus Zubiaga
11e0202eb9
Parse inline imports and ingested files at the expression level
...
```
numbers =
import "numbers.json" as numbersJson : Str
import json.Decode exposing [decode, list, int]
numbersJson
|> decode (list int)
|> Result.withDefault []
```
2024-01-20 08:35:50 -03:00
Agus Zubiaga
2d93f0c3f1
Extract ModuleImport/IngestedFileImport into structs for reuse
2024-01-20 08:35:50 -03:00
Agus Zubiaga
4d6e641864
Parse and format inline ingested file imports
2024-01-20 08:35:50 -03:00
Agus Zubiaga
42e755677c
Simply import parsing and formatting by using header::KeywordItem
2024-01-20 08:35:50 -03:00
Agus Zubiaga
65ce811587
Parse and format import package shorthand
...
The original proposal [1] suggested dropping the package shorthand,
but we later decided to keep it [2] to improve UX.
[1] https://docs.google.com/document/d/1E_77fO-44BtoBtXoVeWyGh1xN2KRTWTu8q6i25RNNx0/edit?usp=sharing
[2] 385104011
2024-01-20 08:35:50 -03:00
Agus Zubiaga
c56091ee3e
Module Params' proposal import syntax
...
I previously implemented the syntax in "Proposal: Module and Package Changes" [1]:
```
import [map, map2] from JsonDecode as JD
```
However, we decided [2] to use the one that appears in "Proposal: Module Params" [3]:
```
import JsonDecode as JD exposing [map, map2]
```
The new implementation also now supports comments and newlines between all the tokens.
[1] https://docs.google.com/document/d/1E_77fO-44BtoBtXoVeWyGh1xN2KRTWTu8q6i25RNNx0/edit
[2] 405410612
[3] https://docs.google.com/document/d/110MwQi7Dpo1Y69ECFXyyvDWzF4OYv1BLojIm08qDTvg/edit
2024-01-20 08:35:50 -03:00
Agus Zubiaga
5cd084b73c
Parse and format inline import with exposed names
2024-01-20 08:35:50 -03:00
Agus Zubiaga
76d799ea13
Parse and format aliases in import defs
2024-01-20 08:35:50 -03:00
Agus Zubiaga
933fde77a0
Parse and format top-level import defs with no alias or exposed members
2024-01-20 08:35:50 -03:00
Richard Feldman
443b3c8851
Fix single-quote dollar parsing
2024-01-13 15:41:35 -05:00
Richard Feldman
af8e9c7292
Parse deprecated interpolation syntax differently
2024-01-06 21:49:00 -05:00
Richard Feldman
163bde0c41
Update tests to use $(...) interpolation
2024-01-06 15:06:30 -05:00
Richard Feldman
25be487977
Add $(...) string interpolation syntax
2024-01-06 15:04:22 -05:00
Anton-4
1126f85b5a
fix clippy unnecessary hashes
2024-01-01 16:38:36 +01:00
Anton-4
cd632fe549
Merge branch 'main' of github.com:roc-lang/roc into clippy-1.74
2023-12-25 17:05:37 +01:00
Brendan Hansknecht
5e8974177c
avoid bloating parse expr size
2023-12-02 21:18:32 -08:00
Brendan Hansknecht
3966d63e2f
add src and location to dbg
2023-12-02 21:18:31 -08:00
Ayaz
aaba3f4d82
Merge branch 'main' into clippy-1.74
2023-12-02 20:09:06 -06:00
Brendan Hansknecht
b7f72eff86
add basic Dbg desugaring and LowLevelDbg
2023-11-29 21:05:48 -08:00
jecaro
55befee0b0
Dont swallow bad input while parsing spaces
...
Fix #5939
2023-11-21 19:47:17 +01:00
Folkert
4fb3e90451
redundant pointer casts
2023-11-18 22:48:00 +01:00
Folkert
e6a154765c
silence some redundant closure call warnings caused by macros
2023-10-07 19:11:36 +02:00
Agus Zubiaga
365c65caf1
Format type_annotation.rs and keyword.rs
2023-09-30 01:59:01 -03:00
Agus Zubiaga
ebc3aab91f
Allow where
to be used as an identifier (except in type vars)
2023-09-30 01:48:10 -03:00
Anton-4
a564876631
Merge pull request #5795 from FabHof/BadInputError
...
Implement error messages for (parts of) BadInputError
2023-09-15 20:56:28 +02:00
Anton-4
f0795e6935
minor improvements
2023-09-15 19:51:13 +02:00
Richard Feldman
5a530a8e18
Drop incorrect .as_ptr()
2023-09-11 17:42:42 -04:00
Richard Feldman
729d5c1882
Have Src64::from_file take a &Path
2023-09-11 17:41:54 -04:00
Richard Feldman
4d18d625a2
Drop a redundant debug_assert!
2023-09-11 16:00:24 -04:00
Richard Feldman
2354ca7cbe
Improve a comment
2023-09-11 15:59:10 -04:00
Richard Feldman
af863f54b9
Write newlines after reading the file
...
This makes the prefetches much more effective,
at the cost of one copy_nonoverlapping
2023-09-11 15:52:35 -04:00
Richard Feldman
061d2e5df6
Add a clarifying comment about prefetching
2023-09-11 15:12:20 -04:00
Richard Feldman
783eb9380f
clippy
2023-09-11 15:06:40 -04:00
Richard Feldman
d262911a04
Add prefetching docs
2023-09-11 14:37:30 -04:00
Richard Feldman
3f529edbaf
Fix some comments
2023-09-11 14:36:03 -04:00
Richard Feldman
cb453aa222
Use native OS read() ops and prefetching in Src64
2023-09-11 14:30:45 -04:00
Richard Feldman
17b141449a
Handle empty string/file earlier
2023-09-07 06:35:00 -04:00
Richard Feldman
df90d052e1
sse2 is not the same as neon
2023-09-06 23:43:16 -04:00
Richard Feldman
6b3050c54b
Test the input src file being too big
2023-09-06 23:42:08 -04:00
Richard Feldman
23bc3a7539
Add Src64
2023-09-06 23:12:33 -04:00
Richard Feldman
9fe08cafd0
Render docs for abilities, tuples, and as
2023-08-11 20:59:40 -04:00
Anton-4
954f687666
minor fixes
2023-08-11 16:14:33 +02:00
Richard Feldman
2da41be29f
Merge remote-tracking branch 'origin/main' into abilities-syntax
2023-08-10 20:36:01 -04:00
Folkert
ef39bad7c6
auto clippy fixes
2023-07-10 18:27:08 +02:00
Joshua Warner
654248ad47
Allow spaces before and after the colon in the packages
header section
...
Fixes #4902
2023-07-03 15:46:50 -07:00
Bryce Miller
afa5aaba94
has -> implements
2023-06-10 13:30:54 -04:00
Bryce Miller
e463ccf4a6
merge main
2023-06-07 20:36:54 -04:00
Ajai Nelson
2e5fef5231
Improve error messages involving ignored variables
...
Fix #3987
2023-06-06 19:46:15 -04:00