1
1
mirror of https://github.com/anoma/juvix.git synced 2024-11-30 05:42:26 +03:00
juvix/tests/positive/Puns.juvix
Łukasz Czajka c143259aee
Allow trailing semicolons everywhere (#3123)
* Closes #3039
* Closes #3043
* Closes #2970
* Closes #3089
* Parser allows trailing semicolons for any kind of semicolon-separated
items:
  - let-block statements,
  - module statements,
  - record declaration statements,
  - record update fields,
  - record pattern fields,
  - named application arguments,
  - list literal items,
  - list pattern items,
  - open statement using/hiding items,
  - `syntax iterator` declaration parameters,
  - `syntax fixity` declaration parameters.
* Formatter prints trailing semicolons if the items are displayed on
separate lines, removes them if on a single line.
* The formatting of multiline lists is changed to make it consistent
with other semicolon-separated blocks:
```
[
  1;
  2;
  3;
]
```
instead of
```
[ 1
; 2
; 3
]
```
2024-10-29 18:25:06 +01:00

26 lines
313 B
Plaintext

module Puns;
type A := a;
type B := b;
type S :=
mkS@{
fieldA : A;
fieldB : B;
fieldC : A;
fieldD : B;
fieldE : B;
};
f (fieldA : A) (fieldB : B) : S :=
let
fieldD := b;
in mkS@{
fieldC := fieldA;
fieldA;
fieldB;
fieldE := b;
fieldD;
};