bors
3903243192
Auto merge of #13027 - jonas-schievink:fix-mismatch-with-trailing-empty-macro, r=jonas-schievink
...
fix: Fix incorrect type mismatch with `cfg_if!` and other macros in expression position
Fixes https://github.com/rust-lang/rust-analyzer/issues/12940
This is a bit of a hack, ideally `MacroStmts` would not exist at all after HIR lowering, but that requires changing how the lowering code works.
2022-08-15 16:06:59 +00:00
Jonas Schievink
8c60813096
Fix lowering of empty macro expressions in trailing position
2022-08-15 18:01:58 +02:00
bors
3561433ef2
Auto merge of #13026 - Veykril:nameres, r=Veykril
...
internal: Make `resolve_name_in_module` a bit more lazy
2022-08-15 14:49:12 +00:00
Lukas Wirth
88b19cc39b
Make resolve_name_in_module a bit more lazy
2022-08-15 16:41:51 +02:00
Jonas Schievink
dcbe892d7c
Add an HIR pretty-printer
2022-08-15 13:51:45 +02:00
Ryo Yoshida
8fe73a2240
Make tests pass
2022-08-11 01:16:35 +09:00
Edwin Cheng
c47914c6cf
Fixes tests
2022-08-10 16:29:23 +08:00
bors
b569bbbacc
Auto merge of #12942 - lowr:fix/concat-with-char, r=Veykril
...
fix: make `concat!` work with char
Fixes #12921
- I avoided making `unquote_str()` take char literals as well because it's depended on by another function `parse_string()` that's only supposed to take strings.
- Even with this patch, we don't output `\0` as `\u{0}` which #12921 pointed out ~~, but we're not actually responsible for serializing it but rowan is~~. They are functionally equivalent and I don't think it'd cause any confusion, but we *could* try escaping them before serialization (for reference, `rustc -Zunpretty=expanded`, which `cargo expand` uses under the hood, [makes use of `str::escape_default()`](3830ecaa8d/compiler/rustc_ast/src/util/literal.rs (L161)
).
2022-08-08 11:28:42 +00:00
oxalica
326ffee5b7
Returns the old value for la_arena::ArenaMap::insert
2022-08-07 04:53:23 +08:00
Ryo Yoshida
4d5873e92f
minor: align with rustc on escaping characters in macro expansion
2022-08-05 22:01:09 +09:00
Ryo Yoshida
859d467276
fix: make concat!
work with char
2022-08-05 02:58:16 +09:00
Jonas Schievink
bd7dfac5eb
Fix r-a spelling in some places
2022-08-01 13:47:09 +02:00
bors
af646621de
Auto merge of #12916 - Veykril:nits, r=Veykril
...
minor: Properly cfg the `max` field of Limit
2022-07-31 17:42:10 +00:00
Lukas Wirth
3b2ecf44a0
Give variables more descriptive names
2022-07-31 19:27:34 +02:00
Lukas Wirth
618cfd792c
fix: Fix ast-id up when merging raw attributes
2022-07-30 09:43:30 +02:00
Lukas Wirth
f867ddc621
fix: Order ItemScope::entries results
2022-07-28 19:28:56 +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