Skip to content

Don't treat primitives as a separate syntactic class #636

Open
@camelid

Description

@camelid

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-chalk-parseIssues related to the chalk-parse crate

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions