Skip to content

Commit 031be38

Browse files
committed
---
yaml --- r: 16237 b: refs/heads/try c: 7213274 h: refs/heads/master i: 16235: 4c5f6eb v: v3
1 parent 61095f0 commit 031be38

File tree

3 files changed

+25
-13
lines changed

3 files changed

+25
-13
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
refs/heads/master: 61b1875c16de39c166b0f4d54bba19f9c6777d1a
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 4a81779abd786ff22d71434c6d9a5917ea4cdfff
5-
refs/heads/try: 9be94f66509677ed41431369d89260c7218956eb
5+
refs/heads/try: 7213274e57ef779620e6d68939816c66201d7d36
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105

branches/try/src/rustc/driver/driver.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -406,8 +406,10 @@ fn build_session_options(match: getopts::match,
406406
let lint_dict = lint::get_lint_dict();
407407
let lint_opts = vec::map(lint_flags) {|flag|
408408
alt lint::lookup_lint(lint_dict, flag) {
409-
none { early_error(demitter, #fmt("unknown warning: %s", flag)) }
410-
some(x) { x }
409+
(flag, none) {
410+
early_error(demitter, #fmt("unknown warning: %s", flag))
411+
}
412+
(_, some(x)) { x }
411413
}
412414
};
413415

branches/try/src/rustc/middle/lint.rs

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ enum lint {
3737
while_true,
3838
path_statement,
3939
old_vecs,
40+
unrecognized_warning,
4041
}
4142

4243
// This is pretty unfortunate. We really want some sort of "deriving Enum"
@@ -48,6 +49,7 @@ fn int_to_lint(i: int) -> lint {
4849
2 { while_true }
4950
3 { path_statement }
5051
4 { old_vecs }
52+
5 { unrecognized_warning }
5153
}
5254
}
5355

@@ -90,7 +92,12 @@ fn get_lint_dict() -> lint_dict {
9092
("old_vecs",
9193
@{lint: old_vecs,
9294
desc: "old (deprecated) vectors and strings",
93-
default: ignore})
95+
default: ignore}),
96+
97+
("unrecognized_warning",
98+
@{lint: unrecognized_warning,
99+
desc: "unrecognized warning attribute",
100+
default: warn})
94101

95102
];
96103
hash_from_strs(v)
@@ -188,12 +195,13 @@ impl methods for ctxt {
188195
alt meta.node {
189196
ast::meta_word(lintname) {
190197
alt lookup_lint(self.dict, lintname) {
191-
none {
192-
self.tcx.sess.span_err(
198+
(name, none) {
199+
self.span_lint(
200+
self.get_level(unrecognized_warning),
193201
meta.span,
194-
#fmt("unknown warning: '%s'", lintname));
202+
#fmt("unknown warning: '%s'", name));
195203
}
196-
some((lint, new_level)) {
204+
(_, some((lint, new_level))) {
197205
// we do multiple unneeded copies of the map
198206
// if many attributes are set, but this shouldn't
199207
// actually be a problem...
@@ -225,7 +233,7 @@ impl methods for ctxt {
225233

226234

227235
fn lookup_lint(dict: lint_dict, s: str)
228-
-> option<(lint, level)> {
236+
-> (str, option<(lint, level)>) {
229237
let s = str::replace(s, "-", "_");
230238
let (name, level) = if s.starts_with("no_") {
231239
(s.substr(3u, s.len() - 3u), ignore)
@@ -234,10 +242,11 @@ fn lookup_lint(dict: lint_dict, s: str)
234242
} else {
235243
(s, warn)
236244
};
237-
alt dict.find(name) {
238-
none { none }
239-
some(spec) { some((spec.lint, level)) }
240-
}
245+
(name,
246+
alt dict.find(name) {
247+
none { none }
248+
some(spec) { some((spec.lint, level)) }
249+
})
241250
}
242251

243252
fn check_item(i: @ast::item, &&cx: ctxt, v: visit::vt<ctxt>) {
@@ -249,6 +258,7 @@ fn check_item(i: @ast::item, &&cx: ctxt, v: visit::vt<ctxt>) {
249258
while_true { check_item_while_true(cx, level, i); }
250259
path_statement { check_item_path_statement(cx, level, i); }
251260
old_vecs { check_item_old_vecs(cx, level, i); }
261+
unrecognized_warning { /* this is checked elsewhere */ }
252262
}
253263
}
254264
if !cx.is_default {

0 commit comments

Comments
 (0)