diff options
Diffstat (limited to 'pkg/lang/vm/exec.go')
| -rw-r--r-- | pkg/lang/vm/exec.go | 8 |
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 } |
