diff options
author | Philip Herron <philip.herron@embecosm.com> | 2022-02-18 13:26:24 +0000 |
---|---|---|
committer | Philip Herron <philip.herron@embecosm.com> | 2022-02-18 13:26:24 +0000 |
commit | 3dd4ce76a69e786b56a9af8b911590fc6410cc97 (patch) | |
tree | d027b9cb53949ce1ed56d144daf02c9b296cff68 /gcc | |
parent | 755d0e5adf2f49a053d10529430753083762b549 (diff) | |
download | gcc-3dd4ce76a69e786b56a9af8b911590fc6410cc97.zip gcc-3dd4ce76a69e786b56a9af8b911590fc6410cc97.tar.gz gcc-3dd4ce76a69e786b56a9af8b911590fc6410cc97.tar.bz2 |
Add name resolution to range expressions
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve-expr.cc | 32 | ||||
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve-expr.h | 14 | ||||
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve.cc | 1 |
3 files changed, 43 insertions, 4 deletions
diff --git a/gcc/rust/resolve/rust-ast-resolve-expr.cc b/gcc/rust/resolve/rust-ast-resolve-expr.cc index 84fcb42..19f8169 100644 --- a/gcc/rust/resolve/rust-ast-resolve-expr.cc +++ b/gcc/rust/resolve/rust-ast-resolve-expr.cc @@ -477,5 +477,37 @@ ResolveExpr::visit (AST::MatchExpr &expr) } } +void +ResolveExpr::visit (AST::RangeFromToExpr &expr) +{ + resolve_expr (expr.get_from_expr ().get (), expr.get_node_id ()); + resolve_expr (expr.get_to_expr ().get (), expr.get_node_id ()); +} + +void +ResolveExpr::visit (AST::RangeFromExpr &expr) +{ + resolve_expr (expr.get_from_expr ().get (), expr.get_node_id ()); +} + +void +ResolveExpr::visit (AST::RangeToExpr &expr) +{ + resolve_expr (expr.get_to_expr ().get (), expr.get_node_id ()); +} + +void +ResolveExpr::visit (AST::RangeFullExpr &expr) +{ + // nothing to do +} + +void +ResolveExpr::visit (AST::RangeFromToInclExpr &expr) +{ + resolve_expr (expr.get_from_expr ().get (), expr.get_node_id ()); + resolve_expr (expr.get_to_expr ().get (), expr.get_node_id ()); +} + } // namespace Resolver } // namespace Rust diff --git a/gcc/rust/resolve/rust-ast-resolve-expr.h b/gcc/rust/resolve/rust-ast-resolve-expr.h index 8081133..d8bd203 100644 --- a/gcc/rust/resolve/rust-ast-resolve-expr.h +++ b/gcc/rust/resolve/rust-ast-resolve-expr.h @@ -21,10 +21,6 @@ #include "rust-ast-resolve-base.h" #include "rust-ast-full.h" -#include "rust-ast-resolve-struct-expr-field.h" -#include "rust-ast-verify-assignee.h" -#include "rust-ast-resolve-type.h" -#include "rust-ast-resolve-pattern.h" namespace Rust { namespace Resolver { @@ -140,6 +136,16 @@ public: void visit (AST::MatchExpr &expr) override; + void visit (AST::RangeFromToExpr &expr) override; + + void visit (AST::RangeFromExpr &expr) override; + + void visit (AST::RangeToExpr &expr) override; + + void visit (AST::RangeFullExpr &expr) override; + + void visit (AST::RangeFromToInclExpr &expr) override; + protected: void resolve_expr (AST::Expr *e, NodeId parent) { diff --git a/gcc/rust/resolve/rust-ast-resolve.cc b/gcc/rust/resolve/rust-ast-resolve.cc index 0346988..094fa4a 100644 --- a/gcc/rust/resolve/rust-ast-resolve.cc +++ b/gcc/rust/resolve/rust-ast-resolve.cc @@ -22,6 +22,7 @@ #include "rust-ast-resolve-toplevel.h" #include "rust-ast-resolve-item.h" #include "rust-ast-resolve-expr.h" +#include "rust-ast-resolve-struct-expr-field.h" #define MKBUILTIN_TYPE(_X, _R, _TY) \ do \ |