summaryrefslogtreecommitdiff
path: root/src/passes/Print.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/Print.cpp')
-rw-r--r--src/passes/Print.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp
index d700f85f3..68a2d16dc 100644
--- a/src/passes/Print.cpp
+++ b/src/passes/Print.cpp
@@ -2116,7 +2116,12 @@ struct PrintExpressionContents
if (curr->safety == RefCast::Unsafe) {
printMedium(o, "ref.cast_nop ");
} else {
- printMedium(o, "ref.cast null ");
+ // Emulate legacy polymorphic behavior for now.
+ if (curr->ref->type.isNullable()) {
+ printMedium(o, "ref.cast null ");
+ } else {
+ printMedium(o, "ref.cast ");
+ }
}
printHeapType(o, curr->intendedType, wasm);
}