diff options
author | Arthur Cohen <arthur.cohen@embecosm.com> | 2022-04-29 13:48:34 +0200 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2022-05-05 14:07:36 +0200 |
commit | 88c20f5e1d59b691b8e8cfbd550206a39bf9727b (patch) | |
tree | 49ebe0980c3753cdba5edb8daa344ac11804820f /gcc/rust/parse | |
parent | 52b5286a69d86a36e279bc636cc41cbdd6795dee (diff) | |
download | gcc-88c20f5e1d59b691b8e8cfbd550206a39bf9727b.zip gcc-88c20f5e1d59b691b8e8cfbd550206a39bf9727b.tar.gz gcc-88c20f5e1d59b691b8e8cfbd550206a39bf9727b.tar.bz2 |
privacy: Add base for resolving SimplePaths to Modules
This also fixes the missing kind in HIR::Visibility.
Having both `pub` and `pub restricted` as a single variant in the
HIR::Visibility::Kind enum was a mistake, as it cause the path resolver to
be triggered for `pub` visibilities which do not refer to any paths.
Finally, erroneous calls to Visibility::create_error() are removed.
This caused a lot of ICEs now that the Visibility lowering logic is
fixed
Diffstat (limited to 'gcc/rust/parse')
-rw-r--r-- | gcc/rust/parse/rust-parse-impl.h | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/gcc/rust/parse/rust-parse-impl.h b/gcc/rust/parse/rust-parse-impl.h index 23ab32c..e76bdd8 100644 --- a/gcc/rust/parse/rust-parse-impl.h +++ b/gcc/rust/parse/rust-parse-impl.h @@ -5402,7 +5402,7 @@ Parser<ManagedTokenSource>::parse_inherent_impl_item () case FN_TOK: // function or method return parse_inherent_impl_function_or_method ( - AST::Visibility::create_error (), std::move (outer_attrs)); + AST::Visibility::create_private (), std::move (outer_attrs)); case CONST: /* lookahead to resolve production - could be function/method or const * item */ @@ -5412,13 +5412,13 @@ Parser<ManagedTokenSource>::parse_inherent_impl_item () { case IDENTIFIER: case UNDERSCORE: - return parse_const_item (AST::Visibility::create_error (), + return parse_const_item (AST::Visibility::create_private (), std::move (outer_attrs)); case UNSAFE: case EXTERN_TOK: case FN_TOK: return parse_inherent_impl_function_or_method ( - AST::Visibility::create_error (), std::move (outer_attrs)); + AST::Visibility::create_private (), std::move (outer_attrs)); default: add_error (Error (t->get_locus (), "unexpected token %qs in some sort of const item " @@ -5572,7 +5572,7 @@ Parser<ManagedTokenSource>::parse_trait_impl_item () // these seem to be SimplePath tokens, so this is a macro invocation semi return parse_macro_invocation_semi (std::move (outer_attrs)); case TYPE: - return parse_type_alias (AST::Visibility::create_error (), + return parse_type_alias (AST::Visibility::create_private (), std::move (outer_attrs)); case PUB: { // visibility, so not a macro invocation semi - must be constant, @@ -5631,7 +5631,7 @@ Parser<ManagedTokenSource>::parse_trait_impl_item () case FN_TOK: // function or method return parse_trait_impl_function_or_method ( - AST::Visibility::create_error (), std::move (outer_attrs)); + AST::Visibility::create_private (), std::move (outer_attrs)); case CONST: // lookahead to resolve production - could be function/method or const // item @@ -5641,13 +5641,13 @@ Parser<ManagedTokenSource>::parse_trait_impl_item () { case IDENTIFIER: case UNDERSCORE: - return parse_const_item (AST::Visibility::create_error (), + return parse_const_item (AST::Visibility::create_private (), std::move (outer_attrs)); case UNSAFE: case EXTERN_TOK: case FN_TOK: return parse_trait_impl_function_or_method ( - AST::Visibility::create_error (), std::move (outer_attrs)); + AST::Visibility::create_private (), std::move (outer_attrs)); default: add_error (Error ( t->get_locus (), |