Structs

Replace [type error] with ty::Infer(ty::Var) to display _.

Information about a constant or a type containing inference variables.

Data on the parent definition where a generic argument was declared.

Turn resolved type params into [type error] to signal we don’t want to display them. After performing that replacement, we’ll turn all remaining infer type params to use their name from their definition, and replace all the [type error]s back to being infer so they display in the output as _. If we didn’t go through [type error], we would either show all type params by their name or _, neither of which is desireable: we want to show all types that we could infer as _ to reduce verbosity and avoid telling the user about unnecessary type annotations.

Enums

An observation about the use site of a type to be emitted as an additional note in an inference failure error.

Functions

Given a closure signature, return a String containing a list of all its argument types.

Suggest giving an appropriate return type to a closure expression.