rustc_resolve

Enum ResolutionError

source
pub(crate) enum ResolutionError<'ra> {
Show 28 variants GenericParamsFromOuterItem(Res<NodeId>, HasGenericParams, DefKind), NameAlreadyUsedInParameterList(Symbol, Span), MethodNotMemberOfTrait(Ident, String, Option<Symbol>), TypeNotMemberOfTrait(Ident, String, Option<Symbol>), ConstNotMemberOfTrait(Ident, String, Option<Symbol>), VariableNotBoundInPattern(BindingError, ParentScope<'ra>), VariableBoundWithDifferentMode(Symbol, Span), IdentifierBoundMoreThanOnceInParameterList(Symbol), IdentifierBoundMoreThanOnceInSamePattern(Symbol), UndeclaredLabel { name: Symbol, suggestion: Option<(Ident, bool)>, }, SelfImportsOnlyAllowedWithin { root: bool, span_with_rename: Span, }, SelfImportCanOnlyAppearOnceInTheList, SelfImportOnlyInImportListWithNonEmptyPrefix, FailedToResolve { segment: Option<Symbol>, label: String, suggestion: Option<(Vec<(Span, String)>, String, Applicability)>, module: Option<ModuleOrUniformRoot<'ra>>, }, CannotCaptureDynamicEnvironmentInFnItem, AttemptToUseNonConstantValueInConstant { ident: Ident, suggestion: &'static str, current: &'static str, type_span: Option<Span>, }, BindingShadowsSomethingUnacceptable { shadowing_binding: PatternSource, name: Symbol, participle: &'static str, article: &'static str, shadowed_binding: Res<NodeId>, shadowed_binding_span: Span, }, ForwardDeclaredGenericParam, ParamInTyOfConstParam { name: Symbol, param_kind: Option<ParamKindInTyOfConstParam>, }, ParamInNonTrivialAnonConst { name: Symbol, param_kind: ParamKindInNonTrivialAnonConst, }, ParamInEnumDiscriminant { name: Symbol, param_kind: ParamKindInEnumDiscriminant, }, SelfInGenericParamDefault, UnreachableLabel { name: Symbol, definition_span: Span, suggestion: Option<(Ident, bool)>, }, TraitImplMismatch { name: Symbol, kind: &'static str, trait_path: String, trait_item_span: Span, code: ErrCode, }, TraitImplDuplicate { name: Symbol, trait_item_span: Span, old_span: Span, }, InvalidAsmSym, LowercaseSelf, BindingInNeverPattern,
}

Variants§

§

GenericParamsFromOuterItem(Res<NodeId>, HasGenericParams, DefKind)

Error E0401: can’t use type or const parameters from outer item.

§

NameAlreadyUsedInParameterList(Symbol, Span)

Error E0403: the name is already used for a type or const parameter in this generic parameter list.

§

MethodNotMemberOfTrait(Ident, String, Option<Symbol>)

Error E0407: method is not a member of trait.

§

TypeNotMemberOfTrait(Ident, String, Option<Symbol>)

Error E0437: type is not a member of trait.

§

ConstNotMemberOfTrait(Ident, String, Option<Symbol>)

Error E0438: const is not a member of trait.

§

