introduce CoercePointeeWellformed for coherence checks at typeck stage
This commit is contained in:
parent
43ca9d18e3
commit
de405dcb8f
15 changed files with 337 additions and 36 deletions
|
@ -370,6 +370,8 @@ language_item_table! {
|
|||
|
||||
PointerLike, sym::pointer_like, pointer_like, Target::Trait, GenericRequirement::Exact(0);
|
||||
|
||||
CoercePointeeWellformed, sym::coerce_pointee_wellformed, coerce_pointee_wellformed_trait, Target::Trait, GenericRequirement::Exact(0);
|
||||
|
||||
ConstParamTy, sym::const_param_ty, const_param_ty_trait, Target::Trait, GenericRequirement::Exact(0);
|
||||
UnsizedConstParamTy, sym::unsized_const_param_ty, unsized_const_param_ty_trait, Target::Trait, GenericRequirement::Exact(0);
|
||||
|
||||
|
@ -429,9 +431,13 @@ language_item_table! {
|
|||
ContractCheckRequires, sym::contract_check_requires, contract_check_requires_fn, Target::Fn, GenericRequirement::None;
|
||||
}
|
||||
|
||||
/// The requirement imposed on the generics of a lang item
|
||||
pub enum GenericRequirement {
|
||||
/// No restriction on the generics
|
||||
None,
|
||||
/// A minimum number of generics that is demanded on a lang item
|
||||
Minimum(usize),
|
||||
/// The number of generics must match precisely as stipulated
|
||||
Exact(usize),
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue