Skip to content

Commit 7aa559f

Browse files
committed
enable -warn-as-eror refined control while still catpure warnings output
TODO: - restore configure as error message - remove unneed exit code 77 handling in ninja
1 parent 7588709 commit 7aa559f

File tree

35 files changed

+203
-139
lines changed

35 files changed

+203
-139
lines changed

jscomp/bsb/bsb_templates.ml

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,9 @@ let root = OCamlRes.Res.([
1414
\ \"dir\" : \"src\",\n\
1515
\ \"subdirs\" : true\n\
1616
\ },\n\
17-
\ \"package-specs\": {\n\
18-
\ \"module\": \"commonjs\",\n\
19-
\ \"in-source\": true\n\
20-
\ },\n\
21-
\ \"suffix\": \".bs.js\",\n\
22-
\ \"bs-dependencies\": [\n\
23-
\ ],\n\
24-
\ \"refmt\": 3\n\
17+
\ \"warnings\": {\n\
18+
\ \"error\" : \"+101\"\n\
19+
\ }\n\
2520
}\n\
2621
") ;
2722
File ("package.json",

jscomp/bsb/bsb_warning.ml

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,16 @@
2323
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *)
2424

2525

26+
type warning_error =
27+
| Warn_error_false
28+
(* default [false] to make our changes non-intrusive *)
29+
| Warn_error_true
30+
| Warn_error_number of string
2631

2732
type t0 = {
28-
number : string option;
29-
} [@@ocaml.unboxed]
33+
number : string option;
34+
error : warning_error
35+
}
3036

3137
type nonrec t = t0 option
3238

@@ -64,13 +70,27 @@ let to_merlin_string x =
6470

6571
let from_map (m : Ext_json_types.t Map_string.t) =
6672
let number_opt = Map_string.find_opt m Bsb_build_schemas.number in
67-
let number =
68-
match number_opt with
69-
| Some (Str { str = number}) -> Some number
70-
| None -> None
71-
| Some x -> Bsb_exception.config_error x "expect a string"
72-
in
73-
Some {number }
73+
let error_opt = Map_string.find_opt m Bsb_build_schemas.error in
74+
match number_opt, error_opt with
75+
| None, None -> None
76+
| _, _ ->
77+
let error =
78+
match error_opt with
79+
| Some (True _) -> Warn_error_true
80+
| Some (False _) -> Warn_error_false
81+
| Some (Str {str ; })
82+
-> Warn_error_number str
83+
| Some x -> Bsb_exception.config_error x "expect true/false or string"
84+
| None -> Warn_error_false
85+
(** To make it less intrusive : warning error has to be enabled*)
86+
in
87+
let number =
88+
match number_opt with
89+
| Some (Str { str = number}) -> Some number
90+
| None -> None
91+
| Some x -> Bsb_exception.config_error x "expect a string"
92+
in
93+
Some {number; error }
7494

7595

7696
let to_bsb_string ~toplevel warning =
@@ -83,6 +103,15 @@ let to_bsb_string ~toplevel warning =
83103
Ext_string.empty
84104
| Some x ->
85105
prepare_warning_concat ~beg:true x
86-
)
106+
) ^
107+
(
108+
match warning.error with
109+
| Warn_error_true ->
110+
" -warn-error A"
111+
| Warn_error_number y ->
112+
" -warn-error " ^ y
113+
| Warn_error_false ->
114+
Ext_string.empty
115+
)
87116
else " -w a"
88117
(* TODO: this is the current default behavior *)

jscomp/bsb/templates/basic/bsconfig.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,8 @@
44
"sources": {
55
"dir" : "src",
66
"subdirs" : true
7+
},
8+
"warnings": {
9+
"error" : "+101"
710
}
811
}

jscomp/build_tests/case3/bsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@
1212
"suffix": ".bs.js",
1313
"bs-dependencies": [
1414
],
15+
"warnings": {"error" : "+101"},
1516
"refmt": 3
1617
}

jscomp/build_tests/custom_namespace/bsconfig.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
"bsc-flags" : ["-bs-no-version-header"],
1414
"bs-dependencies": [],
1515
"warnings": {
16-
"number" : "-40+6+7"
16+
"number" : "-40+6+7",
17+
"error" : true
1718
},
1819
"suffix": ".bs.js"
1920
}

jscomp/build_tests/customize_namespace/bsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,6 @@
1414
"depa",
1515
"depb"
1616
],
17+
"warnings": {"error" : "+101"},
1718
"refmt": 3
1819
}

jscomp/build_tests/cycle/bsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@
1212
"suffix": ".bs.js",
1313
"bs-dependencies": [
1414
],
15+
"warnings": {"error" : "+101"},
1516
"refmt": 3
1617
}

jscomp/build_tests/devdeps/bsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,6 @@
1818
"bs-dependencies": [
1919
],
2020
"bs-dev-dependencies": ["weird"],
21+
"warnings": {"error":"+101"},
2122
"refmt": 3
2223
}

jscomp/build_tests/devonly/bsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,6 @@
1616
"suffix": ".bs.js",
1717
"bs-dependencies": [
1818
],
19+
"warnings": {"error" : "+101"},
1920
"refmt": 3
2021
}

jscomp/build_tests/duplicated_symlinked_packages/a/bsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"c",
1515
"z"
1616
],
17+
"warnings": {"error" : "+101"},
1718
"namespace": true,
1819
"refmt": 3
1920
}

0 commit comments

Comments
 (0)