Lukas Wirth
f867ddc621
fix: Order ItemScope::entries results
2022-07-28 19:28:56 +02:00
Amos Wenger
a1f1b95d00
Merge commit 'e36a20c24f35a4cee82bbdc600289104c9237c22' into ra-sync-and-pms-component
2022-07-26 11:53:50 +02:00
Lukas Wirth
ddad2847ab
Allow name querying for derive helpers
2022-07-26 09:27:22 +02:00
Lukas Wirth
aa1491ecde
Record derive helper attributes, resolve them in IDE layer
2022-07-26 09:26:51 +02:00
Lukas Wirth
4e60db2d07
feat: Downmap tokens inside derive helpers
2022-07-26 09:26:47 +02:00
Amos Wenger
dc94050815
revert nightly rustfmt formatting that accidentally slipped in
...
cf. https://github.com/rust-lang/rust/pull/99603
cf. https://github.com/rust-lang/rust-analyzer/pull/12871#discussion_r928816339
2022-07-25 14:18:30 +02:00
Amos Wenger
0d04e63627
Merge remote-tracking branch 'origin/master' into sync-from-rust-2
2022-07-25 14:07:07 +02:00
Amos Wenger
dfe84494c1
Make macros test order-resistant
2022-07-24 16:48:06 +02:00
Amos Wenger
56c369db48
Sort when iterating through CrateGraph
2022-07-24 16:11:05 +02:00
Amos Wenger
d8c0d88e4f
Sort in DefMap::dump, since HashMap iteration order isn't defined
2022-07-24 16:04:20 +02:00
Amos Wenger
ff317858c1
hir-def tests: sort results before comparing, since FxHashSet iteration order isn't guaranteed
...
(And, in fact, it failed on i686)
2022-07-24 15:55:26 +02:00
Ryo Yoshida
64758bd481
Add info whether it's assignee expr to relevant HIR Expr
variants
2022-07-24 22:40:00 +09:00
Ryo Yoshida
fb063d360c
Add ellipsis
to HIR RecordLit
2022-07-24 17:10:31 +09:00
bors
d469e0de9a
Auto merge of #12840 - Veykril:be-lazy, r=Veykril
...
internal: Use ItemTree for variant, field and module attribute collection in attrs_query
Less parsing = very good, should speed up lang item collection as that basically probes attributes of all enum variants which currently triggers parsing
Not fond of how this is searching for the correct index, ideally we'd map between HIR and item tree Id here but I am not sure how, storing the item tree ids in the HIR version doesn't work due to the usage of `Trace`...
2022-07-22 20:35:31 +00:00
Lukas Wirth
0081ef3834
Use ItemTree for modules in attrs_query
2022-07-22 22:17:13 +02:00
Lukas Wirth
5f9a5825e0
Use ItemTree for crate root attr_query collection
2022-07-21 09:23:30 +02:00
Lukas Wirth
1aadd9da92
internal: Use itemtree for variant and field attribute collection
2022-07-21 08:48:13 +02:00
Lukas Wirth
10c7ee7068
Simplify
2022-07-21 08:48:09 +02:00
bors
2f6c39005c
Auto merge of #12827 - Veykril:be-lazy, r=Veykril
...
internal: Construct fewer `AstIdMap`s in lowering
2022-07-21 00:11:18 +00:00
Lukas Wirth
7bd2e305d6
Simplify
2022-07-21 02:06:26 +02:00
Lukas Wirth
c83f14a44a
Remove AstIdMap from Expander as it is seldom needed
2022-07-21 02:01:07 +02:00
Lukas Wirth
e507807837
internal: Don't eagerly construct AstIdMap
s
2022-07-20 15:12:00 +02:00
Amos Wenger
7e285e1ef5
Run cargo fmt
2022-07-20 15:06:15 +02:00
Amos Wenger
816f7fe12a
Run cargo fix --edition-idioms
2022-07-20 15:02:08 +02:00
Amos Wenger
23d25a3094
Enable extra warnings required by rust-lang/rust
2022-07-20 15:00:17 +02:00
Amos Wenger
1b416473a3
Upgrade to expect-test@1.4.0
...
cf. https://github.com/rust-analyzer/expect-test/issues/33
cf. https://github.com/rust-lang/rust/pull/99444#issuecomment-1188844202
2022-07-19 13:00:45 +02:00
Artur Sinila
d9336a496c
fix: un-inline ConstScalarOrPath::from_expr_opt
2022-07-17 20:35:34 +03:00
bors
db6a85d358
Auto merge of #12778 - Logarithmus:feature/fix-negative-const-generics, r=flodiebold
...
Support negative, `char` & `bool` const generics
Before:
![Before](https://user-images.githubusercontent.com/29541480/179379832-0c3b2a74-fef6-427e-b89f-7e31d9c37b3d.png )
After:
![After](https://user-images.githubusercontent.com/29541480/179379863-b62475dd-e7bf-41f2-b437-08dfe55951af.png )
I tried to implement stuff like `Const<{NUM1 + 3 + NUM2}>` by using already existing constant evaluation mechanism for ordinary constants, but turned out to be harder than I thought, maybe because I've never ever tinkered with compilers before
2022-07-17 17:17:39 +00:00
Artur Sinila
83177a7cfe
fix: address suggestions
2022-07-17 18:22:11 +03:00
Artur Sinila
15f73008f8
refactor: inline some variables
2022-07-17 14:55:21 +03:00
Artur Sinila
a96f0aa7cd
feat: support negative const generic parameters
...
* feat: support `bool` & `char` const generics
2022-07-17 04:18:53 +03:00
bors
766c5f0861
Auto merge of #12689 - Veykril:macro-rec, r=Veykril
...
internal: Record all macro definitions in ItemScope
Fixes https://github.com/rust-lang/rust-analyzer/issues/12100
Doesn't resolve the shadowing issues though, fixing those is gonna be really tricky I believe unless we can come up with a nice scheme to "order" item tree items (using syntax ranges and file ids would be a pain and also a bad idea since that'll require us to potentially reparse files in collection).
2022-07-16 16:45:26 +00:00
bors
d3796adeaa
Auto merge of #12772 - Veykril:nameres, r=Veykril
...
internal: Remove allocation in DefCollector::reseed_with_unresolved_attribute
2022-07-16 09:50:22 +00:00
Lukas Wirth
25090f0e6d
internal: Remove allocation in DefCollector::reseed_with_unresolved_attribute
2022-07-16 11:17:15 +02:00
Lukas Wirth
7ff6c36716
fix: Don't show qualified path completions for private items
2022-07-15 13:30:43 +02:00
Jonas Schievink
df66eb74ab
Implement ignore
and index
metavar expression
2022-07-11 18:31:42 +02:00
bors
c419aa9775
Auto merge of #12719 - davidlattimore:format-args-no-unsafe, r=jonas-schievink
...
Remove unnecessary unsafe from format_args expansion
2022-07-08 14:10:19 +00:00
Jonas Schievink
6c6ae965ba
Update remaining GitHub URLs
2022-07-08 15:44:49 +02:00
David Lattimore
6f819e30e4
Remove unnecessary unsafe from format_args expansion
2022-07-08 14:56:18 +10:00
bors
c296e77767
Auto merge of #12695 - xuhongxu96:fix-12140, r=jonas-schievink
...
Complete type param/associated type in trait generic arg per arg index
- Fix #12140
- Also fix tidy check does not work for marks in multiline
2022-07-06 23:58:52 +00:00
Hongxu Xu
75fb3de310
Handle generic args per arg index
...
Add more test cases for generic args
2022-07-07 00:45:22 +08:00
bors
6edf624cbe
Auto merge of #12690 - Veykril:inert-attrs, r=Veykril
...
internal: Update inert attribute list
2022-07-05 09:55:55 +00:00
Lukas Wirth
383ee6af5e
internal: Update inert attribute list
2022-07-05 11:54:46 +02:00
Lukas Wirth
db49ac8734
internal: Record all macro definitions in ItemScope
2022-07-05 11:28:47 +02:00
Laurențiu Nicola
6669f388a2
Bump indexmap
2022-07-03 10:09:35 +03:00
Laurențiu Nicola
791f2a0bec
Bump smallvec
2022-07-03 10:09:35 +03:00
Laurențiu Nicola
e6fcb23445
Bump either
2022-07-03 10:09:35 +03:00
Florian Diebold
9a12d0d6f2
Fix case of ignored/broken proc macro
2022-07-01 19:00:07 +02:00
bors
ed44fe52e4
Auto merge of #12668 - Veykril:mac-source-map, r=Veykril
...
fix: Simplify macro statement expansion handling
I only meant to fix https://github.com/rust-lang/rust-analyzer/issues/12644 but that somehow turned into a rewrite of the statement handling ... at least this fixes a few more issues in the IDE layer now
2022-07-01 14:46:48 +00:00
Lukas Wirth
e5e5a0932d
Fix blocks not considering stmt without semi as tails
2022-07-01 16:25:52 +02:00
Lukas Wirth
8e764a8bb1
fix: Fix attribute macros on assoc items being discarded with disabled proc macros
2022-07-01 16:21:21 +02:00
Lukas Wirth
58d5c69a63
Fix Expr::MacroStmts using wrong scopes
2022-07-01 15:34:29 +02:00
Lukas Wirth
9165e3b381
Update hir-ty test outputs
2022-07-01 15:21:55 +02:00
Lukas Wirth
531e152390
fix: Simplify macro statement expansion handling
2022-07-01 14:49:30 +02:00
bors
2ff505ab48
Auto merge of #12428 - lowr:experimental/destructuring-assignment, r=flodiebold
...
feat: implement destructuring assignment
This is an attempt to implement destructuring assignments, or more specifically, type inference for [assignee expressions](https://doc.rust-lang.org/reference/expressions.html#place-expressions-and-value-expressions ).
I'm not sure if this is the right approach, so I don't even expect this to be merged (hence the branch name 😉 ) but rather want to propose one direction we could choose. I don't mind getting merged if this is good enough though!
Some notes on the implementation choices:
- Assignee expressions are **not** desugared on HIR level unlike rustc, but are inferred directly along with other expressions. This matches the processing of other syntaxes that are desugared in rustc but not in r-a. I find this reasonable because r-a only needs to infer types and it's easier to relate AST nodes and HIR nodes, so I followed it.
- Assignee expressions obviously resemble patterns, so type inference for each kind of pattern and its corresponding assignee expressions share a significant amount of logic. I tried to reuse the type inference functions for patterns by introducing `PatLike` trait which generalizes assignee expressions and patterns.
- This is not the most elegant solution I suspect (and I really don't like the name of the trait!), but it's cleaner and the change is smaller than other ways I experimented, like making the functions generic without such trait, or making them take `Either<ExprId, PatId>` in place of `PatId`.
in case this is merged:
Closes #11532
Closes #11839
Closes #12322
2022-06-30 09:14:12 +00:00
Florian Diebold
8b3ec12aac
fix: Report proc macro errors in expressions correctly as well
...
They didn't have a krate before, resulting in the generic "proc macro
not found" error.
Also improve error messages a bit more.
2022-06-28 10:43:22 +02:00
Florian Diebold
45fd5e697f
Improve comments
2022-06-24 14:19:18 +02:00
Florian Diebold
c80c34867f
Improve proc macro errors a bit
...
Distinguish between
- there is no build data (for some reason?)
- there is build data, but the cargo package didn't build a proc macro dylib
- there is a proc macro dylib, but it didn't contain the proc macro we expected
- the name did not resolve to any macro (this is now an
unresolved_macro_call even for attributes)
I changed the handling of disabled attribute macro expansion to
immediately ignore the macro and report an unresolved_proc_macro,
because otherwise they would now result in loud unresolved_macro_call
errors. I hope this doesn't break anything.
Also try to improve error ranges for unresolved_macro_call / macro_error
by reusing the code for unresolved_proc_macro. It's not perfect but
probably better than before.
2022-06-24 13:45:19 +02:00
Lukas Wirth
2642f64570
internal: Simplify
2022-06-23 20:08:29 +02:00
Lukas Wirth
013c6a3f75
fix: attribute macros not being properly diagnosed
2022-06-19 00:37:37 +02:00
bors
7ade4d49fc
Auto merge of #12517 - xuhongxu96:master, r=Veykril
...
fix methods in pub trait generated by macro cannot be completed
Fix #12483
Check if the container is trait and inherit the visibility to associate items during collection.
2022-06-16 09:14:09 +00:00
Lukas Wirth
0e41d15b82
Use the correct crates proc-macro loading error message
2022-06-15 18:06:33 +02:00
Lukas Wirth
1d34cdcac0
Diagnose unresolved attribute proc-macros
2022-06-15 17:34:13 +02:00
Lukas Wirth
7d51fc4640
Show proc-macro loading errors in unresolved-proc-macro diagnostics
2022-06-15 17:34:01 +02:00
Hongxu Xu
549c810436
revert hir-def lib.rs
2022-06-15 07:48:34 +08:00
Hongxu Xu
8805a768d4
check if the container is trait and inherit the visibility
2022-06-15 07:47:06 +08:00
Hongxu Xu
070456838d
remove inherit_visibility test case in item_tree
2022-06-14 23:24:48 +08:00
Hongxu Xu
ded412d56b
implement inherited_visibility in collector
2022-06-14 23:23:15 +08:00
Hongxu Xu
3f60e71a12
remove inherited_visibility in lower.rs
2022-06-14 21:44:07 +08:00
bors
4f2a67b26f
Auto merge of #12513 - Veykril:ty-utils, r=Veykril
...
internal: Simplify `hir_ty::utils`
2022-06-12 14:08:08 +00:00
Lukas Wirth
9153f17382
internal: Simplify hir_ty::utils
2022-06-12 16:07:08 +02:00
bors
d513f657a3
Auto merge of #12509 - Veykril:ty-utils, r=Veykril
...
internal: Remove `Generics::type_iter` in favor of `Generics::iter`
2022-06-12 12:40:57 +00:00
Lukas Wirth
7a0ab1358c
internal: Remove Generics::type_iter
in favor of Generics::iter
2022-06-12 14:40:37 +02:00
Lukas Wirth
76ae5434fa
internal: Bump Dependencies
2022-06-10 17:30:02 +02:00
Lukas Wirth
0cf677ab42
internal: Update dashmap and freeze its version
2022-06-10 16:19:52 +02:00
Tim Neumann
40bfb29e50
feat: Support $$
in macros.
...
The implementation mirrors what `rustc` currently does [1]. Part of #11952 .
[1]: 0595ea1d12/compiler/rustc_expand/src/mbe/quoted.rs (L230-L241)
2022-06-02 21:48:28 +02:00
Ryo Yoshida
c1c867506b
Add Expr::Underscore
2022-06-01 01:21:57 +09:00
feniljain
25f3e7a33c
fix: float display impl
2022-05-31 10:13:03 +05:30
bors
bd06902f90
Auto merge of #12395 - feniljain:fix_bugs, r=Veykril
...
fix: f32 and f64 representation during lowering
should fix #12380
2022-05-27 12:44:08 +00:00
feniljain
1f4870ff1c
fix: f32 and f64 representation during lowering
2022-05-26 20:03:05 +05:30
Lukas Wirth
7913ae69b9
internal: Remove Interned
usage from nameres collector
2022-05-26 12:59:57 +02:00
bors
2a978e1404
Auto merge of #12328 - Veykril:simplify, r=Veykril
...
minor: Simplify
2022-05-20 15:03:59 +00:00
Lukas Wirth
88e297e47d
minor: Simplify
2022-05-20 16:52:10 +02:00
Jonas Schievink
60a2ab4c67
Rename Expr::Lambda
to Expr::Closure
2022-05-20 15:40:32 +02:00
Aleksey Kladov
57cb65bb7a
internal: vendor lsp-server
2022-05-14 21:15:43 +01:00
Jonas Schievink
0831f3123b
Fix tests
2022-05-13 15:54:46 +02:00
Jonas Schievink
9bd11459ba
Revert "Auto merge of #12149 - jonas-schievink:literally-just-a-literal, r=jonas-schievink"
...
This reverts commit cc9ae2b89e
, reversing
changes made to 7dfd1cb572
.
2022-05-13 15:08:14 +02:00
Jonas Schievink
2287ae22c6
Revert "Skip only the tt::Literal
when consuming float tokens"
...
This reverts commit 7db55313a1
.
2022-05-13 15:06:16 +02:00
Jonas Schievink
bde036b74e
Revert "Fix conversion of float literals in TtTreeSink
"
...
This reverts commit 43a066c5a8
.
2022-05-13 15:05:34 +02:00
Jonas Schievink
73e0e17b52
Revert "Don't remap float tokens to INT_NUMBER
"
...
This reverts commit cb5e8da88a
.
2022-05-13 15:04:36 +02:00
Jonas Schievink
cb5e8da88a
Don't remap float tokens to INT_NUMBER
2022-05-12 19:01:09 +02:00
Lukas Wirth
4b505ce0f9
internal: Add token mapping test for float literals
2022-05-12 13:17:53 +02:00
bors
3d2d209638
Auto merge of #11983 - jhpratt:remove-rustc_deprecated, r=lnicola
...
Remove handling of `#[rustc_deprecated]`
This should be merged along with rust-lang/rust#95960 .
Because the attribute still exists in rustc, I've left the definition here. With that said, any use of it is an error, so I've removed any handling of `#[rustc_deprecated]`.
2022-05-09 08:33:18 +00:00
Jonas Schievink
43a066c5a8
Fix conversion of float literals in TtTreeSink
2022-05-06 18:39:06 +02:00
Jonas Schievink
7db55313a1
Skip only the tt::Literal
when consuming float tokens
2022-05-06 16:10:54 +02:00
Jonas Schievink
502c519e7d
Wrap float literals in their own node
2022-05-05 16:28:14 +02:00
Laurențiu Nicola
9856144b0b
Lower values of char and byte literals
2022-05-05 08:12:08 +03:00
rainy-me
ddff1b22f9
fix: add docs and remove unnecessary check
2022-05-05 13:41:33 +09:00
Jacob Pratt
3c376e5be8
Remove handling of #[rustc_deprecated]
2022-05-04 22:25:58 -04:00
rainy-me
5f4351fbb6
fix: doc url link type
2022-05-05 00:41:29 +09:00
Peh
1f011fa4a3
style: rename crates to kebab case
2022-05-01 10:48:58 +00:00