Skip to main content

DefaultJudge

Struct DefaultJudge 

Source
pub struct DefaultJudge<'a> { /* private fields */ }
Expand description

Default implementation of the Judge trait.

Uses basic caching with FxHashMap. For production use with incremental compilation, consider a Salsa-based implementation.

Implementations§

Source§

impl<'a> DefaultJudge<'a>

Source

pub fn new( db: &'a dyn TypeDatabase, env: &'a TypeEnvironment, config: JudgeConfig, ) -> Self

Create a new Judge with the given database and configuration.

Source

pub fn with_defaults(db: &'a dyn TypeDatabase, env: &'a TypeEnvironment) -> Self

Create a Judge with default configuration.

Source

pub fn clear_caches(&self)

Clear all caches.

Source

pub fn db(&self) -> &'a dyn TypeDatabase

Get the underlying database.

Trait Implementations§

Source§

impl<'a> Judge for DefaultJudge<'a>

Source§

fn is_subtype(&self, source: TypeId, target: TypeId) -> bool

Check if source is a subtype of target. Read more
Source§

fn evaluate(&self, type_id: TypeId) -> TypeId

Evaluate a type, resolving meta-types (conditional, mapped, keyof, etc.). Read more
Source§

fn instantiate(&self, generic: TypeId, args: &[TypeId]) -> TypeId

Instantiate a generic type with type arguments. Read more
Source§

fn classify_iterable(&self, type_id: TypeId) -> IterableKind

Classify how a type can be iterated. Read more
Source§

fn classify_callable(&self, type_id: TypeId) -> CallableKind

Classify how a type can be called. Read more
Source§

fn classify_primitive(&self, type_id: TypeId) -> PrimitiveFlags

Get primitive-like behavior flags for a type. Read more
Source§

fn classify_truthiness(&self, type_id: TypeId) -> TruthinessKind

Classify a type’s truthiness behavior. Read more
Source§

fn apparent_type(&self, type_id: TypeId) -> TypeId

Get the apparent type (unwrap type params, resolve constraints).
Source§

fn get_property(&self, type_id: TypeId, name: Atom) -> PropertyResult

Get a specific property’s type from a type. Read more
Source§

fn get_members(&self, type_id: TypeId) -> Arc<Vec<(Atom, TypeId)>>

Get all members of a type as (name, type) pairs.
Source§

fn get_call_signatures(&self, type_id: TypeId) -> Arc<Vec<CallSignature>>

Get call signatures of a type.
Source§

fn get_construct_signatures(&self, type_id: TypeId) -> Arc<Vec<CallSignature>>

Get construct signatures of a type.
Source§

fn get_index_type(&self, object: TypeId, key: TypeId) -> TypeId

Get the result of indexing: T[K]
Source§

fn get_index_signature( &self, type_id: TypeId, kind: IndexKind, ) -> Option<TypeId>

Get index signature type (string or number indexer).
Source§

fn get_keyof(&self, type_id: TypeId) -> TypeId

Get keyof: keyof T
Source§

fn config(&self) -> &JudgeConfig

Get the current configuration.
Source§

fn are_identical(&self, a: TypeId, b: TypeId) -> bool

Check if two types are identical (stricter than subtyping). Read more

Auto Trait Implementations§

§

impl<'a> !Freeze for DefaultJudge<'a>

§

impl<'a> !RefUnwindSafe for DefaultJudge<'a>

§

impl<'a> !Send for DefaultJudge<'a>

§

impl<'a> !Sync for DefaultJudge<'a>

§

impl<'a> Unpin for DefaultJudge<'a>

§

impl<'a> UnsafeUnpin for DefaultJudge<'a>

§

impl<'a> !UnwindSafe for DefaultJudge<'a>

Blanket Implementations§

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> 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, 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<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more
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