2023-10-19 21:46:28 +00:00
|
|
|
// Check that the layout of a coroutine is available when auxiliary crate
|
2021-01-14 00:00:00 +00:00
|
|
|
// is compiled with --emit metadata.
|
|
|
|
//
|
|
|
|
// Regression test for #80998.
|
|
|
|
//
|
|
|
|
//@ aux-build:metadata-sufficient-for-layout.rs
|
2024-06-10 16:17:38 +00:00
|
|
|
//@ check-pass
|
2021-01-14 00:00:00 +00:00
|
|
|
|
2021-07-26 20:01:16 +00:00
|
|
|
#![feature(type_alias_impl_trait, rustc_attrs)]
|
2023-10-19 21:46:28 +00:00
|
|
|
#![feature(coroutine_trait)]
|
2021-01-14 00:00:00 +00:00
|
|
|
|
|
|
|
extern crate metadata_sufficient_for_layout;
|
|
|
|
|
2024-06-10 16:17:38 +00:00
|
|
|
mod helper {
|
|
|
|
use std::ops::Coroutine;
|
|
|
|
pub type F = impl Coroutine<(), Yield = (), Return = ()>;
|
2021-01-14 00:00:00 +00:00
|
|
|
|
2024-06-10 16:17:38 +00:00
|
|
|
fn f() -> F {
|
|
|
|
metadata_sufficient_for_layout::g()
|
|
|
|
}
|
|
|
|
}
|
2021-01-14 00:00:00 +00:00
|
|
|
|
2023-10-19 21:46:28 +00:00
|
|
|
// Static queries the layout of the coroutine.
|
2024-06-10 16:17:38 +00:00
|
|
|
static A: Option<helper::F> = None;
|
2021-01-14 00:00:00 +00:00
|
|
|
|
2024-06-10 16:17:38 +00:00
|
|
|
fn main() {}
|