0.7.3 - 2023-11-07
Fixes
-
Less recursion in parser implementation - goto-bus-stop, pull/721 fixing issue/666
The parser previously used recursive functions while parsing some repetitive nodes, like members of an enum:enum Alphabet { A B C D E F G etc }
Even though this is a flat list, each member would use a recursive call. Having many members, or fields in a type
definition, or arguments in a directive, would all contribute to the recursion limit.Those cases are now using iteration instead and no longer contribute to the recursion limit. The default recursion limit
is unchanged at 500, but you could reduce it depending on your needs.
- Fix overly permissive parsing of
implements
lists andunion
member types - goto-bus-stop, pull/721 fixing issue/659
Previously these definitions were all accepted, despite missing or excessive&
and|
separators:Now they report a syntax error.type Ty implements A B type Ty implements A && B type Ty implements A & B & union Ty = A B union Ty = A || B union Ty = A | B |