From 5683f04046246a70e1fc4e799321aafd7ace4650 Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Tue, 21 Sep 2021 00:12:37 -0400 Subject: [PATCH] [decomp] handle `handle->process` inside an `and` (#851) * fix the loader example * improve compiler error message * fix missing cast issue --- decompiler/IR2/ExpressionHelpers.cpp | 152 ++++++++++++++++++ decompiler/IR2/ExpressionHelpers.h | 8 + decompiler/IR2/FormExpressionAnalysis.cpp | 94 ++--------- decompiler/IR2/FormStack.cpp | 7 +- docs/markdown/progress-notes/changelog.md | 3 +- goalc/compiler/compilation/Type.cpp | 8 + .../reference/engine/load/loader_REF.gc | 13 +- test/offline/offline_test_main.cpp | 2 - 8 files changed, 189 insertions(+), 98 deletions(-) diff --git a/decompiler/IR2/ExpressionHelpers.cpp b/decompiler/IR2/ExpressionHelpers.cpp index d2a66df643..48f73a0d0d 100644 --- a/decompiler/IR2/ExpressionHelpers.cpp +++ b/decompiler/IR2/ExpressionHelpers.cpp @@ -2,6 +2,8 @@ #include "decompiler/IR2/Form.h" #include "decompiler/IR2/Env.h" #include "common/goal_constants.h" +#include "decompiler/IR2/GenericElementMatcher.h" +#include "decompiler/IR2/FormStack.h" namespace decompiler { @@ -200,4 +202,154 @@ FormElement* handle_get_property_value(const std::vector