2023-10-19 16:46:28 -05:00
|
|
|
// Check that the layout of a coroutine is available when auxiliary crate
|
2021-01-13 18:00:00 -06:00
|
|
|
// is compiled with --emit metadata.
|
|
|
|
//
|
|
|
|
// Regression test for #80998.
|
|
|
|
//
|
|
|
|
// aux-build:metadata-sufficient-for-layout.rs
|
|
|
|
|
2021-07-26 15:01:16 -05:00
|
|
|
#![feature(type_alias_impl_trait, rustc_attrs)]
|
2023-10-19 16:46:28 -05:00
|
|
|
#![feature(coroutine_trait)]
|
2021-01-13 18:00:00 -06:00
|
|
|
|
|
|
|
extern crate metadata_sufficient_for_layout;
|
|
|
|
|
2023-10-19 11:06:43 -05:00
|
|
|
use std::ops::Coroutine;
|
2021-01-13 18:00:00 -06:00
|
|
|
|
2023-10-19 11:06:43 -05:00
|
|
|
type F = impl Coroutine<(), Yield = (), Return = ()>;
|
2021-01-13 18:00:00 -06:00
|
|
|
|
2023-10-19 16:46:28 -05:00
|
|
|
// Static queries the layout of the coroutine.
|
2021-01-13 18:00:00 -06:00
|
|
|
static A: Option<F> = None;
|
|
|
|
|
2021-07-16 08:06:26 -05:00
|
|
|
fn f() -> F {
|
|
|
|
metadata_sufficient_for_layout::g()
|
|
|
|
}
|
2021-01-13 18:00:00 -06:00
|
|
|
|
2021-03-12 06:02:29 -06:00
|
|
|
#[rustc_error]
|
2021-07-16 08:06:26 -05:00
|
|
|
fn main() {} //~ ERROR
|