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
Make '\''x'\'' a real Char value end to end. The lexer emits TokenKind::Char
(raw inner text), the parser produces Expr::CharLiteral / MatchLiteral::Char,
HIR gains HirExpr::Char typed Char, the reg-VM lowers a new RegInstr::LoadChar
(VmValue::Char), and the AOT backend emits a Rust char literal via
format!("{:?}", decode_char_token(..)) with no .to_string() (char is Copy).
Native keeps LoadChar as native_subset:false, so char-using functions stay on
the interpreter tier (safe parity fallback). Char is now an allowed match
scrutinee type (infinite domain, requires _).
Removes the SH-016 diagnostic scaffolding (Program.char_literal_spans, the
analyzer HashSet, the RS0015 char-literal emission). Mirrors the new
tokenization in selfhost/scan.rss (Char token kind 9, \-escape honored) so
lexer parity holds. Adds decode_char_token, a pass fixture, a differential exec
corpus pair, and a vm-eval parity test covering all escapes.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
0 commit comments