Преглед изворни кода

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
 		type_unop ctx op flag e p
 	| EFunction (name,f) ->
 	| EFunction (name,f) ->
 		let params = Typeload.type_function_params ctx f "localfun" p in
 		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
 		let old = ctx.type_params in
 		ctx.type_params <- params @ ctx.type_params;
 		ctx.type_params <- params @ ctx.type_params;
 		let rt = Typeload.load_type_opt ctx p f.f_type in
 		let rt = Typeload.load_type_opt ctx p f.f_type in