|
|
@ -954,10 +954,8 @@ private: |
|
|
|
|
|
|
|
|
Expression Visit(const Node& node) { |
|
|
Expression Visit(const Node& node) { |
|
|
if (const auto operation = std::get_if<OperationNode>(&*node)) { |
|
|
if (const auto operation = std::get_if<OperationNode>(&*node)) { |
|
|
auto amend_index = operation->GetAmendIndex(); |
|
|
|
|
|
if (amend_index) { |
|
|
|
|
|
const Node& amend_node = ir.GetAmendNode(*amend_index); |
|
|
|
|
|
[[maybe_unused]] const Type type = Visit(amend_node).type; |
|
|
|
|
|
|
|
|
if (const auto amend_index = operation->GetAmendIndex()) { |
|
|
|
|
|
[[maybe_unused]] const Type type = Visit(ir.GetAmendNode(*amend_index)).type; |
|
|
ASSERT(type == Type::Void); |
|
|
ASSERT(type == Type::Void); |
|
|
} |
|
|
} |
|
|
const auto operation_index = static_cast<std::size_t>(operation->GetCode()); |
|
|
const auto operation_index = static_cast<std::size_t>(operation->GetCode()); |
|
|
@ -1148,10 +1146,8 @@ private: |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (const auto conditional = std::get_if<ConditionalNode>(&*node)) { |
|
|
if (const auto conditional = std::get_if<ConditionalNode>(&*node)) { |
|
|
auto amend_index = conditional->GetAmendIndex(); |
|
|
|
|
|
if (amend_index) { |
|
|
|
|
|
const Node& amend_node = ir.GetAmendNode(*amend_index); |
|
|
|
|
|
[[maybe_unused]] const Type type = Visit(amend_node).type; |
|
|
|
|
|
|
|
|
if (const auto amend_index = conditional->GetAmendIndex()) { |
|
|
|
|
|
[[maybe_unused]] const Type type = Visit(ir.GetAmendNode(*amend_index)).type; |
|
|
ASSERT(type == Type::Void); |
|
|
ASSERT(type == Type::Void); |
|
|
} |
|
|
} |
|
|
// It's invalid to call conditional on nested nodes, use an operation instead
|
|
|
// It's invalid to call conditional on nested nodes, use an operation instead
|
|
|
@ -1176,12 +1172,6 @@ private: |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (const auto comment = std::get_if<CommentNode>(&*node)) { |
|
|
if (const auto comment = std::get_if<CommentNode>(&*node)) { |
|
|
auto amend_index = comment->GetAmendIndex(); |
|
|
|
|
|
if (amend_index) { |
|
|
|
|
|
const Node& amend_node = ir.GetAmendNode(*amend_index); |
|
|
|
|
|
[[maybe_unused]] const Type type = Visit(amend_node).type; |
|
|
|
|
|
ASSERT(type == Type::Void); |
|
|
|
|
|
} |
|
|
|
|
|
Name(OpUndef(t_void), comment->GetText()); |
|
|
Name(OpUndef(t_void), comment->GetText()); |
|
|
return {}; |
|
|
return {}; |
|
|
} |
|
|
} |
|
|
|