Jonas Schievink
218e88ab55
Add API for mapping Attr
back to its syntax node
2020-12-19 15:15:02 +01:00
Jonas Schievink
a2062d1892
Make RawAttrs
crate-private
...
There should be no need to use this from outside
2020-12-19 02:44:22 +01:00
Jonas Schievink
81ccf37d3b
Remove Attrs::merge
...
Only the `RawAttrs` version of this is in use
2020-12-19 02:43:00 +01:00
Jonas Schievink
0ac75f8982
Remove resolved FIXME
2020-12-19 02:32:31 +01:00
Jonas Schievink
aa00d1acd6
fixture -> ra_fixture
2020-12-19 01:12:41 +01:00
Jonas Schievink
d5edd0e928
Test paths to derive macros
2020-12-19 01:11:33 +01:00
Jonas Schievink
ea5cc8d07a
More accurate #[derive]
parsing
...
This now allows full paths to the derive macro
2020-12-19 01:10:56 +01:00
bors[bot]
38b108c20e
Merge #6935
...
6935: Don't look at attributes when lowering to ItemTree r=jonas-schievink a=jonas-schievink
Resolves 2 `cfg_attr` FIXMEs
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2020-12-18 19:38:07 +00:00
Jonas Schievink
77972e2001
Don't look at attributes when lowering to ItemTree
...
Resolves 2 `cfg_attr` FIXMEs
2020-12-18 20:37:26 +01:00
Jonas Schievink
aab9cc9cfb
Hit a mark
2020-12-18 20:25:41 +01:00
Jonas Schievink
382ee2fa03
Add test
2020-12-18 20:01:02 +01:00
Jonas Schievink
d42d1d33f0
Fix parsing of active cfg_attr
2020-12-18 20:00:59 +01:00
Jonas Schievink
08de1b4fa5
Implement RawAttr::filter
2020-12-18 18:58:42 +01:00
Jonas Schievink
4f07d8dd58
Refactor attributes API to allow handling cfg_attr
2020-12-18 02:24:14 +01: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
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
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
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
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
Edwin Cheng
a68ff269a9
Expand statements for mbe in lowering
2020-12-15 14:39:15 +08:00
Lukas Wirth
c6172f3f6d
Add LifetimeParam resolving to Semantics
2020-12-14 16:04:28 +01:00
Lukas Wirth
ae8a802085
Ignore lifetime params in substitutions
2020-12-13 11:34:44 +01:00
bors[bot]
479d1f7eec
Merge #6818
...
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 <lukastw97@gmail.com>
2020-12-12 14:35:38 +00:00
Lukas Wirth
11f8664182
Add Lifetimes to the HIR
2020-12-12 00:56:52 +01:00
Lukas Wirth
8ed8e4f25a
Use Attrs::docs in NavigationTarget instead of DocCommentsOwner
2020-12-11 21:19:58 +01:00
bors[bot]
91bf15a2f5
Merge #6834
...
6834: Use Attrs::docs in runnables instead of DocCommentsOwner r=kjeremy a=Veykril
I figured that we should probably move as much of the doc usage to the HIR as possible hence this PR. If we should keep this AST-based feel free to close.
This change does have the nice(but not really useful as I doubt anyones gonna write doc tests like these) side effect that these two doc string snippets allow being run now.
![image](https://user-images.githubusercontent.com/3757771/101945607-bf241400-3bee-11eb-96ce-ccae80028b1f.png )
![image](https://user-images.githubusercontent.com/3757771/101946375-2e9a0380-3bef-11eb-9950-e35168fdd048.png )
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-11 19:57:08 +00:00
Lukas Wirth
ac19a71459
Use Attrs::docs in runnables instead of DocCommentsOwner
2020-12-11 20:11:03 +01:00
Jonas Schievink
00c34b048e
Add upstream commit to builtin_attr.rs
2020-12-11 19:12:06 +01:00
Jonas Schievink
253678ead2
Add builtin attributes for use in nameres
2020-12-11 14:04:33 +01:00
Jonas Schievink
d338513e95
Remove item tree tests
...
They were useful during initial development of the item tree, but
now just cause churn
2020-12-10 15:53:48 +01:00
Jonas Schievink
d82292e1ce
Ignore extern items in incorrect-case check
2020-12-10 15:45:01 +01:00
Aleksey Kladov
6e24321e45
Introduce anchored_path
...
They allow to represent paths like `#[path = "C:\path.rs"] mod foo;`
in a lossless cross-platform & network-transparent way.
2020-12-09 19:07:05 +03:00
bors[bot]
ef989880ff
Merge #6771
...
6771: Properly attach inner attributes in Attrs::new r=matklad a=Veykril
Properly attach inner and outer attributes to the things they actually belong to in the HIR. ~~I can add some tests for this if wanted once I know where to put them/how to test for this.~~ Put some tests into `hover.rs`.
So the following snippet
```rust
mod foo {
//! Hello
}
```
now shows `Hello` on hover 🎉
Fixes #2148
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-09 13:16:39 +00:00
bors[bot]
cd83ded8ee
Merge #6774
...
6774: Increment recursion count in Expander only on success r=lnicola a=Veykril
Fixes #6764
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-09 11:35:18 +00:00
Lukas Wirth
ec415618df
Properly decrement recursion count in Expander
2020-12-09 12:26:33 +01:00
Lukas Wirth
f8823e8cbc
Properly fetch inner and outer docs on hir-level
2020-12-09 09:22:41 +01:00
Lukas Wirth
eac77997bf
Properly fetch inner and outer attributes on hir-level
2020-12-08 23:21:20 +01:00
Jonas Schievink
306c6cbaac
Use original_file_range
in TestDB
2020-12-08 19:03:24 +01:00
Jonas Schievink
6c1d292569
Add test for $crate
in builtin macros
...
Fixes #6716
2020-12-08 17:17:30 +01:00
Jonas Schievink
678c74430b
Handle macros in TestDB::check_diagnostics
2020-12-08 17:16:18 +01:00
Lukas Wirth
2facd9517f
Escape string literals in Attr::from_src
2020-12-08 13:47:58 +01:00
Lukas Wirth
7a338e5207
Replace Arc<[str]> with String in attr::Documentation
2020-12-07 21:55:00 +01:00