浏览代码

fixed one last nullity

Nicolas Cannasse 17 年之前
父节点
当前提交
58ddd607bc
共有 1 个文件被更改,包括 6 次插入6 次删除
  1. 6 6
      typer.ml

+ 6 - 6
typer.ml

@@ -1759,12 +1759,12 @@ and type_expr ctx ?(need_val=true) (e,p) =
 		| Some e2 ->
 			let e2 = type_expr ctx ~need_val e2 in
 			let t = if not need_val then t_void ctx else (try
-				let t = (match e2.eexpr with
-					| TConst TNull -> make_nullable ctx e1.etype
-					| _  -> e1.etype
-				) in
-				unify_raise ctx t e2.etype p;
-				e2.etype
+				(match e1.eexpr, e2.eexpr with
+				| _ , TConst TNull -> make_nullable ctx e1.etype
+				| TConst TNull, _ -> make_nullable ctx e2.etype
+				| _  ->
+					unify_raise ctx e1.etype e2.etype p;
+					e2.etype)
 			with
 				Error (Unify _,_) ->
 					unify ctx e2.etype e1.etype p;