aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* cfg: move tests to separate fileJonas Schievink2020-10-234-208/+195
| | | | | that way we don't have to re-check the entire project when a test is changed
* Reorder itemsJonas Schievink2020-10-231-9/+9
|
* Use format_toJonas Schievink2020-10-231-4/+3
| | | | Co-authored-by: Aleksey Kladov <[email protected]>
* Update crates/cfg/src/cfg_expr.rsJonas Schievink2020-10-221-1/+1
| | | Co-authored-by: Aleksey Kladov <[email protected]>
* Emit better #[cfg] diagnosticsJonas Schievink2020-10-229-65/+124
|
* Fix typoJonas Schievink2020-10-222-1/+2
|
* Implement DNF-based `#[cfg]` introspectionJonas Schievink2020-10-224-2/+621
|
* Simplify cfg representationJonas Schievink2020-10-213-31/+41
|
* Merge #6299bors[bot]2020-10-208-67/+141
|\ | | | | | | | | | | | | | | 6299: Diagnose items that are #[cfg]d out r=jonas-schievink a=jonas-schievink This emits a hint-level diagnostic with `Unnecessary` tag to "gray out" any items whose `#[cfg]` attributes remove the item before name resolution. Co-authored-by: Jonas Schievink <[email protected]>
| * Fixup botched renameJonas Schievink2020-10-201-1/+1
| |
| * More detailed messageJonas Schievink2020-10-201-1/+1
| |
| * Rename UnconfiguredCode -> InactiveCodeJonas Schievink2020-10-203-5/+5
| |
| * Add a (hint) diagnostic for unconfigured itemsJonas Schievink2020-10-206-3/+86
| |
| * Simplify diagnostic construction, add unused fieldJonas Schievink2020-10-203-64/+55
| |
* | Don't rely on display names in inlay_hintsAleksey Kladov2020-10-204-19/+29
|/
* Support Display name in project.jsonAleksey Kladov2020-10-202-3/+7
|
* More type safety around namesAleksey Kladov2020-10-206-19/+33
|
* Introduce CrateDisplayNameAleksey Kladov2020-10-201-1/+23
|
* Rename declaration_name -> display_nameAleksey Kladov2020-10-2011-35/+28
| | | | | | | | Declaration names sounds like a name of declaration -- something you can use for analysis. It empathically isn't, and is just a label displayed in various UI. It's important not to confuse the two, least we accidentally mix semantics with UI (I believe, there's already a case of this in the FamousDefs at least).
* Merge #6294bors[bot]2020-10-202-0/+28
|\ | | | | | | | | | | | | | | | | 6294: Add a hacky remidy for #6038 r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Add a hacky remidy for #6038Aleksey Kladov2020-10-202-0/+28
| | | | | | | | | | | | | | The proper fix I think is: * move rust-lang/rust library crates to a separate workspace * when packaging rust-src component, vendor sources of external deps
* | Add descriptions for diagnostics parseable by xtaskIgor Aleksanov2020-10-192-0/+64
|/
* Minor, rename featureAleksey Kladov2020-10-191-1/+1
|
* Try to fix publishingAleksey Kladov2020-10-191-1/+1
| | | | | | | | | | | | This errro specifically: Updating crates.io index error: failed to select a version for the requirement `ra_ap_stdx = "^0.0.0"` candidate versions found which didn't match: 0.0.20 location searched: /home/runner/work/rust-analyzer/rust-analyzer/crates/stdx required by package `ra_ap_completion v0.0.20 (/home/runner/work/rust-analyzer/rust-analyzer/crates/completion)` error: unable to update Cargo.lock Error: Process completed with exit code 1.
* Change visibility works for type aliasesAleksey Kladov2020-10-182-5/+19
|
* Extract call_info and completion into separate cratesIgor Aleksanov2020-10-1832-226/+300
|
* update depsAleksey Kladov2020-10-181-1/+1
|
* Complete methods when receiver is a macroAleksey Kladov2020-10-172-0/+16
|
* Improve readabilityAleksey Kladov2020-10-171-2/+4
|
* Scan all ancestors for the impl trait block checkIgor Aleksanov2020-10-172-14/+17
|
* Allow hints after 'fn' keyword if it's an impl trait blockIgor Aleksanov2020-10-173-4/+37
|
* Add test for new pattern functionsIgor Aleksanov2020-10-171-0/+8
|
* Improve test_no_completions_required testIgor Aleksanov2020-10-171-1/+17
|
* Remove redundant completionsIgor Aleksanov2020-10-173-4/+70
|
* Merge #6246bors[bot]2020-10-161-8/+9
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 6246: Follow symlinks when walking project trees r=lnicola a=dfoxfranke Fixes #3691. ~~WIP pending further testing~~: - [X] Verify that symlinked files get indexed. - [x] Verify that files in symlinked directories get indexed. - [x] Verify that inotify events are properly received and handled when the target of a symlink resides outside the project tree. Co-authored-by: Daniel Fox Franke <[email protected]>
| * Follow symlinks when walking project treesDaniel Fox Franke2020-10-151-8/+9
| | | | | | | | Fixes #3691
* | Merge #6220bors[bot]2020-10-153-5/+126
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6220: implement binary operator overloading type inference r=flodiebold a=ruabmbua Extend type inference of *binary operator expression*, by adding support for operator overloads. Before this merge request, the type inference of binary expressions could only resolve operations done on built-in primitive types. This merge requests adds a code path, which is executed in case the built-in inference could not get any results. It resolves the proper operator overload trait in *core::ops* via lang items, and then resolves the associated *Output* type. ```rust struct V2([f32; 2]); #[lang = "add"] pub trait Add<Rhs = Self> { /// The resulting type after applying the `+` operator. type Output; /// Performs the `+` operation. #[must_use] fn add(self, rhs: Rhs) -> Self::Output; } impl Add<V2> for V2 { type Output = V2; fn add(self, rhs: V2) -> V2 { let x = self.0[0] + rhs.0[0]; let y = self.0[1] + rhs.0[1]; V2([x, y]) } } fn test() { let va = V2([0.0, 1.0]); let vb = V2([0.0, 1.0]); let r = va + vb; // This infers to V2 now } ``` There is a problem with operator overloads, which do not explicitly set the *Rhs* type parameter in the respective impl block. **Example:** ```rust impl Add for V2 { type Output = V2; fn add(self, rhs: V2) -> V2 { let x = self.0[0] + rhs.0[0]; let y = self.0[1] + rhs.0[1]; V2([x, y]) } } ``` In this case, the trait solver does not realize, that the *Rhs* type parameter is actually self in the context of the impl block. This stops type inference in its tracks, and it can not resolve the associated *Output* type. I guess we can still merge this back, because it increases the amount of resolved types, and does not regress anything (in the tests). Somewhat blocked by https://github.com/rust-analyzer/rust-analyzer/issues/5685 Resolves https://github.com/rust-analyzer/rust-analyzer/issues/5544 Co-authored-by: Roland Ruckerbauer <[email protected]>
| * | binary operator overload type inference: add test markRoland Ruckerbauer2020-10-142-0/+6
| | |
| * | Implement binary operator overloading type inferenceRoland Ruckerbauer2020-10-133-5/+120
| | |
* | | Clarify the names one more timeAleksey Kladov2020-10-157-17/+26
| | |
* | | More idiomatic classification APIAleksey Kladov2020-10-1511-196/+196
| | |
* | | More clarificationsAleksey Kladov2020-10-156-17/+17
| | |
* | | Unconfuse expression and pattern field init shorthandsAleksey Kladov2020-10-153-8/+12
| | |
* | | Clarify NameClass names a bitAleksey Kladov2020-10-156-7/+7
| | |
* | | Merge #6242bors[bot]2020-10-152-91/+210
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6242: Diagnost shorthand in patterns r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Move field_shorthand to a separate moduleAleksey Kladov2020-10-152-196/+211
| | | |
| * | | Diagnose shorthand in patterns as wellAleksey Kladov2020-10-151-5/+94
| | | |
| * | | flattenAleksey Kladov2020-10-151-26/+33
| | | |
| * | | Prepare for pat_field_shorthandAleksey Kladov2020-10-151-5/+13
| | | |
* | | | Merge #6234bors[bot]2020-10-151-1/+24
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6234: Fix hover over field pattern shorthand r=matklad a=Vlad-Shcherbina Instead of the information about the field, it now shows the information about the local. Fixes #6146 Co-authored-by: Vlad Shcherbina <[email protected]>