]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: desugar: Add assertions for try-blocks and question-mark
authorArthur Cohen <arthur.cohen@embecosm.com>
Tue, 22 Jul 2025 14:29:09 +0000 (16:29 +0200)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 5 Aug 2025 14:36:59 +0000 (16:36 +0200)
gcc/rust/ChangeLog:

* ast/rust-desugar-question-mark.cc (DesugarQuestionMark::go): Add assertion for the
expr's type.
* ast/rust-desugar-try-block.cc (DesugarTryBlock::go): Likewise.

gcc/rust/ast/rust-desugar-question-mark.cc
gcc/rust/ast/rust-desugar-try-block.cc

index ef2bdb87307fc6044acfadfafb1154d78506a9fb..01400d834b07f8de538198ed258d03f84cc4d430 100644 (file)
@@ -18,7 +18,6 @@
 
 #include "rust-desugar-question-mark.h"
 #include "rust-ast-builder.h"
-#include "rust-ast-visitor.h"
 
 namespace Rust {
 namespace AST {
@@ -28,6 +27,8 @@ DesugarQuestionMark::DesugarQuestionMark () {}
 void
 DesugarQuestionMark::go (std::unique_ptr<Expr> &ptr)
 {
+  rust_assert (ptr->get_expr_kind () == Expr::Kind::ErrorPropagation);
+
   auto original = static_cast<ErrorPropagationExpr &> (*ptr);
   auto desugared = DesugarQuestionMark ().desugar (original);
 
index cd03350e98b87732a19b8e04834ca00a605dbf01..07f06aabec892724f16e362cfddf772a6ccce949 100644 (file)
@@ -28,6 +28,8 @@ DesugarTryBlock::DesugarTryBlock () {}
 void
 DesugarTryBlock::go (std::unique_ptr<Expr> &ptr)
 {
+  rust_assert (ptr->get_expr_kind () == Expr::Kind::Try);
+
   auto original = static_cast<TryExpr &> (*ptr);
   auto desugared = DesugarTryBlock ().desugar (original);