diff options
author | Owen Avery <powerboat9.gamer@gmail.com> | 2023-02-14 17:28:35 -0500 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2023-04-06 10:47:24 +0200 |
commit | 8628486f4873f72a51e57cf0904f5b0f177053ad (patch) | |
tree | 6ab97cf9c5469de9499b3d97ed08d88814d96a5a /gcc/rust/resolve | |
parent | 6774d569c61cb0cc80fc9e809cd92dda0010c9c3 (diff) | |
download | gcc-8628486f4873f72a51e57cf0904f5b0f177053ad.zip gcc-8628486f4873f72a51e57cf0904f5b0f177053ad.tar.gz gcc-8628486f4873f72a51e57cf0904f5b0f177053ad.tar.bz2 |
gccrs: Add AST::AltPattern class
gcc/rust/ChangeLog:
* ast/rust-ast-dump.cc
(Dump::visit): Add AltPattern visitor.
* ast/rust-ast-dump.h:
(Dump::visit): Add AltPattern visitor.
* ast/rust-ast-full-decls.h
(class AltPattern): Add declaration.
* ast/rust-ast-visitor.h:
(ASTVisitor::visit): Add AltPattern visitor.
* ast/rust-ast.cc
(AltPattern::as_string): Add definition.
(AltPattern::accept_vis): Add definition.
* ast/rust-pattern.h
(class AltPattern): Add declaration.
* checks/errors/rust-feature-gate.h:
(FeatureGate::visit) Add AltPattern visitor
* expand/rust-attribute-visitor.cc
(AttrVisitor::visit): Add AltPattern visitor.
* expand/rust-attribute-visitor.h:
(AttrVisitor::visit): Add AltPattern visitor.
* hir/rust-ast-lower-base.cc
(ASTLoweringBase::visit): Add AltPattern visitor.
* hir/rust-ast-lower-base.h:
(ASTLoweringBase::visit): Add AltPattern visitor.
* resolve/rust-ast-resolve-base.cc
(ResolverBase::visit): Add AltPattern visitor.
* resolve/rust-ast-resolve-base.h:
(ResolverBase::visit): Add AltPattern visitor.
* resolve/rust-early-name-resolver.cc
(EarlyNameResolver::visit): Add AltPattern visitor.
* resolve/rust-early-name-resolver.h:
(EarlyNameResolver::visit): Add AltPattern visitor.
* util/rust-attributes.cc
(AttributeChecker::visit): Add AltPattern visitor.
* util/rust-attributes.h:
(AttributeChecker::visit): Add AltPattern visitor.
Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
Diffstat (limited to 'gcc/rust/resolve')
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve-base.cc | 4 | ||||
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve-base.h | 1 | ||||
-rw-r--r-- | gcc/rust/resolve/rust-early-name-resolver.cc | 7 | ||||
-rw-r--r-- | gcc/rust/resolve/rust-early-name-resolver.h | 1 |
4 files changed, 13 insertions, 0 deletions
diff --git a/gcc/rust/resolve/rust-ast-resolve-base.cc b/gcc/rust/resolve/rust-ast-resolve-base.cc index 0a78d26..5b3f4a0 100644 --- a/gcc/rust/resolve/rust-ast-resolve-base.cc +++ b/gcc/rust/resolve/rust-ast-resolve-base.cc @@ -583,6 +583,10 @@ ResolverBase::visit (AST::SlicePattern &) {} void +ResolverBase::visit (AST::AltPattern &) +{} + +void ResolverBase::visit (AST::EmptyStmt &) {} diff --git a/gcc/rust/resolve/rust-ast-resolve-base.h b/gcc/rust/resolve/rust-ast-resolve-base.h index 9d88f8f..aab1324 100644 --- a/gcc/rust/resolve/rust-ast-resolve-base.h +++ b/gcc/rust/resolve/rust-ast-resolve-base.h @@ -178,6 +178,7 @@ public: void visit (AST::TuplePattern &); void visit (AST::GroupedPattern &); void visit (AST::SlicePattern &); + void visit (AST::AltPattern &); void visit (AST::EmptyStmt &); void visit (AST::LetStmt &); diff --git a/gcc/rust/resolve/rust-early-name-resolver.cc b/gcc/rust/resolve/rust-early-name-resolver.cc index 5f11ae2..f5054f9 100644 --- a/gcc/rust/resolve/rust-early-name-resolver.cc +++ b/gcc/rust/resolve/rust-early-name-resolver.cc @@ -1053,6 +1053,13 @@ EarlyNameResolver::visit (AST::SlicePattern &pattern) } void +EarlyNameResolver::visit (AST::AltPattern &pattern) +{ + for (auto &alt : pattern.get_alts ()) + alt->accept_vis (*this); +} + +void EarlyNameResolver::visit (AST::EmptyStmt &) {} diff --git a/gcc/rust/resolve/rust-early-name-resolver.h b/gcc/rust/resolve/rust-early-name-resolver.h index 21b92e9..84ee518 100644 --- a/gcc/rust/resolve/rust-early-name-resolver.h +++ b/gcc/rust/resolve/rust-early-name-resolver.h @@ -249,6 +249,7 @@ private: virtual void visit (AST::TuplePattern &pattern); virtual void visit (AST::GroupedPattern &pattern); virtual void visit (AST::SlicePattern &pattern); + virtual void visit (AST::AltPattern &pattern); virtual void visit (AST::EmptyStmt &stmt); virtual void visit (AST::LetStmt &stmt); virtual void visit (AST::ExprStmtWithoutBlock &stmt); |