File tree 5 files changed +110
-0
lines changed
5 files changed +110
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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 ( ) { }
You can’t perform that action at this time.
0 commit comments