File tree Expand file tree Collapse file tree 2 files changed +53
-0
lines changed Expand file tree Collapse file tree 2 files changed +53
-0
lines changed Original file line number Diff line number Diff line change 1+ #![ feature( type_alias_impl_trait) ]
2+ // check-pass
3+
4+ fn main ( ) { }
5+
6+ fn upvar ( ) {
7+ #[ derive( Copy , Clone ) ]
8+ struct Foo ( ( u32 , u32 ) ) ;
9+
10+ type T = impl Copy ;
11+ let foo: T = Foo ( ( 1u32 , 2u32 ) ) ;
12+ let x = move || {
13+ let Foo ( ( a, b) ) = foo;
14+ } ;
15+ }
Original file line number Diff line number Diff line change 1+ // check-pass
2+ // compile-flags: --edition 2018
3+
4+ use std:: future:: Future ;
5+ use std:: pin:: Pin ;
6+ use std:: task:: { Context , Poll } ;
7+
8+ async fn new_future ( ) {
9+ loop { }
10+ }
11+
12+ pub struct SelectAll < Fut > {
13+ _inner : Fut ,
14+ }
15+
16+ fn select_all < I > ( _: I ) -> SelectAll < I :: Item >
17+ where
18+ I : IntoIterator ,
19+ I :: Item : Future + Unpin ,
20+ {
21+ loop { }
22+ }
23+
24+ impl < Fut : Future > Future for SelectAll < Fut > {
25+ type Output = ( ) ;
26+
27+ fn poll ( self : Pin < & mut Self > , _: & mut Context < ' _ > ) -> Poll < Self :: Output > {
28+ loop { }
29+ }
30+ }
31+
32+ async fn run_one_step ( ) {
33+ let mut select = select_all ( vec ! [ Box :: pin( new_future( ) ) ] ) ;
34+ let poll_fns = & mut |cx : & mut Context < ' _ > | Pin :: new ( & mut select) . poll ( cx) ;
35+ for _poll_fn in [ poll_fns] { }
36+ }
37+
38+ fn main ( ) { }
You can’t perform that action at this time.
0 commit comments