From e24b9b8f17bbdca4aabeca9df3fd2754c24b92e2 Mon Sep 17 00:00:00 2001 From: Sasha Koshka Date: Sun, 3 Dec 2023 15:38:07 -0500 Subject: [PATCH] Generator passes method owner as pointer --- generator/function.go | 4 +--- generator/function_test.go | 11 ++++++++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/generator/function.go b/generator/function.go index c676816..da9fe83 100644 --- a/generator/function.go +++ b/generator/function.go @@ -55,9 +55,7 @@ func (this *generator) generateMethod ( if err != nil { return nil, err } params[index + 1] = llvm.NewParameter(argument.Name, paramType) } - ownerType, err := this.typedef(method.TypeName) - if err != nil { return nil, err } - params[0] = llvm.NewParameter("this", ownerType) + params[0] = llvm.NewParameter("this", new(llvm.TypePointer)) irFunc := this.module.NewFunction ( method.TypeName + "." + method.Signature.Name, diff --git a/generator/function_test.go b/generator/function_test.go index e27f934..d90e022 100644 --- a/generator/function_test.go +++ b/generator/function_test.go @@ -16,7 +16,16 @@ Greeter.[greet] = [puts [@[.this.message 0]]] greeter: Greeter = ( message: 'hello\0' ) - greeter.[greet] + greeter.[doNothing] +} + +Greeter.[doNothing] = { } + +Greeter.[getMessage]: String = { + [puts 'getting'] + this.message + [puts 'got'] + this.message } `) }