pub enum CodegenObligationError {
Ambiguity,
Unimplemented,
FulfillmentError,
}
Expand description
These are the error cases for codegen_select_candidate
.
Variants
Ambiguity
Ambiguity can happen when monomorphizing during trans expands to some humongous type that never occurred statically – this humongous type can then overflow, leading to an ambiguous result. So report this as an overflow bug, since I believe this is the only case where ambiguity can result.
Unimplemented
This can trigger when we probe for the source of a 'static
lifetime requirement
on a trait object: impl Foo for dyn Trait {}
has an implicit 'static
bound.
This can also trigger when we have a global bound that is not actually satisfied,
but was included during typeck due to the trivial_bounds feature.
FulfillmentError
Auto Trait Implementations
impl RefUnwindSafe for CodegenObligationError
impl Send for CodegenObligationError
impl Sync for CodegenObligationError
impl Unpin for CodegenObligationError
impl UnwindSafe for CodegenObligationError
Blanket Implementations
sourceimpl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
fn allocate_on(self, arena: &'a Arena<'tcx>) -> &'a mut T
fn allocate_from_iter(
arena: &'a Arena<'tcx>,
iter: impl IntoIterator<Item = T>
) -> &'a mut [T]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut 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: 1 byte
Size for each variant:
Ambiguity
: 0 bytesUnimplemented
: 0 bytesFulfillmentError
: 0 bytes