diff options
author | Jake Leahy <jake@leahy.dev> | 2023-12-07 18:14:23 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-07 08:14:23 +0100 |
commit | 4fdc6c49bd2a9085d40590bd9ba9696b1e6066d9 (patch) | |
tree | 3d5db38ed964eafe21c498323d7b425eb0920c0f /tests/pragmas | |
parent | e1a0ff1b8a5b84f4e9e338691b280678bc03f650 (diff) | |
download | Nim-4fdc6c49bd2a9085d40590bd9ba9696b1e6066d9.tar.gz |
Don't process a user pragma if its invalid (#23041)
When running `check`/`suggest` in a file with an invalid user pragma like ```nim {.pragma foo: test.} ``` It will continue to try and process it which leads to the compiler running into a `FieldDefect` ``` fatal.nim(53) sysFatal Error: unhandled exception: field 'sons' is not accessible for type 'TNode' using 'kind = nkIdent' [FieldDefect] ``` This makes it instead bail out trying to process the user pragma if its invalid
Diffstat (limited to 'tests/pragmas')
-rw-r--r-- | tests/pragmas/tinvalid_user_pragma.nim | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/tests/pragmas/tinvalid_user_pragma.nim b/tests/pragmas/tinvalid_user_pragma.nim new file mode 100644 index 000000000..3081db842 --- /dev/null +++ b/tests/pragmas/tinvalid_user_pragma.nim @@ -0,0 +1,9 @@ +discard """ +cmd: "nim check $file" +""" + +{.pragma test: foo.} #[tt.Error +^ invalid pragma: {.pragma, test: foo.} ]# + +{.pragma: 1.} #[tt.Error +^ invalid pragma: {.pragma: 1.} ]# |