Commit graph

146 commits

Author SHA1 Message Date
Luke Boswell
ed2b9e9703
fix split_defs and replace_def 2024-04-14 13:45:05 +10:00
Luke Boswell
8b9e08bd76
WIP try simplification 2024-04-14 13:45:05 +10:00
Luke Boswell
6f607aba11
WIP support nested suffixes 2024-04-14 13:45:03 +10:00
Luke Boswell
5a91a4f78a
WIP support nested suffixes 2024-04-14 13:45:03 +10:00
Luke Boswell
e4c5ba064b
clippy 2024-04-14 13:45:02 +10:00
Luke Boswell
b010e8caba
desugar suffixed If-Then-Else expression 2024-04-14 13:45:02 +10:00
Luke Boswell
5ae188c08f
cleanup 2024-04-14 13:45:01 +10:00
Luke Boswell
b8ec53738a
fix desugar for suffixed nodes 2024-04-14 13:45:01 +10:00
Luke Boswell
ba22527e29
WIP parse statements correctly 2024-04-14 13:45:01 +10:00
Luke Boswell
997284e113
parse suffixed statements as defs 2024-04-14 13:45:00 +10:00
Luke Boswell
3c3e523b45
add suffixed to Identifer and QualifiedIdentifier 2024-04-14 13:45:00 +10:00
Luke Boswell
0a3b9c34b3
add suffixed:u8 to Expr::Var 2024-04-14 13:45:00 +10:00
Luke Boswell
cfa7490b86
Pattern::Stmt cannot be malformed 2024-04-14 13:44:59 +10:00
Luke Boswell
a5df0aa1c2
implement equivalent for Pattern::Stmt 2024-04-14 13:44:59 +10:00
Luke Boswell
42fdcb7ff1
Make unit assignment optional for suffixed defs 2024-04-14 13:44:59 +10:00
Jonathan Schear
723c390f52
Treat two hash marks followed by text as a doc comment 2024-03-24 14:31:27 -04:00
Luke Boswell
4035221dac
desugar no args correctly e.g. Stdin.line! 2024-03-21 19:25:34 +11:00
Luke Boswell
a394f1b4cf
update from review comments 2024-03-21 15:46:14 +11:00
Luke Boswell
e74501981e
fmt and clippy fixes 2024-03-20 12:31:04 +11:00
Luke Boswell
cc10df6db9
handle Suffixed is in the middle of our Defs 2024-03-20 11:48:08 +11:00
Luke Boswell
c4b459b436
handle Suffixed in first index 2024-03-20 09:49:12 +11:00
Luke Boswell
d6a01b3014
WIP stuck on removing Defs 2024-03-19 16:03:29 +11:00
Luke Boswell
8bbbd768ec
add snapshot test for suffixed expr 2024-03-15 14:39:21 +11:00
Richard Feldman
9bc0ab79af
Parse Expr::Suffixed 2024-03-15 14:39:14 +11:00
Folkert
b0d57587e3
List.get with negative index in repl 2024-01-28 22:21:40 +01:00
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
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
af8e9c7292
Parse deprecated interpolation syntax differently 2024-01-06 21:49:00 -05:00
Richard Feldman
25be487977
Add $(...) string interpolation syntax 2024-01-06 15:04:22 -05: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
Brendan Hansknecht
b7f72eff86
add basic Dbg desugaring and LowLevelDbg 2023-11-29 21:05:48 -08:00
Richard Feldman
9fe08cafd0
Render docs for abilities, tuples, and as 2023-08-11 20:59:40 -04: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
Bryce Miller
afa5aaba94
has -> implements 2023-06-10 13:30:54 -04:00
Bryce Miller
cb08225bf0
| -> where 2023-06-05 20:19:00 -04:00
Bryce Miller
46cb45f717
loc_has -> loc_implements 2023-05-20 19:24:08 -04:00
Bryce Miller
d700a6a6e6
has -> implements in comments 2023-05-20 19:19:11 -04:00
Bryce Miller
10d92bf0f3
ast::ImplementsAbilities::Has ->
ast::ImplementsAbilities::Implements
2023-05-20 19:16:13 -04:00
Bryce Miller
4b90948fcf
ast::HasAbilities -> ast::ImplementsAbilities 2023-05-20 19:13:01 -04:00
Bryce Miller
9eb2180a0f
ast::HasAbility -> ast::ImplementsAbility 2023-05-20 08:27:42 -04:00
Bryce Miller
413ccb24ad
ast::HasImpls -> ast::AbilityImpls 2023-05-20 08:24:02 -04:00