mirror of https://github.com/rust-lang/rust
24 lines
505 B
Rust
24 lines
505 B
Rust
#![feature(coroutines, coroutine_trait, rustc_attrs)]
|
|
#![feature(type_alias_impl_trait)]
|
|
|
|
//@ check-pass
|
|
|
|
mod gen {
|
|
use std::ops::Coroutine;
|
|
|
|
pub type CoroOnce<Y, R> = impl Coroutine<Yield = Y, Return = R>;
|
|
|
|
pub const fn const_coroutine<Y, R>(yielding: Y, returning: R) -> CoroOnce<Y, R> {
|
|
#[coroutine]
|
|
move || {
|
|
yield yielding;
|
|
|
|
return returning;
|
|
}
|
|
}
|
|
}
|
|
|
|
const FOO: gen::CoroOnce<usize, usize> = gen::const_coroutine(10, 100);
|
|
|
|
fn main() {}
|