浏览代码

map multitype abstracts without assertions

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

+ 1 - 1
type.ml

@@ -1369,7 +1369,7 @@ let map_expr_type f ft fv e =
 	| TNew (_,_,el) ->
 		let et = ft e.etype in
 		(* make sure that we use the class corresponding to the replaced type *)
-		let c, pl = (match follow et with TInst (c,pl) -> (c,pl) | _ -> assert false) in
+		let c, pl = (match follow et with TInst (c,pl) -> (c,pl) | TAbstract({a_impl = Some c},pl) -> c,pl | _ -> assert false) in
 		{ e with eexpr = TNew (c,pl,List.map f el); etype = et }
 	| TBlock el ->
 		{ e with eexpr = TBlock (List.map f el); etype = ft e.etype }