aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Create AstId for builtin_derive macro in testsJonas Schievink2021-03-181-13/+28
|
* Merge #8082bors[bot]2021-03-183-0/+34
|\ | | | | | | | | | | | | | | | | | | | | | | 8082: Proper handle inner recursive macro rules cases r=edwin0cheng a=edwin0cheng Fixes #7645 cc @jonas-schievink bors r+ Co-authored-by: Edwin Cheng <[email protected]>
| * Handle inner recursive macro rules casesEdwin Cheng2021-03-183-0/+34
| |
* | Merge #8081bors[bot]2021-03-183-1959/+1952
|\ \ | | | | | | | | | | | | | | | | | | | | | 8081: Reorganize mbe tests r=edwin0cheng a=edwin0cheng bors r+ Co-authored-by: Edwin Cheng <[email protected]>
| * | Reorganize mbe testsEdwin Cheng2021-03-183-1959/+1952
| |/
* | Merge #8080bors[bot]2021-03-1812-52/+92
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 8080: Change ItemTree API to accomodate creating an ItemTree per block expression r=jonas-schievink a=jonas-schievink ...which won't go through salsa because the AST is already cached anyways bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Rename `item_tree` query to `file_item_tree`Jonas Schievink2021-03-187-16/+16
| | |
| * | Make `ItemTreeId` its own typeJonas Schievink2021-03-188-37/+77
|/ /
* | Merge #8079bors[bot]2021-03-181-2/+3
|\ \ | | | | | | | | | | | | | | | | | | | | | 8079: Avoid cloning `CfgOptions` r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Avoid cloning `CfgOptions`Jonas Schievink2021-03-181-2/+3
|/ /
* | Merge #8078bors[bot]2021-03-182-5/+24
|\ \ | | | | | | | | | | | | | | | | | | | | | 8078: Support `#[cfg]` on all associated items r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Support `#[cfg]` on all associated itemsJonas Schievink2021-03-182-5/+24
|/ /
* | Merge #8076bors[bot]2021-03-171-0/+21
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 8076: Add test for self-calling inner function r=jonas-schievink a=jonas-schievink Fixes https://github.com/rust-analyzer/rust-analyzer/issues/4438 (and duplicates) bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Add test for self-calling inner functionJonas Schievink2021-03-171-0/+21
| | |
* | | Merge #8075bors[bot]2021-03-172-16/+37
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8075: Fix `use crate as <name>;` imports r=jonas-schievink a=jonas-schievink Fixes https://github.com/rust-analyzer/rust-analyzer/issues/4644 bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | Fix `use crate as <name>;` importsJonas Schievink2021-03-172-16/+37
| |/ /
* | | Merge #8073bors[bot]2021-03-173-12/+13
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 8073: Improve diagnostic when including nonexistent file r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Improve diagnostic when including nonexistent fileJonas Schievink2021-03-173-12/+13
|/ /
* | Merge #8072bors[bot]2021-03-172-1/+20
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 8072: Fix "unset `OUT_DIR`" diagnostic when using it in item position r=jonas-schievink a=jonas-schievink "load out dirs from check" is enabled by default now, but better late than never I guess. bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Use first early expansion error during nameresJonas Schievink2021-03-172-1/+20
|/ /
* | Merge #8071bors[bot]2021-03-1716-55/+132
|\ \ | | | | | | | | | | | | | | | | | | | | | 8071: Semantic highlight intradoclinks in documentation r=Veykril a=Veykril Co-authored-by: Lukas Wirth <[email protected]>
| * | Semantic highlight intradoclinks in documentationLukas Wirth2021-03-1716-55/+132
|/ /
* | Merge #8069bors[bot]2021-03-173-28/+72
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 8069: Inject highlight into block doc comments r=Veykril a=Veykril bors r+ Closes https://github.com/rust-analyzer/rust-analyzer/issues/6873 Co-authored-by: Lukas Wirth <[email protected]>
| * | Inject highlight into block doc commentsLukas Wirth2021-03-173-28/+72
| | |
* | | Merge #8068bors[bot]2021-03-177-79/+172
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8068: Correctly handle `#[cfg]` on function parameters r=jonas-schievink a=jonas-schievink Fixes https://github.com/rust-analyzer/rust-analyzer/issues/5649 Co-authored-by: Jonas Schievink <[email protected]>
| * | | Improve testJonas Schievink2021-03-171-0/+21
| | | |
| * | | Apply `#[cfg]`s when computing function signaturesJonas Schievink2021-03-172-4/+17
| | | |
| * | | Add test for `#[cfg]` on function paramsJonas Schievink2021-03-171-0/+13
| | | |
| * | | ItemTree: lower attributes on fn parametersJonas Schievink2021-03-173-23/+54
| | | |
| * | | Correctly parse attributes on fn parametersJonas Schievink2021-03-173-56/+71
|/ / /
* | | Merge #8067bors[bot]2021-03-171-8/+14
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 8067: Check whether cursor is on and not between intra doc links in goto_definition r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | Check whether cursor is on and not between intra doc links in goto_definitionLukas Wirth2021-03-171-8/+14
|/ /
* | Merge #8065bors[bot]2021-03-1710-140/+235
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 8065: Better handling of block doc comments r=Veykril a=Veykril Moves doc string processing to `Attrs::docs`, as we need the indent info from all comments before being able to know how much to strip Closes #7774 Co-authored-by: Lukas Wirth <[email protected]>
| * | Fix incorrect newline emission in Attrs::docsLukas Wirth2021-03-174-62/+80
| | |
| * | Better handling of block doc commentsLukas Wirth2021-03-178-81/+158
| | |
* | | Merge #8066bors[bot]2021-03-172-11/+39
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | 8066: Handle `#[cfg]` on call arguments r=jonas-schievink a=jonas-schievink This resolved the issue reported in this comment: https://github.com/rust-analyzer/rust-analyzer/issues/5649#issuecomment-789424608 bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Handle `#[cfg]` on call argumentsJonas Schievink2021-03-172-11/+39
|/ /
* | Merge #8059bors[bot]2021-03-1710-27/+205
|\ \ | |/ |/| | | | | | | | | | | 8059: Move doc-comment highlight injection from AST to HIR r=matklad,jonas-schievink a=Veykril Fixes #5016 Co-authored-by: Lukas Wirth <[email protected]>
| * Remove quadratic attr source lookupLukas Wirth2021-03-172-1/+27
| |
| * Properly handle doc attributes in doc-comment highlight injectionLukas Wirth2021-03-165-8/+84
| |
| * Fix attribute index assignment in cfg_attr resolutionLukas Wirth2021-03-161-5/+7
| |
| * Replace trait object boxing with extra AttrsOwnerNodeLukas Wirth2021-03-162-20/+49
| |
| * Move doc-comment highlight injection from AST to HIRLukas Wirth2021-03-166-18/+63
| |
* | Merge #8063bors[bot]2021-03-1740-122/+97
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8063: couple clippy::complexity fixes r=matklad a=matthiaskrgr avoid redundant `.into()` calls to convert T into identical T (`let x: String = String::from("hello").into();`) use `if let Some(x)` instead of `.is_some()` + `.unwrap()` don't clone Copy types remove redundant wrapped ?s: `Some(Some(3)?)` can just be `Some(3)` use `.map(|x| y)` instead of `and_then(|x| Some(y)` on `Option`s Co-authored-by: Matthias Krüger <[email protected]>
| * | use simpler .map(|x| y) instead of .and_then(|x| Some(y)) for Options. ↵Matthias Krüger2021-03-172-24/+14
| | | | | | | | | | | | (clippy::bind_instead_of_map)
| * | remove uselessly wrapped ?s. (clippy::meedless_question_markMatthias Krüger2021-03-173-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | let x = Some(3); let y = Some(x?); can just be: let y = x
| * | don't clone types that are copy (clippy::clone_on_copy)Matthias Krüger2021-03-1712-28/+18
| | |
| * | use if let Some(x) instead of if x.is_some() and x.unwrap() ↵Matthias Krüger2021-03-171-6/+6
| | | | | | | | | | | | (clippy::unnecessary-unwrap)
| * | avoid converting types into themselves via .into() (clippy::useless-conversion)Matthias Krüger2021-03-1724-61/+56
| | | | | | | | | | | | example: let x: String = String::from("hello world").into();
* | | Merge #8048bors[bot]2021-03-178-47/+80
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8048: Fix missing unresolved macro diagnostic in function body r=edwin0cheng a=brandondong This was an issue I found while working on https://github.com/rust-analyzer/rust-analyzer/pull/7970. **Reproduction:** 1. Call a non-existent macro in a function body. ``` fn main() { foo!(); } ``` 2. No diagnostics are raised. An unresolved-macro-call diagnostic is expected. 3. If the macro call is instead outside of the function body, this works as expected. I believe this worked previously and regressed in https://github.com/rust-analyzer/rust-analyzer/pull/7805. **Behavior prior to https://github.com/rust-analyzer/rust-analyzer/pull/7805:** - The unresolved-macro-call diagnostic did not exist. Instead, a macro-error diagnostic would be raised with the text "could not resolve macro [path]". - This was implemented by adding an error to the error sink (https://github.com/rust-analyzer/rust-analyzer/pull/7805/files#diff-50a326c5ae465bd9b31ee4310186380aa06e4fa1f6b41dbc0aed5bcc656a3cb8L657). - The error was propagated through https://github.com/rust-analyzer/rust-analyzer/blob/1a82af3527e476d52410ff4dfd2fb4c57466abcb/crates/hir_def/src/body.rs#L123 eventually reaching https://github.com/rust-analyzer/rust-analyzer/blob/1a82af3527e476d52410ff4dfd2fb4c57466abcb/crates/hir_def/src/body/lower.rs#L569. **Behavior after:** - Instead of writing to the error sink, an UnresolvedMacro error is now returned (https://github.com/rust-analyzer/rust-analyzer/pull/7805/files#diff-50a326c5ae465bd9b31ee4310186380aa06e4fa1f6b41dbc0aed5bcc656a3cb8R631). - The parent caller throws away the error as its function signature is `Option<MacroCallId>` (https://github.com/rust-analyzer/rust-analyzer/pull/7805/files#diff-50a326c5ae465bd9b31ee4310186380aa06e4fa1f6b41dbc0aed5bcc656a3cb8R604). - We instead now reach the warn condition (https://github.com/rust-analyzer/rust-analyzer/blob/1a82af3527e476d52410ff4dfd2fb4c57466abcb/crates/hir_def/src/body.rs#L124) and no diagnostics are created in https://github.com/rust-analyzer/rust-analyzer/blob/1a82af3527e476d52410ff4dfd2fb4c57466abcb/crates/hir_def/src/body/lower.rs#L575. **Fix:** - Make sure to propagate the UnresolvedMacro error. Report the error using the new unresolved-macro-call diagnostic. Co-authored-by: Brandon <[email protected]>