diff options
author | Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> | 2023-10-16 11:28:34 +0200 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2024-01-16 19:09:12 +0100 |
commit | f209a01840a365365100c0ff4a31c0bab2ed2693 (patch) | |
tree | 74f4ccd96ae44a84ebf1fae9a7d03ec6bd0ad5f8 /gcc | |
parent | f97a9841dc65ddaa18a08f37d0cd58537c3bfb94 (diff) | |
download | gcc-f209a01840a365365100c0ff4a31c0bab2ed2693.zip gcc-f209a01840a365365100c0ff4a31c0bab2ed2693.tar.gz gcc-f209a01840a365365100c0ff4a31c0bab2ed2693.tar.bz2 |
gccrs: Fix pub unit type parsing
Public unit types where not parsed correctly due to visibility specifiers
within parenthesis. Fixes #2648.
gcc/rust/ChangeLog:
* parse/rust-parse-impl.h (Parser::parse_visibility): Relax constraints
over public visibility return condition in order to accept pub unit
types.
Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/parse/rust-parse-impl.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/rust/parse/rust-parse-impl.h b/gcc/rust/parse/rust-parse-impl.h index 07f95a6..345ef0e 100644 --- a/gcc/rust/parse/rust-parse-impl.h +++ b/gcc/rust/parse/rust-parse-impl.h @@ -2296,8 +2296,11 @@ Parser<ManagedTokenSource>::parse_visibility () 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) + // create simple pub visibility if + // - found no parentheses + // - found unit type `()` + if (lexer.peek_token ()->get_id () != LEFT_PAREN + || lexer.peek_token (1)->get_id () == RIGHT_PAREN) { return AST::Visibility::create_public (vis_loc); // or whatever |