소스 검색

[typer] don't type trailing optional bind arguments so weirdly (#11533)

see #11531
Simon Krajewski 1 년 전
부모
커밋
1939a7b211
1개의 변경된 파일4개의 추가작업 그리고 10개의 파일을 삭제
  1. 4 10
      src/typing/calls.ml

+ 4 - 10
src/typing/calls.ml

@@ -368,16 +368,10 @@ let type_bind ctx (e : texpr) (args,ret) params p =
 	let rec loop args params given_args missing_args ordered_args = match args, params with
 		| [], [] -> given_args,missing_args,ordered_args
 		| [], _ -> raise_typing_error "Too many callback arguments" p
-		| (n,o,t) :: args , [] when o ->
-			let a = if is_pos_infos t then
-					let infos = mk_infos ctx p [] in
-					ordered_args @ [type_expr ctx infos (WithType.with_argument t n)]
-				else if ctx.com.config.pf_pad_nulls && ctx.allow_transform then
-					(ordered_args @ [(mk (TConst TNull) t_dynamic p)])
-				else
-					ordered_args
-			in
-			loop args [] given_args missing_args a
+		| [n,o,t] , [] when o && is_pos_infos t ->
+			let infos = mk_infos ctx p [] in
+			let ordered_args = ordered_args @ [type_expr ctx infos (WithType.with_argument t n)] in
+			given_args,missing_args,ordered_args
 		| (n,o,t) :: _ , (EConst(Ident "_"),p) :: _ when not ctx.com.config.pf_can_skip_non_nullable_argument && o && not (is_nullable t) ->
 			raise_typing_error "Usage of _ is not supported for optional non-nullable arguments" p
 		| (n,o,t) :: args , ([] as params)