瀏覽代碼

[typer] don't recurse into ECheckType

Simon Krajewski 8 年之前
父節點
當前提交
5198b0df41
共有 2 個文件被更改,包括 1 次插入4 次删除
  1. 1 3
      src/typing/typer.ml
  2. 0 1
      tests/unit/src/unit/TestMapComprehension.hx

+ 1 - 3
src/typing/typer.ml

@@ -3465,10 +3465,8 @@ and type_expr ctx (e,p) (with_type:with_type) =
 				EDisplay(map_compr e1,b),p
 				EDisplay(map_compr e1,b),p
 			| EMeta(m,e1) ->
 			| EMeta(m,e1) ->
 				EMeta(m,map_compr e1),p
 				EMeta(m,map_compr e1),p
-			| ECheckType(e1,ct) ->
-				ECheckType(map_compr e1,ct),p
 			| EConst _ | EArray _ | EBinop _ | EField _ | EObjectDecl _ | EArrayDecl _
 			| EConst _ | EArray _ | EBinop _ | EField _ | EObjectDecl _ | EArrayDecl _
-			| ECall _ | ENew _ | EUnop _ | EVars _ | EFunction _ | EDisplayNew _ ->
+			| ECall _ | ENew _ | EUnop _ | EVars _ | EFunction _ | EDisplayNew _ | EMeta _ | ECheckType _ ->
 				et := (EArrayDecl [],p);
 				et := (EArrayDecl [],p);
 				(ECall ((EField ((EConst (Ident v.v_name),p),"push"),p),[(e,p)]),p)
 				(ECall ((EField ((EConst (Ident v.v_name),p),"push"),p),[(e,p)]),p)
 		in
 		in

+ 0 - 1
tests/unit/src/unit/TestMapComprehension.hx

@@ -6,7 +6,6 @@ class TestMapComprehension extends unit.Test {
 		mapEq([for (i in 0...2) (i => i)], [0 => 0, 1 => 1]);
 		mapEq([for (i in 0...2) (i => i)], [0 => 0, 1 => 1]);
 		mapEq([for (i in 0...2) cast i => i], [0 => 0, 1 => 1]);
 		mapEq([for (i in 0...2) cast i => i], [0 => 0, 1 => 1]);
 		mapEq([for (i in 0...2) untyped i => i], [0 => 0, 1 => 1]);
 		mapEq([for (i in 0...2) untyped i => i], [0 => 0, 1 => 1]);
-		mapEq([for (i in 0...2) (i => i : Void)], [0 => 0, 1 => 1]);
 		mapEq([for (i in 0...2) if (i == 1) i => i], [1 => 1]);
 		mapEq([for (i in 0...2) if (i == 1) i => i], [1 => 1]);
 		mapEq([for (i in 0...2) if (i == 0) i => i else i => i * 2], [0 => 0, 1 => 2]);
 		mapEq([for (i in 0...2) if (i == 0) i => i else i => i * 2], [0 => 0, 1 => 2]);
 		mapEq([for (i in 0...2) (i == 0) ? i => i : i => i * 2], [0 => 0, 1 => 2]);
 		mapEq([for (i in 0...2) (i == 0) ? i => i : i => i * 2], [0 => 0, 1 => 2]);