From f65df0e94bafb64fcf659ace972ae830803f394b Mon Sep 17 00:00:00 2001 From: k Date: Tue, 8 May 2018 16:23:12 +0200 Subject: [PATCH] Fix ClassBuilder's getConstructor() when super class is extern Handle super class constructor's expr being `null`, which happens when the super class is an extern with a constructor definition. --- src/tink/macro/ClassBuilder.hx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/tink/macro/ClassBuilder.hx b/src/tink/macro/ClassBuilder.hx index d6144ac..7ede549 100644 --- a/src/tink/macro/ClassBuilder.hx +++ b/src/tink/macro/ClassBuilder.hx @@ -63,7 +63,9 @@ class ClassBuilder { if (cl.constructor != null) { try { var ctor = cl.constructor.get(); - var func = Context.getTypedExpr(ctor.expr()).getFunction().sure(); + var ctorExpr = ctor.expr(); + if (ctorExpr == null) throw 'Super constructor has no expression'; + var func = Context.getTypedExpr(ctorExpr).getFunction().sure(); for (arg in func.args) //this is to deal with type parameter substitutions arg.type = null; @@ -196,4 +198,4 @@ class ClassBuilder { p(builder); return builder.export(verbose); } -} \ No newline at end of file +}