浏览代码

(As3) to not cast if target type is represented by * at runtime and generate cast expression as value (closes #2408)

Simon Krajewski 12 年之前
父节点
当前提交
dd3e24c93e
共有 1 个文件被更改,包括 8 次插入3 次删除
  1. 8 3
      genas3.ml

+ 8 - 3
genas3.ml

@@ -747,9 +747,14 @@ and gen_expr ctx e =
 		);
 		spr ctx "}"
 	| TCast (e1,None) ->
-		spr ctx "((";
-		gen_expr ctx e1;
-		print ctx ") as %s)" (type_str ctx e.etype e.epos);
+		let s = type_str ctx e.etype e.epos in
+		if s = "*" then
+			gen_expr ctx e1
+		else begin
+			spr ctx "((";
+			gen_value ctx e1;
+			print ctx ") as %s)" s
+		end
 	| TCast (e1,Some t) ->
 		gen_expr ctx (Codegen.default_cast ctx.inf.com e1 t e.etype e.epos)