Commit graph

513 commits

Author SHA1 Message Date
Anton-4
02cf61f985
Merge pull request #7038 from mulias/expr-dbg
Support `dbg` in expressions
2024-09-02 13:30:32 +02: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
14fabdff07 Double the amount of indentation allowed in parser trace debugging
Increase from 36 levels of indentation to 80. This is excessive, but
it's confusing to have a parser test crash just because
parse_debug_trace is enabled.
2024-08-29 07:25:42 -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
12df3a04de
Merge attempt 2024-08-19 23:34:05 -07:00
Joshua Warner
6b6968632f
Merge branch 'main' into format-invisible-chars 2024-08-17 10:22:40 -07:00
Aidan
de6a31263a
DRY up my new normalize code 2024-08-17 10:23:22 -04:00
Aidan
aef9d81eaa
simplify StrLiteral::Line to StrLiteral::PlainLine in block strings as well 2024-08-17 10:06:50 -04:00
Aidan
b0be698354
simplify StrLiteral::Line to StrLiteral::PlainLine when possible 2024-08-17 01:16:51 -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
Luke Boswell
a5ae2608ea
fix incorrect name from merge 2024-08-14 09:13:57 +10:00
Luke Boswell
5c43bd2cee
Merge remote-tracking branch 'remote/main' into rebuild-platform 2024-08-14 09:12:12 +10:00
Sam Mohr
db0c49b38f Fix merge issue 2024-08-13 00:30:26 -07:00
Sam Mohr
7e72541a79 Merge branch 'main' into builtin-task 2024-08-12 23:12:38 -07:00
Joshua Warner
2d9aa00771
Rename RemoveSpaces->Normalize 2024-08-12 23:05:55 -07:00
Joshua Warner
6835041a61
Normalize string encoding as part of RemoveSpaces 2024-08-12 23:05:45 -07:00
Agus Zubiaga
b451e69b20
Merge branch 'main' into typecheck-module-params 2024-08-12 22:27:16 -03:00
Joshua Warner
0abea91796
Rename Full -> FullAst 2024-08-10 16:06:01 -07: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
Sam Mohr
8288af3156
Merge branch 'main' into builtin-task 2024-07-31 13:36:32 -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
Joshua Warner
ca037c5d0e
Merge branch 'main' into fix-deprecated-interpolated-formatting 2024-07-29 17:40:23 -07:00
Joshua Warner
4e8b36adbf
Fix auto-fixing of deprecated interpolated strings 2024-07-29 17:37:55 -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
Luke Boswell
4a5c00e81e
generates and generates_with fields removed from HostedHeader 2024-07-29 16:15:00 +10:00
Luke Boswell
eca453d07f
Merge remote-tracking branch 'remote/main' into builtin-task 2024-07-29 16:05:51 +10: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
Luke Boswell
b489c44b19
Merge remote-tracking branch 'remote/main' into builtin-task 2024-07-19 19:51:50 +10:00
Anton-4
42a366481b
fix wasm repl warnings 2024-07-13 18:45:01 +02: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
Anton-4
6b2d2e3406
minor improvements 2024-07-08 14:11:22 +02:00
Kiryl Dziamura
ebf55fa793
fix region calculation 2024-07-08 11:39:03 +02:00
Kiryl Dziamura
b2484f144c
fix def replace 2024-07-08 11:39:03 +02:00
Kiryl Dziamura
64220567e5
better documentation for underscore pattern 2024-07-08 09:44:36 +02:00
Sam Mohr
618b713ecd
Merge branch 'main' into new-builder-syntax 2024-07-07 18:33:36 -07: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
JRI98
25084b18ec
Fix handling of spaces after for as 2024-07-05 09:40:56 +01:00
Sam Mohr
f61b303a59
Merge branch 'main' into builtin-task 2024-07-03 00:42:48 -07:00
Agus Zubiaga
702092859e
Add pattern type for module params 2024-07-02 11:09:59 -03:00