Skip to content

Commit ff0c74f

Browse files
committed
test errors
1 parent e237151 commit ff0c74f

File tree

9 files changed

+131
-114
lines changed

9 files changed

+131
-114
lines changed

src/librustc/session/config.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1224,7 +1224,7 @@ mod tests {
12241224
let sessopts = build_session_options(&matches);
12251225
let sess = build_session(sessopts, None, registry,
12261226
Rc::new(DummyCrateStore));
1227-
assert!(!sess.can_print_warnings);
1227+
assert!(!sess.diagnostic().can_emit_warnings);
12281228
}
12291229

12301230
{
@@ -1236,7 +1236,7 @@ mod tests {
12361236
let sessopts = build_session_options(&matches);
12371237
let sess = build_session(sessopts, None, registry,
12381238
Rc::new(DummyCrateStore));
1239-
assert!(sess.can_print_warnings);
1239+
assert!(sess.diagnostic().can_emit_warnings);
12401240
}
12411241

12421242
{
@@ -1247,7 +1247,7 @@ mod tests {
12471247
let sessopts = build_session_options(&matches);
12481248
let sess = build_session(sessopts, None, registry,
12491249
Rc::new(DummyCrateStore));
1250-
assert!(sess.can_print_warnings);
1250+
assert!(sess.diagnostic().can_emit_warnings);
12511251
}
12521252
}
12531253
}

src/librustc_driver/test.rs

+10-20
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010

1111
//! # Standalone Tests for the Inference Module
1212
13-
use diagnostic;
14-
use diagnostic::Emitter;
1513
use driver;
1614
use rustc_lint;
1715
use rustc_resolve as resolve;
@@ -34,9 +32,10 @@ use rustc::front::map as hir_map;
3432
use rustc::session::{self, config};
3533
use std::rc::Rc;
3634
use syntax::{abi, ast};
37-
use syntax::codemap;
3835
use syntax::codemap::{Span, CodeMap, DUMMY_SP};
39-
use syntax::diagnostic::{Level, RenderSpan, Bug, Fatal, Error, Warning, Note, Help};
36+
use syntax::errors;
37+
use syntax::errors::emitter::Emitter;
38+
use syntax::errors::{Level, RenderSpan};
4039
use syntax::parse::token;
4140
use syntax::feature_gate::UnstableFeatures;
4241

