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
|
|
|
|
|
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;
|
|
|
|
|
2023-10-19 16:06:43 +00:00
|
|
|
use std::ops::Coroutine;
|
2021-01-14 00:00:00 +00:00
|
|
|
|
2023-10-19 16:06:43 +00:00
|
|
|
type F = impl Coroutine<(), Yield = (), Return = ()>;
|
2021-01-14 00:00:00 +00:00
|
|
|
|
2023-10-19 21:46:28 +00:00
|
|
|
// Static queries the layout of the coroutine.
|
2021-01-14 00:00:00 +00:00
|
|
|
static A: Option<F> = None;
|
|
|
|
|
2021-07-16 13:06:26 +00:00
|
|
|
fn f() -> F {
|
|
|
|
metadata_sufficient_for_layout::g()
|
|
|
|
}
|
2021-01-14 00:00:00 +00:00
|
|
|
|
2021-03-12 12:02:29 +00:00
|
|
|
#[rustc_error]
|
2021-07-16 13:06:26 +00:00
|
|
|
fn main() {} //~ ERROR
|