| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is working, but I'm not that happy with how the lowering works. We might
need an additional representation between `TypeRef` and `Ty` where names are
resolved and `impl Trait` bounds are separated out, but things like inference
variables don't exist and `impl Trait` is always represented the same
way.
Also note that this doesn't implement correct handling of RPIT *inside* the
function (which involves turning the `impl Trait`s into variables and creating
obligations for them). That intermediate representation might help there as
well.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
4758: Actually test include!(concant!(env!())); r=matklad a=matklad
It triggered index-based goto definition before :-(
bors r+
🤖
Co-authored-by: Aleksey Kladov <[email protected]>
|
| |
| |
| |
| | |
It triggered index-based goto definition before :-(
|
|\ \
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
4757: Update inotify r=matklad a=matklad
https://github.com/rust-analyzer/rust-analyzer/issues/4224#issuecomment-639328191
bors r+
🤖
Co-authored-by: Aleksey Kladov <[email protected]>
|
|/
|
|
| |
https://github.com/rust-analyzer/rust-analyzer/issues/4224#issuecomment-639328191
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
4756: Cleanup resolution of file paths r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <[email protected]>
|
| | |
|
| | |
|
|/
|
|
| |
For things like `concant!(env!("OUT_DIR"))`, we need to support abs paths
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
4755: Inlay Hints: more directly account for self param r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <[email protected]>
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
4750: introduce_named_lifetime assist wasn't applicable when type parameter r=matklad a=jbalint
followed anonymous lifetime token
(fixes #4684)
Co-authored-by: Jess Balint <[email protected]>
|
| |
| |
| |
| |
| |
| | |
followed anonymous lifetime token
(fixes #4684)
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
4737: Parse default unsafe & default const r=matklad a=Avi-D-coder
Closes: #4718 #4264
Co-authored-by: Avi Dessauer <[email protected]>
|
| | | |
|
| | | |
|
| | | |
|
| |/ |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
4740: Remove unneeded "./" prefix affecting error messages r=kjeremy a=dtolnay
I noticed this in the error in the commit message of https://github.com/rust-analyzer/rust-analyzer/pull/4739.
Before:
```console
error[E0599]: no method named `initialize_finish` found for struct `lsp_server::Connection` in the current scope
--> crates/rust-analyzer/./src/bin/main.rs:99:16
|
99 | connection.initialize_finish(initialize_id, initialize_result)?;
| ^^^^^^^^^^^^^^^^^ method not found in `lsp_server::Connection`
```
After:
```console
error[E0599]: no method named `initialize_finish` found for struct `lsp_server::Connection` in the current scope
--> crates/rust-analyzer/src/bin/main.rs:99:16
|
99 | connection.initialize_finish(initialize_id, initialize_result)?;
| ^^^^^^^^^^^^^^^^^ method not found in `lsp_server::Connection`
```
```diff
- --> crates/rust-analyzer/./src/bin/main.rs:99:16
+ --> crates/rust-analyzer/src/bin/main.rs:99:16
```
Co-authored-by: David Tolnay <[email protected]>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Before:
error[E0599]: no method named `initialize_finish` found for struct `lsp_server::Connection` in the current scope
--> crates/rust-analyzer/./src/bin/main.rs:99:16
|
99 | connection.initialize_finish(initialize_id, initialize_result)?;
| ^^^^^^^^^^^^^^^^^ method not found in `lsp_server::Connection`
After:
error[E0599]: no method named `initialize_finish` found for struct `lsp_server::Connection` in the current scope
--> crates/rust-analyzer/src/bin/main.rs:99:16
|
99 | connection.initialize_finish(initialize_id, initialize_result)?;
| ^^^^^^^^^^^^^^^^^ method not found in `lsp_server::Connection`
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
4739: Declare required lsp-server dependency of rust-analyzer crate r=jonas-schievink a=dtolnay
My codebase already depended on lsp-server and introducing a dependency on rust-analyzer failed at first because it assumes some functions that were first present in lsp-server 0.3.2.
Without this change:
```console
error[E0599]: no method named `initialize_start` found for struct `lsp_server::Connection` in the current scope
--> crates/rust-analyzer/./src/bin/main.rs:83:57
|
83 | let (initialize_id, initialize_params) = connection.initialize_start()?;
| ^^^^^^^^^^^^^^^^ method not found in `lsp_server::Connection`
error[E0599]: no method named `initialize_finish` found for struct `lsp_server::Connection` in the current scope
--> crates/rust-analyzer/./src/bin/main.rs:99:16
|
99 | connection.initialize_finish(initialize_id, initialize_result)?;
| ^^^^^^^^^^^^^^^^^ method not found in `lsp_server::Connection`
```
Co-authored-by: David Tolnay <[email protected]>
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
My codebase already depended on lsp-server and introducing a dependency
on rust-analyzer failed at first because it assumes some functions that
were first present in lsp-server 0.3.2.
Without this change:
error[E0599]: no method named `initialize_start` found for struct `lsp_server::Connection` in the current scope
--> crates/rust-analyzer/./src/bin/main.rs:83:57
|
83 | let (initialize_id, initialize_params) = connection.initialize_start()?;
| ^^^^^^^^^^^^^^^^ method not found in `lsp_server::Connection`
error[E0599]: no method named `initialize_finish` found for struct `lsp_server::Connection` in the current scope
--> crates/rust-analyzer/./src/bin/main.rs:99:16
|
99 | connection.initialize_finish(initialize_id, initialize_result)?;
| ^^^^^^^^^^^^^^^^^ method not found in `lsp_server::Connection`
|
|\ \ \
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
4741: Fix type inference failure when built with log/kv_unstable r=flodiebold a=dtolnay
This code is broken by an `impl From<kv::Error> for fmt::Error` in the log crate when building in a codebase that has the log/kv_unstable feature enabled.
```console
$ cargo check --manifest-path crates/ra_hir_def/Cargo.toml
Checking ra_hir_def v0.1.0
Finished dev [unoptimized] target(s) in 0.75s
$ cargo check --manifest-path crates/ra_hir_def/Cargo.toml --features log/kv_unstable
Checking ra_hir_def v0.1.0
error[E0282]: type annotations needed for the closure `fn(&str) -> std::result::Result<(), _>`
--> crates/ra_hir_def/src/path.rs:278:17
|
278 | f.write_str("::")?;
| ^^^^^^^^^^^^^^^^^^ cannot infer type
|
help: give this closure an explicit return type without `_` placeholders
|
276 | let mut add_segment = |s| -> std::result::Result<(), _> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```
https://github.com/rust-lang/log/issues/397
Co-authored-by: David Tolnay <[email protected]>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This code is broken by an `impl From<kv::Error> for fmt::Error` in the
log crate when building in a codebase that has the log/kv_unstable
feature enabled.
$ cargo check --manifest-path crates/ra_hir_def/Cargo.toml
Checking ra_hir_def v0.1.0
Finished dev [unoptimized] target(s) in 0.75s
$ cargo check --manifest-path crates/ra_hir_def/Cargo.toml --features log/kv_unstable
Checking ra_hir_def v0.1.0
error[E0282]: type annotations needed for the closure `fn(&str) -> std::result::Result<(), _>`
--> crates/ra_hir_def/src/path.rs:278:17
|
278 | f.write_str("::")?;
| ^^^^^^^^^^^^^^^^^^ cannot infer type
|
help: give this closure an explicit return type without `_` placeholders
|
276 | let mut add_segment = |s| -> std::result::Result<(), _> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|\ \
| |/
|/|
| |
| |
| |
| |
| | |
4736: Bugfix r=kjeremy a=Veetaha
Co-authored-by: Veetaha <[email protected]>
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| | |
4717: Implementation of lazy assits r=matklad a=mcrakhman
Co-authored-by: Mikhail Rakhmanov <[email protected]>
|
| | |
|
| |\
| |/
|/|
| |
| |
| | |
# Conflicts:
# crates/rust-analyzer/src/main_loop/handlers.rs
# crates/rust-analyzer/src/to_proto.rs
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
4734: Don't store generated docs in the repo r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <[email protected]>
|
|/ / |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
4733: Cargo update r=kjeremy a=kjeremy
Co-authored-by: kjeremy <[email protected]>
|
| | | |
|
|\ \ \
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
4502: Mark fixes from diagnostics as quick fixes r=kjeremy a=kjeremy
Populates the diagnostic UI with fixes:
Before:
![quickfix-before](https://user-images.githubusercontent.com/4325700/82165183-0e38df00-9882-11ea-96cf-7dab5faec4d4.PNG)
After:
![image](https://user-images.githubusercontent.com/4325700/82165193-1a24a100-9882-11ea-97d7-be1b64b135e0.png)
Co-authored-by: Jeremy Kolb <[email protected]>
|
| | | |
|
|\ \ \
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
4730: Document rust-project.json r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <[email protected]>
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
4678: Unsquish parameter types in tooltips for macro-generated functions r=aloucks a=aloucks
Note the missing whitespace between `:` and the parameter type.
Before:
![image](https://user-images.githubusercontent.com/221559/83364680-faf13d80-a370-11ea-96b7-a041969a4954.png)
After:
![image](https://user-images.githubusercontent.com/221559/83364685-03e20f00-a371-11ea-9668-4e6ebcb81947.png)
Co-authored-by: Aaron Loucks <[email protected]>
|
| | | | |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
4660: Enable hover and autocomplete docs on macro generated items r=aloucks a=aloucks
Enable hover and autocomplete docs on macro generated items. This de-sugars doc comments into `doc` attributes in some cases, but not all. Comments and `doc` attributes are then merged together.
This PR is essentially a partial implementation of what's being suggested #3182, but it's not all the way there yet. ~I still need to add unit tests~, but I wanted to first get feedback on whether or not this was an acceptable path forward.
Fixes #4564
Fixes #3984
Fixes #3180
Related #3182
![macro_item_docs](https://user-images.githubusercontent.com/221559/83336760-15012200-a284-11ea-8d0d-b6a615850044.gif)
Co-authored-by: Aaron Loucks <[email protected]>
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Removes the duplicated `expand_doc_attrs` and `merge_doc_comments_and_attrs`
functions from `ra_ide` and exposes the same functionality via
`ra_hir::Documentation::from_ast`.
|
| | | | | |
|
| | | | | |
|
|\ \ \ \ \
| |/ / / /
|/| | / /
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
4727: Drop test for old format r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <[email protected]>
|
| | | | |
|
|\| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
4726: Groundwork for specifying the set of projects via config r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <[email protected]>
|
| | | | |
|
| | | | |
|