@@ -60,8 +59,8 @@ struct ExpectErrorEmitter {
6059

6160
fn remove_message(e: &mut ExpectErrorEmitter, msg: &str, lvl: Level) {
6261
match lvl {
63-
Bug | Fatal | Error => {}
64-
Warning | Note | Help => {
62+
Level::Bug | Level::Fatal | Level::Error => {}
63+
Level::Warning | Level::Note | Level::Help => {
6564
return;
6665
}
6766
}
@@ -79,14 +78,14 @@ fn remove_message(e: &mut ExpectErrorEmitter, msg: &str, lvl: Level) {
7978

8079
impl Emitter for ExpectErrorEmitter {
8180
fn emit(&mut self,
82-
_cmsp: Option<(&codemap::CodeMap, Span)>,
81+
_sp: Option<Span>,
8382
msg: &str,
8483
_: Option<&str>,
8584
lvl: Level) {
8685
remove_message(self, msg, lvl);
8786
}
8887

89-
fn custom_emit(&mut self, _cm: &codemap::CodeMap, _sp: RenderSpan, msg: &str, lvl: Level) {
88+
fn custom_emit(&mut self, _sp: RenderSpan, msg: &str, lvl: Level) {
9089
remove_message(self, msg, lvl);
9190
}
9291
}
@@ -105,13 +104,11 @@ fn test_env<F>(source_string: &str,
105104
let mut options = config::basic_options();
106105
options.debugging_opts.verbose = true;
107106
options.unstable_features = UnstableFeatures::Allow;
108-
let codemap = CodeMap::new();
109-
let diagnostic_handler = diagnostic::Handler::with_emitter(true, emitter);
110-
let span_diagnostic_handler = diagnostic::SpanHandler::new(diagnostic_handler, codemap);
107+
let diagnostic_handler = errors::Handler::with_emitter(true, false, emitter);
111108

112109
let cstore = Rc::new(CStore::new(token::get_ident_interner()));
113-
let sess = session::build_session_(options, None, span_diagnostic_handler,
114-
cstore.clone());
110+
let sess = session::build_session_(options, None, diagnostic_handler,
111+
Rc::new(CodeMap::new()), cstore.clone());
115112
rustc_lint::register_builtins(&mut sess.lint_store.borrow_mut(), Some(&sess));
116113
let krate_config = Vec::new();
117114
let input = config::Input::Str(source_string.to_string());
@@ -366,13 +363,6 @@ impl<'a, 'tcx> Env<'a, 'tcx> {
366363
self.infcx.glb(true, trace)
367364
}
368365

369-
pub fn make_lub_ty(&self, t1: Ty<'tcx>, t2: Ty<'tcx>) -> Ty<'tcx> {
370-
match self.lub().relate(&t1, &t2) {
371-
Ok(t) => t,
372-
Err(ref e) => panic!("unexpected error computing LUB: {}", e),
373-
}
374-
}
375-
376366
/// Checks that `t1 <: t2` is true (this may register additional
377367
/// region checks).
378368
pub fn check_sub(&self, t1: Ty<'tcx>, t2: Ty<'tcx>) {

src/librustdoc/test.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,9 @@ fn runtest(test: &str, cratename: &str, cfgs: Vec<String>, libs: SearchPaths,
225225
}
226226
let data = Arc::new(Mutex::new(Vec::new()));
227227
let codemap = Rc::new(CodeMap::new());
228-
let emitter = errors::emitter::EmitterWriter::new(box Sink(data.clone()), None, codemap.clone());
228+
let emitter = errors::emitter::EmitterWriter::new(box Sink(data.clone()),
229+
None,
230+
codemap.clone());
229231
let old = io::set_panic(box Sink(data.clone()));
230232
let _bomb = Bomb(data, old.unwrap_or(box io::stdout()));
231233

src/libsyntax/errors/emitter.rs

+60-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ impl ColorConfig {
4545
ColorConfig::Always => true,
4646
ColorConfig::Never => false,
4747
ColorConfig::Auto => stderr_isatty(),
48-
}
48+
}
4949
}
5050
}
5151

@@ -619,3 +619,62 @@ impl Write for Destination {
619619
}
620620
}
621621

622+
623+
#[cfg(test)]
624+
mod test {
625+
use errors::Level;
626+
use super::EmitterWriter;
627+
use codemap::{mk_sp, CodeMap};
628+
use std::sync::{Arc, Mutex};
629+
use std::io::{self, Write};
630+
use std::str::from_utf8;
631+
use std::rc::Rc;
632+
633+
// Diagnostic doesn't align properly in span where line number increases by one digit
634+
#[test]
635+
fn test_hilight_suggestion_issue_11715() {
636+
struct Sink(Arc<Mutex<Vec<u8>>>);
637+
impl Write for Sink {
638+
fn write(&mut self, data: &[u8]) -> io::Result<usize> {
639+
Write::write(&mut *self.0.lock().unwrap(), data)
640+
}
641+
fn flush(&mut self) -> io::Result<()> { Ok(()) }
642+
}
643+
let data = Arc::new(Mutex::new(Vec::new()));
644+
let cm = Rc::new(CodeMap::new());
645+
let mut ew = EmitterWriter::new(Box::new(Sink(data.clone())), None, cm.clone());
646+
let content = "abcdefg
647+
koksi
648+
line3
649+
line4
650+
cinq
651+
line6
652+
line7
653+
line8
654+
line9
655+
line10
656+
e-lä-vän
657+
tolv
658+
dreizehn
659+
";
660+
let file = cm.new_filemap_and_lines("dummy.txt", content);
661+
let start = file.lines.borrow()[7];
662+
let end = file.lines.borrow()[11];
663+
let sp = mk_sp(start, end);
664+
let lvl = Level::Error;
665+
println!("span_to_lines");
666+
let lines = cm.span_to_lines(sp);
667+
println!("highlight_lines");
668+
ew.highlight_lines(sp, lvl, lines).unwrap();
669+
println!("done");
670+
let vec = data.lock().unwrap().clone();
671+
let vec: &[u8] = &vec;
672+
let str = from_utf8(vec).unwrap();
673+
println!("{}", str);
674+
assert_eq!(str, "dummy.txt: 8 line8\n\
675+
dummy.txt: 9 line9\n\
676+
dummy.txt:10 line10\n\
677+
dummy.txt:11 e-lä-vän\n\
678+
dummy.txt:12 tolv\n");
679+
}
680+
}

src/libsyntax/errors/mod.rs

-58
Original file line numberDiff line numberDiff line change
@@ -336,61 +336,3 @@ pub fn expect<T, M>(diag: &Handler, opt: Option<T>, msg: M) -> T where
336336
None => diag.bug(&msg()),
337337
}
338338
}
339-
340-
#[cfg(test)]
341-
mod test {
342-
use super::Level;
343-
use emitter::EmitterWriter;
344-
use codemap::{mk_sp, CodeMap};
345-
use std::sync::{Arc, Mutex};
346-
use std::io::{self, Write};
347-
use std::str::from_utf8;
348-
349-
// Diagnostic doesn't align properly in span where line number increases by one digit
350-
#[test]
351-
fn test_hilight_suggestion_issue_11715() {
352-
struct Sink(Arc<Mutex<Vec<u8>>>);
353-
impl Write for Sink {
354-
fn write(&mut self, data: &[u8]) -> io::Result<usize> {
355-
Write::write(&mut *self.0.lock().unwrap(), data)
356-
}
357-
fn flush(&mut self) -> io::Result<()> { Ok(()) }
358-
}
359-
let data = Arc::new(Mutex::new(Vec::new()));
360-
let mut ew = EmitterWriter::new(Box::new(Sink(data.clone())), None);
361-
let cm = CodeMap::new();
362-
let content = "abcdefg
363-
koksi
364-
line3
365-
line4
366-
cinq
367-
line6
368-
line7
369-
line8
370-
line9
371-
line10
372-
e-lä-vän
373-
tolv
374-
dreizehn
375-
";
376-
let file = cm.new_filemap_and_lines("dummy.txt", content);
377-
let start = file.lines.borrow()[7];
378-
let end = file.lines.borrow()[11];
379-
let sp = mk_sp(start, end);
380-
let lvl = Level::Error;
381-
println!("span_to_lines");
382-
let lines = cm.span_to_lines(sp);
383-
println!("highlight_lines");
384-
ew.highlight_lines(&cm, sp, lvl, lines).unwrap();
385-
println!("done");
386-
let vec = data.lock().unwrap().clone();
387-
let vec: &[u8] = &vec;
388-
let str = from_utf8(vec).unwrap();
389-
println!("{}", str);
390-
assert_eq!(str, "dummy.txt: 8 line8\n\
391-
dummy.txt: 9 line9\n\
392-
dummy.txt:10 line10\n\
393-
dummy.txt:11 e-lä-vän\n\
394-
dummy.txt:12 tolv\n");
395-
}
396-
}

0 commit comments

Comments
 (0)