瀏覽代碼

add explicit error message on unmatched patterns when constructors are involved (see #3194)

Simon Krajewski 11 年之前
父節點
當前提交
c0a8493abb
共有 1 個文件被更改,包括 6 次插入1 次删除
  1. 6 1
      matcher.ml

+ 6 - 1
matcher.ml

@@ -1357,7 +1357,12 @@ let match_expr ctx e cases def with_type p =
 			| _ ->
 				s_pat pat
 		in
-		error ("Unmatched patterns: " ^ (s_st_r true false st pat)) st.st_pos
+		let msg = "Unmatched patterns: " ^ (s_st_r true false st pat) in
+		if !extractor_depth > 0 then begin
+			display_error ctx msg st.st_pos;
+			error "Note: Patterns with extractors may require a default pattern" st.st_pos;
+		end else
+			error msg st.st_pos
 	in
 	save();
 	(* check for unused patterns *)