pub enum VMError {
Show 14 variants
TypeError {
expected: &'static str,
got: &'static str,
context: String,
},
DivisionByZero,
AssertionFailed,
StackUnderflow,
InvalidOpcode(u8),
NotCallable(String),
UndefinedVariable(String),
AttrNotFound(String),
Internal(String),
StackOverflow,
Throw(String),
UnknownBuiltin(String),
InfiniteRecursion,
ImportError(String),
}Expand description
Errors produced during bytecode VM execution.
Variants§
TypeError
A type mismatch at runtime.
DivisionByZero
Integer division by zero.
AssertionFailed
An assertion failed.
StackUnderflow
Stack underflow (internal compiler/VM bug).
InvalidOpcode(u8)
Invalid opcode byte encountered.
NotCallable(String)
Attempt to call a non-function value.
UndefinedVariable(String)
An undefined variable was referenced.
AttrNotFound(String)
An attribute was not found in an attrset.
Internal(String)
Internal VM error (should not happen in correct programs).
StackOverflow
Maximum call depth exceeded.
Throw(String)
A throw or abort was invoked.
UnknownBuiltin(String)
An unknown builtin was referenced.
InfiniteRecursion
A thunk entered infinite recursion (blackhole).
ImportError(String)
An I/O error during import.
Trait Implementations§
impl Eq for VMError
Source§impl Error for VMError
impl Error for VMError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
impl StructuralPartialEq for VMError
Auto Trait Implementations§
impl Freeze for VMError
impl RefUnwindSafe for VMError
impl Send for VMError
impl Sync for VMError
impl Unpin for VMError
impl UnsafeUnpin for VMError
impl UnwindSafe for VMError
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.