Skip to content

Conversation

@ccll
Copy link

@ccll ccll commented Nov 21, 2025

Features:

  • passes all tests (with some tests modified to the new syntax and a few new tests added)
  • new generic syntax List{int}, this one brings most of the trouble, as "{}" are used for struct blocks, code blocks, struct initializers etc, may fail on some edge cases
  • optional type changes from ! to ?, including docs @return! to @return?
  • keyword changes: def-> alias, distinct -> typedef, fault -> faultdef, anyfault -> fault
  • format for the new faultdef syntax
  • new compound literal syntax: Foo { 1, 2 } -> (Foo) { 1, 2 }

Other things are not touched, such as deprecation of {| |} block, $or $and -> ||| &&&, etc.

I tried to keep the commit history more atomic and cleaner for reviewing, but failed, the history is full of experiments and trial and errors, finally I squashed them into two commits, hope this would not be a trouble.

@ccll
Copy link
Author

ccll commented Nov 21, 2025

Found one edge case, please don't merge this yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant