pub enum ValueCallKind {
UnknownCallee,
ConflictedCallee,
NotCallable(Ty),
ArityMismatch {
expected: usize,
got: usize,
},
ArgMismatch {
index: usize,
expected: Ty,
found: Ty,
},
OverBind {
available: usize,
got: usize,
},
}Expand description
What a ValueCallFact observed. Strict mode maps these onto the
existing TM-3 machinery — escape codes for unresolved callees, the
typed-mismatch code for known-type disagreements — rather than minting
parallel codes (docs/t1c-spec.md §8).
Variants§
UnknownCallee
The callee’s type is Unknown in call position — a strict-mode
escape (E065 class): the call can’t be checked, so a strict author
must annotate or restructure.
ConflictedCallee
The callee’s type is Conflicted (#627) in call position (E066
class).
NotCallable(Ty)
The callee has a known concrete type that isn’t fn(T…): R (and
isn’t divert — calling through a divert-ref variable is a
pre-existing ink pattern this slice deliberately leaves unchecked).
ArityMismatch
Known fn(T…): R callee, wrong argument count.
ArgMismatch
Known fn(T…): R callee; argument index (0-based) has a concrete
type that neither matches the row’s param type nor coerces to it
(int -> float is the one legal directional coercion, spec §4).
OverBind
bind(f, args…) (T1c-3, issue #733) supplied more args than remain
in the known fn(T…): R callee’s param row — over-binding, distinct
from Self::ArityMismatch because bind has no fixed target arity
to match (binding fewer than the remaining params is legal; only
binding more is an error, mirroring the runtime’s
FunctionValueArity fault and #fn’s own E081 over-binding check).
Trait Implementations§
Source§impl Clone for ValueCallKind
impl Clone for ValueCallKind
Source§fn clone(&self) -> ValueCallKind
fn clone(&self) -> ValueCallKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ValueCallKind
impl Debug for ValueCallKind
impl Eq for ValueCallKind
Source§impl PartialEq for ValueCallKind
impl PartialEq for ValueCallKind
impl StructuralPartialEq for ValueCallKind
Auto Trait Implementations§
impl Freeze for ValueCallKind
impl RefUnwindSafe for ValueCallKind
impl Send for ValueCallKind
impl Sync for ValueCallKind
impl Unpin for ValueCallKind
impl UnsafeUnpin for ValueCallKind
impl UnwindSafe for ValueCallKind
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
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.