aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge #3396bors[bot]2020-03-021-1/+6
|\ | | | | | | | | | | | | | | | | | | | | 3396: One more assert r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * One more assertAleksey Kladov2020-03-021-1/+6
| |
* | Merge #3395bors[bot]2020-03-021-0/+4
|\| | | | | | | | | | | | | | | | | | | | | 3395: Tighten up an assert r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Tighten up an assertAleksey Kladov2020-03-021-0/+4
|/
* Merge #3389bors[bot]2020-03-021-1/+2
|\ | | | | | | | | | | | | | | | | | | | | | | 3389: Note vscode remote limitation when client install fails r=matklad a=not-much-io Just adding a note about the limitation referenced in https://github.com/rust-analyzer/rust-analyzer/issues/2522/ Considered checking if this message is relevant in the context (is this remote?) but decided against it because of return on investment - seeing how fast vscode iterates this limitation might just disappear in the near future. Also checked if there is a way to already do this which lead me to leaving a specifing question at https://github.com/microsoft/vscode-remote-release/issues/385 Co-authored-by: nmio <[email protected]>
| * Readabilitynmio2020-03-011-1/+3
| |
| * Add notenmio2020-03-011-2/+1
| |
* | Merge #3387bors[bot]2020-03-012-2/+108
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3387: Type inference for slice patterns r=flodiebold a=JoshMcguigan Fixes #3043 Notes to reviewer: 1. This only works if `expected` is `Ty::Apply`. I'm not sure of the implications of this. 1. This only works if the slice pattern only has a prefix. I think this means it doesn't work for subslice patterns, which are currently only available behind a feature flag. Co-authored-by: Josh Mcguigan <[email protected]>
| * | handle array pattern matching type inferenceJosh Mcguigan2020-03-012-10/+55
| | |
| * | remove match statement, handle suffixJosh Mcguigan2020-03-012-14/+11
| | |
| * | handle arbitrary length slicesJosh Mcguigan2020-03-012-12/+29
| | |
| * | match single prefix sliceJosh Mcguigan2020-03-012-1/+48
| |/
* | Merge #3384bors[bot]2020-03-014-6/+88
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | 3384: fix #2377 super::super::* r=flodiebold a=JoshMcguigan Thanks @matklad for the detailed explanation on #2377. I believe this fixes it. One thing I'm not sure about is you said the fix would involve changing `crates/ra_hir_def/src/path/lower/lower.rs`, but I only changed `crates/ra_hir_def/src/path/lower/lower_use.rs`. I'm not sure what kind of test code I'd have to write to expose the issue in `lower.rs`, but I'd be happy to add it if you are able to provide additional guidance. closes #2377 Co-authored-by: Josh Mcguigan <[email protected]>
| * fix completion for super::super::Josh Mcguigan2020-03-012-2/+45
| |
| * fix #2377 super::super::*Josh Mcguigan2020-03-012-4/+43
| |
* | Merge #3383bors[bot]2020-02-292-70/+59
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3383: Slightly refactor inlay hints r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Slightly refactor inlay hintsAleksey Kladov2020-02-292-70/+59
| | |
* | | Merge #3382bors[bot]2020-02-291-1/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3382: ra_project_model: migrate to Sysroot::alloc() r=matklad a=Veetaha Co-authored-by: Veetaha <[email protected]>
| * | | ra_project_model: migrate to Sysroot::alloc()Veetaha2020-02-291-1/+1
| | | |
* | | | Merge #3381bors[bot]2020-02-291-1/+0
|\ \ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3381: Remove debug print r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Remove debug printAleksey Kladov2020-02-291-1/+0
| |/ /
* | | Merge #3380bors[bot]2020-02-295-9/+111
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | 3380: Unsizing in method resolution & autoderef for indexing r=matklad a=flodiebold - do autoderef for indexing - do array unsizing (`[T; N]` -> `[T]`) in both method resolution and indexing. It turns out array unsizing is actually the only unsizing coercion that rustc does for method receivers, so this is simpler than I expected. Sadly, this doesn't fix indexing slices/arrays yet, there are still some trait solving problems... Co-authored-by: Florian Diebold <[email protected]>
| * | Do autoderef for indexingFlorian Diebold2020-02-294-7/+74
| | |
| * | Do array unsizing for method receiversFlorian Diebold2020-02-292-2/+37
|/ / | | | | | | | | | | | | It turns out rustc actually only unsizes array method receivers, so we don't need to do any trait solving for this (at least for now). Fixes #2670.
* | Merge #3379bors[bot]2020-02-2969-224/+218
|\ \ | |/ |/| | | | | | | | | | | | | | | | | 3379: Rename ast::ImplBlock -> ast::ImplDef r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Rename ast::ImplBlock -> ast::ImplDefAleksey Kladov2020-02-2968-224/+216
| |
| * Add a FIXMEAleksey Kladov2020-02-291-0/+2
|/
* Merge #3377bors[bot]2020-02-296-346/+329
|\ | | | | | | | | | | | | | | 3377: Simplify source binder r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * Handle tuple fields as wellAleksey Kladov2020-02-292-1/+7
| |
| * MinorAleksey Kladov2020-02-292-5/+4
| |
| * Simplify SourceBinderAleksey Kladov2020-02-296-349/+321
| |
| * Small cleanupAleksey Kladov2020-02-291-9/+15
|/
* Merge #3309bors[bot]2020-02-292-10/+70
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3309: Find cargo toml up the fs r=matklad a=not-much-io Currently rust-analyzer will look for Cargo.toml in the root of the project and if failing that then go down the filesystem until root. This unfortunately wouldn't work automatically with (what I imagine is) a fairly common project structure. As an example with multiple languages like: ``` js/ .. rust/ Cargo.toml ... ``` Added this small change so rust-analyzer would glance one level up if not found in root or down the filesystem. ## Why not go deeper? Could be problematic with large project vendored dependencies etc. ## Why not add a Cargo.toml manual setting option? Loosely related and a good idea, however the convenience of having this automated also is hard to pass up. ## Testing? Build a binary with various logs and checked it in a project with such a structure: ``` [ERROR ra_project_model] find_cargo_toml() [ERROR ra_project_model] find_cargo_toml_up_the_fs() [ERROR ra_project_model] entities: ReadDir("/workspaces/my-project") [ERROR ra_project_model] candidate: "/workspaces/my-project/rust/Cargo.toml", exists: true ``` ## Edge Cases? If you have multiple Cargo.toml files one level deeper AND not in the root, will get whatever comes first (order undefined), example: ``` crate1/ Cargo.toml crate2/ Cargo.toml ... (no root Cargo.toml) ``` However this is quite unusual and wouldn't have worked before either. This is only resolvable via manually choosing. Co-authored-by: nmio <[email protected]>
| * lint warn fixnmio2020-02-291-4/+2
| |
| * keep one CargoTomlNotFoundErrornmio2020-02-292-29/+37
| |
| * remove code used for testingnmio2020-02-271-1/+1
| |
| * fix unneeded bodynmio2020-02-271-6/+2
| |
| * fixes and improvementsnmio2020-02-272-24/+50
| |
| * clean upnmio2020-02-251-7/+2
| |
| * Merge branch 'master' of https://github.com/rust-analyzer/rust-analyzer into ↵nmio2020-02-2540-377/+659
| |\ | | | | | | | | | find-cargo-toml-up-the-fs
| * | Initial debugging codenmio2020-02-241-5/+42
| | |
* | | Merge #3376bors[bot]2020-02-294-18/+86
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3376: Fix a common false-positive type mismatch r=matklad a=flodiebold E.g. for `&{ some_string() }` in a context where a `&str` is expected, we reported a mismatch inside the block. The problem is that we're passing an expectation of `str` down, but the expectation is more of a hint in this case. There's a long comment in rustc about this, which I just copied. Also, fix reported location for type mismatches in macros. Co-authored-by: Florian Diebold <[email protected]>
| * | | Fix a common false-positive type mismatchFlorian Diebold2020-02-294-18/+86
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | E.g. for `&{ some_string() }` in a context where a `&str` is expected, we reported a mismatch inside the block. The problem is that we're passing an expectation of `str` down, but the expectation is more of a hint in this case. There's a long comment in rustc about this, which I just copied. Also, fix reported location for type mismatches in macros.
* | | Merge #3375bors[bot]2020-02-298-15/+39
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3375: Cleanup editing API a bit r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Fix typoAleksey Kladov2020-02-293-3/+3
| | | |
| * | | Cleanup editing APIAleksey Kladov2020-02-295-12/+36
|/ / /
* | | Merge #3374bors[bot]2020-02-293-15/+25
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3374: More orthogonal API for building paths r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | More orthogonal API for building pathsAleksey Kladov2020-02-293-15/+25
|/ / /
* | | Merge #3372bors[bot]2020-02-284-13/+19
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3372: vscode: migrate to more type-safe assert impl r=matklad a=Veetaha https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#assertion-functions Co-authored-by: Veetaha <[email protected]>
| * | | vscode: simplify assert.eq() to assert() as per matkladVeetaha2020-02-282-15/+4
| | | |