Error code E0799

Something other than a type or const parameter has been used when one was expected.

Erroneous code example:

fn bad1() -> impl Sized   use<main> {}

fn bad2(x: ()) -> impl Sized   use<x> {}

fn main() {}

In the given examples, for bad1, the name main corresponds to a function rather than a type or const parameter. In bad2, the name x corresponds to a function argument rather than a type or const parameter.

Only type and const parameters, including Self, may be captured by use<...> precise capturing bounds.