Skip to content
Compare
Choose a tag to compare
@lrlna lrlna released this 08 Nov 02:51
· 186 commits to main since this release
95d9621

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 and union member types - goto-bus-stop, pull/721 fixing issue/659
    Previously these definitions were all accepted, despite missing or excessive & and | separators:
    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 |
    Now they report a syntax error.