aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Retain types of proc macros and allow attr. macrosJonas Schievink2020-12-076-22/+30
|
* Make `ProcMacroProcessExpander` privateJonas Schievink2020-12-071-1/+1
|
* ProcMacroProcessExpander: support attribute macrosJonas Schievink2020-12-072-21/+11
|
* Merge #6597bors[bot]2020-12-078-25/+137
|\ | | | | | | | | | | | | | | | | | | 6597: Upgrade Chalk r=flodiebold a=flodiebold Also make overflow depth and max type size configurable through env variables. This can be helpful at least for debugging. Tests currently fail because of rust-lang/chalk#656, so we'll need to wait for the next update to merge this. Co-authored-by: Florian Diebold <[email protected]>
| * Upgrade ChalkFlorian Diebold2020-12-078-25/+137
|/ | | | | | | Also make overflow depth and max type size configurable through env variables. This can be helpful at least for debugging. Fixes #6628.
* Merge #6733bors[bot]2020-12-061-3/+39
|\ | | | | | | | | | | | | | | 6733: Update attributes completion list r=jonas-schievink a=Veykril Might be nice to have them grouped for readability/maintainability similar to how the [reference](https://doc.rust-lang.org/reference/attributes.html#built-in-attributes-index) does it but that would require the use of a `OnceCell` for sorting the entries back after construction. Co-authored-by: Lukas Wirth <[email protected]>
| * Update attributes completion listLukas Wirth2020-12-061-3/+39
| |
* | Merge #6734bors[bot]2020-12-068-119/+1093
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6734: Emit additional diagnostics for hints/help/etc r=lnicola a=jonas-schievink This makes rust-analyzer diagnostics match native rustc diagnostics in the terminal more closely. Unfortunately all of this is a bodge, since we already provide this information to the client in the form of `DiagnosticRelatedInformation`, but at least VS Code chooses such a poor UI for these that they don't help much, as evidenced [here](https://twitter.com/yaahc_/status/1335297260444250112) and in https://github.com/rust-lang/rust/issues/79741. This PR papers over these client UI problems by taking the `DiagnosticRelatedInformation` and turning each one into its own hint-level diagnostic, which makes it show up in the source code. Quick fixes are attached to all resulting diagnostics, which makes them more discoverable. ### Example: "Consider removing this semicolon" ![screenshot-2020-12-06-01:27:29](https://user-images.githubusercontent.com/1786438/101268366-46423980-3762-11eb-9a69-1ff0b1806c2f.png) ![screenshot-2020-12-06-01:27:39](https://user-images.githubusercontent.com/1786438/101268367-46dad000-3762-11eb-81fa-afd234d44f17.png) ![screenshot-2020-12-06-01:27:46](https://user-images.githubusercontent.com/1786438/101268368-46dad000-3762-11eb-9205-4b9bd9f4406d.png) ### Example: "Value used after move" ![screenshot-2020-12-06-01:33:00](https://user-images.githubusercontent.com/1786438/101268447-22332800-3763-11eb-85ce-8c742927a2c8.png) ![screenshot-2020-12-06-01:33:07](https://user-images.githubusercontent.com/1786438/101268448-22cbbe80-3763-11eb-8f16-0590895d8bc6.png) Co-authored-by: Jonas Schievink <[email protected]>
| * Apply suggestions from code reviewJonas Schievink2020-12-062-2/+2
| | | | | | Co-authored-by: Laurențiu Nicola <[email protected]>
| * Update expect testsJonas Schievink2020-12-067-46/+977
| |
| * Emit additional diagnostics for hints/help/etcJonas Schievink2020-12-061-73/+116
|/
* Merge #6726bors[bot]2020-12-042-2/+4
|\ | | | | | | | | | | | | | | 6726: Add slightly more profiling details r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Add slightly more profiling detailsJonas Schievink2020-12-042-2/+4
|/
* Merge #6725bors[bot]2020-12-041-26/+15
|\ | | | | | | | | | | | | | | | | | | | | | | 6725: Don't respawn proc macro server on crash r=jonas-schievink a=jonas-schievink Now the thread managing IPC will exit when the server process crashes instead of respawning it. Closes https://github.com/rust-analyzer/rust-analyzer/issues/6707 bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Don't respawn proc macro server on crashJonas Schievink2020-12-041-26/+15
| |
* | Merge #6721bors[bot]2020-12-048-37/+45
|\ \ | |/ |/| | | | | | | | | | | 6721: Use METHOD semantic token type r=kjeremy a=lnicola Closes #6685 Co-authored-by: Laurențiu Nicola <[email protected]>
| * Use METHOD semantic token typeLaurențiu Nicola2020-12-048-37/+45
| |
* | Merge #6724bors[bot]2020-12-041-11/+18
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 6724: Fix `diagnostics` subcommand, look at all modules r=jonas-schievink a=jonas-schievink The `diagnostics` subcommand used to only compute diagnostics for `lib.rs` / the root module of all workspace crates. This fixed it and makes it look at every module. bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Fix `diagnostics` subcommand, look at all modulesJonas Schievink2020-12-041-11/+18
| | |
* | | Merge #6723bors[bot]2020-12-042-1/+26
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | 6723: Use correct, full substs for self type in impl r=flodiebold a=flodiebold Without arbitrary self types, the self type could never refer to the method type parameters, so this wasn't a problem; but with arbitrary self types, it can. This fixes the crash from #6668; but it doesn't make method resolution work for these methods. Co-authored-by: Florian Diebold <[email protected]>
| * | Use correct, full substs for self type in implFlorian Diebold2020-12-042-1/+26
|/ / | | | | | | | | | | | | | | Without arbitrary self types, the self type could never refer to the method type parameters, so this wasn't a problem; but with arbitrary self types, it can. This fixes the crash from #6668; but it doesn't make method resolution work for these methods.
* | Merge #6722bors[bot]2020-12-041-15/+5
|\ \ | | | | | | | | | | | | | | | | | | | | | 6722: Minor proc macro cleanups r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Unwrap `process.stdio()` resultJonas Schievink2020-12-041-4/+1
| | | | | | | | | | | | If this is ever `None` here, that's a bug
| * | Destructure in for loopJonas Schievink2020-12-041-3/+1
| | |
| * | Remove unnecessary `Option`Jonas Schievink2020-12-041-8/+3
|/ /
* | Merge #6715bors[bot]2020-12-031-0/+5
|\ \ | |/ |/| | | | | | | | | | | | | | | 6715: Don't diagnose `#[cfg]` in macros r=jonas-schievink a=jonas-schievink Fixes https://github.com/rust-analyzer/rust-analyzer/issues/6363 bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Don't diagnose `#[cfg]` in macrosJonas Schievink2020-12-031-0/+5
|/
* Merge #6713bors[bot]2020-12-032-5/+2
|\ | | | | | | | | | | | | | | | | | | 6713: Make `compile_error!` message match upstream rustc r=jonas-schievink a=jonas-schievink It only consists of the argument passed to it. bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Make `compile_error!` message match upstream rustcJonas Schievink2020-12-032-5/+2
|/ | | | It only consists of the argument passed to it
* Merge #6712bors[bot]2020-12-032-8/+18
|\ | | | | | | | | | | | | | | | | | | 6712: Fix proc macro token mapping r=jonas-schievink a=jonas-schievink Diagnostics inside proc macros are currently incorrectly placed at their original offset, but inside the containing file. This fixes that, by allowing the creation of `ExpansionInfo` from non-`macro_rules!` macro invocations. bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Fix proc macro token mappingJonas Schievink2020-12-032-8/+18
|/
* Merge #6700bors[bot]2020-12-036-67/+223
|\ | | | | | | | | | | | | | | 6700: More macro diagnostics improvements r=jonas-schievink a=jonas-schievink This threads macro expansion errors through `eager.rs` and the `AsMacroCall` trait, improving macro diagnostics emitted during body lowering. Co-authored-by: Jonas Schievink <[email protected]>
| * Rename `error_sink` to `diagnostic_sink`Jonas Schievink2020-12-031-11/+12
| |
| * Make `compile_error!` lazy and emit a diagnosticJonas Schievink2020-12-033-21/+34
| |
| * Give better diagnostic if `OUT_DIR` is unsetJonas Schievink2020-12-032-9/+20
| |
| * Update/Fix testsJonas Schievink2020-12-031-4/+15
| |
| * Propagate eager expansion errorsJonas Schievink2020-12-033-33/+153
| |
* | Merge #6711bors[bot]2020-12-031-4/+4
|\ \ | | | | | | | | | | | | | | | | | | | | | 6711: cargo update: bump libloading to fix a double-free r=kjeremy a=kjeremy Co-authored-by: kjeremy <[email protected]>
| * | cargo update: bump libloading to fix a double-freekjeremy2020-12-031-4/+4
|/ /
* | Merge #6710bors[bot]2020-12-038-1441/+1419
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 6710: Extract tests module to file in ide_db crate r=matklad a=sasurau4 Helps with #6522 - pass `cargo test` Co-authored-by: Daiki Ihara <[email protected]>
| * | Extract tests module to file in ide_db crateDaiki Ihara2020-12-038-1441/+1419
| |/
* / Document statelessness invariantAleksey Kladov2020-12-031-0/+16
|/
* Merge #6702bors[bot]2020-12-021-2/+2
|\ | | | | | | | | | | | | | | 6702: Bump mio for safety goodness r=kjeremy a=kjeremy Co-authored-by: kjeremy <[email protected]>
| * Bump mio for safety goodnesskjeremy2020-12-021-2/+2
|/
* Merge #6701bors[bot]2020-12-021-15/+18
|\ | | | | | | | | | | | | | | | | | | 6701: Don't prime caches when just opening a file r=jonas-schievink a=jonas-schievink Fixes occasional "progress handler already registered" errors. bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Don't prime caches when just opening a fileJonas Schievink2020-12-021-15/+18
|/
* Merge #6699bors[bot]2020-12-021-0/+41
|\ | | | | | | | | | | | | | | 6699: Test macro diagnostics in body lowering r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Test macro diagnostics in body loweringJonas Schievink2020-12-021-0/+41
|/
* Merge #6698bors[bot]2020-12-021-2/+5
|\ | | | | | | | | | | | | | | | | | | | | | | 6698: Attach macro expansion errors to the right file r=jonas-schievink a=jonas-schievink Previously it attached them to the result of the macro expansion (or, if no result was produced, to the file containing the invocation). Always use the file containing the invocation. This doesn't seem to have any observable difference, but seems better in theory. bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Attach macro expansion errors to the right fileJonas Schievink2020-12-021-2/+5
| |