소스 검색

don't allow type parameters constraints for local functions (not enforced)

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

+ 2 - 1
typer.ml

@@ -1958,7 +1958,8 @@ and type_expr ctx ?(need_val=true) (e,p) =
 		type_unop ctx op flag e p
 	| EFunction (name,f) ->
 		let params = Typeload.type_function_params ctx f "localfun" p in
-		if params <> [] && name = None then error("Type parameters not supported in unnamed local functions") p;
+		if params <> [] && name = None then display_error ctx "Type parameters not supported in unnamed local functions" p;
+		List.iter (fun (_,c) -> if c <> [] then display_error ctx "Type parameters constraints are not supported for local functions" p) f.f_params;
 		let old = ctx.type_params in
 		ctx.type_params <- params @ ctx.type_params;
 		let rt = Typeload.load_type_opt ctx p f.f_type in