pub struct ConstraintGenerator {Show 36 fields
pub scopes: Vec<(Location, ScopePtr)>,
pub module: Option<ModulePtr>,
pub builtin_types: *mut BuiltinTypes,
pub arena: *mut TypeArena,
pub root_scope: *mut Scope,
pub type_context: TypeContext,
pub inferred_bindings: DenseHashMap<Symbol, InferredBinding>,
pub constraints: Vec<ConstraintPtr>,
pub free_types: TypeIds,
pub scope_to_function: DenseHashMap<*mut Scope, TypeId>,
pub ast_type_alias_defining_scopes: DenseHashMap<*const AstStatTypeAlias, Option<ScopePtr>>,
pub dfg: *const DataFlowGraph,
pub refinement_arena: RefinementArena,
pub recursion_count: i32,
pub errors: Vec<TypeError>,
pub normalizer: *mut Normalizer,
pub type_function_runtime: *mut TypeFunctionRuntime,
pub ast_type_function_environment_scopes: DenseHashMap<*const AstStatTypeFunction, Option<ScopePtr>>,
pub module_resolver: *mut ModuleResolver,
pub ice: *mut InternalErrorReporter,
pub global_scope: Option<ScopePtr>,
pub type_function_scope: Option<ScopePtr>,
pub prepare_module_scope: Rc<dyn Fn(&ModuleName, &ScopePtr)>,
pub require_cycles: Vec<RequireCycle>,
pub local_types: DenseHashMap<TypeId, TypeIds>,
pub inferred_expr_cache: DenseHashMap<*mut AstExpr, Inference>,
pub class_decl_records: DenseHashMap<*mut AstLocal, ClassDeclRecord>,
pub logger: *mut DcrLogger,
pub recursion_limit_met: bool,
pub cgraph: *mut ConstraintGraph,
pub interior_free_types: Vec<InteriorFreeTypes>,
pub unions_to_simplify: Vec<TypeId>,
pub uninitialized_globals: Set<AstName>,
pub polarity: Polarity,
pub prop_index_pairs_seen: DenseHashMap<(TypeId, String), TypeId>,
pub large_table_depth: usize,
}Fields§
§scopes: Vec<(Location, ScopePtr)>§module: Option<ModulePtr>§builtin_types: *mut BuiltinTypes§arena: *mut TypeArena§root_scope: *mut Scope§type_context: TypeContext§inferred_bindings: DenseHashMap<Symbol, InferredBinding>§constraints: Vec<ConstraintPtr>§free_types: TypeIds§scope_to_function: DenseHashMap<*mut Scope, TypeId>§ast_type_alias_defining_scopes: DenseHashMap<*const AstStatTypeAlias, Option<ScopePtr>>§dfg: *const DataFlowGraph§refinement_arena: RefinementArena§recursion_count: i32§errors: Vec<TypeError>§normalizer: *mut Normalizer§type_function_runtime: *mut TypeFunctionRuntime§ast_type_function_environment_scopes: DenseHashMap<*const AstStatTypeFunction, Option<ScopePtr>>§module_resolver: *mut ModuleResolver§ice: *mut InternalErrorReporter§global_scope: Option<ScopePtr>§type_function_scope: Option<ScopePtr>§prepare_module_scope: Rc<dyn Fn(&ModuleName, &ScopePtr)>§require_cycles: Vec<RequireCycle>§local_types: DenseHashMap<TypeId, TypeIds>§inferred_expr_cache: DenseHashMap<*mut AstExpr, Inference>§class_decl_records: DenseHashMap<*mut AstLocal, ClassDeclRecord>§logger: *mut DcrLogger§recursion_limit_met: bool§cgraph: *mut ConstraintGraph§interior_free_types: Vec<InteriorFreeTypes>§unions_to_simplify: Vec<TypeId>§uninitialized_globals: Set<AstName>§polarity: Polarity§prop_index_pairs_seen: DenseHashMap<(TypeId, String), TypeId>§large_table_depth: usizeImplementations§
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn add_constraint_scope_ptr_location_constraint_v( &mut self, scope: &ScopePtr, location: Location, cv: ConstraintV, ) -> *mut Constraint
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn add_constraint_scope_ptr_unique_ptr_constraint( &mut self, _scope: &ScopePtr, c: Box<Constraint>, ) -> Box<Constraint>
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn add_type_pack( &mut self, head: Vec<TypeId>, tail: Option<TypePackId>, ) -> TypePackId
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn apply_refinements( &mut self, scope: &ScopePtr, location: Location, refinement: RefinementId, )
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_binary( &mut self, scope: &ScopePtr, op: AstExprBinaryOp, left: *mut AstExpr, right: *mut AstExpr, expected_type: Option<TypeId>, ) -> (TypeId, TypeId, RefinementId)
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_scope_ptr_ast_expr_constant_string_optional_type_id_bool( &mut self, scope: &ScopePtr, string: *mut AstExprConstantString, expected_type: Option<TypeId>, force_singleton: bool, ) -> Inference
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_scope_ptr_ast_expr_constant_bool_optional_type_id_bool( &mut self, scope: &ScopePtr, bool_expr: *mut AstExprConstantBool, expected_type: Option<TypeId>, force_singleton: bool, ) -> Inference
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_scope_ptr_ast_expr_local( &mut self, scope: &ScopePtr, local: *mut AstExprLocal, ) -> Inference
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_scope_ptr_ast_expr_global( &mut self, scope: &ScopePtr, global: *mut AstExprGlobal, ) -> Inference
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_scope_ptr_ast_expr_index_name( &mut self, scope: &ScopePtr, index_name: *mut AstExprIndexName, ) -> Inference
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_scope_ptr_ast_expr_index_expr( &mut self, scope: &ScopePtr, index_expr: *mut AstExprIndexExpr, ) -> Inference
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_scope_ptr_ast_expr_function_optional_type_id_bool( &mut self, scope: &ScopePtr, func: *mut AstExprFunction, expected_type: Option<TypeId>, generalize: bool, ) -> Inference
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_scope_ptr_ast_expr_unary( &mut self, scope: &ScopePtr, unary: *mut AstExprUnary, ) -> Inference
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_scope_ptr_ast_expr_binary_optional_type_id( &mut self, scope: &ScopePtr, binary: *mut AstExprBinary, expected_type: Option<TypeId>, ) -> TypeId
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_scope_ptr_ast_expr_if_else_optional_type_id( &mut self, scope: &ScopePtr, if_else: *mut AstExprIfElse, expected_type: Option<TypeId>, ) -> Inference
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_scope_ptr_ast_expr_type_assertion( &mut self, scope: &ScopePtr, type_assert: *mut AstExprTypeAssertion, ) -> Inference
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_scope_ptr_ast_expr_interp_string( &mut self, scope: &ScopePtr, interp_string: *mut AstExprInterpString, ) -> Inference
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_scope_ptr_ast_expr_instantiate( &mut self, scope: &ScopePtr, explicit_type_instantiation: *mut AstExprInstantiate, ) -> Inference
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_scope_ptr_ast_expr_table_optional_type_id( &mut self, scope: &ScopePtr, expr: *mut AstExprTable, expected_type: Option<TypeId>, ) -> Inference
Source§impl ConstraintGenerator
impl ConstraintGenerator
Sourcepub fn check_scope_ptr_ast_expr(
&mut self,
scope: &ScopePtr,
expr: *mut AstExpr,
) -> Inference
pub fn check_scope_ptr_ast_expr( &mut self, scope: &ScopePtr, expr: *mut AstExpr, ) -> Inference
Convenience: check(scope, expr) with all C++ defaults.
Sourcepub fn check_scope_ptr_ast_expr_optional_type_id(
&mut self,
scope: &ScopePtr,
expr: *mut AstExpr,
expected_type: Option<TypeId>,
) -> Inference
pub fn check_scope_ptr_ast_expr_optional_type_id( &mut self, scope: &ScopePtr, expr: *mut AstExpr, expected_type: Option<TypeId>, ) -> Inference
Convenience: check(scope, expr, expectedType).
Sourcepub fn check_scope_ptr_ast_expr_optional_type_id_bool(
&mut self,
scope: &ScopePtr,
expr: *mut AstExpr,
expected_type: Option<TypeId>,
force_singleton: bool,
) -> Inference
pub fn check_scope_ptr_ast_expr_optional_type_id_bool( &mut self, scope: &ScopePtr, expr: *mut AstExpr, expected_type: Option<TypeId>, force_singleton: bool, ) -> Inference
Convenience: check(scope, expr, expectedType, forceSingleton).
pub fn check_scope_ptr_ast_expr_optional_type_id_bool_bool( &mut self, scope: &ScopePtr, expr: *mut AstExpr, expected_type: Option<TypeId>, force_singleton: bool, generalize: bool, ) -> Inference
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_expr_call( &mut self, scope: &ScopePtr, call: *mut AstExprCall, fn_type: TypeId, func_begin: Checkpoint, func_end: Checkpoint, ) -> InferencePack
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_function_body( &mut self, scope: &ScopePtr, fn_expr: &AstExprFunction, )
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_function_signature( &mut self, parent: &ScopePtr, enclosing_class: *mut ClassDeclRecord, fn_node: *mut AstExprFunction, expected_type: Option<TypeId>, original_name: Option<Location>, ) -> FunctionSignature
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_index_name( &mut self, scope: &ScopePtr, key: *const RefinementKey, indexee: *mut AstExpr, index: &String, index_location: Location, ) -> Inference
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_pack_scope_ptr_ast_array_ast_expr_vector_optional_type_id( &mut self, scope: &ScopePtr, exprs: AstArray<*mut AstExpr>, expected_types: &Vec<Option<TypeId>>, ) -> InferencePack
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_pack_scope_ptr_ast_expr_vector_optional_type_id_bool( &mut self, scope: &ScopePtr, expr: *mut AstExpr, expected_types: &Vec<Option<TypeId>>, generalize: bool, ) -> InferencePack
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn check_pack_scope_ptr_ast_expr_call( &mut self, scope: &ScopePtr, call: *mut AstExprCall, ) -> InferencePack
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn compute_refinement( &mut self, scope: *mut Scope, location: Location, refinement: RefinementId, refis: *mut RefinementContext, sense: bool, eq: bool, constraints: *mut Vec<ConstraintV>, )
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn constraint_generator( module: ModulePtr, normalizer: NonNull<Normalizer>, type_function_runtime: NonNull<TypeFunctionRuntime>, module_resolver: NonNull<ModuleResolver>, builtin_types: NonNull<BuiltinTypes>, ice: NonNull<InternalErrorReporter>, global_scope: ScopePtr, type_function_scope: ScopePtr, prepare_module_scope: Rc<dyn Fn(&ModuleName, &ScopePtr)>, logger: *mut DcrLogger, dfg: NonNull<DataFlowGraph>, require_cycles: Vec<RequireCycle>, cgraph: *mut ConstraintGraph, ) -> Self
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn create_generic_packs( &mut self, scope: &ScopePtr, generics: AstArray<*mut AstGenericTypePack>, use_cache: bool, add_types: bool, ) -> Vec<(Name, GenericTypePackDefinition)>
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn create_generics( &mut self, scope: &ScopePtr, generics: AstArray<*mut AstGenericType>, use_cache: bool, add_types: bool, ) -> Vec<(Name, GenericTypeDefinition)>
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn create_type_function_instance( &mut self, function: &TypeFunction, type_arguments: Vec<TypeId>, pack_arguments: Vec<TypePackId>, scope: &ScopePtr, location: Location, ) -> TypeId
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn fill_in_inferred_bindings( &mut self, _global_scope: &ScopePtr, _block: *mut AstStatBlock, )
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn flatten_pack( &mut self, scope: &ScopePtr, location: Location, pack: InferencePack, ) -> Inference
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn fresh_type(&mut self, scope: &ScopePtr, polarity: Polarity) -> TypeId
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn fresh_type_pack( &mut self, scope: &ScopePtr, polarity: Polarity, ) -> TypePackId
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn make_union_vector_type_id(&mut self, options: Vec<TypeId>) -> TypeId
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn prepopulate_global_scope( &mut self, global_scope: &ScopePtr, program: *mut AstStatBlock, )
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn prepopulate_global_scope_for_fragment_typecheck( &mut self, _global_scope: &ScopePtr, _resume_scope: &ScopePtr, program: *mut AstStatBlock, )
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn prototype_type_definitions( &mut self, scope: *mut Scope, block: *mut AstStatBlock, )
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn record_inferred_binding(&mut self, local: *mut AstLocal, ty: TypeId)
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn record_property_assignment(&mut self, ty: TypeId) -> bool
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn report_code_too_complex(&mut self, location: Location)
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn report_error(&mut self, location: Location, err: TypeErrorData)
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn resolve_function_type( &mut self, scope: &ScopePtr, _ty: *mut AstType, fn_node: &AstTypeFunction, in_type_arguments: bool, replace_error_with_fresh: bool, ) -> TypeId
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn resolve_generic_default_parameters( &mut self, defn_scope: *mut Scope, alias: *mut AstStatTypeAlias, fun: &TypeFun, )
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn resolve_reference_type( &mut self, scope: &ScopePtr, ty: *mut AstType, ref_: *mut AstTypeReference, in_type_arguments: bool, replace_error_with_fresh: bool, ) -> TypeId
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn resolve_type_arguments( &mut self, scope: *mut Scope, type_arguments: AstArray<AstTypeOrPack>, ) -> (Vec<TypeId>, Vec<TypePackId>)
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn resolve_type_pack_scope_ptr_ast_type_pack_bool_bool_polarity( &mut self, scope: *mut Scope, tp: *mut AstTypePack, in_type_argument: bool, replace_error_with_fresh: bool, initial_polarity: Polarity, ) -> TypePackId
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn resolve_type_pack_scope_ptr_ast_type_pack_bool_bool( &mut self, scope: *mut Scope, tp: *mut AstTypePack, in_type_argument: bool, replace_error_with_fresh: bool, ) -> TypePackId
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn resolve_type_pack_scope_ptr_ast_type_list_bool_bool( &mut self, _scope: *mut Scope, _list: &AstTypeList, _in_type_arguments: bool, _replace_error_with_fresh: bool, ) -> TypePackId
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn resolve_type_pack_scope_ptr_ast_type_list_bool_bool_polarity( &mut self, scope: *mut Scope, list: &AstTypeList, in_type_arguments: bool, replace_error_with_fresh: bool, initial_polarity: Polarity, ) -> TypePackId
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn run(&mut self, block: *mut AstStatBlock) -> ConstraintSet
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn run_on_fragment( &mut self, resume_scope: &ScopePtr, block: *mut AstStatBlock, ) -> ConstraintSet
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn union_refinements( &mut self, scope: &ScopePtr, location: Location, lhs: &RefinementContext, rhs: &RefinementContext, dest: *mut RefinementContext, _constraints: *mut Vec<ConstraintV>, )
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn update_r_value_refinements_scope_ptr_def_id_type_id( &self, scope: &ScopePtr, def: DefId, ty: TypeId, )
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_block_without_child_scope( &mut self, scope: *mut Scope, block: *mut AstStatBlock, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat( &mut self, scope: &ScopePtr, stat: *mut AstStat, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat_local( &mut self, scope: &ScopePtr, stat_local: *mut AstStatLocal, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat_for( &mut self, scope: &ScopePtr, for_: *mut AstStatFor, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat_for_in( &mut self, scope: &ScopePtr, for_in: *mut AstStatForIn, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat_while( &mut self, scope: &ScopePtr, while_: *mut AstStatWhile, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat_repeat( &mut self, scope: &ScopePtr, repeat: *mut AstStatRepeat, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat_local_function( &mut self, scope: &ScopePtr, function: *mut AstStatLocalFunction, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat_function( &mut self, scope: &ScopePtr, function: *mut AstStatFunction, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat_return( &mut self, scope: ScopePtr, ret: *mut AstStatReturn, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat_block( &mut self, scope: &ScopePtr, block: *mut AstStatBlock, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat_assign( &mut self, scope: &ScopePtr, assign: *mut AstStatAssign, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat_if( &mut self, scope: &ScopePtr, if_statement: *mut AstStatIf, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat_type_alias( &mut self, scope: &ScopePtr, alias: *mut AstStatTypeAlias, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat_type_function( &mut self, scope: &ScopePtr, function: *mut AstStatTypeFunction, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat_declare_global( &mut self, scope: *mut Scope, global: *mut AstStatDeclareGlobal, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat_declare_extern_type( &mut self, scope: *mut Scope, declared_extern_type: *mut AstStatDeclareExternType, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat_declare_function( &mut self, scope: &ScopePtr, global: *mut AstStatDeclareFunction, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat_class( &mut self, scope: &ScopePtr, stat_class: *mut AstStatClass, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat_error( &mut self, scope: &ScopePtr, error: *mut AstStatError, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_scope_ptr_ast_stat_compound_assign( &mut self, scope: &ScopePtr, assign: *mut AstStatCompoundAssign, ) -> ControlFlow
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_fragment_root( &mut self, resume_scope: &ScopePtr, block: *mut AstStatBlock, )
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_l_value_scope_ptr_ast_expr_local_type_id( &mut self, scope: &ScopePtr, local: *mut AstExprLocal, rhs_type: TypeId, )
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_l_value_scope_ptr_ast_expr_global_type_id( &mut self, scope: &ScopePtr, global: *mut AstExprGlobal, rhs_type: TypeId, )
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_l_value_scope_ptr_ast_expr_index_name_type_id( &mut self, scope: &ScopePtr, expr: *mut AstExprIndexName, rhs_type: TypeId, )
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_l_value_scope_ptr_ast_expr_index_expr_type_id( &mut self, scope: &ScopePtr, expr: *mut AstExprIndexExpr, rhs_type: TypeId, )
Source§impl ConstraintGenerator
impl ConstraintGenerator
pub fn visit_module_root(&mut self, block: *mut AstStatBlock)
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for ConstraintGenerator
impl !Send for ConstraintGenerator
impl !Sync for ConstraintGenerator
impl !UnwindSafe for ConstraintGenerator
impl Freeze for ConstraintGenerator
impl Unpin for ConstraintGenerator
impl UnsafeUnpin for ConstraintGenerator
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