From 15653764187d989bfd827de3e8b260082d861b58 Mon Sep 17 00:00:00 2001 From: Sasha Koshka Date: Mon, 11 Mar 2024 11:50:12 -0400 Subject: [PATCH] Add TestMethodPtr to generator --- generator/function_test.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/generator/function_test.go b/generator/function_test.go index 93fca9e..bb6654d 100644 --- a/generator/function_test.go +++ b/generator/function_test.go @@ -105,6 +105,40 @@ Number.[number]: Int = [.this] `) } +func TestMethodPtr (test *testing.T) { +testString (test, +`%"0zNZN147MN2wzMAQ6NS2dQ==::Number" = type i64 +define i64 @"0zNZN147MN2wzMAQ6NS2dQ==::main"() { +0: + %1 = alloca %"0zNZN147MN2wzMAQ6NS2dQ==::Number" + store i64 5, ptr %1 + %2 = alloca ptr + store ptr %1, ptr %2 + %3 = load ptr, ptr %2 + %4 = call i64 @"0zNZN147MN2wzMAQ6NS2dQ==::Number.number"(ptr %3) + ret i64 %4 +} +define i64 @"0zNZN147MN2wzMAQ6NS2dQ==::Number.number"(ptr %this) { +0: + %1 = alloca ptr + store ptr %this, ptr %1 + %2 = load ptr, ptr %1 + %3 = load i64, ptr %2 + ret i64 %3 +} +`, +` +Number: Int +Number.[number]: Int = [.this] + +[main]: Int = { + num:Number = 5 + numptr:*Number = [@num] + numptr.[number] +} +`) +} + func TestMethodChained (test *testing.T) { testString (test, `%"0zNZN147MN2wzMAQ6NS2dQ==::Number" = type i64