# Type Alias rustc_middle::query::queries::param_env::ProvidedValue

source ·

    pub type ProvidedValue<'tcx> = ParamEnv<'tcx>;

Expand description

This type alias specifies the type returned from query providers and the type used for decoding. For regular queries this is the declared returned type `V`, but `arena_cache` will use `<V as Deref>::Target` instead.

## Aliased Type§

    struct ProvidedValue<'tcx> {
        packed: CopyTaggedPtr<&'tcx RawList<TypeInfo, Clause<'tcx>>, ParamTag, true>,
    }

## Fields§

§`packed: CopyTaggedPtr<&'tcx RawList<TypeInfo, Clause<'tcx>>, ParamTag, true>`

This packs both caller bounds and the reveal enum into one pointer.

Caller bounds are `Obligation`s that the caller must satisfy. This is basically the set of bounds on the in-scope type parameters, translated into `Obligation`s, and elaborated and normalized.

Use the `caller_bounds()` method to access.

Typically, this is `Reveal::UserFacing`, but during codegen we want `Reveal::All`.

Note: This is packed, use the reveal() method to access it.

## Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain `repr(...)` attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 8 bytes