bors[bot]
f4929fa9cc
Merge #6901
...
6901: Temp fixes panic caused by no ast for proc-macro r=maklad a=edwin0cheng
There are some panic when hover/goto definition for proc-macro. It is because in current design, we don't have `ast-node` for proc-macro and then it trigger [this](479d1f7eec/crates/hir/src/has_source.rs (L116) ) line to panic.
This PR is a temp fix for all of these similar to bd4c352831/crates/completion/src/render/macro_.rs (L42)
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com >
2020-12-18 02:30:51 +00:00
Edwin Cheng
60a3785ac2
Temp fixes panic caused by no ast for proc-macro
2020-12-18 10:26:17 +08:00
Jonas Schievink
4f07d8dd58
Refactor attributes API to allow handling cfg_attr
2020-12-18 02:24:14 +01:00
Kirill Bulatov
9d2cbf05e3
Show first fuzzy completions fully containing the input
2020-12-17 23:10:18 +02:00
Lukas Wirth
fa65d6ba85
Higher-ranked trait bounds for where clauses
2020-12-17 22:01:42 +01:00
bors[bot]
b55cb897e5
Merge #6912
...
6912: Default to host platform for cargo metadata r=jonhoo a=jonhoo
This modifies the logic for calling cargo metadata so that it will use
the host platform if no explicit target platform is given. This is
needed since cargo metadata defaults to outputting information for _all_
targets.
Fixes #6908 .
Co-authored-by: Jon Gjengset <jongje@amazon.com >
Co-authored-by: Jon Gjengset <jon@thesquareplanet.com >
2020-12-17 18:32:13 +00:00
Jon Gjengset
faed47b3d3
Fun times with rustfmt
2020-12-17 10:24:58 -08:00
Jon Gjengset
71478e067b
Update crates/project_model/src/cargo_workspace.rs
...
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com >
2020-12-17 13:18:23 -05:00
bors[bot]
b0e5d1efdb
Merge #6920
...
6920: Minor API cleanup r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com >
2020-12-17 17:18:50 +00:00
Aleksey Kladov
30216880c4
Minor API cleanup
2020-12-17 20:14:13 +03:00
Aleksey Kladov
c888f1de6f
Rewrite doctest runnables
...
Handle more cases in a generic way without copy-pasting code.
2020-12-17 20:11:40 +03:00
Aleksey Kladov
0da1532ef2
Minor code style
2020-12-17 20:10:39 +03:00
kjeremy
d828bd794b
LSP 3.16 - Released
2020-12-17 11:33:35 -05:00
Jonas Schievink
9231821c03
Make Attrs::from_attrs_owner private
2020-12-17 15:45:26 +01:00
Jonas Schievink
eaeabbb815
Add AttrDefId::krate
...
Access to the containing crate will be needed to handle `cfg_attr`
2020-12-17 14:29:29 +01:00
Lukas Wirth
c8c58d81ec
Remove obsolete FIXME
2020-12-17 13:40:11 +01:00
Aleksey Kladov
2ae31e34b1
Rename ImplDef -> Impl
...
We used to have `Def` suffix for all symbols, but we moved off from
that. `FunctionDef` isn't better than `Function`. Looks like we've
forgot to change `Impl` though!
2020-12-17 14:36:15 +03:00
bors[bot]
d641bccb0f
Merge #6907
...
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 <lukastw97@gmail.com >
2020-12-17 11:00:39 +00:00
Jon Gjengset
9802c0ccd0
Default to host platform for cargo metadata
...
This modifies the logic for calling cargo metadata so that it will use
the host platform if no explicit target platform is given. This is
needed since cargo metadata defaults to outputting information for _all_
targets.
Fixes #6908 .
2020-12-16 17:38:37 -08:00
Jonas Schievink
6615fda695
decl_check: don't pass db around so often
2020-12-17 01:19:56 +01:00
Jonas Schievink
21b68a328c
Remove module_lang_items
...
It isn't used anywhere except in `crate_lang_items`. Remove it to
slightly reduce memory usage and simplify the code.
2020-12-17 00:26:01 +01:00
Jonas Schievink
28b5334580
Avoid querying attributes in item tree lowering
...
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.
2020-12-16 23:42:03 +01:00
Lukas Wirth
55faa2daa3
Lifetime reference search
2020-12-16 22:21:01 +01:00
bors[bot]
067067a6c1
Merge #6896
...
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 <jonasschievink@gmail.com >
Co-authored-by: Jonas Schievink <jonas.schievink@ferrous-systems.com >
Co-authored-by: Lukas Wirth <lukastw97@gmail.com >
2020-12-16 17:08:03 +00:00
bors[bot]
63bbdb31e5
Merge #6897
...
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 <jonasschievink@gmail.com >
Co-authored-by: Jonas Schievink <jonas.schievink@ferrous-systems.com >
2020-12-16 16:52:46 +00:00
Lukas Wirth
dd496223f5
Node-ify lifetimes
2020-12-16 14:16:09 +01:00
bors[bot]
c1c36acb02
Merge #6861
...
6861: generate default implementation for an enum from an enum variant #6860 r=matklad a=bnjjj
close #6860
Co-authored-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com >
2020-12-16 08:36:05 +00:00
bors[bot]
ece626fe81
Merge #6894
...
6894: Parenthesize composite if condition before inverting in invert-if assist r=matklad a=Jesse-Bakker
Fixes #6867
Co-authored-by: Jesse Bakker <github@jessebakker.com >
2020-12-16 08:20:11 +00:00
Benjamin Coenen
2c82a1aec7
generate default implementation for an enum from an enum variant #6860
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com >
2020-12-15 21:35:41 +01:00
Jonas Schievink
b238ddd21a
Make macro def krate mandatory
...
Refactors builtin derive support to go through proper name resolution
2020-12-15 20:33:05 +01:00
Jonas Schievink
c31c3246a8
Basic support for decl macros 2.0
2020-12-15 18:43:34 +01:00
bors[bot]
eb9ba457b0
Merge #6879
...
6879: Change HasChildSource::ChildId assoc item to generic param r=matklad a=Veykril
Co-authored-by: Lukas Wirth <lukastw97@gmail.com >
2020-12-15 17:22:03 +00:00
Lukas Wirth
2c67a4abe4
Change HasChildSource::ChildId assoc item to generic param
2020-12-15 18:21:01 +01:00
Jesse Bakker
0f42a71806
Parenthesize composite if condition before inverting in invert-if assist
2020-12-15 16:25:57 +01:00
Jonas Schievink
479babf874
Reject visibilities on macro_rules!
2020-12-15 15:37:49 +01:00
Jonas Schievink
c1cb595382
Move to upstream macro_rules! model
2020-12-15 15:37:37 +01:00
bors[bot]
39aae835fd
Merge #6886
...
6886: Expand statements for macros in lowering r=matklad a=edwin0cheng
Fixes #6811
Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com >
2020-12-15 12:41:07 +00:00
bors[bot]
435d46b183
Merge #6888
...
6888: Use standard test style r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com >
2020-12-15 12:34:37 +00:00
Edwin Cheng
1f4da7098c
Remove obsolete comment
2020-12-15 17:25:59 +08:00
bors[bot]
a9d19200f2
Merge #6889
...
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- <lf-@users.noreply.github.com >
2020-12-15 09:15:41 +00:00
lf-
090a59970d
Resolve macro-error diagnostics on asm & llvm_asm
...
We currently stub these out as returning unit.
This fixes spurious RA diagnostics in the following:
```rust
unsafe { asm!(""); llvm_asm!(""); }
```
2020-12-15 01:06:53 -08:00
Aleksey Kladov
c582e52a1b
Use standard test style
2020-12-15 11:53:16 +03:00
Benjamin Coenen
490475ee19
generate default implementation for an enum from an enum variant #6860
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com >
2020-12-15 09:46:02 +01:00
bors[bot]
65e31a1b5b
Merge #6875
...
6875: Add find usages for enum constructors r=matklad a=sasurau4
Fix #2549 for enum
Co-authored-by: Daiki Ihara <sasurau4@gmail.com >
2020-12-15 08:38:08 +00:00
Edwin Cheng
9da1eee436
Add regression test
2020-12-15 15:24:35 +08:00
Edwin Cheng
a68ff269a9
Expand statements for mbe in lowering
2020-12-15 14:39:15 +08:00
Daiki Ihara
36a9daac70
Add find usages for enum constructors
2020-12-15 00:39:42 +09:00
bors[bot]
34f7b5383a
Merge #6874
...
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 <jonasschievink@gmail.com >
2020-12-14 15:39:31 +00:00
Jonas Schievink
81820fe52c
Implement module_path!()
2020-12-14 16:38:53 +01:00
bors[bot]
817fbebbb5
Merge #6862
...
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 <lukastw97@gmail.com >
2020-12-14 15:15:52 +00:00