aboutsummaryrefslogtreecommitdiffstats
path: root/src/vm.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/vm.rs')
-rw-r--r--src/vm.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/vm.rs b/src/vm.rs
index 2859d83..0595639 100644
--- a/src/vm.rs
+++ b/src/vm.rs
@@ -669,6 +669,10 @@ impl VM {
let ty = self.ty(ty);
let top_type = self.stack.last().unwrap().into();
match (ty, top_type) {
+ (a, b) if matches!(a, Type::Union(_)) && a == &b => {
+ let last = self.stack.len() - 1;
+ self.stack[last] = Value::from(a);
+ }
(Type::Unknown, top_type)
if top_type != Type::Unknown => {}
(a, b) if a != &b => {