LangItem-ify Coroutine trait in solvers · model-checking/verify-rust-std@78d94ee (original) (raw)

Original file line number Diff line number Diff line change
@@ -76,6 +76,7 @@ pub trait Coroutine<R = ()> {
76 76 /// values which are allowed to be returned each time a coroutine yields.
77 77 /// For example an iterator-as-a-coroutine would likely have this type as
78 78 /// `T`, the type being iterated over.
79 + #[cfg_attr(not(bootstrap), lang = "coroutine_yield")]
79 80 type Yield;
80 81
81 82 /// The type of value this coroutine returns.
@@ -84,6 +85,7 @@ pub trait Coroutine<R = ()> {
84 85 /// `return` statement or implicitly as the last expression of a coroutine
85 86 /// literal. For example futures would use this as `Result<T, E>` as it
86 87 /// represents a completed future.
88 + #[cfg_attr(not(bootstrap), lang = "coroutine_return")]
87 89 type Return;
88 90
89 91 /// Resumes the execution of this coroutine.