mirror of
https://github.com/rust-lang/rust.git
synced 2026-04-27 18:57:42 +03:00
Add missing interner lang items
This commit is contained in:
@@ -324,6 +324,7 @@ pub fn from_symbol(symbol: &Symbol) -> Option<Self> {
|
||||
|
||||
Drop, sym::drop, TraitId;
|
||||
Destruct, sym::destruct, TraitId;
|
||||
BikeshedGuaranteedNoDrop,sym::bikeshed_guaranteed_no_drop, TraitId;
|
||||
|
||||
CoerceUnsized, sym::coerce_unsized, TraitId;
|
||||
DispatchFromDyn, sym::dispatch_from_dyn, TraitId;
|
||||
@@ -373,6 +374,8 @@ pub fn from_symbol(symbol: &Symbol) -> Option<Self> {
|
||||
AsyncFn, sym::async_fn, TraitId;
|
||||
AsyncFnMut, sym::async_fn_mut, TraitId;
|
||||
AsyncFnOnce, sym::async_fn_once, TraitId;
|
||||
AsyncFnKindHelper, sym::async_fn_kind_helper,TraitId;
|
||||
AsyncFnKindUpvars, sym::async_fn_kind_upvars,TypeAliasId;
|
||||
|
||||
CallRefFuture, sym::call_ref_future, TypeAliasId;
|
||||
CallOnceFuture, sym::call_once_future, TypeAliasId;
|
||||
@@ -489,6 +492,8 @@ pub fn from_symbol(symbol: &Symbol) -> Option<Self> {
|
||||
IntoIterIntoIter, sym::into_iter, FunctionId;
|
||||
IteratorNext, sym::next, FunctionId;
|
||||
Iterator, sym::iterator, TraitId;
|
||||
FusedIterator, sym::fused_iterator, TraitId;
|
||||
AsyncIterator, sym::async_iterator, TraitId;
|
||||
|
||||
PinNewUnchecked, sym::new_unchecked, FunctionId;
|
||||
|
||||
@@ -509,6 +514,10 @@ pub fn from_symbol(symbol: &Symbol) -> Option<Self> {
|
||||
CStr, sym::CStr, StructId;
|
||||
Ordering, sym::Ordering, EnumId;
|
||||
|
||||
Field, sym::field, TraitId;
|
||||
FieldBase, sym::field_base, TypeAliasId;
|
||||
FieldType, sym::field_type, TypeAliasId;
|
||||
|
||||
@non_lang_core_traits:
|
||||
core::default, Default;
|
||||
core::fmt, Debug;
|
||||
|
||||
@@ -1487,7 +1487,7 @@ fn has_target_features(self, _def_id: Self::FunctionId) -> bool {
|
||||
fn require_lang_item(self, lang_item: SolverLangItem) -> Self::DefId {
|
||||
let lang_items = self.lang_items();
|
||||
let lang_item = match lang_item {
|
||||
SolverLangItem::AsyncFnKindUpvars => unimplemented!(),
|
||||
SolverLangItem::AsyncFnKindUpvars => lang_items.AsyncFnKindUpvars,
|
||||
SolverLangItem::AsyncFnOnceOutput => lang_items.AsyncFnOnceOutput,
|
||||
SolverLangItem::CallOnceFuture => lang_items.CallOnceFuture,
|
||||
SolverLangItem::CallRefFuture => lang_items.CallRefFuture,
|
||||
@@ -1498,8 +1498,8 @@ fn require_lang_item(self, lang_item: SolverLangItem) -> Self::DefId {
|
||||
SolverLangItem::DynMetadata => {
|
||||
return lang_items.DynMetadata.expect("Lang item required but not found.").into();
|
||||
}
|
||||
SolverLangItem::FieldBase => unimplemented!(),
|
||||
SolverLangItem::FieldType => unimplemented!(),
|
||||
SolverLangItem::FieldBase => lang_items.FieldBase,
|
||||
SolverLangItem::FieldType => lang_items.FieldType,
|
||||
};
|
||||
lang_item.expect("Lang item required but not found.").into()
|
||||
}
|
||||
@@ -1508,13 +1508,13 @@ fn require_trait_lang_item(self, lang_item: SolverTraitLangItem) -> TraitIdWrapp
|
||||
let lang_items = self.lang_items();
|
||||
let lang_item = match lang_item {
|
||||
SolverTraitLangItem::AsyncFn => lang_items.AsyncFn,
|
||||
SolverTraitLangItem::AsyncFnKindHelper => unimplemented!(),
|
||||
SolverTraitLangItem::AsyncFnKindHelper => lang_items.AsyncFnKindHelper,
|
||||
SolverTraitLangItem::AsyncFnMut => lang_items.AsyncFnMut,
|
||||
SolverTraitLangItem::AsyncFnOnce => lang_items.AsyncFnOnce,
|
||||
SolverTraitLangItem::AsyncFnOnceOutput => unimplemented!(
|
||||
"This is incorrectly marked as `SolverTraitLangItem`, and is not used by the solver."
|
||||
),
|
||||
SolverTraitLangItem::AsyncIterator => unimplemented!(),
|
||||
SolverTraitLangItem::AsyncIterator => lang_items.AsyncIterator,
|
||||
SolverTraitLangItem::Clone => lang_items.Clone,
|
||||
SolverTraitLangItem::Copy => lang_items.Copy,
|
||||
SolverTraitLangItem::Coroutine => lang_items.Coroutine,
|
||||
@@ -1525,7 +1525,7 @@ fn require_trait_lang_item(self, lang_item: SolverTraitLangItem) -> TraitIdWrapp
|
||||
SolverTraitLangItem::FnMut => lang_items.FnMut,
|
||||
SolverTraitLangItem::FnOnce => lang_items.FnOnce,
|
||||
SolverTraitLangItem::FnPtrTrait => lang_items.FnPtrTrait,
|
||||
SolverTraitLangItem::FusedIterator => unimplemented!(),
|
||||
SolverTraitLangItem::FusedIterator => lang_items.FusedIterator,
|
||||
SolverTraitLangItem::Future => lang_items.Future,
|
||||
SolverTraitLangItem::Iterator => lang_items.Iterator,
|
||||
SolverTraitLangItem::PointeeTrait => lang_items.PointeeTrait,
|
||||
@@ -1536,11 +1536,9 @@ fn require_trait_lang_item(self, lang_item: SolverTraitLangItem) -> TraitIdWrapp
|
||||
SolverTraitLangItem::Tuple => lang_items.Tuple,
|
||||
SolverTraitLangItem::Unpin => lang_items.Unpin,
|
||||
SolverTraitLangItem::Unsize => lang_items.Unsize,
|
||||
SolverTraitLangItem::BikeshedGuaranteedNoDrop => {
|
||||
unimplemented!()
|
||||
}
|
||||
SolverTraitLangItem::BikeshedGuaranteedNoDrop => lang_items.BikeshedGuaranteedNoDrop,
|
||||
SolverTraitLangItem::TrivialClone => lang_items.TrivialClone,
|
||||
SolverTraitLangItem::Field => unimplemented!(),
|
||||
SolverTraitLangItem::Field => lang_items.Field,
|
||||
};
|
||||
lang_item.expect("Lang item required but not found.").into()
|
||||
}
|
||||
|
||||
@@ -199,7 +199,9 @@ pub(super) fn prefill() -> DashMap<Symbol, (), BuildHasherDefault<FxHasher>> {
|
||||
derive,
|
||||
discriminant_kind,
|
||||
discriminant_type,
|
||||
dispatch_from_dyn,destruct,
|
||||
dispatch_from_dyn,
|
||||
destruct,
|
||||
bikeshed_guaranteed_no_drop,
|
||||
div_assign,
|
||||
div,
|
||||
doc,
|
||||
@@ -232,6 +234,8 @@ pub(super) fn prefill() -> DashMap<Symbol, (), BuildHasherDefault<FxHasher>> {
|
||||
async_fn_once_output,
|
||||
async_fn_mut,
|
||||
async_fn,
|
||||
async_fn_kind_helper,
|
||||
async_fn_kind_upvars,
|
||||
call_ref_future,
|
||||
call_once_future,
|
||||
fn_ptr_addr,
|
||||
@@ -297,6 +301,8 @@ pub(super) fn prefill() -> DashMap<Symbol, (), BuildHasherDefault<FxHasher>> {
|
||||
iter,
|
||||
Iterator,
|
||||
iterator,
|
||||
fused_iterator,
|
||||
async_iterator,
|
||||
keyword,
|
||||
lang,
|
||||
lang_items,
|
||||
@@ -568,4 +574,7 @@ pub(super) fn prefill() -> DashMap<Symbol, (), BuildHasherDefault<FxHasher>> {
|
||||
contracts_internals,
|
||||
freeze_impls,
|
||||
unsized_fn_params,
|
||||
field,
|
||||
field_base,
|
||||
field_type,
|
||||
}
|
||||
|
||||
@@ -936,6 +936,14 @@ extern "rust-call" fn async_call_once(self, args: A) -> Self::CallOnceFuture {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mod internal_implementation_detail {
|
||||
#[lang = "async_fn_kind_helper"]
|
||||
trait AsyncFnKindHelper<GoalKind> {
|
||||
#[lang = "async_fn_kind_upvars"]
|
||||
type Upvars<'closure_env, Inputs, Upvars, BorrowedUpvarsAsFnPtr>;
|
||||
}
|
||||
}
|
||||
}
|
||||
pub use self::async_function::{AsyncFn, AsyncFnMut, AsyncFnOnce};
|
||||
// endregion:async_fn
|
||||
|
||||
Reference in New Issue
Block a user