diff --git a/src/tink/macro/Types.hx b/src/tink/macro/Types.hx index 58e2aa7..9e89335 100644 --- a/src/tink/macro/Types.hx +++ b/src/tink/macro/Types.hx @@ -209,9 +209,9 @@ class Types { } static public function deduceCommonType(types:Array):Outcome { - var exprs = types.map(t ->{ + var exprs = types.map(function(t) { var ct = t.toComplex(); - macro (null:$ct); + return macro (null:$ct); }); return switch (macro $a{exprs}).typeof() { diff --git a/tests/Types.hx b/tests/Types.hx index c344f04..9a602bf 100644 --- a/tests/Types.hx +++ b/tests/Types.hx @@ -67,10 +67,11 @@ class Types extends Base { } function testDeduceCommonType() { - assertEquals('StdTypes.Float', tink.macro.Types.deduceCommonType([(macro:Float), (macro:Int)].map(ct -> ct.toType().sure())).sure().toComplex().toString()); - assertEquals('Types.CommonI1', tink.macro.Types.deduceCommonType([(macro:Types.CommonA), (macro:Types.CommonB), (macro:Types.CommonC)].map(ct -> ct.toType().sure())).sure().toComplex().toString()); - assertEquals('Types.CommonI2', tink.macro.Types.deduceCommonType([(macro:Types.CommonB), (macro:Types.CommonC)].map(ct -> ct.toType().sure())).sure().toComplex().toString()); - // assertEquals('Types.CommonI3', tink.macro.Types.deduceCommonType([(macro:Types.CommonC)].map(ct -> ct.toType().sure())).sure().toComplex().toString()); + function ct2t(ct:ComplexType) return ct.toType().sure(); + assertEquals('StdTypes.Float', tink.macro.Types.deduceCommonType([(macro:Float), (macro:Int)].map(ct2t)).sure().toComplex().toString()); + assertEquals('Types.CommonI1', tink.macro.Types.deduceCommonType([(macro:Types.CommonA), (macro:Types.CommonB), (macro:Types.CommonC)].map(ct2t)).sure().toComplex().toString()); + assertEquals('Types.CommonI2', tink.macro.Types.deduceCommonType([(macro:Types.CommonB), (macro:Types.CommonC)].map(ct2t)).sure().toComplex().toString()); + // assertEquals('Types.CommonI3', tink.macro.Types.deduceCommonType([(macro:Types.CommonC)].map(ct2t)).sure().toComplex().toString()); } } #end