瀏覽代碼

[Diagnostics] Fix compiler failure when report mode disabled (#11704)

* [diagnostics] avoid crash when emitting diagnostics while report mode has been disabled

* Revert "[diagnostics] avoid crash when emitting diagnostics while report mode has been disabled"

This reverts commit 78242ae071251c7825ed974e6ed0c4f32dc27b05.

* [macro] use proper ctx in typing_timer

* Move restore_field_state too
Rudy Ges 1 年之前
父節點
當前提交
bda938d5a0
共有 1 個文件被更改,包括 6 次插入5 次删除
  1. 6 5
      src/typing/macroContext.ml

+ 6 - 5
src/typing/macroContext.ml

@@ -62,17 +62,18 @@ let macro_timer com l =
 
 let typing_timer ctx need_type f =
 	let t = Timer.timer ["typing"] in
-	let old = ctx.com.error_ext in
-	let restore_report_mode = disable_report_mode ctx.com in
-	let restore_field_state = TypeloadFunction.save_field_state ctx in
-	ctx.com.error_ext <- (fun err -> raise_error { err with err_from_macro = true });
-
 	let ctx = if need_type && ctx.pass < PTypeField then begin
 		enter_field_typing_pass ctx.g ("typing_timer",[]);
 		TyperManager.clone_for_expr ctx ctx.e.curfun false
 	end else
 		ctx
 	in
+
+	let old = ctx.com.error_ext in
+	let restore_report_mode = disable_report_mode ctx.com in
+	let restore_field_state = TypeloadFunction.save_field_state ctx in
+	ctx.com.error_ext <- (fun err -> raise_error { err with err_from_macro = true });
+
 	let exit() =
 		t();
 		ctx.com.error_ext <- old;