aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Merge #6907bors[bot]2020-12-1712-41/+373
|\ | | | | | | | | | | | | | | | | | | 6907: Lifetime reference search r=matklad a=Veykril PR #6787 but rewritten to make use of the HIR now. This only applies to Lifetimes, not labels. Also Higher-Ranked Trait Bounds aren't supported yet, but I feel like this PR is big enough as is which is why I left them out after noticing I forgot about them. Supporting renaming required slight changes in the renaming module as lifetime names aren't allowed for anything but lifetimes(and labels) and vice versa for normal names. Co-authored-by: Lukas Wirth <[email protected]>
| * Lifetime reference searchLukas Wirth2020-12-1612-41/+373
| |
* | decl_check: don't pass `db` around so oftenJonas Schievink2020-12-173-60/+68
| |
* | Remove `module_lang_items`Jonas Schievink2020-12-164-57/+32
| | | | | | | | | | It isn't used anywhere except in `crate_lang_items`. Remove it to slightly reduce memory usage and simplify the code.
* | Avoid querying attributes in item tree loweringJonas Schievink2020-12-163-38/+28
|/ | | | | | | | ItemTree is per-file, so there is no unique crate associated with it. This means that it cannot know the active CfgOptions and thus couldn't handle `cfg_attr`. Prepare it for `cfg_attr`s by avoiding accessing attributes.
* Merge #6896bors[bot]2020-12-1659-268/+413
|\ | | | | | | | | | | | | | | | | | | | | | | 6896: Node-ify lifetimes r=jonas-schievink a=Veykril Let's see if this passes the tests 🤞 Depends on https://github.com/rust-analyzer/ungrammar/pull/15 Co-authored-by: Jonas Schievink <[email protected]> Co-authored-by: Jonas Schievink <[email protected]> Co-authored-by: Lukas Wirth <[email protected]>
| * Node-ify lifetimesLukas Wirth2020-12-1659-268/+413
| |
* | Merge #6897bors[bot]2020-12-1622-66/+284
|\| | | | | | | | | | | | | | | | | | | | | | | | | 6897: Basic support for macros 2.0 r=jonas-schievink a=jonas-schievink This adds support for (built-in-only) macros 2.0, and removes some hacks used for builtin derives, which are declared via macros 2.0 in libcore. First steps for https://github.com/rust-analyzer/rust-analyzer/issues/2248. Blocked on https://github.com/rust-analyzer/ungrammar/pull/16. Co-authored-by: Jonas Schievink <[email protected]> Co-authored-by: Jonas Schievink <[email protected]>
| * Make macro def krate mandatoryJonas Schievink2020-12-1514-42/+91
| | | | | | | | Refactors builtin derive support to go through proper name resolution
| * Basic support for decl macros 2.0Jonas Schievink2020-12-1513-25/+194
| |
* | Merge #6861bors[bot]2020-12-163-0/+204
|\ \ | | | | | | | | | | | | | | | | | | | | | 6861: generate default implementation for an enum from an enum variant #6860 r=matklad a=bnjjj close #6860 Co-authored-by: Benjamin Coenen <[email protected]>
| * | generate default implementation for an enum from an enum variant #6860Benjamin Coenen2020-12-151-4/+8
| | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| * | generate default implementation for an enum from an enum variant #6860Benjamin Coenen2020-12-151-22/+22
| | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| * | generate default implementation for an enum from an enum variant #6860Benjamin Coenen2020-12-143-0/+200
| | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
* | | Merge #6894bors[bot]2020-12-163-0/+16
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6894: Parenthesize composite if condition before inverting in invert-if assist r=matklad a=Jesse-Bakker Fixes #6867 Co-authored-by: Jesse Bakker <[email protected]>
| * | | Parenthesize composite if condition before inverting in invert-if assistJesse Bakker2020-12-153-0/+16
| |/ /
* | | Merge #6879bors[bot]2020-12-154-23/+37
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | 6879: Change HasChildSource::ChildId assoc item to generic param r=matklad a=Veykril Co-authored-by: Lukas Wirth <[email protected]>
| * | Change HasChildSource::ChildId assoc item to generic paramLukas Wirth2020-12-154-23/+37
| | |
* | | Reject visibilities on `macro_rules!`Jonas Schievink2020-12-151-1/+13
| | |
* | | Move to upstream `macro_rules!` modelJonas Schievink2020-12-1533-269/+315
| | |
* | | Merge #6886bors[bot]2020-12-154-84/+163
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6886: Expand statements for macros in lowering r=matklad a=edwin0cheng Fixes #6811 Co-authored-by: Edwin Cheng <[email protected]>
| * | | Remove obsolete commentEdwin Cheng2020-12-151-1/+0
| | | |
| * | | Add regression testEdwin Cheng2020-12-151-0/+24
| | | |
| * | | Expand statements for mbe in loweringEdwin Cheng2020-12-153-83/+139
| | |/ | |/|
* | | Merge #6888bors[bot]2020-12-151-62/+67
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6888: Use standard test style r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Use standard test styleAleksey Kladov2020-12-151-62/+67
| | | |
* | | | Merge #6889bors[bot]2020-12-152-0/+17
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6889: Resolve `macro-error` diagnostics on asm & llvm_asm r=matklad a=lf- We currently stub these out as returning unit. This fixes spurious RA `macro-error` diagnostics introduced somewhere around 0.2.400 in the following: ```rust unsafe { asm!(""); llvm_asm!(""); } ``` I'd ideally like to write a unit test for this, but I'm not familiar with where the tests for `hir_expand` are. Thanks to @edwin0cheng for help on resolving this issue. Co-authored-by: lf- <[email protected]>
| * | | | Resolve `macro-error` diagnostics on asm & llvm_asmlf-2020-12-152-0/+17
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We currently stub these out as returning unit. This fixes spurious RA diagnostics in the following: ```rust unsafe { asm!(""); llvm_asm!(""); } ```
* | | | Merge #6875bors[bot]2020-12-152-0/+130
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | 6875: Add find usages for enum constructors r=matklad a=sasurau4 Fix #2549 for enum Co-authored-by: Daiki Ihara <[email protected]>
| * | | Add find usages for enum constructorsDaiki Ihara2020-12-142-0/+130
| | |/ | |/|
* | | Merge #6874bors[bot]2020-12-142-0/+11
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6874: Implement `module_path!()` r=jonas-schievink a=jonas-schievink Closes https://github.com/rust-analyzer/rust-analyzer/issues/6747 bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | Implement `module_path!()`Jonas Schievink2020-12-142-0/+11
| | |/ | |/|
* | | Merge #6862bors[bot]2020-12-148-39/+131
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 6862: Add LifetimeParam resolving to Semantics r=matklad a=Veykril This is stuff required for the lifetime references/definitions PR. I pulled this out to make it easier to review as well as because there is one thing that still has to be addressed which can be found in the review comments. Co-authored-by: Lukas Wirth <[email protected]>
| * | Add LifetimeParam resolving to SemanticsLukas Wirth2020-12-148-39/+131
| |/
* | Merge #6817bors[bot]2020-12-142-39/+28
|\ \ | |/ |/| | | | | | | | | | | 6817: Replace goblin crate with object r=matklad a=lnicola Continuation of #4385. Co-authored-by: LaurenČ›iu Nicola <[email protected]>
| * Replace goblin crate with objectLaurențiu Nicola2020-12-132-39/+28
| |
* | Add test for #6852Florian Diebold2020-12-131-0/+37
| |
* | Change recommendation when source can't be loaded from sysrootFlorian Diebold2020-12-131-1/+1
| | | | | | | | | | | | | | | | | | Since we just tried running `rustup component add`, it doesn't make sense to me to recommend trying that again. If we're reaching this case, it's probably more likely that rustc was installed via package manager, in which case the source should be installed the same way (e.g. if you install the rust-src package on Ubuntu it will install a symlink in the right place to make our sysroot detection work).
* | Merge #6852bors[bot]2020-12-133-3/+17
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 6852: Ignore lifetime params in substitutions r=matklad a=Veykril [`hir_ty::utils::Generics`](https://github.com/rust-analyzer/rust-analyzer/blob/master/crates/hir_ty/src/utils.rs#L153) currently only assumes type parameters but not lifetime parameters and therefor creates incorrect index and length calculations, this PR just makes the use sites ignore LifetimeGenerics for now. This fixes the panic at least locally for me for `analysis-stats`. Funnily enough this panic prevented me from using reference search for the `args` field to fix this problem. Co-authored-by: Lukas Wirth <[email protected]>
| * | Ignore lifetime params in substitutionsLukas Wirth2020-12-133-3/+17
| | |
* | | Merge #6845bors[bot]2020-12-122-1/+34
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6845: Don't HirDisplay unknown types when displaying for source r=Veykril a=Veykril Was wondering why the add missing impl assist didn't do anything here: ![Code_JCA1Qo0V9P](https://user-images.githubusercontent.com/3757771/101990300-7af44a80-3ca6-11eb-8431-e5eb4de4e78c.png) Turns out me forgetting to set the Index::Idx type in the trait causes RA to panic due to it trying to to create an unparsable type in the `make` module. Now we get this instead which imo is definitely better to have. ![Code_MUFPJUCULY](https://user-images.githubusercontent.com/3757771/101990347-c9094e00-3ca6-11eb-9c6a-146bddf64b7c.png) Co-authored-by: Lukas Wirth <[email protected]>
| * | Don't HirDisplay unknown types when displaying for sourceLukas Wirth2020-12-122-1/+34
| | |
* | | Remove some redundant allocationsJeremy Kolb2020-12-129-9/+8
| | |
* | | Merge #6818bors[bot]2020-12-1216-96/+249
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6818: Add Lifetimes to the HIR r=matklad a=Veykril This doesn't handle resolve yet as I don't know yet how that will be used. I'll get to that once I start moving the lifetime reference PR to the hir. This also adds a new `hir` name type for lifetimes and labels, `hir::LifetimeName`. Co-authored-by: Lukas Wirth <[email protected]>
| * | | Add Lifetimes to the HIRLukas Wirth2020-12-1116-96/+249
| | |/ | |/|
* | | Added remove this semicolon testivan7702020-12-121-0/+10
| | |
* | | Merge #6839bors[bot]2020-12-122-4/+74
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6839: Infer labeled blocks r=flodiebold a=Veykril The test should cover all the interesting cases I believe(main part of it is copied from the loop label break test above it). The test is indented to stay consistent with the rest of the tests in the file, I can dedent all the tests in the file in a follow up PR if desired. Co-authored-by: Lukas Wirth <[email protected]>
| * | | Infer labeled blocksLukas Wirth2020-12-112-4/+74
| | |/ | |/|
* | | Merge #6813bors[bot]2020-12-112-6/+39
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6813: negative sign matching in mbe matching for literal r=edwin0cheng a=edwin0cheng Fix #6292 r @jonas-schievink Co-authored-by: Edwin Cheng <[email protected]>
| * | | Add missing arg for eat_charEdwin Cheng2020-12-111-3/+3
| | | |