about summary refs log tree commit diff
path: root/src/libsyntax/util
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2020-02-22 20:19:49 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2020-02-24 13:03:58 +0300
commit59261f0a7cf264f16e2b6a4e87d4249b212e920e (patch)
tree17c829ac5904f8353ef602550d8aedcaf25047c3 /src/libsyntax/util
parent79cd224e758f603898b64308e849fbb9be6e6f4d (diff)
downloadrust-59261f0a7cf264f16e2b6a4e87d4249b212e920e.tar.gz
rust-59261f0a7cf264f16e2b6a4e87d4249b212e920e.zip
Add some missing support for `NtIdent`
Diffstat (limited to 'src/libsyntax/util')
-rw-r--r--src/libsyntax/util/literal.rs13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/libsyntax/util/literal.rs b/src/libsyntax/util/literal.rs
index 0c611adc06b..ecf17efc4e0 100644
--- a/src/libsyntax/util/literal.rs
+++ b/src/libsyntax/util/literal.rs
@@ -197,10 +197,17 @@ impl Lit {
             }
             token::Literal(lit) => lit,
             token::Interpolated(ref nt) => {
-                if let token::NtExpr(expr) | token::NtLiteral(expr) = &**nt {
-                    if let ast::ExprKind::Lit(lit) = &expr.kind {
-                        return Ok(lit.clone());
+                match &**nt {
+                    token::NtIdent(ident, false) if ident.name.is_bool_lit() => {
+                        let lit = token::Lit::new(token::Bool, ident.name, None);
+                        return Lit::from_lit_token(lit, ident.span);
                     }
+                    token::NtExpr(expr) | token::NtLiteral(expr) => {
+                        if let ast::ExprKind::Lit(lit) = &expr.kind {
+                            return Ok(lit.clone());
+                        }
+                    }
+                    _ => {}
                 }
                 return Err(LitError::NotLiteral);
             }