aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Merge #7375bors[bot]2021-01-2110-58/+291
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 7375: Add support for running name resolution in block expressions r=jonas-schievink a=jonas-schievink This adds a `block_def_map` query that runs the name resolution algorithm on a block expression, and returns a `DefMap` that stores links to the parent `DefMap` (either the containing block or the crate-level `DefMap`). Blocks with no inner items return the parent's `DefMap` as-is, to avoid creating unnecessarily long `DefMap` chains. Path resolution is updated to recurse into the parent `DefMap` after looking up a path in the original `DefMap`. I've added a few new tests for this, but outside of those this isn't used yet. bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Add test that merges inner and outer namesJonas Schievink2021-01-211-0/+25
| |
| * Fix lowering with multiple block expressionsJonas Schievink2021-01-211-15/+23
| |
| * Fall back to parent DefMaps when resolving pathsJonas Schievink2021-01-211-0/+37
| |
| * Add name resolution query for block expressionsJonas Schievink2021-01-218-43/+206
| |
* | Merge #7372bors[bot]2021-01-211-1/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | 7372: Up lexer r=kjeremy a=kjeremy No real changes here. Co-authored-by: kjeremy <[email protected]>
| * | Up lexerkjeremy2021-01-211-1/+1
| |/
* | Merge #7371bors[bot]2021-01-211-0/+17
|\ \ | |/ |/| | | | | | | | | | | 7371: Change directory before running rustfmt to respect rustfmt.toml r=matklad a=lnicola Fixes #6973 Co-authored-by: Laurențiu Nicola <[email protected]>
| * chdir to file before rustfmtLaurențiu Nicola2021-01-211-0/+17
| |
* | Merge #7368bors[bot]2021-01-212-5/+8
|\ \ | | | | | | | | | | | | | | | | | | | | | 7368: Clarify enabled features and defined features in PackageData r=matklad a=edwin0cheng Co-authored-by: Edwin Cheng <[email protected]>
| * | Added defined_features in PackageDataEdwin Cheng2021-01-212-5/+8
| |/
* / Bump chalkLaurențiu Nicola2021-01-211-3/+3
|/
* Treat BlockExpr as a potential module originJonas Schievink2021-01-208-7/+44
|
* Merge #7365bors[bot]2021-01-201-3/+3
|\ | | | | | | | | | | | | | | 7365: chalk 0.49.0 r=kjeremy a=kjeremy Co-authored-by: kjeremy <[email protected]>
| * chalk 0.49.0kjeremy2021-01-201-3/+3
| |
* | DefMap: hide remaining crate-visible fieldsJonas Schievink2021-01-204-11/+23
|/
* Merge #7359bors[bot]2021-01-203-32/+49
|\ | | | | | | | | | | | | | | | | | | 7359: ItemTree: store a mapping from blocks to inner items r=jonas-schievink a=jonas-schievink To do name resolution within block expressions, we need to know which inner items are located inside each block expression. This adds such a mapping to `ItemTree`, replacing the previous one, which was seemingly unused other than to access all the inner items. This also assigns `AstId`s to block expressions, which is needed to store the mapping in salsa. Co-authored-by: Jonas Schievink <[email protected]>
| * Create a mapping from blocks to inner itemsJonas Schievink2021-01-202-26/+35
| |
| * Record `FileAstId`s for block expressiosnJonas Schievink2021-01-191-6/+14
| | | | | | | | | | Every block expression may contain inner items, so we need to be able to refer to any block expression and use it as a salsa key.
* | Make public DefMap fields privateJonas Schievink2021-01-2010-23/+31
| |
* | Merge #7350bors[bot]2021-01-202-9/+16
|\ \ | | | | | | | | | | | | | | | | | | | | | 7350: Update pico-args r=matklad a=kjeremy Should maintain existing behavior Co-authored-by: kjeremy <[email protected]>
| * | Update pico-argskjeremy2021-01-192-9/+16
| |/ | | | | | | Should maintains existing behavior
* | Avoid intermediate collectionsAleksey Kladov2021-01-201-26/+20
| |
* | Don't show runnable suggestions for other filesAleksey Kladov2021-01-201-3/+32
| | | | | | | | | | It't be actually great to have these once we have run anything dialog, but for run the thing at point it makes sense to show a limited set.
* | :arrow_up: rowanAleksey Kladov2021-01-206-15/+9
| | | | | | | | It now stores text inline with tokens
* | .Aleksey Kladov2021-01-1927-65/+69
| |
* | Merge #7352bors[bot]2021-01-194-6/+7
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 7352: :arrow_up: rowan r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | :arrow_up: rowanAleksey Kladov2021-01-194-6/+7
| |/
* | Merge #7351bors[bot]2021-01-194-12/+41
|\ \ | |/ |/| | | | | | | | | | | | | | | 7351: Show const params in completions r=Veykril a=Veykril bors r+ ![image](https://user-images.githubusercontent.com/3757771/105080872-bba76680-5a91-11eb-91cd-0910da4c8312.png) Co-authored-by: Lukas Wirth <[email protected]>
| * Show const params in completionsLukas Wirth2021-01-194-12/+41
| |
* | Reduce TokenMap sizeEdwin Cheng2021-01-191-10/+16
| |
* | Merge #7321bors[bot]2021-01-192-73/+136
|\ \ | | | | | | | | | | | | | | | | | | | | | 7321: Support runnables in macros r=matklad a=edwin0cheng fixes #4771 Co-authored-by: Edwin Cheng <[email protected]>
| * | Support runnables in macrosEdwin Cheng2021-01-192-73/+136
| | |
* | | Merge #7342bors[bot]2021-01-198-36/+78
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7342: Show deprecated completions for deprecated traits r=kjeremy a=SomeoneToIgnore TIL that there are two kinds of deprecation tags and a few details about String methods. <img width="472" alt="Screenshot 2021-01-19 at 01 11 38" src="https://user-images.githubusercontent.com/2690773/104970200-569d3380-59f3-11eb-9ee3-627b3c8a5c9d.png"> Co-authored-by: Kirill Bulatov <[email protected]>
| * | | Show deprecated completions for deprecated traitsKirill Bulatov2021-01-188-28/+69
| | | |
| * | | Consider rustc_deprecated attr when checking for deprecationKirill Bulatov2021-01-181-8/+9
| | |/ | |/|
* | | Merge #7341bors[bot]2021-01-183-2/+7
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7341: Fix warnings when running `cargo doc --document-private-items` r=Veykril a=jyn514 These were the warnings previously: <details> ``` warning: could not parse code block as Rust code --> crates/stdx/src/lib.rs:137:9 | 137 | /// ∀ x in slice[..idx]: pred(x) | _________^ 138 | | /// && ∀ x in slice[idx..]: !pred(x) | |____^ | = note: error from rustc: unknown start of token: \u{2200} warning: 1 warning emitted warning: unresolved link to `package` --> crates/base_db/src/input.rs:181:15 | 181 | /// it's [package].name, can be different for other project types or even | ^^^^^^^ no item named `package` in scope | = note: `#[warn(broken_intra_doc_links)]` on by default = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` warning: unresolved link to `package` --> crates/base_db/src/input.rs:181:15 | 181 | /// it's [package].name, can be different for other project types or even | ^^^^^^^ no item named `package` in scope | = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` warning: 2 warnings emitted warning: unresolved link to `package` --> crates/base_db/src/input.rs:181:15 | 181 | /// it's [package].name, can be different for other project types or even | ^^^^^^^ no item named `package` in scope | = note: `#[warn(broken_intra_doc_links)]` on by default = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` warning: unresolved link to `package` --> crates/base_db/src/input.rs:181:15 | 181 | /// it's [package].name, can be different for other project types or even | ^^^^^^^ no item named `package` in scope | = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` warning: 2 warnings emitted ``` </details> This does *not* fix the following warning, because it is actually rust code and rustdoc is being over eager: ``` warning: Rust code block is empty --> crates/parser/src/grammar.rs:16:5 | 16 | //! ``` | _____^ 17 | | //! // test function_with_zero_parameters 18 | | //! // fn foo() {} 19 | | //! ``` | |_______^ | help: mark blocks that do not contain Rust code as text | 16 | //! ```text | ^^^^^^^ ``` https://github.com/rust-lang/rust/pull/79816 should make this configurable so the warning can be `allow`ed. Co-authored-by: Joshua Nelson <[email protected]>
| * | Fix warnings when running `cargo doc --document-private-items`Joshua Nelson2021-01-183-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These were the warnings previously: ``` warning: could not parse code block as Rust code --> crates/stdx/src/lib.rs:137:9 | 137 | /// ∀ x in slice[..idx]: pred(x) | _________^ 138 | | /// && ∀ x in slice[idx..]: !pred(x) | |____^ | = note: error from rustc: unknown start of token: \u{2200} warning: 1 warning emitted warning: unresolved link to `package` --> crates/base_db/src/input.rs:181:15 | 181 | /// it's [package].name, can be different for other project types or even | ^^^^^^^ no item named `package` in scope | = note: `#[warn(broken_intra_doc_links)]` on by default = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` warning: unresolved link to `package` --> crates/base_db/src/input.rs:181:15 | 181 | /// it's [package].name, can be different for other project types or even | ^^^^^^^ no item named `package` in scope | = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` warning: 2 warnings emitted warning: unresolved link to `package` --> crates/base_db/src/input.rs:181:15 | 181 | /// it's [package].name, can be different for other project types or even | ^^^^^^^ no item named `package` in scope | = note: `#[warn(broken_intra_doc_links)]` on by default = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` warning: unresolved link to `package` --> crates/base_db/src/input.rs:181:15 | 181 | /// it's [package].name, can be different for other project types or even | ^^^^^^^ no item named `package` in scope | = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` warning: 2 warnings emitted ``` This does *not* fix the following warning, because it is actually rust code and rustdoc is being over eager: ``` warning: Rust code block is empty --> crates/parser/src/grammar.rs:16:5 | 16 | //! ``` | _____^ 17 | | //! // test function_with_zero_parameters 18 | | //! // fn foo() {} 19 | | //! ``` | |_______^ | help: mark blocks that do not contain Rust code as text | 16 | //! ```text | ^^^^^^^ ``` https://github.com/rust-lang/rust/pull/79816 should make this configurable so the warning can be `allow`ed.
* | | Merge #7340bors[bot]2021-01-183-38/+20
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7340: Remove obsolete RangeInfo usage in references r=Veykril a=Veykril Didn't even realize these were only here for renaming as well! bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | | Remove obsolete RangeInfo usage in referencesLukas Wirth2021-01-183-38/+20
| | | |
* | | | Merge #7336bors[bot]2021-01-1810-39/+35
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7336: Rename `CrateDefMap` to `DefMap` r=matklad a=jonas-schievink I propose handling local items by computing a `DefMap` for every block expression, using the regular (early) name resolution algorithm. The result of that will be a `DefMap` that has a reference to the parent `DefMap`, which is either the one computed for the containing block expression, or the crate's root `DefMap`. Name resolution will fall back to a name in the parent `DefMap` if it cannot be resolved in the inner block. The `DefMap`s computed for block expressions will go through a separate query that can be garbage-collected much more aggressively, since these `DefMap`s should be cheap to compute and are never part of a crate's public API. The first step towards that is to make `CrateDefMap` not specific to crates anymore, hence this rename (if this plans sounds reasonable). cc https://github.com/rust-analyzer/rust-analyzer/issues/7325 and https://github.com/rust-analyzer/rust-analyzer/issues/1165 Co-authored-by: Jonas Schievink <[email protected]>
| * | | | Rename `CrateDefMap` to `DefMap`Jonas Schievink2021-01-1810-39/+35
| | | | |
* | | | | Merge #7339bors[bot]2021-01-181-3/+6
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7339: Delete optional arg for inline attr and add doc alias attr completion r=lnicola a=bnjjj close #7167 Co-authored-by: Benjamin Coenen <[email protected]>
| * | | | Delete optional arg for inline attr and add doc alias attr completion #7167Benjamin Coenen2021-01-181-3/+6
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| | | | |
| \ \ \ \
*-. \ \ \ \ Merge #7297 #7338bors[bot]2021-01-1821-285/+882
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7297: Propose trait associated items and autoimport traits on completion r=matklad a=SomeoneToIgnore ![trait_imports](https://user-images.githubusercontent.com/2690773/104819998-6faeb480-583a-11eb-8b45-b7351b51b90e.gif) Closes #7248 7338: Parse `impl const Trait` r=Veykril a=Veykril Closes #7313 bors r+ Co-authored-by: Kirill Bulatov <[email protected]> Co-authored-by: Lukas Wirth <[email protected]>
| | * | | | | Parse `impl const Trait`Lukas Wirth2021-01-183-0/+29
| | | | | | |
| * | | | | | Small token fixKirill Bulatov2021-01-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | | | Properly resolve completion edits for empty inputKirill Bulatov2021-01-172-35/+46
| | | | | | |
| * | | | | | Do trait solving in batchKirill Bulatov2021-01-171-95/+97
| | | | | | |
| * | | | | | Draft the working completionKirill Bulatov2021-01-173-27/+168
| | | | | | |