From: Sergey Bugaev Date: Fri, 14 Apr 2023 16:47:46 +0000 (+0300) Subject: gccrs: Lower ErrorPropagationExpr from AST to HIR X-Git-Tag: basepoints/gcc-15~2646 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=18cd9a240d6f0b9e424a4b4c1bd2251ff85e9b2f;p=thirdparty%2Fgcc.git gccrs: Lower ErrorPropagationExpr from AST to HIR gcc/rust/ChangeLog: * hir/rust-ast-lower-expr.h, hir/rust-ast-lower-expr.cc: Lower AST::ErrorPropagationExpr to HIR::ErrorPropagationExpr Signed-off-by: Sergey Bugaev --- diff --git a/gcc/rust/hir/rust-ast-lower-expr.cc b/gcc/rust/hir/rust-ast-lower-expr.cc index 31b7f0f49058..578fc462712b 100644 --- a/gcc/rust/hir/rust-ast-lower-expr.cc +++ b/gcc/rust/hir/rust-ast-lower-expr.cc @@ -673,6 +673,21 @@ ASTLoweringExpr::visit (AST::DereferenceExpr &expr) expr.get_outer_attrs (), expr.get_locus ()); } +void +ASTLoweringExpr::visit (AST::ErrorPropagationExpr &expr) +{ + HIR::Expr *propagating_expr + = ASTLoweringExpr::translate (expr.get_propagating_expr ().get ()); + + auto crate_num = mappings->get_current_crate (); + Analysis::NodeMapping mapping (crate_num, expr.get_node_id (), + mappings->get_next_hir_id (crate_num), + UNKNOWN_LOCAL_DEFID); + translated = new HIR::ErrorPropagationExpr ( + mapping, std::unique_ptr (propagating_expr), + expr.get_outer_attrs (), expr.get_locus ()); +} + void ASTLoweringExpr::visit (AST::MatchExpr &expr) { diff --git a/gcc/rust/hir/rust-ast-lower-expr.h b/gcc/rust/hir/rust-ast-lower-expr.h index 5b86ea292a0c..56da9d1ab887 100644 --- a/gcc/rust/hir/rust-ast-lower-expr.h +++ b/gcc/rust/hir/rust-ast-lower-expr.h @@ -111,6 +111,7 @@ public: void visit (AST::ContinueExpr &expr) override; void visit (AST::BorrowExpr &expr) override; void visit (AST::DereferenceExpr &expr) override; + void visit (AST::ErrorPropagationExpr &expr) override; void visit (AST::MatchExpr &expr) override; void visit (AST::RangeFromToExpr &expr) override; void visit (AST::RangeFromExpr &expr) override;