소스 검색

"throw" treated as "return" in return_flow.

Nicolas Cannasse 20 년 전
부모
커밋
58e31e4992
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      typer.ml

+ 2 - 2
typer.ml

@@ -253,14 +253,14 @@ let t_iterator ctx =
 let rec return_flow e =
 	let error() = error "A return is missing here" e.epos in
 	match e.eexpr with
-	| TReturn _ -> ()
+	| TReturn _ | TThrow _ -> ()
 	| TParenthesis e -> 
 		return_flow e
 	| TBlock el ->
 		let rec loop = function
 			| [] -> error()
 			| [e] -> return_flow e
-			| { eexpr = TReturn _ } :: _ -> ()
+			| { eexpr = TReturn _ } :: _ | { eexpr = TThrow _ } :: _ -> ()			
 			| _ :: l -> loop l
 		in
 		loop el