about summary refs log tree commit diff
path: root/pkg/lang/vm/exec.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/lang/vm/exec.go')
-rw-r--r--pkg/lang/vm/exec.go8
1 files changed, 5 insertions, 3 deletions
diff --git a/pkg/lang/vm/exec.go b/pkg/lang/vm/exec.go
index 353d8ac..eeb8710 100644
--- a/pkg/lang/vm/exec.go
+++ b/pkg/lang/vm/exec.go
@@ -490,14 +490,16 @@ func (vm *VM) execAnchorType() error {
 		}
 	}
 
-	if !o.TypePtr().IsNull() {
+	obj := o.Data().(value.ObjectData)
+	typeRef := t.Data().(value.TypeRefData)
+
+	if obj.Type() != mem.NullPtr {
 		return ErrCantReanchorType{
 			Type: o.Type(),
 		}
 	}
 
-	o = o.WithType(t.Data().(value.TypeRefData).TypeRef())
-
+	o = o.WithData(obj.WithType(typeRef.TypeRef()))
 	vm.stack.Push(o)
 	return nil
 }