You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
16: Proof-of-concept SyntaxKind as enum r=matklad a=CAD97
This was the one bit about the original RFC I was most confused about. Why isn't `SyntaxKind` a normal `enum`?
If it's to signify that it's non-exhaustive [`#[non_exhaustive]`](rust-lang/rust#44109) should be used. (Or `#[doc(hidden)] __Nonexhaustive` on stable.)
If it's so that more variants can be added externally, why? There's no need for that, that I can foresee.
If it's to expose the `SyntaxKind` type but not any of its instances, why? This is the only actual benefit I can see of this pseudo-enum style.
This diff is meant to be as non-invasive as possible, and as such reexports all symbols as they existed prior to this. It's diffed on top of the assumed-good-to-merge #15 to avoid the conflict between them.
Diff without #15: <4244948>
Just `src/syntax_kinds.rs`: <4244948#diff-8f0d69eb4fe0148851505f787b6fd3bb>
0 commit comments