Matthias Krüger
f577d808b7
Rollup merge of #126767 - compiler-errors:static-foreign-item, r=spastorino
...
`StaticForeignItem` and `StaticItem` are the same
The struct `StaticItem` and `StaticForeignItem` are the same, so remove `StaticForeignItem`. Having them be separate is unique to `static` items -- unlike `ForeignItemKind::{Fn,TyAlias}`, which use the normal AST item.
r? ``@spastorino`` or ``@oli-obk``
2024-06-21 09:12:37 +02:00
Michael Goulet
3e59f0c3c5
StaticForeignItem and StaticItem are the same
2024-06-20 19:51:09 -04:00
bohan
1e42bb606d
collect attrs in const block expr
2024-06-20 19:59:27 +08:00
Vadim Petrochenkov
22d0b1ee18
delegation: Implement glob delegation
2024-06-14 19:27:51 +03:00
Oli Scherer
cbee17d502
Revert "Create const block DefIds in typeck instead of ast lowering"
...
This reverts commit ddc5f9b6c1
.
2024-06-07 08:33:58 +00:00
Santiago Pastorino
bac72cf7cf
Add safe/unsafe to static inside extern blocks
2024-06-04 14:19:43 -03:00
Santiago Pastorino
2a377122dd
Handle safety keyword for extern block inner items
2024-06-04 14:19:42 -03:00
Oli Scherer
ddc5f9b6c1
Create const block DefIds in typeck instead of ast lowering
2024-05-28 13:38:43 +00:00
bors
36c0a6d40f
Auto merge of #125105 - nnethercote:rustc_resolve-cleanups, r=estebank
...
`rustc_resolve` cleanups
Some improvements I found while looking through this code.
r? `@estebank`
2024-05-18 06:36:44 +00:00
Vadim Petrochenkov
c30b41012d
delegation: Implement list delegation
...
```rust
reuse prefix::{a, b, c}
```
2024-05-15 02:32:59 +03:00
Nicholas Nethercote
d1f5beeed5
Remove #[macro_use] extern crate tracing
from rustc_resolve
.
...
Explicit imports are more standard nowadays and easier to read.
2024-05-10 15:34:41 +10:00
Santiago Pastorino
f06e0f7837
Add StaticForeignItem and use it on ForeignItemKind
2024-04-29 13:15:51 -03:00
Matthias Krüger
cf07246ae9
Rollup merge of #124382 - petrochenkov:itemvisit, r=lcnr
...
ast: Generalize item kind visiting
And avoid duplicating logic for visiting `Item`s with different kinds (regular, associated, foreign).
The diff is better viewed with whitespace ignored.
2024-04-27 07:55:37 +02:00
Vadim Petrochenkov
5be9fdd636
ast: Generalize item kind visiting
...
And avoid duplicating logic for visiting `Item`s with different kinds (regular, associated, foreign).
2024-04-25 22:49:58 +03:00
Vadim Petrochenkov
0c0833d750
resolve: Remove two cases of misleading macro call visiting
...
Macro calls are ephemeral, they should not add anything to the definition tree, even if their AST could contains something with identity.
Thankfully, macro call AST cannot contain anything like that, so these walks are just noops.
In majority of other places in def_collector / build_reduced_graph they are already not visited.
(Also, a minor match reformatting is included.)
2024-04-24 19:59:06 +03:00
Oli Scherer
926bfe5078
s/mt/mutability/
2024-03-12 05:53:46 +00:00
Oli Scherer
0b4cbee660
Add nested
bool to DefKind::Static
.
...
Will be used in the next commit
2024-03-12 05:53:46 +00:00
Oli Scherer
9816915954
Change DefKind::Static
to a struct variant
2024-03-12 05:53:46 +00:00
Oli Scherer
2149c45e03
Bubble up the TyCtxtFeed
2024-03-05 05:45:03 +00:00
surechen
a61126cef6
By tracking import use types to check whether it is scope uses or the other situations like module-relative uses, we can do more accurate redundant import checking.
...
fixes #117448
For example unnecessary imports in std::prelude that can be eliminated:
```rust
use std::option::Option::Some;//~ WARNING the item `Some` is imported redundantly
use std::option::Option::None; //~ WARNING the item `None` is imported redundantly
```
2024-02-18 16:38:11 +08:00
Frank King
7660d6bf2c
Check representation of unnamed fields
2024-02-12 12:47:31 +08:00
Frank King
0c0df4efe0
Lowering field access for anonymous adts
2024-02-12 12:47:30 +08:00
Michael Goulet
5d8c1780fa
Make the coroutine def id of an async closure the child of the closure def id
2024-01-27 19:39:02 +00:00
Bryanskiy
d69cd6473c
Delegation implementation: step 1
2024-01-12 14:11:16 +03:00
Michael Goulet
8361a7288e
Introduce closure_id method on CoroutineKind
2023-12-08 21:46:39 +00:00
Michael Goulet
44911b7c67
Make some matches exhaustive to avoid bugs, fix tools
2023-12-08 17:23:26 +00:00
Michael Goulet
a208bae00e
Support async gen fn
2023-12-08 17:23:26 +00:00
Michael Goulet
2806c2df7b
coro_kind -> coroutine_kind
2023-12-08 17:23:25 +00:00
Eric Holk
f9d1f922dc
Option<CoroutineKind>
2023-12-04 13:03:37 -08:00
Eric Holk
48d5f1f0f2
Merge Async and Gen into CoroutineKind
2023-12-04 12:48:01 -08:00
Eric Holk
c104f3b629
Lower return types for gen fn to impl Iterator
2023-12-04 11:23:05 -08:00
Vadim Petrochenkov
17e799c270
rustc: Harmonize DefKind
and DefPathData
...
`DefPathData::(ClosureExpr,ImplTrait)` are renamed to match `DefKind::(Closure,OpaqueTy)`.
`DefPathData::ImplTraitAssocTy` is replaced with `DefPathData::TypeNS(kw::Empty)` because both correspond to `DefKind::AssocTy`.
It's possible that introducing `(DefKind,DefPathData)::AssocOpaqueTy` could be a better solution, but that would be a much more invasive change.
Const generic parameters introduced for effects are moved from `DefPathData::TypeNS` to `DefPathData::ValueNS`, because constants are values.
`DefPathData` is no longer passed to `create_def` functions to avoid redundancy.
2023-12-03 16:24:56 +03:00
Vadim Petrochenkov
84de641484
def collector: Set correct namespace in DefPathData
for foreign types
2023-11-28 16:17:52 +03:00
Vadim Petrochenkov
f0dc906319
resolve: Feed the def_kind
query immediately on DefId
creation
2023-11-28 15:39:31 +03:00
Jake Goulding
87380cbc0c
Address unused tuple struct fields in the compiler
2023-11-27 13:54:50 -05:00
Vadim Petrochenkov
ad0770eeee
resolve: Avoid clones of MacroData
...
And move declarative macro compilation to an earlier point in def collector, which is required for #118188 .
2023-11-25 02:32:33 +03:00
Oli Scherer
621494382d
Add gen blocks to ast and do some broken ast lowering
2023-10-27 13:05:48 +00:00
Arpad Borsos
c8ead2e693
Remove the NodeId
of ast::ExprKind::Async
2023-03-19 19:01:31 +01:00
Oli Scherer
43a5cc383d
Separate the lifetime of the session and the arena in the resolver
2023-02-14 10:01:25 +00:00
Vadim Petrochenkov
b32a4edb20
rustc_ast_lowering: Stop lowering imports into multiple items
...
Lower them into a single item with multiple resolutions instead.
This also allows to remove additional `NodId`s and `DefId`s related to those additional items.
2022-12-01 18:51:20 +03:00
bors
66ccf36f16
Auto merge of #104711 - Dylan-DPC:rollup-gkw1qr8, r=Dylan-DPC
...
Rollup of 6 pull requests
Successful merges:
- #104295 (Check generics parity before collecting return-position `impl Trait`s in trait)
- #104464 (Reduce exceptions overallocation on non Windows x86_64)
- #104615 (Create def_id for async fns during lowering)
- #104669 (Only declare bindings for if-let guards once per arm)
- #104701 (Remove a lifetime resolution hack from `compare_predicate_entailment`)
- #104710 (disable strict-provenance-violating doctests in Miri)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2022-11-22 13:18:45 +00:00
Dylan DPC
88542a3150
Rollup merge of #104615 - spastorino:create-async-def-id-in-lowering, r=compiler-errors
...
Create def_id for async fns during lowering
r? `@compiler-errors`
2022-11-22 16:36:37 +05:30
Vadim Petrochenkov
7a5376d23c
Unreserve braced enum variants in value namespace
2022-11-21 22:40:06 +03:00
Santiago Pastorino
520fafe5c2
Create def_id for async fns during lowering
2022-11-19 19:17:14 -03:00
Nicholas Nethercote
6b7ca2fcf2
Box ExprKind::{Closure,MethodCall}
, and QSelf
in expressions, types, and patterns.
2022-11-17 13:45:59 +11:00
Michael Goulet
d3bd6beb97
Rename AssocItemKind::TyAlias to AssocItemKind::Type
2022-10-10 02:31:37 +00:00
Santiago Pastorino
b2bef02bcd
create def ids for impl traits during ast lowering
2022-09-30 15:12:01 -03:00
Michael Goulet
730ead8047
Only generate closure def id for async fns with body
2022-09-25 23:03:15 +00:00
Nicholas Nethercote
925363f13d
Remove unused span argument from walk_fn
.
2022-09-12 13:24:27 +10:00
Oli Scherer
ee3c835018
Always import all tracing macros for the entire crate instead of piecemeal by module
2022-09-01 14:54:27 +00:00