Skip to content

Commit 5bd7d69

Browse files
authored
Rollup merge of #47344 - topecongiro:fixed-ices, r=alexcrichton
Add tests to fixed issues. Closes #36792. Closes #38091. Closes #39687. Closes #42148. Closes #42956.
2 parents 3a87b5a + 9649c4a commit 5bd7d69

File tree

5 files changed

+110
-0
lines changed

5 files changed

+110
-0
lines changed

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

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Copyright 2018 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(fn_traits)]
12+
13+
fn main() {
14+
<fn() as Fn()>::call;
15+
//~^ ERROR associated type bindings are not allowed here [E0229]
16+
}

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

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// Copyright 2018 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(conservative_impl_trait)]
12+
fn foo() -> impl Copy {
13+
foo
14+
}
15+
fn main() {
16+
foo();
17+
}

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

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// Copyright 2018 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(specialization)]
12+
13+
trait Iterate<'a> {
14+
type Ty: Valid;
15+
fn iterate(self);
16+
}
17+
impl<'a, T> Iterate<'a> for T where T: Check {
18+
default type Ty = ();
19+
default fn iterate(self) {}
20+
}
21+
22+
trait Check {}
23+
impl<'a, T> Check for T where <T as Iterate<'a>>::Ty: Valid {}
24+
25+
trait Valid {}
26+
27+
fn main() {
28+
Iterate::iterate(0);
29+
}

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

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// Copyright 2018 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+
struct Zst;
12+
13+
fn main() {
14+
unsafe { ::std::ptr::write_volatile(1 as *mut Zst, Zst) }
15+
}

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

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// Copyright 2018 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(associated_consts)]
12+
13+
impl A for i32 {
14+
type Foo = u32;
15+
}
16+
impl B for u32 {
17+
const BAR: i32 = 0;
18+
}
19+
20+
trait A {
21+
type Foo: B;
22+
}
23+
24+
trait B {
25+
const BAR: i32;
26+
}
27+
28+
fn generic<T: A>() {
29+
// This panics if the universal function call syntax is used as well
30+
println!("{}", T::Foo::BAR);
31+
}
32+
33+
fn main() {}

0 commit comments

Comments
 (0)