Fix boolean as $literal

This commit is contained in:
David Tolnay
2021-12-26 20:26:55 -08:00
parent b0450e3510
commit bfcb4f1cd5
2 changed files with 15 additions and 8 deletions
+15 -5
View File
@@ -279,14 +279,24 @@ pub fn push_lifetime_spanned(tokens: &mut TokenStream, span: Span, lifetime: &st
}
pub fn push_literal(tokens: &mut TokenStream, repr: &str) {
let literal: Literal = repr.parse().expect("invalid literal");
tokens.extend(iter::once(TokenTree::Literal(literal)));
// Macro_rules's $literal matcher also matches `true`, `-true`, `false`,
// `-false` which are not considered valid values for a proc_macro::Literal.
if repr.ends_with('e') {
parse(tokens, repr);
} else {
let literal: Literal = repr.parse().expect("invalid literal");
tokens.extend(iter::once(TokenTree::Literal(literal)));
}
}
pub fn push_literal_spanned(tokens: &mut TokenStream, span: Span, repr: &str) {
let mut literal: Literal = repr.parse().expect("invalid literal");
literal.set_span(span);
tokens.extend(iter::once(TokenTree::Literal(literal)));
if repr.ends_with('e') {
parse_spanned(tokens, span, repr);
} else {
let mut literal: Literal = repr.parse().expect("invalid literal");
literal.set_span(span);
tokens.extend(iter::once(TokenTree::Literal(literal)));
}
}
macro_rules! push_punct {
-3
View File
@@ -245,8 +245,6 @@ fn test_interpolated_literal() {
let expected = "- 1";
assert_eq!(expected, tokens.to_string());
// FIXME
/*
let tokens = m!(true);
let expected = "true";
assert_eq!(expected, tokens.to_string());
@@ -254,7 +252,6 @@ fn test_interpolated_literal() {
let tokens = m!(-true);
let expected = "- true";
assert_eq!(expected, tokens.to_string());
*/
}
#[test]