소스 검색

prevent constructor return value.

Nicolas Cannasse 18 년 전
부모
커밋
db4db7d838
1개의 변경된 파일4개의 추가작업 그리고 0개의 파일을 삭제
  1. 4 0
      typer.ml

+ 4 - 0
typer.ml

@@ -2106,6 +2106,10 @@ let init_class ctx c p herits fields =
 			let t = TFun (args,ret) in
 			let stat = List.mem AStatic access in
 			let constr = (name = "new") in
+			if constr then (match f.f_type with 
+				| None | Some (TPNormal { tpackage = []; tname = "Void" }) -> ()
+				| _ -> error "A class constructor can't have a return value" p
+			);
 			let cf = {
 				cf_name = name;
 				cf_doc = doc;