Skip to content

Commit 3dd4ce7

Browse files
committed
Add name resolution to range expressions
1 parent 755d0e5 commit 3dd4ce7

File tree

3 files changed

+43
-4
lines changed

3 files changed

+43
-4
lines changed

gcc/rust/resolve/rust-ast-resolve-expr.cc

+32
Original file line numberDiff line numberDiff line change
@@ -477,5 +477,37 @@ ResolveExpr::visit (AST::MatchExpr &expr)
477477
}
478478
}
479479

480+
void
481+
ResolveExpr::visit (AST::RangeFromToExpr &expr)
482+
{
483+
resolve_expr (expr.get_from_expr ().get (), expr.get_node_id ());
484+
resolve_expr (expr.get_to_expr ().get (), expr.get_node_id ());
485+
}
486+
487+
void
488+
ResolveExpr::visit (AST::RangeFromExpr &expr)
489+
{
490+
resolve_expr (expr.get_from_expr ().get (), expr.get_node_id ());
491+
}
492+
493+
void
494+
ResolveExpr::visit (AST::RangeToExpr &expr)
495+
{
496+
resolve_expr (expr.get_to_expr ().get (), expr.get_node_id ());
497+
}
498+
499+
void
500+
ResolveExpr::visit (AST::RangeFullExpr &expr)
501+
{
502+
// nothing to do
503+
}
504+
505+
void
506+
ResolveExpr::visit (AST::RangeFromToInclExpr &expr)
507+
{
508+
resolve_expr (expr.get_from_expr ().get (), expr.get_node_id ());
509+
resolve_expr (expr.get_to_expr ().get (), expr.get_node_id ());
510+
}
511+
480512
} // namespace Resolver
481513
} // namespace Rust

gcc/rust/resolve/rust-ast-resolve-expr.h

+10-4
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,6 @@
2121

2222
#include "rust-ast-resolve-base.h"
2323
#include "rust-ast-full.h"
24-
#include "rust-ast-resolve-struct-expr-field.h"
25-
#include "rust-ast-verify-assignee.h"
26-
#include "rust-ast-resolve-type.h"
27-
#include "rust-ast-resolve-pattern.h"
2824

2925
namespace Rust {
3026
namespace Resolver {
@@ -140,6 +136,16 @@ class ResolveExpr : public ResolverBase
140136

141137
void visit (AST::MatchExpr &expr) override;
142138

139+
void visit (AST::RangeFromToExpr &expr) override;
140+
141+
void visit (AST::RangeFromExpr &expr) override;
142+
143+
void visit (AST::RangeToExpr &expr) override;
144+
145+
void visit (AST::RangeFullExpr &expr) override;
146+
147+
void visit (AST::RangeFromToInclExpr &expr) override;
148+
143149
protected:
144150
void resolve_expr (AST::Expr *e, NodeId parent)
145151
{

gcc/rust/resolve/rust-ast-resolve.cc

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include "rust-ast-resolve-toplevel.h"
2323
#include "rust-ast-resolve-item.h"
2424
#include "rust-ast-resolve-expr.h"
25+
#include "rust-ast-resolve-struct-expr-field.h"
2526

2627
#define MKBUILTIN_TYPE(_X, _R, _TY) \
2728
do \

0 commit comments

Comments
 (0)