From 800891bee236b5a24a1dc04265fd3c8a37b3bb32 Mon Sep 17 00:00:00 2001 From: Juraj Kirchheim Date: Fri, 1 Dec 2017 16:31:22 +0100 Subject: [PATCH] Fixes #21. --- src/tink/macro/Sisyphus.hx | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/tink/macro/Sisyphus.hx b/src/tink/macro/Sisyphus.hx index fd58fae..48283fc 100644 --- a/src/tink/macro/Sisyphus.hx +++ b/src/tink/macro/Sisyphus.hx @@ -53,12 +53,18 @@ class Sisyphus { } } - public static function toComplexType(type : Null) : Null return + + public static function toComplexType(type : Null) : Null return { + inline function direct() + return Types.toComplex(type, { direct: true }); switch (type) { case null: null; - case TMono(_.get() => t): - t == null ? Types.toComplex(type, { direct: true }) : toComplexType(t); + case TEnum(_.get().isPrivate => true, _): direct(); + case TInst(_.get().isPrivate => true, _): direct(); + case TType(_.get().isPrivate => true, _): direct(); + case TAbstract(_.get().isPrivate => true, _): direct(); + case TMono(_): direct(); case TEnum(_.get() => baseType, params): TPath(toTypePath(baseType, params)); case TInst(_.get() => classType, params): @@ -93,7 +99,7 @@ class Sisyphus { default: throw "Invalid type"; } - + } static function toTypePath(baseType : BaseType, params : Array) : TypePath return { var module = baseType.module; {