aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/parse
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2024-05-21 18:09:14 +0200
committerArthur Cohen <arthur.cohen@embecosm.com>2025-03-17 16:35:34 +0100
commitab89ab377d8d99d9875dc0f2262c5282ce083bdf (patch)
tree350a1b574c2cfeb9835defbe55aad2bbc3df0e12 /gcc/rust/parse
parentcc7ec3925c3371deca5fa891e0a7a82950956c54 (diff)
downloadgcc-ab89ab377d8d99d9875dc0f2262c5282ce083bdf.zip
gcc-ab89ab377d8d99d9875dc0f2262c5282ce083bdf.tar.gz
gcc-ab89ab377d8d99d9875dc0f2262c5282ce083bdf.tar.bz2
gccrs: Add exclusive_range_pattern feature gate
This syntax is experimental and shall be explicitely enabled in the crate attributes as it cannot be used in stable rust. gcc/rust/ChangeLog: * checks/errors/rust-feature-gate.cc (FeatureGate::visit): Gate the excluded pattern. * checks/errors/rust-feature-gate.h: Update the function prototype and delete two empty implementations in order to use default visitor behavior. * checks/errors/rust-feature.cc (Feature::create): Add the new exclusive range pattern feature gate. * checks/errors/rust-feature.h: Add new feature enum variant for exclusive range patterns. * parse/rust-parse-impl.h (Parser::parse_pattern_no_alt): Forward the token location to the AST. (Parser::parse_ident_leading_pattern): Likewise. Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Diffstat (limited to 'gcc/rust/parse')
-rw-r--r--gcc/rust/parse/rust-parse-impl.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/rust/parse/rust-parse-impl.h b/gcc/rust/parse/rust-parse-impl.h
index cabfb5b..7a9c0b7 100644
--- a/gcc/rust/parse/rust-parse-impl.h
+++ b/gcc/rust/parse/rust-parse-impl.h
@@ -10586,7 +10586,7 @@ Parser<ManagedTokenSource>::parse_pattern_no_alt ()
return std::unique_ptr<AST::RangePattern> (
new AST::RangePattern (std::move (lower_bound),
std::move (upper_bound), kind,
- UNKNOWN_LOCATION));
+ next->get_locus ()));
}
case EXCLAM:
return parse_macro_invocation_partial (std::move (path),
@@ -11112,7 +11112,7 @@ Parser<ManagedTokenSource>::parse_ident_leading_pattern ()
return std::unique_ptr<AST::RangePattern> (
new AST::RangePattern (std::move (lower_bound),
std::move (upper_bound), kind,
- UNKNOWN_LOCATION));
+ t->get_locus ()));
}
case PATTERN_BIND: {
// only allow on single-segment paths