Skip to content

Commit 6fd13fa

Browse files
authored
Auto merge of #36058 - apasel422:tests, r=alexcrichton
Add tests for #20433, #26251, #28625, #33687 Closes #20433 Closes #26251 Closes #28625 Closes #33687
2 parents b17fa8b + 7b9adfd commit 6fd13fa

File tree

4 files changed

+96
-0
lines changed

4 files changed

+96
-0
lines changed

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

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
fn main() {}
12+
13+
struct The;
14+
15+
impl The {
16+
fn iceman(c: Vec<[i32]>) {}
17+
//~^ ERROR the trait bound `[i32]: std::marker::Sized` is not satisfied
18+
}

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

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
trait Bar {
12+
type Bar;
13+
}
14+
15+
struct ArrayPeano<T: Bar> {
16+
data: T::Bar,
17+
}
18+
19+
fn foo<T>(a: &ArrayPeano<T>) -> &[T] where T: Bar {
20+
unsafe { std::mem::transmute(a) } //~ ERROR transmute called with differently sized types
21+
}
22+
23+
impl Bar for () {
24+
type Bar = ();
25+
}
26+
27+
fn main() {
28+
let x: ArrayPeano<()> = ArrayPeano { data: () };
29+
foo(&x);
30+
}

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

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
fn main() {
12+
let x = 'a';
13+
14+
let y = match x {
15+
'a'...'b' if false => "one",
16+
'a' => "two",
17+
'a'...'b' => "three",
18+
_ => panic!("what?"),
19+
};
20+
21+
assert_eq!(y, "two");
22+
}

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

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
#![feature(unboxed_closures)]
12+
#![feature(fn_traits)]
13+
14+
struct Test;
15+
16+
impl FnOnce<(u32, u32)> for Test {
17+
type Output = u32;
18+
19+
extern "rust-call" fn call_once(self, (a, b): (u32, u32)) -> u32 {
20+
a + b
21+
}
22+
}
23+
24+
fn main() {
25+
assert_eq!(Test(1u32, 2u32), 3u32);
26+
}

0 commit comments

Comments
 (0)