This commit is contained in:
Juraj Kirchheim
2017-12-01 16:31:22 +01:00
parent 0802bf7f79
commit 800891bee2

View File

@@ -53,12 +53,18 @@ class Sisyphus {
} }
} }
public static function toComplexType(type : Null<Type>) : Null<ComplexType> return
public static function toComplexType(type : Null<Type>) : Null<ComplexType> return {
inline function direct()
return Types.toComplex(type, { direct: true });
switch (type) { switch (type) {
case null: case null:
null; null;
case TMono(_.get() => t): case TEnum(_.get().isPrivate => true, _): direct();
t == null ? Types.toComplex(type, { direct: true }) : toComplexType(t); 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): case TEnum(_.get() => baseType, params):
TPath(toTypePath(baseType, params)); TPath(toTypePath(baseType, params));
case TInst(_.get() => classType, params): case TInst(_.get() => classType, params):
@@ -93,7 +99,7 @@ class Sisyphus {
default: default:
throw "Invalid type"; throw "Invalid type";
} }
}
static function toTypePath(baseType : BaseType, params : Array<Type>) : TypePath return { static function toTypePath(baseType : BaseType, params : Array<Type>) : TypePath return {
var module = baseType.module; var module = baseType.module;
{ {