From: Muhammad Mahad Date: Fri, 18 Aug 2023 12:06:02 +0000 (+0500) Subject: gccrs: [E0658] top level or-patterns are not allowed let binding X-Git-Tag: basepoints/gcc-15~2181 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5c339c29f9aa61a2bb0488ca2b3456b2e5c53480;p=thirdparty%2Fgcc.git gccrs: [E0658] top level or-patterns are not allowed let binding gcc/rust/ChangeLog: * hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit): Added richlocation & error code. gcc/testsuite/ChangeLog: * rust/compile/let_alt.rs: Updated comment. Signed-off-by: Muhammad Mahad --- diff --git a/gcc/rust/hir/rust-ast-lower-pattern.cc b/gcc/rust/hir/rust-ast-lower-pattern.cc index 37f001576416..bfb7b71cef21 100644 --- a/gcc/rust/hir/rust-ast-lower-pattern.cc +++ b/gcc/rust/hir/rust-ast-lower-pattern.cc @@ -333,9 +333,12 @@ ASTLoweringPattern::visit (AST::AltPattern &pattern) = new HIR::AltPattern (mapping, std::move (alts), pattern.get_locus ()); if (is_let_top_level) - rust_error_at (pattern.get_locus (), - "top level alternate patterns are not allowed for % " - "bindings - use an outer grouped pattern"); + { + rich_location richloc (line_table, pattern.get_locus ()); + richloc.add_fixit_replace ("use an outer grouped pattern"); + rust_error_at ( + richloc, "top level or-patterns are not allowed for % bindings"); + } } } // namespace HIR diff --git a/gcc/testsuite/rust/compile/let_alt.rs b/gcc/testsuite/rust/compile/let_alt.rs index 1284627bb729..a2735bdbe770 100644 --- a/gcc/testsuite/rust/compile/let_alt.rs +++ b/gcc/testsuite/rust/compile/let_alt.rs @@ -1,4 +1,4 @@ fn main() { let _a | _a = 12; - // { dg-error "top level alternate patterns are not allowed" "" { target *-*-* } .-1 } + // { dg-error "top level or-patterns are not allowed for .let. bindings" "" { target *-*-* } .-1 } }