Open
Description
Currently types like i32
, f32
, and str
are a separate syntactic class,
which means that code like struct i32 {}
produces confusing errors:
error: parse error: Unrecognized token `i32` found at 7:10
Expected one of r#"([A-Za-z]|_)([A-Za-z0-9]|_)*"#
I can't think of a reason off the top of my head why primitives have to be
special-cased in the parser rather than just being declared in libstd.chalk
(or even the IR or something). If there's a reason, I'm curious to here it!
This is probably low-priority, but it might be nice to change.
See the Zulip discussion.