From 821874f8232f38548103f6abb40108496f544c3f Mon Sep 17 00:00:00 2001 From: Thakee Nathees Date: Wed, 27 Apr 2022 20:18:49 +0530 Subject: [PATCH] class without constructor crash fix --- src/pk_vm.c | 3 ++- tests/lang/class.pk | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/pk_vm.c b/src/pk_vm.c index fa50c5f..0f58246 100644 --- a/src/pk_vm.c +++ b/src/pk_vm.c @@ -934,8 +934,9 @@ L_do_call: CHECK_ERROR(); closure = (const Closure*)(cls)->ctor; - while (closure == NULL && cls != NULL) { + while (closure == NULL) { cls = cls->super_class; + if (cls == NULL) break; closure = cls->ctor; } diff --git a/tests/lang/class.pk b/tests/lang/class.pk index 030aa6f..283d8f1 100644 --- a/tests/lang/class.pk +++ b/tests/lang/class.pk @@ -28,6 +28,19 @@ print("v2 = ${v2.to_string()}") v3 = v1.add(v2); assert(v3.x == 4 and v3.y == 6) print("v3 = ${v3.to_string()}") + +## Default constructor crash (issue #213) +class A +end +a = A() +print(a) + +class B is A +end + +b = B() +assert((b is B) and (b is A)) + ############################################################################### ## INHERITANCE ###############################################################################