Aleksey Kladov
2f9273633b
feat: filter out duplicate macro completions
...
closes #9303
2021-08-03 17:36:06 +03:00
Aleksey Kladov
12d7f5b56e
internal: explain that we don't ref
in style.md
2021-08-02 15:59:28 +03:00
Aleksey Kladov
5f3662e01c
minor: encode usage convention into API
2021-08-02 15:28:39 +03:00
bors[bot]
33dcc895c1
Merge #9700
...
9700: fix: Remove the legacy macro scoping hack r=matklad a=jonas-schievink
This stops prepending `self::` to single-ident macro paths, resolving even legacy-scoped macros using the fixed-point algorithm. This is not correct, but a lot easier than fixing this properly (which involves pushing a new scope for every macro definition and invocation).
This allows resolution of macros from the prelude, fixing https://github.com/rust-analyzer/rust-analyzer/issues/9687 .
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2021-07-28 12:07:25 +00:00
Alexander Gonzalez
e57ad5456c
fix: Typos
2021-07-27 18:31:21 -04:00
Jonas Schievink
18b6327a29
Remove the legacy macro scoping hack
2021-07-26 19:58:14 +02:00
Jonas Schievink
c8d915e2ea
Fix formatting and use Iterator::any
2021-07-23 16:45:14 +02:00
Jonas Schievink
b0f7aac72f
Respect #[doc(hidden)]
in dot-completion
2021-07-23 15:36:43 +02:00
bors[bot]
0bee7cb716
Merge #9453
...
9453: Add first-class limits. r=matklad,lnicola a=rbartlensky
Partially fixes #9286 .
This introduces a new `Limits` structure which is passed as an input
to `SourceDatabase`. This makes limits accessible almost everywhere in
the code, since most places have a database in scope.
One downside of this approach is that whenever you query limits, you
essentially do an `Arc::clone` which is less than ideal.
Let me know if I missed anything, or would like me to take a different approach!
Co-authored-by: Robert Bartlensky <bartlensky.robert@gmail.com>
2021-07-22 10:33:05 +00:00
Jonas Schievink
837eec8dab
filter visiblities when resolving in extern crate
2021-07-21 17:51:56 +02:00
bors[bot]
4705df44c7
Merge #9637
...
9637: Overhaul doc_links testing infra r=Veykril a=Veykril
and fix several issues with current implementation.
Fixes #9617
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-20 16:06:37 +00:00
Aleksey Kladov
7ec8434674
internal: remove potentially slow method
2021-07-20 17:19:58 +03:00
Lukas Wirth
97d63d67cd
Resolve paths to assoc items for traits
2021-07-19 20:51:57 +02:00
Jonas Schievink
66311e1262
Add TreeId
to identify ItemTree
s
...
With per-block `ItemTree`s, the file ID is not enough to identify an
`ItemTree`.
2021-07-19 14:53:18 +02:00
Robert Bartlensky
0b3d0cde8b
Add Limit
struct.
...
Fixes #9286 .
2021-07-19 13:26:11 +01:00
Kirill Bulatov
8a5b24eb7e
Explicitly connect an ambiguous import path case logic with the test on it
2021-07-16 00:41:00 +03:00
Aleksey Kladov
6f269708e8
internal: get rid of a call to slow O(N) visibility_of function
...
Instead of inferring module's declared visibility by looking at the
scope of its parent, let's just remeber the declared visibility in the
DefMap.
2021-07-12 21:13:43 +03:00
Aleksey Kladov
a9d0d1414a
internal: remove erroneous default impl
2021-07-12 20:18:07 +03:00
Aleksey Kladov
67a7dfda43
internal: remove deprecated fn
2021-07-12 20:05:09 +03:00
Aleksey Kladov
d40cf52e6d
internal: perpare to remove ModuleData::default
2021-07-12 20:02:56 +03:00
Aleksey Kladov
107e07458c
internal: remove erroneous Default impl for ModuleOrigin
...
In rust-analyzer, we avoid defualt impls for types which don't have
sensible, "empty" defaults. In particular, we avoid using invalid
indices for defaults and similar hacks.
2021-07-12 20:00:17 +03:00
Florian Diebold
b7bd45574a
Add workaround for #9562
...
This treats the consts generated by older synstructure versions like
unnamed consts. We should remove this at some point (at least after
Chalk has switched).
2021-07-11 16:14:39 +02:00
Lukas Wirth
13d3928d0b
Update list of safe intrinsics
2021-07-08 15:49:39 +02:00
Jonas Schievink
8bf4ecebfe
Add a coverage mark
2021-07-05 17:06:16 +02:00
Jonas Schievink
835723ca67
Fix visibility computation with modules from the same block
2021-07-05 16:06:50 +02:00
Aleksey Kladov
86720f2953
minor: drop dummy authors field
2021-07-05 14:19:41 +03:00
bors[bot]
738dd6ed9f
Merge #9431
...
9431: internal: Implement TypeRef::ForLifetime r=flodiebold a=Veykril
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-01 18:25:06 +00:00
bors[bot]
920b2c8630
Merge #9445
...
9445: fix: Fix nested macro in block defining items r=jonas-schievink a=jonas-schievink
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/8930
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2021-07-01 17:21:34 +00:00
Jonas Schievink
28e4b10f46
Fix nested macro in block defining items
2021-07-01 19:20:42 +02:00
Jonas Schievink
33d5793f19
Add a simpler legacy macro scoping test
2021-07-01 17:28:42 +02:00
Lukas Wirth
af739731db
Implement TypeRef::ForLifetime
2021-06-30 01:34:54 +02:00
Jonas Schievink
3ebceb71e3
Handle ::{self}
imports
2021-06-28 20:13:33 +02:00
Lukas Wirth
254e8f38d0
Record attributes in attr_query for proc-macros
2021-06-28 19:16:38 +02:00
Aleksey Kladov
260a24d05e
internal: count ItemScopes
2021-06-22 21:02:08 +03:00
Aleksey Kladov
4772cb6b30
minor: clarify naming
2021-06-22 20:56:52 +03:00
Clemens Wasser
47747cd412
Apply some clippy suggestions
2021-06-21 16:40:21 +02:00
Laurențiu Nicola
e3ce88f6f2
Minor clippy perf fixes
2021-06-18 14:40:51 +03:00
Lukas Wirth
95c8c65139
Nest all the or-patterns!
2021-06-17 17:37:14 +02:00
Aleksey Kladov
7786ab2d44
minor: add a test variation
2021-06-15 11:58:39 +03:00
Aleksey Kladov
3f4ad44082
internal: document that we don't #[ignore] tests
2021-06-15 11:46:47 +03:00
Aleksey Kladov
c2015e7d18
internal: more natural order of sources for TypeParam
...
We usually use first (left) variant of `Either` for "usual" case, and
use right for odd things. For example, pat source is Pat | SelfParam.
2021-06-14 22:42:43 +03:00
bors[bot]
7bff76d8ae
Merge #9249
...
9249: internal: remove def-level diagnostics tests r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-06-13 15:46:09 +00:00
Aleksey Kladov
4af7a35197
internal: remove def-level diagnostics tests
2021-06-13 18:45:38 +03:00
Aleksey Kladov
00303284b5
internal: refactor macro error
2021-06-13 18:41:04 +03:00
Aleksey Kladov
f85e383b94
internal: refactor inactive code diagnostics
2021-06-13 17:29:25 +03:00
bors[bot]
3d8df2aef8
Merge #9248
...
9248: internal: refactor unresolved macro call diagnostic r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-06-13 14:09:41 +00:00
Aleksey Kladov
fa9ed4e0ce
internal: refactor unresolved macro call diagnostic
2021-06-13 17:08:54 +03:00
Aleksey Kladov
6d104de15a
internal: refactor unresolved import diagnostic
2021-06-13 16:42:34 +03:00
bors[bot]
e6fa9b016f
Merge #9247
...
9247: internal: refactor unresolved extern crate diagnostic r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-06-13 13:06:27 +00:00
Aleksey Kladov
39f190b72c
internal: refactor unresolved extern crate diagnostic
2021-06-13 16:05:43 +03:00