Skip to content

Commit ea00637

Browse files
committed
Add a run-fail test for result::get, get rid of a FIXME. Also some random other tests, mostly xfailed.
1 parent 79e572e commit ea00637

File tree

8 files changed

+113
-1
lines changed

8 files changed

+113
-1
lines changed

src/libcore/result.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ pure fn get<T: copy, U>(res: result<T, U>) -> T {
2121
alt res {
2222
ok(t) { t }
2323
err(the_err) {
24-
// FIXME: have a run-fail test for this
2524
unchecked{ fail #fmt("get called on error result: %?", the_err); }
2625
}
2726
}

src/test/compile-fail/issue-1451.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// xfail-test
2+
type T = { mut f: fn@() };
3+
type S = { f: fn@() };
4+
5+
fn fooS(t: S) {
6+
}
7+
8+
fn fooT(t: T) {
9+
}
10+
11+
fn bar() {
12+
}
13+
14+
fn main() {
15+
let x: fn@() = bar;
16+
fooS({f: x});
17+
fooS({f: bar});
18+
19+
let x: fn@() = bar;
20+
fooT({mut f: x});
21+
fooT({mut f: bar});
22+
}
23+

src/test/compile-fail/issue-1871.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// xfail-test
2+
fn main() {
3+
let f = 42;
4+
5+
let _g = if f < 5 {
6+
f.honk();
7+
}
8+
else {
9+
12
10+
};
11+
}

src/test/run-fail/result-get-fail.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// error-pattern:get called on error result: "kitty"
2+
fn main() {
3+
log(error, result::get(result::err("kitty")));
4+
}

src/test/run-pass/issue-1466.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
fn main() {
2+
let _x = @{a: @10, b: ~true};
3+
}

src/test/run-pass/issue-1516.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
// xfail-test
2+
fn main() { let early_error: fn@(str) -> ! = {|msg| fail }; }
3+

src/test/run-pass/issue-1866.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// xfail-test
2+
mod a {
3+
type rust_task = uint;
4+
native mod rustrt {
5+
fn rust_task_is_unwinding(rt: *rust_task) -> bool;
6+
}
7+
}
8+
9+
mod b {
10+
type rust_task = bool;
11+
native mod rustrt {
12+
fn rust_task_is_unwinding(rt: *rust_task) -> bool;
13+
}
14+
}
15+
16+
fn main() { }

src/test/run-pass/issue-1926.rs

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
// xfail-test
2+
// fails pretty printing for some reason
3+
use rustc;
4+
import rustc::driver::diagnostic;
5+
import rustc::syntax;
6+
import rustc::syntax::ast;
7+
import rustc::syntax::codemap;
8+
import rustc::syntax::print::pprust;
9+
import rustc::syntax::parse::parser;
10+
11+
fn new_parse_sess() -> parser::parse_sess {
12+
let cm = codemap::new_codemap();
13+
let handler = diagnostic::mk_handler(option::none);
14+
let sess = @{
15+
cm: cm,
16+
mut next_id: 1,
17+
span_diagnostic: diagnostic::mk_span_handler(handler, cm),
18+
mut chpos: 0u,
19+
mut byte_pos: 0u
20+
};
21+
ret sess;
22+
}
23+
24+
iface fake_ext_ctxt {
25+
fn session() -> fake_session;
26+
fn cfg() -> ast::crate_cfg;
27+
fn parse_sess() -> parser::parse_sess;
28+
}
29+
30+
type fake_options = {cfg: ast::crate_cfg};
31+
32+
type fake_session = {opts: @fake_options,
33+
parse_sess: parser::parse_sess};
34+
35+
impl of fake_ext_ctxt for fake_session {
36+
fn session() -> fake_session {self}
37+
fn cfg() -> ast::crate_cfg { self.opts.cfg }
38+
fn parse_sess() -> parser::parse_sess { self.parse_sess }
39+
}
40+
41+
fn mk_ctxt() -> fake_ext_ctxt {
42+
let opts : fake_options = {cfg: []};
43+
{opts: @opts, parse_sess: new_parse_sess()} as fake_ext_ctxt
44+
}
45+
46+
47+
fn main() {
48+
let ext_cx = mk_ctxt();
49+
let s = #ast(expr){__s};
50+
let e = #ast(expr){__e};
51+
let f = #ast(expr){$(s).foo {|__e| $(e)}};
52+
log(error, pprust::expr_to_str(f));
53+
}

0 commit comments

Comments
 (0)