//! An include of a shape that made no promise, with nothing to vary. //! //! The arguments are literal, so there is nothing here a request decides, and //! the caller rewrites the call to the callee's `#[constant]` shim. `label` //! made no such promise, so there is no shim and the call does not resolve. //! //! That refusal is the whole enforcement. A proc macro sees one invocation and //! no other, so the caller cannot read the callee's flags; inlining on the //! shape of the arguments alone would bake one evaluation of a shape that reads //! a clock into a residual and serve it forever. use quasi_declare::declare; declare! { pub shape label(text: &str) -> Node; text text; } declare! { #[staged] pub shape panel() -> Node; region "panel" as Pane { include label("written down"); } } fn main() {}