aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/parse
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2022-11-18 08:48:08 +0000
committerGitHub <noreply@github.com>2022-11-18 08:48:08 +0000
commit9ef8144e3994dea423011c0c248a0ea71c73cf25 (patch)
tree358b50f30b9764fea0735b85a98f7c360eaf36b5 /gcc/rust/parse
parentd8e9850b7f818f56fcf7e945003556db349db536 (diff)
parentbea720bef773efce55391ef005b7be990b9bfc50 (diff)
downloadgcc-9ef8144e3994dea423011c0c248a0ea71c73cf25.zip
gcc-9ef8144e3994dea423011c0c248a0ea71c73cf25.tar.gz
gcc-9ef8144e3994dea423011c0c248a0ea71c73cf25.tar.bz2
Merge #1636
1636: Add location to AST::Visibility r=CohenArthur a=dme2 Hi. I've added location to AST::Visibility, but it's possible I may have missed some steps here. Fixes #1183. Co-authored-by: Dave <dme2223@gmail.com>
Diffstat (limited to 'gcc/rust/parse')
-rw-r--r--gcc/rust/parse/rust-parse-impl.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/rust/parse/rust-parse-impl.h b/gcc/rust/parse/rust-parse-impl.h
index 54f3c5c..5642990 100644
--- a/gcc/rust/parse/rust-parse-impl.h
+++ b/gcc/rust/parse/rust-parse-impl.h
@@ -2128,12 +2128,13 @@ Parser<ManagedTokenSource>::parse_visibility ()
return AST::Visibility::create_private ();
}
+ auto vis_loc = lexer.peek_token ()->get_locus ();
lexer.skip_token ();
// create simple pub visibility if no parentheses
if (lexer.peek_token ()->get_id () != LEFT_PAREN)
{
- return AST::Visibility::create_public ();
+ return AST::Visibility::create_public (vis_loc);
// or whatever
}
@@ -2149,19 +2150,19 @@ Parser<ManagedTokenSource>::parse_visibility ()
skip_token (RIGHT_PAREN);
- return AST::Visibility::create_crate (path_loc);
+ return AST::Visibility::create_crate (path_loc, vis_loc);
case SELF:
lexer.skip_token ();
skip_token (RIGHT_PAREN);
- return AST::Visibility::create_self (path_loc);
+ return AST::Visibility::create_self (path_loc, vis_loc);
case SUPER:
lexer.skip_token ();
skip_token (RIGHT_PAREN);
- return AST::Visibility::create_super (path_loc);
+ return AST::Visibility::create_super (path_loc, vis_loc);
case IN: {
lexer.skip_token ();
@@ -2179,7 +2180,7 @@ Parser<ManagedTokenSource>::parse_visibility ()
skip_token (RIGHT_PAREN);
- return AST::Visibility::create_in_path (std::move (path));
+ return AST::Visibility::create_in_path (std::move (path), vis_loc);
}
default:
add_error (Error (t->get_locus (), "unexpected token %qs in visibility",