VariableNotBoundInPattern(BindingError, ParentScope<'ra>)

Error E0408: variable {} is not bound in all patterns.

§

VariableBoundWithDifferentMode(Symbol, Span)

Error E0409: variable {} is bound in inconsistent ways within the same match arm.

§

IdentifierBoundMoreThanOnceInParameterList(Symbol)

Error E0415: identifier is bound more than once in this parameter list.

§

IdentifierBoundMoreThanOnceInSamePattern(Symbol)

Error E0416: identifier is bound more than once in the same pattern.

§

UndeclaredLabel

Error E0426: use of undeclared label.

Fields

§name: Symbol
§suggestion: Option<(Ident, bool)>
§

SelfImportsOnlyAllowedWithin

Error E0429: self imports are only allowed within a { } list.

Fields

§root: bool
§span_with_rename: Span
§

SelfImportCanOnlyAppearOnceInTheList

Error E0430: self import can only appear once in the list.

§

SelfImportOnlyInImportListWithNonEmptyPrefix

Error E0431: self import can only appear in an import list with a non-empty prefix.

§

FailedToResolve

Error E0433: failed to resolve.

Fields

§segment: Option<Symbol>
§label: String
§

CannotCaptureDynamicEnvironmentInFnItem

Error E0434: can’t capture dynamic environment in a fn item.

§

AttemptToUseNonConstantValueInConstant

Error E0435: attempt to use a non-constant value in a constant.

Fields

§ident: Ident
§suggestion: &'static str
§current: &'static str
§type_span: Option<Span>
§

BindingShadowsSomethingUnacceptable

Error E0530: X bindings cannot shadow Ys.

Fields

§shadowing_binding: PatternSource
§name: Symbol
§participle: &'static str
§article: &'static str
§shadowed_binding: Res<NodeId>
§shadowed_binding_span: Span
§

ForwardDeclaredGenericParam

Error E0128: generic parameters with a default cannot use forward-declared identifiers.

§

ParamInTyOfConstParam

ERROR E0770: the type of const parameters must not depend on other generic parameters.

§

ParamInNonTrivialAnonConst

generic parameters must not be used inside const evaluations.

This error is only emitted when using min_const_generics.

§

ParamInEnumDiscriminant

generic parameters must not be used inside enum discriminants.

This error is emitted even with generic_const_exprs.

§

SelfInGenericParamDefault

Error E0735: generic parameters with a default cannot use Self

§

UnreachableLabel

Error E0767: use of unreachable label

Fields

§name: Symbol
§definition_span: Span
§suggestion: Option<(Ident, bool)>
§

TraitImplMismatch

Error E0323, E0324, E0325: mismatch between trait item and impl item.

Fields

§name: Symbol
§kind: &'static str
§trait_path: String
§trait_item_span: Span
§code: ErrCode
§

TraitImplDuplicate

Error E0201: multiple impl items for the same trait item.

Fields

§name: Symbol
§trait_item_span: Span
§old_span: Span
§

InvalidAsmSym

Inline asm sym operand must refer to a fn or static.

§

LowercaseSelf

self used instead of Self in a generic parameter

§

BindingInNeverPattern

A never pattern has a binding.

Trait Implementations§

source§

impl<'ra> Debug for ResolutionError<'ra>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'ra> Freeze for ResolutionError<'ra>

§

impl<'ra> !RefUnwindSafe for ResolutionError<'ra>

§

impl<'ra> !Send for ResolutionError<'ra>

§

impl<'ra> !Sync for ResolutionError<'ra>

§

impl<'ra> Unpin for ResolutionError<'ra>

§

impl<'ra> !UnwindSafe for ResolutionError<'ra>

Blanket Implementations§

source§

impl<T> Aligned for T

source§

const ALIGN: Alignment = _

Alignment of Self.
source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T, R> CollectAndApply<T, R> for T

source§

fn collect_and_apply<I, F>(iter: I, f: F) -> R
where I: Iterator<Item = T>, F: FnOnce(&[T]) -> R,

Equivalent to f(&iter.collect::<Vec<_>>()).

source§

type Output = R

source§

impl<T> Filterable for T

source§

fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>

Creates a filterable data provider with the given name for debugging. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<P> IntoQueryParam<P> for P

source§

impl<T> MaybeResult<T> for T

source§

type Error = !

source§

fn from(_: Result<T, <T as MaybeResult<T>>::Error>) -> T

source§

fn to_result(self) -> Result<T, <T as MaybeResult<T>>::Error>

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<I, T, U> Upcast<I, U> for T
where U: UpcastFrom<I, T>,

source§

fn upcast(self, interner: I) -> U

source§

impl<I, T> UpcastFrom<I, T> for T

source§

fn upcast_from(from: T, _tcx: I) -> T

source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<Tcx, T> Value<Tcx> for T
where Tcx: DepContext,

source§

default fn from_cycle_error( tcx: Tcx, cycle_error: &CycleError, _guar: ErrorGuaranteed, ) -> T

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<'a, T> Captures<'a> for T
where T: ?Sized,

source§

impl<T> ErasedDestructor for T
where T: 'static,

source§

impl<T> MaybeSendSync for T

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: 104 bytes

Size for each variant:

  • GenericParamsFromOuterItem: 36 bytes
  • NameAlreadyUsedInParameterList: 20 bytes
  • MethodNotMemberOfTrait: 48 bytes
  • TypeNotMemberOfTrait: 48 bytes
  • ConstNotMemberOfTrait: 48 bytes
  • VariableNotBoundInPattern: 104 bytes
  • VariableBoundWithDifferentMode: 20 bytes
  • IdentifierBoundMoreThanOnceInParameterList: 12 bytes
  • IdentifierBoundMoreThanOnceInSamePattern: 12 bytes
  • UndeclaredLabel: 28 bytes
  • SelfImportsOnlyAllowedWithin: 20 bytes
  • SelfImportCanOnlyAppearOnceInTheList: 0 bytes
  • SelfImportOnlyInImportListWithNonEmptyPrefix: 0 bytes
  • FailedToResolve: 104 bytes
  • CannotCaptureDynamicEnvironmentInFnItem: 0 bytes
  • AttemptToUseNonConstantValueInConstant: 64 bytes
  • BindingShadowsSomethingUnacceptable: 72 bytes
  • ForwardDeclaredGenericParam: 0 bytes
  • ParamInTyOfConstParam: 16 bytes
  • ParamInNonTrivialAnonConst: 16 bytes
  • ParamInEnumDiscriminant: 16 bytes
  • SelfInGenericParamDefault: 0 bytes
  • UnreachableLabel: 36 bytes
  • TraitImplMismatch: 64 bytes
  • TraitImplDuplicate: 28 bytes
  • InvalidAsmSym: 0 bytes
  • LowercaseSelf: 0 bytes
  • BindingInNeverPattern: 0 bytes