diff options
| author | Nadrieril <nadrieril+git@gmail.com> | 2024-12-07 12:49:08 +0100 |
|---|---|---|
| committer | Nadrieril <nadrieril+git@gmail.com> | 2024-12-07 13:37:35 +0100 |
| commit | 2459dbb4bad87c38284b0a2ba4f2d6d37db99627 (patch) | |
| tree | 72446ee03c41f1762fde0bbc97d2ff21b352f9c6 | |
| parent | 483f9e258055bcd37c162cbf2af24aa7450ab0ea (diff) | |
| download | rust-2459dbb4bad87c38284b0a2ba4f2d6d37db99627.tar.gz rust-2459dbb4bad87c38284b0a2ba4f2d6d37db99627.zip | |
Address review comments
| -rw-r--r-- | compiler/rustc_ast_pretty/src/pprust/state.rs | 2 | ||||
| -rw-r--r-- | tests/ui/pattern/rfc-3637-guard-patterns/macro-rules.rs | 20 |
2 files changed, 22 insertions, 0 deletions
diff --git a/compiler/rustc_ast_pretty/src/pprust/state.rs b/compiler/rustc_ast_pretty/src/pprust/state.rs index 32eea2befbf..fd2e97a79ca 100644 --- a/compiler/rustc_ast_pretty/src/pprust/state.rs +++ b/compiler/rustc_ast_pretty/src/pprust/state.rs @@ -1710,10 +1710,12 @@ impl<'a> State<'a> { } } PatKind::Guard(subpat, condition) => { + self.popen(); self.print_pat(subpat); self.space(); self.word_space("if"); self.print_expr(condition, FixupContext::default()); + self.pclose(); } PatKind::Slice(elts) => { self.word("["); diff --git a/tests/ui/pattern/rfc-3637-guard-patterns/macro-rules.rs b/tests/ui/pattern/rfc-3637-guard-patterns/macro-rules.rs new file mode 100644 index 00000000000..76681f45bb3 --- /dev/null +++ b/tests/ui/pattern/rfc-3637-guard-patterns/macro-rules.rs @@ -0,0 +1,20 @@ +//@ run-pass +//! Tests that the addition of guard patterns does not change the behavior of the `pat` macro +//! fragment. +#![feature(guard_patterns)] +#![allow(incomplete_features)] + +macro_rules! has_guard { + ($p:pat) => { + false + }; + ($p:pat if $e:expr) => { + true + }; +} + +fn main() { + assert_eq!(has_guard!(Some(_)), false); + assert_eq!(has_guard!(Some(_) if true), true); + assert_eq!(has_guard!((Some(_) if true)), false); +} |
