Some fuzz testing tooling to check that the parser doesn't crash on randomly generated source strings.
Fix several problems found with this:
? shouldn't be special in parse_unary. This was inherited from the a syntax hack used to support the ancient and questionable @windows? and other platform test macros in osutils.jl. This is long since gone and we shouldn't continue supporting this.
<: may be unary so <: <: x should parse as (<: (<: x)), even though this is kind of nonsense semantically.
Constructing a SyntaxNode tree shouldn't fail when there's malformed literals but when we've parsed using ignore_errors=true. Instead we use ErrorVal() for the leaf values in that tree.
The tokenizer should not crash when overlong UTF-8 character literals are encountered.
Some fuzz testing tooling to check that the parser doesn't crash on randomly generated source strings.
Fix several problems found with this:
?
shouldn't be special inparse_unary
. This was inherited from the a syntax hack used to support the ancient and questionable@windows?
and other platform test macros in osutils.jl. This is long since gone and we shouldn't continue supporting this.<:
may be unary so<: <: x
should parse as(<: (<: x))
, even though this is kind of nonsense semantically.ignore_errors=true
. Instead we use ErrorVal() for the leaf values in that tree.