about summary refs log tree commit diff
path: root/tvix/eval/src/tests/tvix_tests/eval-okay-identifier-formatting.exp
diff options
context:
space:
mode:
authorsterni <sternenseemann@systemli.org>2023-01-04T12·29+0100
committerclbot <clbot@tvl.fyi>2023-01-04T12·36+0000
commit9b8ba915c8c006f55c12a8af927810a901e7a378 (patch)
tree33c91072668fa14fa5ad94096a90f2a373852b8f /tvix/eval/src/tests/tvix_tests/eval-okay-identifier-formatting.exp
parent3d238c350b4c0b4430d694b15e89319a150af889 (diff)
fix(tvix/eval): ' is allowed in nonfirst position in Nix identifiers r/5582
With this is_valid_nix_identifier should line up with the upstream lexer
definition:

    ID          [a-zA-Z\_][a-zA-Z0-9\_\'\-]*

While we're working on this, add a simple test checking the various
formatting rules. Interestingly, it would not be suitable as an identity
test, since you have to write

    { "assert" = null; }

in order to avoid an evaluation error, but C++ Nix is happy to print
this as

    { assert = null; }

– maybe should be considered to be a bug.

Change-Id: I0a4e1ccb5033a80f3767fb8d1c4bba08d303c5d8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7744
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Diffstat (limited to 'tvix/eval/src/tests/tvix_tests/eval-okay-identifier-formatting.exp')
-rw-r--r--tvix/eval/src/tests/tvix_tests/eval-okay-identifier-formatting.exp1
1 files changed, 1 insertions, 0 deletions
diff --git a/tvix/eval/src/tests/tvix_tests/eval-okay-identifier-formatting.exp b/tvix/eval/src/tests/tvix_tests/eval-okay-identifier-formatting.exp
new file mode 100644
index 0000000000..074f5f07f5
--- /dev/null
+++ b/tvix/eval/src/tests/tvix_tests/eval-okay-identifier-formatting.exp
@@ -0,0 +1 @@
+{ "'quoted'" = false; "-20°" = false; "2normal" = false; "45 44 43-'3 2 1" = false; "9front" = false; Very2Normal = true; VeryNormal = true; _'12 = true; "_'12.5" = false; __internal = true; _internal = true; abort = true; assert = true; "attr.path" = false; false = true; foldl' = true; normal = true; normal2 = true; null = true; or = true; throw = true; true = true; x = true; x' = true; x'' = true; "😀" = false; }