add a resolve expr visitor on error propagation to avoid internal
compiler error when used with generics
gcc/rust/ChangeLog:
* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Add
implementation of error propagation visitor
* resolve/rust-ast-resolve-expr.h: Add prototype of error
propagation
Signed-off-by: benjamin.thos <benjamin.thos@epita.fr>
#include "rust-ast-resolve-pattern.h"
#include "rust-ast-resolve-path.h"
#include "diagnostic.h"
+#include "rust-expr.h"
namespace Rust {
namespace Resolver {
ResolveExpr::go (*param, prefix, canonical_prefix);
}
+void
+ResolveExpr::visit (AST::ErrorPropagationExpr &expr)
+{
+ ResolveExpr::go (expr.get_propagating_expr (), prefix, canonical_prefix);
+}
+
void
ResolveExpr::visit (AST::AssignmentExpr &expr)
{
#include "rust-ast-resolve-base.h"
#include "rust-ast.h"
#include "rust-ast-resolve-pattern.h"
+#include "rust-expr.h"
namespace Rust {
namespace Resolver {
void visit (AST::RangeFromToInclExpr &expr) override;
void visit (AST::ClosureExprInner &expr) override;
void visit (AST::ClosureExprInnerTyped &expr) override;
+ void visit (AST::ErrorPropagationExpr &expr) override;
protected:
void resolve_closure_param (AST::ClosureParam ¶m,