Ryo Yoshida
f2a35deb50
Consider macro sub-namespace during name resolution
2023-05-11 21:13:12 +09:00
Lukas Wirth
9419fcb109
fix: Fix body lowering not using block def maps
2023-05-04 20:46:05 +02:00
Laurențiu Nicola
7197a27028
Use triomphe Arc
2023-05-02 20:02:43 +03:00
hkalbasi
3a3c3630a2
fix break-outside-of-loop false positive in try block
2023-05-02 03:11:56 +03:30
hkalbasi
6312fbf521
MIR episode 4
2023-05-01 23:23:10 +03:30
Lukas Wirth
bca8029a6e
Move Expander and LowerCtx into separate modules
2023-04-17 20:44:06 +02:00
Lukas Wirth
d1632c2727
Report syntax errors from item level macro expansions
2023-04-16 17:22:06 +02:00
bors
96407424de
Auto merge of #14574 - Veykril:blocks, r=Veykril
...
internal: Make block_def_map infallible
2023-04-14 11:48:33 +00:00
Lukas Wirth
c32d51979d
internal: Make block_def_map infallible
2023-04-14 13:17:38 +02:00
Lukas Wirth
ce0896b78c
Allocate ExprScopes ScopeEntries in a single arena instead of per ScopeData
2023-04-14 12:05:11 +02:00
hkalbasi
59b6f2d9f2
Compute closure captures
2023-04-10 23:04:34 +03:30
Lukas Wirth
513d4a9c9a
Render function parameters in hir-def pretty printing
2023-04-07 09:34:04 +02:00
Lukas Wirth
f742943a4b
Don't recreate Hygiene unnecessarily
2023-04-06 21:16:11 +02:00
Lukas Wirth
b7c443569a
Don't unnecessarily query the ast_id_map for blocks if they aren't interned
2023-04-06 20:19:59 +02:00
Lukas Wirth
99b69525f4
hir_def::expr -> hir_def::hir, hir_def::type_ref -> hir_def::hir::type_ref
2023-04-06 19:36:25 +02:00
Lukas Wirth
8e7c104b3a
Move hir_def::adt to hir_def::data::adt
2023-04-06 19:23:29 +02:00
Lukas Wirth
0e7117900c
internal: Resolve labels in body lowering
2023-04-06 14:21:20 +02:00
bors
25124a84de
Auto merge of #14490 - Veykril:crategraph-dedup, r=Veykril
...
internal: Switch crate graph to use an Arena instead of a hashmap
2023-04-05 14:12:11 +00:00
Lukas Wirth
7f0fbf7f9d
Switch crate graph to use an Arena instead of a hashmap
2023-04-05 10:32:02 +02:00
hkalbasi
c26b12d01c
Desugar async fn completely
2023-04-04 23:07:38 +03:30
Lukas Wirth
c04a13cb19
Simplify
2023-03-27 17:16:45 +02:00
Lukas Wirth
675fc88afd
internal: Only intern blocks that declare items
2023-03-25 20:44:12 +01:00
hkalbasi
8e73ea5253
Desugar try blocks
2023-03-19 13:02:51 +03:30
hkalbasi
eb4939e217
Support overloaded deref MIR lowering
2023-03-17 14:02:55 +03:30
hkalbasi
9564773d5e
Improve pattern matching MIR lowering
2023-03-17 13:08:36 +03:30
hkalbasi
b7b9ae59a0
desugar ? operator
2023-03-17 13:08:35 +03:30
Lukas Wirth
3bf07a5f04
Simplify
2023-03-15 13:54:06 +01:00
Zachary S
af175ddcdc
Add test for async closure types.
...
(rebased onto 6dfd8ae
)
2023-03-15 13:10:35 +01:00
Zachary S
6746a08b44
fix: Fix return type of async closures.
...
(rebased onto 6dfd8ae
)
2023-03-15 13:10:00 +01:00
Lukas Wirth
879cac4b28
minor: Remove dead code
2023-03-09 15:40:51 +01:00
Lukas Wirth
d038892947
fix: Fix block defmap not looking into tail expressions for macro calls
2023-03-08 14:37:27 +01:00
hkalbasi
61ad6a96ad
Add BindingId
2023-03-06 21:09:08 +03:30
Lukas Wirth
a8606e5363
Re-use the resolver in InferenceContext instead of rebuilding it on every expression change
2023-03-05 14:37:44 +01:00
Lukas Wirth
95c4cb991f
Handle new hir block kinds in scope calculations
2023-03-04 15:22:39 +01:00
Lukas Wirth
1b5bc83118
Remove weird nesting of effect blocks in hir
2023-03-04 14:45:57 +01:00
Ryo Yoshida
ae7e62c50f
Don't expand macros in the same expansion tree after overflow
2023-02-11 18:19:08 +09:00
Lukas Wirth
4a677e91aa
minor: Remove unnecessary arg in LowerCtx::ast_id
2023-01-25 21:52:28 +01:00
Daniel Eades
95fc3ba41c
fixup
2023-01-10 19:51:21 +00:00
Daniel Eades
ac3844a0bb
a number of code simplifications
2023-01-10 18:48:51 +00:00
Lukas Wirth
68723043db
Split out hir-def attribute handling parts into hir-expand
2023-01-09 19:29:28 +01:00
Maybe Waffle
346bf5fb5b
Implement do yeet
expression
2022-12-28 23:17:13 +00:00
Yuri Astrakhan
e16c76e3c3
Inline all format arguments where possible
...
This makes code more readale and concise,
moving all format arguments like `format!("{}", foo)`
into the more compact `format!("{foo}")` form.
The change was automatically created with, so there are far less change
of an accidental typo.
```
cargo clippy --fix -- -A clippy::all -W clippy::uninlined_format_args
```
2022-12-24 14:36:10 -05:00
Yuri Astrakhan
e341e996f7
Clippy-fix explicit auto-deref
...
Seems like these can be safely fixed. With one, I was particularly
surprised -- `Some(pats) => &**pats,` in body.rs?
```
cargo clippy --fix -- -A clippy::all -D clippy::explicit_auto_deref
```
2022-12-23 02:52:14 -05:00
Lukas Wirth
63ed71bd30
Honor cfg attributes on params when lowering their patterns
2022-10-10 09:47:09 +02:00
bors
1f929659ac
Auto merge of #13209 - lowr:feat/inference-for-generator, r=Veykril
...
feat: type inference for generators
This PR implements basic type inference for generator and yield expressions.
Things not included in this PR:
- Generator upvars and generator witnesses are not implemented. They are only used to determine auto trait impls, so basic type inference should be fine without them, but method resolutions with auto trait bounds may not be resolved correctly.
Open questions:
- I haven't (yet) implemented `HirDisplay` for `TyKind::Generator`, so generator types are just shown as "{{generator}}" (in tests, inlay hints, hovers, etc.), which is not really nice. How should we show them?
- I added moderate amount of stuffs to minicore. I especially didn't want to add `impl<T> Deref for &T` and `impl<T> Deref for &mut T` exclusively for tests for generators; should I move them into the test fixtures or can they be placed in minicore?
cc #4309
2022-09-26 09:28:41 +00:00
OleStrohm
177ec82a41
Rebased
2022-09-12 21:02:30 +01:00
Ryo Yoshida
ba64c93a44
Lower generator expression to HIR
2022-09-09 16:47:32 +09:00
Lukas Wirth
8828049b23
Lift out the module scope into a field in the Resolver
...
A Resolver *always* has a module scope at the end of its scope stack,
instead of encoding this as an invariant we can just lift this scope
out into a field, allowing us to skip going through the scope vec
indirection entirely.
2022-09-02 17:02:12 +02:00
Lukas Wirth
fe0a106256
Don't store SyntheticSyntax in the reverse maps in BodySourceMap
...
They are ZSTs which we can just create on missing access instead.
2022-09-02 15:08:48 +02:00
Lukas Wirth
ee02a4721b
Remove unnecessary allocations
2022-08-31 18:05:52 +02:00