Skip to content

Commit 2c6a521

Browse files
Provide Future::Output and Iterator lang items
1 parent 1e0df17 commit 2c6a521

File tree

4 files changed

+9
-3
lines changed

4 files changed

+9
-3
lines changed

src/tools/rust-analyzer/crates/hir-def/src/lang_item.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,7 @@ language_item_table! {
461461

462462
Context, sym::Context, context, Target::Struct, GenericRequirement::None;
463463
FuturePoll, sym::poll, future_poll_fn, Target::Method(MethodKind::Trait { body: false }), GenericRequirement::None;
464+
FutureOutput, sym::future_output, future_output, Target::TypeAlias, GenericRequirement::None;
464465

465466
Option, sym::Option, option_type, Target::Enum, GenericRequirement::None;
466467
OptionSome, sym::Some, option_some_variant, Target::Variant, GenericRequirement::None;
@@ -475,6 +476,7 @@ language_item_table! {
475476
IntoFutureIntoFuture, sym::into_future, into_future_fn, Target::Method(MethodKind::Trait { body: false }), GenericRequirement::None;
476477
IntoIterIntoIter, sym::into_iter, into_iter_fn, Target::Method(MethodKind::Trait { body: false }), GenericRequirement::None;
477478
IteratorNext, sym::next, next_fn, Target::Method(MethodKind::Trait { body: false}), GenericRequirement::None;
479+
Iterator, sym::iterator, iterator, Target::Trait, GenericRequirement::None;
478480

479481
PinNewUnchecked, sym::new_unchecked, new_unchecked_fn, Target::Method(MethodKind::Inherent), GenericRequirement::None;
480482

src/tools/rust-analyzer/crates/ide/src/hover/tests.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8465,7 +8465,7 @@ impl Iterator for S {
84658465
file_id: FileId(
84668466
1,
84678467
),
8468-
full_range: 7800..8008,
8468+
full_range: 7800..8042,
84698469
focus_range: 7865..7871,
84708470
name: "Future",
84718471
kind: Trait,
@@ -8479,8 +8479,8 @@ impl Iterator for S {
84798479
file_id: FileId(
84808480
1,
84818481
),
8482-
full_range: 8638..9104,
8483-
focus_range: 8682..8690,
8482+
full_range: 8672..9171,
8483+
focus_range: 8749..8757,
84848484
name: "Iterator",
84858485
kind: Trait,
84868486
container_name: "iterator",

src/tools/rust-analyzer/crates/intern/src/symbol/symbols.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ define_symbols! {
239239
fundamental,
240240
future_trait,
241241
future,
242+
future_output,
242243
Future,
243244
ge,
244245
get_context,
@@ -273,6 +274,7 @@ define_symbols! {
273274
iter_mut,
274275
iter,
275276
Iterator,
277+
iterator,
276278
keyword,
277279
lang,
278280
le,

src/tools/rust-analyzer/crates/test-utils/src/minicore.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1195,6 +1195,7 @@ pub mod future {
11951195
#[doc(notable_trait)]
11961196
#[lang = "future_trait"]
11971197
pub trait Future {
1198+
#[lang = "future_output"]
11981199
type Output;
11991200
#[lang = "poll"]
12001201
fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>;
@@ -1292,6 +1293,7 @@ pub mod iter {
12921293
mod traits {
12931294
mod iterator {
12941295
#[doc(notable_trait)]
1296+
#[lang = "iterator"]
12951297
pub trait Iterator {
12961298
type Item;
12971299
#[lang = "next"]

0 commit comments

Comments
 (0)