pub enum CppTemplateResolutionError {
AliasCycle {
alias: CodeUnit,
},
ArgumentBinding,
Substitution,
PrimarySelection,
AmbiguousSpecialization {
candidates: Vec<CodeUnit>,
},
}Expand description
Why template-argument resolution failed. Definition diagnostics render
each mode differently; graph scans only care that the resolution is
unproven and match Err(_).
Variants§
AliasCycle
A template alias expansion revisited alias.
ArgumentBinding
The explicit arguments do not bind to the declared template parameters.
Substitution
Bound arguments do not substitute into the alias target’s arguments.
PrimarySelection
No visible primary template declaration could be selected and reconciled for the specialization family.
AmbiguousSpecialization
More than one applicable specialization remains and none is strictly more specialized than every other candidate.
Trait Implementations§
Source§impl Clone for CppTemplateResolutionError
impl Clone for CppTemplateResolutionError
Source§fn clone(&self) -> CppTemplateResolutionError
fn clone(&self) -> CppTemplateResolutionError
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CppTemplateResolutionError
impl Debug for CppTemplateResolutionError
impl Eq for CppTemplateResolutionError
impl StructuralPartialEq for CppTemplateResolutionError
Auto Trait Implementations§
impl Freeze for CppTemplateResolutionError
impl RefUnwindSafe for CppTemplateResolutionError
impl Send for CppTemplateResolutionError
impl Sync for CppTemplateResolutionError
impl Unpin for CppTemplateResolutionError
impl UnsafeUnpin for CppTemplateResolutionError
impl UnwindSafe for CppTemplateResolutionError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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