aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge #8813bors[bot]2021-05-1621-136/+427
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8813: Get some more array lengths! r=lf- a=lf- This is built on #8799 and thus contains its changes. I'll rebase it onto master when that one gets merged. It adds support for r-a understanding the length of: * `let a: [u8; 2] = ...` * `let a = b"aaa"` * `let a = [0u8; 4]` I have added support for getting the values of byte strings, which was not previously there. I am least confident in the correctness of this part and it probably needs some more tests, as we currently have only one test that exercised that part (!). Fixes #2922. Co-authored-by: Jade <[email protected]>
| * Address final feedbackJade2021-05-165-32/+26
| | | | | | | | | | * rename ConstExtension->ConstExt * refactor a manual construction of a Const
| * Add more tests, refactor array lengths/consteval workJade2021-05-148-35/+223
| | | | | | | | | | | | | | | | | | | | | | Fix #2922: add unknown length as a condition for a type having unknown. Incorporate reviews: * Extract some of the const evaluation workings into functions * Add fixmes on the hacks * Add tests for impls on specific array lengths (these work!!! 😁) * Add tests for const generics (indeed we don't support it yet)
| * Test lowering byte strings some moreJade2021-05-131-14/+25
| |
| * Add support for lengths in array repeats, if they are literalsJade2021-05-134-11/+22
| | | | | | | | Now we will get the type of `[0u8; 4]`.
| * Support length for ByteStringsJade2021-05-138-33/+85
| | | | | | | | I am not confident that my added byte string parsing is right.
| * Add lowering of array lengths in typesJade2021-05-1310-79/+114
| | | | | | | | | | | | | | | | | | | | | | Now e.g. ```rust fn a(b: [u8; 2]) { } ``` will know about the length of b.
* | Merge #8848bors[bot]2021-05-156-16/+38
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 8848: Attach comments to ast::Impl r=Veykril a=Veykril bors r+ Fixes #8847 Co-authored-by: Lukas Wirth <[email protected]>
| * | Attach comments to ast::ImplLukas Wirth2021-05-154-6/+30
| | |
| * | simplifyLukas Wirth2021-05-152-10/+8
| | |
* | | Merge #8843bors[bot]2021-05-151-12/+10
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 8843: minor: simplify r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | simplifyLukas Wirth2021-05-151-12/+10
|/ /
* | Merge #8840bors[bot]2021-05-143-5/+7
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8840: fix: false positive "Missing match arm" when a tuple pattern is shorter than scrutinee type. r=Veykril a=iDawer ![Screenshot_20210515_003035](https://user-images.githubusercontent.com/7803845/118320023-2bcb7380-b4eb-11eb-9de6-d8762f981dc2.jpg) Match checking diagnostic shouldn't fire when there is type mismatches. rust-analyzer fd109fb58 2021-05-10 dev (This is part of the preparation for https://github.com/rust-analyzer/rust-analyzer/pull/8717) Co-authored-by: Dawer <[email protected]>
| * | Fix false positive "Missing match arm".Dawer2021-05-143-5/+7
| | |
* | | Merge #8839bors[bot]2021-05-141-2/+2
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8839: minor: more useful bench r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | minor: more useful benchAleksey Kladov2021-05-141-2/+2
| |/ /
* | | Merge #8819bors[bot]2021-05-142-0/+2
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8819: Use package root as `cargo check` working directory r=matklad a=bcully Cargo commands are affected by the `.cargo/config` files above their working directory. If cargo is invoked from above the directory holding `Cargo.toml`, it may not pick up important settings like registry replacements, causing it to behave differently or even fail. Most cargo invocations are currently setting their working directories to the directory containing `Cargo.toml`, but a couple of paths remain in which cargo is invoked from the default workspace root instead. This change fixes that, resolving some cargo check failures that I experienced in a multi-root workspace in which packages used different registries. Co-authored-by: Brendan Cully <[email protected]>
| * | Use package root as `cargo check` working directoryBrendan Cully2021-05-132-0/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cargo commands are affected by the `.cargo/config` files above their working directory. If cargo is invoked from above the directory holding `Cargo.toml`, it may not pick up important settings like registry replacements, causing it to behave differently or even fail. Most cargo invocations are currently setting their working directories to the directory containing `Cargo.toml`, but a couple of paths remain in which cargo is invoked from the default workspace root instead. This change fixes that, resolving some cargo check failures that I experienced in a multi-root workspace in which packages used different registries.
* | Merge #8838bors[bot]2021-05-143-53/+33
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 8838: internal: use more mutable APIs r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | internal: use more mutable APIsAleksey Kladov2021-05-143-53/+33
| | |
* | | Merge #8837bors[bot]2021-05-147-221/+187
|\| | | | | | | | | | | | | | | | | | | | | | | | | | 8837: internal: rewrite assoc item manipulaion to use mutable trees r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | internal: use standard style for testsAleksey Kladov2021-05-142-55/+100
| | |
| * | internal: rewrite assoc item manipulaion to use mutable treesAleksey Kladov2021-05-147-168/+89
|/ /
* | internal: remove SyntaxRewriterAleksey Kladov2021-05-143-154/+7
| |
* | internal: remove more of the SyntaxRewriterAleksey Kladov2021-05-141-29/+31
| |
* | internal: remove one more immutable treeAleksey Kladov2021-05-147-56/+57
| |
* | Merge #8831bors[bot]2021-05-147-2/+41
|\ \ | | | | | | | | | | | | | | | | | | | | | 8831: Apply async semantic token modifier to async/await keywords r=Veykril a=hi-rustin close https://github.com/rust-analyzer/rust-analyzer/issues/8633 Co-authored-by: hi-rustin <[email protected]>
| * | Address commentshi-rustin2021-05-143-3/+25
| | |
| * | Apply async semantic token modifier to async/await keywordshi-rustin2021-05-145-0/+17
|/ / | | | | | | Only async semantic token modifier
* | Merge #8830bors[bot]2021-05-132-0/+36
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 8830: feat: Implement bulitin macro `concat_idents` r=edwin0cheng a=edwin0cheng cc #8828 bors r+ Co-authored-by: Edwin Cheng <[email protected]>
| * | Implement `concat_idents`Edwin Cheng2021-05-132-0/+36
| | |
* | | Merge #8822bors[bot]2021-05-133-6/+12
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8822: minor: Cleanup imports r=Veykril a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Cleanup importsAleksey Kladov2021-05-133-6/+12
| | | |
* | | | Merge #8814bors[bot]2021-05-131-5/+33
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8814: fix: Keep doc comments and outer attrs on "Move module to file" assist r=Veykril a=Jesse-Bakker Fixes #8804 Co-authored-by: Jesse Bakker <[email protected]>
| * | | | fix: Keep doc comments and outer attrs on "Move module to file" assistJesse Bakker2021-05-131-5/+33
| | |/ / | |/| |
* | | | Merge #8820bors[bot]2021-05-132-2/+37
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8820: fix: Return absolute paths in find_path if crate start is ambiguous r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | | | Return absolute paths in find_path if crate start is ambiguousLukas Wirth2021-05-132-2/+37
| | | | |
* | | | | Merge #8823bors[bot]2021-05-131-4/+4
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8823: Enable OPTION::ENABLE_TASKLISTS in pulldown_cmark r=Veykril a=Veykril Closes #8821 Co-authored-by: Lukas Wirth <[email protected]>
| * | | | | Enable OPTION::ENABLE_TASKLISTS in pulldown_cmarkLukas Wirth2021-05-131-4/+4
| |/ / / /
* | | | | Merge #8825bors[bot]2021-05-131-1/+1
|\ \ \ \ \ | |_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8825: Corrected minor typo on line 20 r=lnicola a=mixio Co-authored-by: mixio <[email protected]>
| * | | | Corrected minor typo on line 20mixio2021-05-131-1/+1
|/ / / /
* | | | Merge #8799bors[bot]2021-05-1212-110/+156
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8799: Add basic support for array lengths in types r=flodiebold a=lf- This recognizes `let a = [1u8, 2, 3]` as having type `[u8; 3]` instead of the previous `[u8; _]`. Byte strings and `[0u8; 2]` kinds of range array declarations are unsupported as before. I don't know why a bunch of our rustc tests had single quotes inside strings un-escaped by `UPDATE_EXPECT=1 cargo t`, but I don't think it's bad? Maybe something in a nightly? Co-authored-by: Jade <[email protected]>
| * | | | address review by @eddybJade2021-05-112-2/+3
| | | | |
| * | | | Add basic support for array lengths in typesJade2021-05-1112-110/+155
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This recognizes `let a = [1u8, 2, 3]` as having type `[u8; 3]` instead of the previous `[u8; _]`. Byte strings and `[0u8; 2]` kinds of range array declarations are unsupported as before. I don't know why a bunch of our rustc tests had single quotes inside strings un-escaped by `UPDATE_EXPECT=1 cargo t`, but I don't think it's bad? Maybe something in a nightly?
* | | | Merge #8802bors[bot]2021-05-121-9/+126
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8802: Keep comments and attrs when extracting struct from enum variant r=Veykril a=DropDemBits Fixes #6730 Still unsure if existing visibilities of fields should be forced to pub (which is what was previously done), or if it's okay to keep it in the extracted struct. Co-authored-by: DropDemBits <[email protected]>
| * | | Keep comments and attrs when extracting struct from enum variantDropDemBits2021-05-111-9/+126
| | | |
* | | | Merge #8812bors[bot]2021-05-123-13/+57
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8812: fix: fix dependencies of build scripts r=jonas-schievink a=jonas-schievink Previously, we added a dependency for all targets in a package to the package's library target. This is correct for most targets, except build scripts, which run before the library crate is built. This PR removes the incorrect dependency on the library target. We also used to treat all dependencies the same, which led to build scripts being able to use regular dependencies as well as dev-dependencies. This is also fixed by this PR, and build scripts only depend on build-dependencies. Incorrect dependency graph: ![screenshot-2021-05-11-23:35:01](https://user-images.githubusercontent.com/1786438/117975228-c2066a80-b32e-11eb-8f01-1e3ea904a608.png) Fixed graph after this PR: ![screenshot-2021-05-12-14:29:31](https://user-images.githubusercontent.com/1786438/117975253-c9c60f00-b32e-11eb-8f6c-9e42d4e32468.png) Co-authored-by: Jonas Schievink <[email protected]>
| * | | Fix build script dependenciesJonas Schievink2021-05-123-13/+57
|/ / /
* | | Merge #8808bors[bot]2021-05-122-30/+12
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8808: fix: Fix fn proc macro input again r=jonas-schievink a=jonas-schievink https://github.com/rust-analyzer/rust-analyzer/pull/8806 broke the `TokenMap`, so none of the tokens in fn-like proc macro inputs could be related to the output (presumably this is because of the `clone_for_update`). This PR instead just sets `delimiter = None;` after the `TokenMap` and `Subtree` are already created. We should probably have more tests for fn-like proc macros, and consider making the behavior consistent with MBE (which *require* the delimiters to be present). bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | Remove delimiters from proc macro inputJonas Schievink2021-05-122-1/+14
| | | |