From be7260485e31eb24a9fa7bb3d6b587ab59bd6846 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Wed, 23 Dec 2020 01:26:31 +0100 Subject: [PATCH 1/4] Update ungrammar for const block patterns --- Cargo.lock | 4 +-- Cargo.toml | 2 +- crates/hir_def/src/body/lower.rs | 4 ++- crates/parser/src/syntax_kind/generated.rs | 1 + crates/syntax/src/ast/generated/nodes.rs | 33 +++++++++++++++++++++- xtask/Cargo.toml | 2 +- xtask/src/ast_src.rs | 1 + 7 files changed, 40 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fbb79e01fc2f..47381c08ee07 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1827,9 +1827,7 @@ checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" [[package]] name = "ungrammar" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68951379f3ced25754472ca5addbf74d7dab58c9818f49290a3d8caa3ab44fb7" +version = "1.5.0" [[package]] name = "unicase" diff --git a/Cargo.toml b/Cargo.toml index 59d36fbc1d19..fdf2a71a0683 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,4 +26,4 @@ debug = 0 # Set this to 1 or 2 to get more useful backtraces in debugger. # chalk-ir = { path = "../chalk/chalk-ir" } # chalk-recursive = { path = "../chalk/chalk-recursive" } -# ungrammar = { path = "../ungrammar" } +ungrammar = { path = "../ungrammar" } diff --git a/crates/hir_def/src/body/lower.rs b/crates/hir_def/src/body/lower.rs index 0f404be1b7c4..978c3a32498c 100644 --- a/crates/hir_def/src/body/lower.rs +++ b/crates/hir_def/src/body/lower.rs @@ -933,7 +933,9 @@ fn collect_pat(&mut self, pat: ast::Pat) -> PatId { Pat::Box { inner } } // FIXME: implement - ast::Pat::RangePat(_) | ast::Pat::MacroPat(_) => Pat::Missing, + ast::Pat::RangePat(_) | ast::Pat::MacroPat(_) | ast::Pat::ConstBlockPat(_) => { + Pat::Missing + } }; let ptr = AstPtr::new(&pat); self.alloc_pat(pattern, Either::Left(ptr)) diff --git a/crates/parser/src/syntax_kind/generated.rs b/crates/parser/src/syntax_kind/generated.rs index 980aa59794f8..f69e71bdba65 100644 --- a/crates/parser/src/syntax_kind/generated.rs +++ b/crates/parser/src/syntax_kind/generated.rs @@ -170,6 +170,7 @@ pub enum SyntaxKind { RANGE_PAT, LITERAL_PAT, MACRO_PAT, + CONST_BLOCK_PAT, TUPLE_EXPR, ARRAY_EXPR, PAREN_EXPR, diff --git a/crates/syntax/src/ast/generated/nodes.rs b/crates/syntax/src/ast/generated/nodes.rs index 1588ba93ea27..c5b80bffe742 100644 --- a/crates/syntax/src/ast/generated/nodes.rs +++ b/crates/syntax/src/ast/generated/nodes.rs @@ -763,6 +763,7 @@ pub fn label(&self) -> Option