aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMuhammad Mahad <mahadtxt@gmail.com>2023-08-17 15:49:15 +0500
committerCohenArthur <arthur.cohen@embecosm.com>2023-08-23 10:02:15 +0000
commita6134331c80856bdcb3269bee81b2c80e728f6f8 (patch)
tree579ceb0b401e2ad39848df98d118258fc178bde7 /gcc
parentba4db84d492626c95cad491877a5bd7e5cc412e8 (diff)
downloadgcc-a6134331c80856bdcb3269bee81b2c80e728f6f8.zip
gcc-a6134331c80856bdcb3269bee81b2c80e728f6f8.tar.gz
gcc-a6134331c80856bdcb3269bee81b2c80e728f6f8.tar.bz2
gccrs: Invalid order of generic parameters
Added more userfriendly message. gcc/rust/ChangeLog: * parse/rust-parse-impl.h (Parser::parse_generic_params): Added more user friendly message. gcc/testsuite/ChangeLog: * rust/compile/generics13.rs: for dejagnu, Signed-off-by: Muhammad Mahad <mahadtxt@gmail.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/parse/rust-parse-impl.h9
-rw-r--r--gcc/testsuite/rust/compile/generics13.rs2
2 files changed, 7 insertions, 4 deletions
diff --git a/gcc/rust/parse/rust-parse-impl.h b/gcc/rust/parse/rust-parse-impl.h
index e54c7ef..c52be32 100644
--- a/gcc/rust/parse/rust-parse-impl.h
+++ b/gcc/rust/parse/rust-parse-impl.h
@@ -3142,9 +3142,12 @@ Parser<ManagedTokenSource>::parse_generic_params (EndTokenPred is_end_token)
// FIXME: Add reordering hint
if (order_error)
- rust_error_at (generic_params.front ()->get_locus (),
- "invalid order for generic parameters: lifetimes should "
- "always come before types");
+ {
+ Error error (generic_params.front ()->get_locus (),
+ "invalid order for generic parameters: lifetime parameters "
+ "must be declared prior to type and const parameters");
+ add_error (std::move (error));
+ }
generic_params.shrink_to_fit ();
return generic_params;
diff --git a/gcc/testsuite/rust/compile/generics13.rs b/gcc/testsuite/rust/compile/generics13.rs
index 05c75c5..b6b5edd 100644
--- a/gcc/testsuite/rust/compile/generics13.rs
+++ b/gcc/testsuite/rust/compile/generics13.rs
@@ -1 +1 @@
-struct Foo<A, 'a>; // { dg-error "invalid order for generic parameters: lifetimes should always come before types" }
+struct Foo<A, 'a>; // { dg-error "invalid order for generic parameters: lifetime parameters must be declared prior to type and const parameters" }