about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYuki Okushi <huyuumi.dev@gmail.com>2020-10-21 13:59:44 +0900
committerGitHub <noreply@github.com>2020-10-21 13:59:44 +0900
commitde24210ebf40b5700908d0a6613f82afe1995b52 (patch)
tree7b4db815ca111d129ecda5f620695fff51563a2e
parent83f126bedf227103463f6f505398d72d4efedd42 (diff)
parentdcd2d91a647c101c7226e594ecae23bc5fb3bb69 (diff)
downloadrust-de24210ebf40b5700908d0a6613f82afe1995b52.tar.gz
rust-de24210ebf40b5700908d0a6613f82afe1995b52.zip
Rollup merge of #78118 - spastorino:inline-const-followups, r=petrochenkov
Inline const followups

r? @petrochenkov

Follow ups of #77124
-rw-r--r--compiler/rustc_hir_pretty/src/lib.rs2
-rw-r--r--compiler/rustc_parse/src/parser/mod.rs6
-rw-r--r--src/test/ui/inline-const/const-expr-macro.rs12
3 files changed, 17 insertions, 3 deletions
diff --git a/compiler/rustc_hir_pretty/src/lib.rs b/compiler/rustc_hir_pretty/src/lib.rs
index 4686b4989ae..1cd4ddad578 100644
--- a/compiler/rustc_hir_pretty/src/lib.rs
+++ b/compiler/rustc_hir_pretty/src/lib.rs
@@ -1138,9 +1138,7 @@ impl<'a> State<'a> {
     fn print_expr_anon_const(&mut self, anon_const: &hir::AnonConst) {
         self.ibox(INDENT_UNIT);
         self.s.word_space("const");
-        self.s.word("{");
         self.print_anon_const(anon_const);
-        self.s.word("}");
         self.end()
     }
 
diff --git a/compiler/rustc_parse/src/parser/mod.rs b/compiler/rustc_parse/src/parser/mod.rs
index 1860f1238c4..5176db82d3b 100644
--- a/compiler/rustc_parse/src/parser/mod.rs
+++ b/compiler/rustc_parse/src/parser/mod.rs
@@ -548,7 +548,11 @@ impl<'a> Parser<'a> {
 
     fn check_inline_const(&mut self) -> bool {
         self.check_keyword(kw::Const)
-            && self.look_ahead(1, |t| t == &token::OpenDelim(DelimToken::Brace))
+            && self.look_ahead(1, |t| match t.kind {
+                token::Interpolated(ref nt) => matches!(**nt, token::NtBlock(..)),
+                token::OpenDelim(DelimToken::Brace) => true,
+                _ => false,
+            })
     }
 
     /// Checks to see if the next token is either `+` or `+=`.
diff --git a/src/test/ui/inline-const/const-expr-macro.rs b/src/test/ui/inline-const/const-expr-macro.rs
new file mode 100644
index 00000000000..66b58571751
--- /dev/null
+++ b/src/test/ui/inline-const/const-expr-macro.rs
@@ -0,0 +1,12 @@
+// run-pass
+
+#![allow(incomplete_features)]
+#![feature(inline_const)]
+macro_rules! do_const_block{
+    ($val:block) => { const $val }
+}
+
+fn main() {
+    let s = do_const_block!({ 22 });
+    assert_eq!(s, 22);
+}