From 5a6d4664e4417763b4a7d9f215e42102fa1b3fd4 Mon Sep 17 00:00:00 2001 From: Mel Date: Thu, 28 Jul 2022 22:11:02 +0000 Subject: Compile type declarations correctly --- pkg/lang/vm/value/data.go | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'pkg/lang/vm/value/data.go') diff --git a/pkg/lang/vm/value/data.go b/pkg/lang/vm/value/data.go index 6c3d762..6ec7be9 100644 --- a/pkg/lang/vm/value/data.go +++ b/pkg/lang/vm/value/data.go @@ -180,6 +180,17 @@ func (t TypeRefData) TypeRef() mem.Ptr { return t.typeRef } +func (t TypeRefData) GetMethod(m mem.Mem, name string) (bool, FunctionData, error) { + cell, err := m.Get(t.typeRef) + if err != nil { + return false, FunctionData{}, err + } + + typ := cell.(TypeCell).Get() + method, ok := typ.Methods[name] + return ok, method, nil +} + func (t TypeRefData) AddMethod(m mem.Mem, name string, method FunctionData) error { cell, err := m.Get(t.typeRef) if err != nil { -- cgit 1.4.1