Jelajahi Sumber

reverted Null<T> restrictions : we unify whole-function when making a call, leading to unwanted errors

Nicolas Cannasse 13 tahun lalu
induk
melakukan
8285513722

+ 1 - 1
std/cpp/_std/IntHash.hx

@@ -49,7 +49,7 @@
 
 	public function keys() : Iterator<Int> {
 		var a:Array<Int> = untyped __global__.__int_hash_keys(h);
-		return cast a.iterator();
+		return a.iterator();
 	}
 
 	public function iterator() : Iterator<T> {

+ 2 - 2
std/cs/_std/Hash.hx

@@ -82,7 +82,7 @@
 	**/
 	public function keys() : Iterator<String> 
 	{
-		return cast keysArr.iterator();
+		return keysArr.iterator();
 	}
 
 	/**
@@ -90,7 +90,7 @@
 	**/
 	public function iterator() : Iterator<T> 
 	{
-		return cast valuesArr.iterator();
+		return valuesArr.iterator();
 	}
 
 	/**

+ 2 - 2
std/cs/_std/IntHash.hx

@@ -82,7 +82,7 @@
 	**/
 	public function keys() : Iterator<Int> 
 	{
-		return cast keysArr.iterator();
+		return keysArr.iterator();
 	}
 
 	/**
@@ -90,7 +90,7 @@
 	**/
 	public function iterator() : Iterator<T> 
 	{
-		return cast valuesArr.iterator();
+		return valuesArr.iterator();
 	}
 
 	/**

+ 1 - 1
std/flash8/_std/IntHash.hx

@@ -53,7 +53,7 @@
 		var l : Array<Int> = untyped __keys__(h);
 		for( x in 0...l.length )
 			l[x] = Std.int(l[x]);
-		return cast l.iterator();
+		return l.iterator();
 	}
 
 	public function iterator() : Iterator<T> {

+ 2 - 2
std/java/_std/Hash.hx

@@ -82,7 +82,7 @@
 	**/
 	public function keys() : Iterator<String> 
 	{
-		return cast keysArr.iterator();
+		return keysArr.iterator();
 	}
 
 	/**
@@ -90,7 +90,7 @@
 	**/
 	public function iterator() : Iterator<T> 
 	{
-		return cast valuesArr.iterator();
+		return valuesArr.iterator();
 	}
 
 	/**

+ 2 - 2
std/java/_std/IntHash.hx

@@ -82,7 +82,7 @@
 	**/
 	public function keys() : Iterator<Int> 
 	{
-		return cast keysArr.iterator();
+		return keysArr.iterator();
 	}
 
 	/**
@@ -90,7 +90,7 @@
 	**/
 	public function iterator() : Iterator<T> 
 	{
-		return cast valuesArr.iterator();
+		return valuesArr.iterator();
 	}
 
 	/**

+ 1 - 1
std/js/_std/Hash.hx

@@ -58,7 +58,7 @@
 					a.push(key.substr(1));
 			__js__("}");
 		}
-		return cast a.iterator();
+		return a.iterator();
 	}
 
 	public function iterator() : Iterator<T> {

+ 1 - 1
std/js/_std/IntHash.hx

@@ -57,7 +57,7 @@
 					a.push(key|0);
 			__js__("}");
 		}
-		return cast a.iterator();
+		return a.iterator();
 	}
 
 	public function iterator() : Iterator<T> {

+ 0 - 2
type.ml

@@ -858,11 +858,9 @@ let rec unify a b =
 		if not (loop c1 tl1) then error [cannot_unify a b]
 	| TFun (l1,r1) , TFun (l2,r2) when List.length l1 = List.length l2 ->
 		(try
-			if not (is_null r2) && is_null r1 then (match follow r2 with TMono _ | TDynamic _ -> () | _ -> error [cannot_unify r2 r1]);
 			unify r1 r2;
 			List.iter2 (fun (_,o1,t1) (_,o2,t2) ->
 				if o1 && not o2 then error [Cant_force_optional];
-				if not (is_null t2) && is_null t1 then (match follow t2 with TMono _ | TDynamic _ -> () | _ -> error [cannot_unify t1 t2]);
 				unify t1 t2
 			) l2 l1 (* contravariance *)
 		with