snobee
35a0671c52
parse block without indentation after indented else
2024-09-06 14:35:47 -07:00
snobee
a7afac7ac7
Add boolean flag to Expr::If for indented else statement
2024-09-05 16:28:44 -07:00
Elias Mulhall
56c5b790a7
Refactor dbg expression parsing to work more like function application
...
Instead of parsing dbg with an expression block, parse the dbg keyword
with no additional arguments. This way the parser treats dbg just like a
variable in function application. We desugar by pattern matching on
`Apply(Dbg, args, called_via)` nodes. This changes the output of syntax
tests since the initial AST is different, but does not change the output
of can or mono.
Add two new errors for dbg in expression position with either no args or
too many args. This is similar to the error behavior of `crash`.
Continue to parse dbg statements with an expression block, as before.
2024-08-29 15:36:48 -04:00
Elias Mulhall
335265e15c
Parse dbg in expression position
...
Add dbg parsing logic everywhere we parse normal expressions. Add
special case to statement parsing to handle a series of statements
ending in a `dbg` in expression position.
Rename existing `dbg_help` function to `dbg_stmt_help`, similarly rename
syntax snapshot test files to specify which ones are for dbg statements.
2024-08-28 11:53:44 -04:00
Elias Mulhall
43d932df3b
Update parser AST to support dbg as both a statment and expression
...
Make `Expr::Dbg` node specific to dbg expressions, add `Expr::DbgStmt`
for dbg statements. Debug expressions don't have a continuation branch.
Support formatting both kinds of `Dbg` nodes.
2024-08-28 11:53:44 -04:00
Sam Mohr
b1a972ab21
Implement &foo
record updater syntax sugar
2024-08-16 01:41:59 -07:00
Sam Mohr
0fd0cc11aa
Format code
2024-08-14 22:26:32 -07:00
Sam Mohr
3bc5c1dc12
Combine ! and ? into single TrySuffix AST node
2024-08-14 22:14:08 -07:00
Agus Zubiaga
b451e69b20
Merge branch 'main' into typecheck-module-params
2024-08-12 22:27:16 -03:00
Joshua Warner
d25c048d48
Move Full from fmt to parse and reorganize confusingly-named Module ast type
2024-08-07 23:01:49 -07:00
Agus Zubiaga
762799052e
Merge branch 'main' into typecheck-module-params
2024-08-07 18:55:33 -03:00
Sam Mohr
cb8040f629
Ignore underscore-prefixed fields in record builders
2024-08-06 22:49:35 -07:00
Joshua Warner
c49dc1b9d6
Merge pull request #6938 from joshuawarner32/fix-unreachable
2024-07-30 06:57:36 -07:00
Joshua Warner
939f9cb7e9
Give an error for record builders in patterns instead of crashing
2024-07-29 22:54:25 -07:00
Aidan
ddb58a2cd5
spaces_middle
-> lines_between
2024-07-29 13:06:48 -04:00
Aidan
91fdd903e7
comment
-> spaces_middle
2024-07-29 10:04:32 -04:00
Aidan
125990855f
Merge branch 'main' into store-all-space-between-annotation-body
2024-07-29 09:46:05 -04:00
Joshua Warner
df915b936d
Feedback: add doc comments, verbiage changes, capitalize Roc, remove a resolved TODO
2024-07-28 14:45:32 -07:00
Joshua Warner
4f32f43048
Implement block / indent based parsing
...
... and enforce that defs can only occur in blocks (or, inside parenthesized expressions)
2024-07-27 13:34:16 -07:00
Aidan
3c78b4fb86
functional changes
2024-07-27 12:16:04 -04:00
Sam Mohr
b9a17f4a49
Merge pull request #6883 from smores56/new-builder-syntax
...
Implement new builder syntax alongside old one
2024-07-08 11:19:01 -07:00
Kiryl Dziamura
ebf55fa793
fix region calculation
2024-07-08 11:39:03 +02:00
Sam Mohr
fe1b6d71fc
Update from PR comments
2024-07-07 18:33:20 -07:00
Sam Mohr
f415017c90
Implement new builder syntax alongside old one
2024-07-07 03:28:59 -07:00
Agus Zubiaga
90c7745989
Capture import params location for better errors
2024-07-02 11:09:56 -03:00
Kiryl Dziamura
c4b63aa80a
simplify defs parsing
2024-07-01 19:44:32 +02:00
Kiryl Dziamura
de9ed734c5
remove EmptyDefsFinal
2024-07-01 18:45:23 +02:00
Isak
eb98dd7bde
move comment
2024-06-27 13:38:30 -04:00
Isak
cc7d3d3e1d
fix: allow multiple newlines between signature and body
2024-06-27 13:34:09 -04:00
Anton-4
f8432f7510
fmt
2024-06-22 20:09:15 +02:00
Anton-4
ab217ede3f
Merge remote-tracking branch 'upstream/main' into unmacro_parsers
2024-06-22 20:02:30 +02:00
Folkert
2cabe6546c
use std::starts_with
instead of iterator logic
2024-06-05 17:14:06 +02:00
Kiryl Dziamura
fb108af73e
ignore comments in repl
2024-05-22 00:51:38 +02:00
Ayaz
e5ea6dc461
Merge pull request #6708 from roc-lang/module-params-syntax
...
Parse and format module params
2024-05-12 13:51:13 -05:00
Agus Zubiaga
25d3cae08f
Use Loc::at instead of map(|_| x)
2024-05-09 07:42:10 -03:00
Agus Zubiaga
e5a09b5de6
Parse module params in import
2024-05-09 07:42:07 -03:00
Joshua Warner
d667e3c2d8
Simplify task await bang parsing to no longer require suffixed_found
2024-05-08 20:48:33 -07:00
Agus Zubiaga
2a8ecbba28
Do not drop import parse errors
2024-05-07 22:39:43 -03:00
Agus Zubiaga
f81985533c
Report import lowercase alias
2024-05-06 23:16:18 -03:00
Agus Zubiaga
8418610dd9
Require newline after import
2024-05-06 22:15:52 -03:00
Agus Zubiaga
56f12718f1
Only annotation spaces should be backtrackable
2024-05-05 17:39:49 -03:00
Agus Zubiaga
fe2eb0f0a5
Parse optional ingested file annotation
2024-05-05 16:55:36 -03:00
Anton-4
f7011c8e33
Merge pull request #6644 from roc-lang/rust-1-76-0-upgrade
...
Rust 1.76.0 upgrade
2024-05-03 07:25:19 +02:00
Anton-4
c303be7553
Merge branch 'main' into rust-1-76-0-upgrade
2024-04-30 19:36:01 +02:00
Anton-4
ec874655dd
apply Ayaz review suggestions
2024-04-30 19:34:21 +02:00
Agus Zubiaga
a8a829aadd
Merge branch 'main' into inline-imports
2024-04-28 00:11:29 -03:00
Luke Boswell
74e531b994
remove suffixed from Ident::Access and cleanup
2024-04-28 08:48:08 +10:00
Luke Boswell
db4607125b
remove suffixed from Pattern
2024-04-28 08:47:08 +10:00
Luke Boswell
2fe03e6c91
remove suffixed from Expr::Var
2024-04-28 08:47:08 +10:00
Joshua Warner
7c53cf0cd7
Fixup tests
2024-04-28 08:47:07 +10:00