File tree Expand file tree Collapse file tree 2 files changed +52
-1
lines changed Expand file tree Collapse file tree 2 files changed +52
-1
lines changed Original file line number Diff line number Diff line change @@ -32,7 +32,6 @@ fn generator_test() {
3232 witnesses exists<' a, ' b> [ SendAnyLifetime <' a, ' b, T >; u8 ]
3333 }
3434
35-
3635 generator not_send_resume_yield<>[ resume = NotSend , yield = NotSend ] {
3736 upvars [ ]
3837 witnesses [ ]
@@ -85,5 +84,13 @@ fn generator_test() {
8584 } yields {
8685 "Unique; substitution [], lifetime constraints []"
8786 }
87+
88+ goal {
89+ forall<T > {
90+ send_any_lifetime<T >: Send
91+ }
92+ } yields {
93+ "No possible solution"
94+ }
8895 }
8996}
Original file line number Diff line number Diff line change @@ -84,3 +84,47 @@ fn unpin_overwrite() {
8484 }
8585 }
8686}
87+
88+ #[ test]
89+ fn generator_unpin ( ) {
90+ test ! {
91+ program {
92+ #[ auto] #[ lang( unpin) ] trait Unpin { }
93+ struct A { }
94+ impl !Unpin for A { }
95+
96+ generator static static_gen<>[ resume = ( ) , yield = ( ) ] {
97+ upvars [ ]
98+ witnesses [ ]
99+ }
100+
101+ generator movable_gen<>[ resume = ( ) , yield = ( ) ] {
102+ upvars [ ]
103+ witnesses [ ]
104+ }
105+
106+ generator movable_with_pin<>[ resume = ( ) , yield = ( ) ] {
107+ upvars [ A ]
108+ witnesses [ ]
109+ }
110+ }
111+
112+ goal {
113+ static_gen: Unpin
114+ } yields {
115+ "No possible solution"
116+ }
117+
118+ goal {
119+ movable_gen: Unpin
120+ } yields {
121+ "Unique"
122+ }
123+
124+ goal {
125+ movable_with_pin: Unpin
126+ } yields {
127+ "Unique"
128+ }
129+ }
130+ }
You can’t perform that action at this time.
0 commit comments