rust-analyzer/crates/hir/src
bors 1da9156b0d Auto merge of #12982 - jridgewell:into_future, r=Veykril
Implement IntoFuture type inference

One of my projects is using [IntoFuture](https://doc.rust-lang.org/std/future/trait.IntoFuture.html) to make our async code a little less verbose. However, rust-analyzer can't infer the output type of an await expression if the value uses `IntoFuture` to convert into another type. So we're getting `{unknown}` types everywhere since switching.

`foo.await` itself [desugars](e4417cf020/compiler/rustc_ast_lowering/src/expr.rs (L644-L658)) into a `match into_future(foo) {}`, with every `Future` impl getting a [default](e4417cf020/library/core/src/future/into_future.rs (L131-L139)) `IntoFuture` implementation. I'm not sure if we want to disable the old `future_trait` paths, since this only recently [stabilize](https://github.com/rust-lang/rust/pull/98718).
2022-08-18 07:37:47 +00:00
..
semantics feat: Downmap tokens inside derive helpers 2022-07-26 09:26:47 +02:00
attrs.rs Move hir to new MacroId 2022-03-08 23:51:48 +01:00
db.rs Rename intern_macro -> intern_macro_call 2021-11-14 16:25:47 +01:00
diagnostics.rs add debug impl for AnyDiagnostic 2022-07-28 22:38:20 +04:30
display.rs Run cargo fmt 2022-07-20 15:06:15 +02:00
from_id.rs fix clippy::useless_conversion 2022-03-12 16:50:49 +01:00
has_source.rs fix(ide-db): correct single-file module rename 2022-05-28 15:07:22 +03:00
lib.rs Auto merge of #12982 - jridgewell:into_future, r=Veykril 2022-08-18 07:37:47 +00:00
semantics.rs Fix visibilities 2022-08-05 14:28:36 +02:00
source_analyzer.rs Auto merge of #12982 - jridgewell:into_future, r=Veykril 2022-08-18 07:37:47 +00:00
symbols.rs Run cargo fix --edition-idioms 2022-07-20 15:02:08 +02:00