From 642d663d50ee90b19ef4d0c2e92f30585799d8b1 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Fri, 7 Apr 2023 12:25:49 -0700 Subject: [NFC] Use the new getField() in the heap type fuzzer (#5643) --- src/tools/fuzzing/heap-types.cpp | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/tools/fuzzing/heap-types.cpp b/src/tools/fuzzing/heap-types.cpp index 7fa0cd338..24054572d 100644 --- a/src/tools/fuzzing/heap-types.cpp +++ b/src/tools/fuzzing/heap-types.cpp @@ -16,6 +16,7 @@ #include +#include "ir/gc-type-utils.h" #include "ir/subtypes.h" #include "support/insert_ordered.h" #include "tools/fuzzing/heap-types.h" @@ -700,7 +701,7 @@ struct Inhabitator { Inhabitator(const std::vector& types) : types(types), subtypes(types) {} - Variance getVariance(FieldPos field); + Variance getVariance(FieldPos fieldPos); void markNullable(FieldPos field); void markBottomRefsNullable(); void markExternRefsNullable(); @@ -709,24 +710,16 @@ struct Inhabitator { std::vector build(); }; -Inhabitator::Variance Inhabitator::getVariance(FieldPos field) { - auto [type, idx] = field; +Inhabitator::Variance Inhabitator::getVariance(FieldPos fieldPos) { + auto [type, idx] = fieldPos; assert(!type.isBasic() && !type.isSignature()); - if (type.isStruct()) { - if (type.getStruct().fields[idx].mutable_ == Mutable) { - return Invariant; - } else { - return Covariant; - } - } - if (type.isArray()) { - if (type.getArray().element.mutable_ == Mutable) { - return Invariant; - } else { - return Covariant; - } + auto field = GCTypeUtils::getField(type, idx); + assert(field); + if (field->mutable_ == Mutable) { + return Invariant; + } else { + return Covariant; } - WASM_UNREACHABLE("unexpected kind"); } void Inhabitator::markNullable(FieldPos field) { -- cgit v1.2.3