Santiago Pastorino
4b9b5838ac
Move lifetimes_in_bounds call to outside with_hir_id_owner block in lower_opaque_impl_trait
2022-08-04 11:27:00 -03:00
Santiago Pastorino
76b518fc83
Document what collected_lifetimes vec containts
2022-08-04 11:27:00 -03:00
Santiago Pastorino
d85720a083
Document lower_opaque_impl_trait
2022-08-04 11:26:59 -03:00
Santiago Pastorino
6289d0eb53
with_lifetime_binder is now lower_lifetime_binder and doesn't need a closure
2022-08-04 11:26:59 -03:00
Santiago Pastorino
11e00f502a
Add comments on with_remapping
2022-08-04 11:26:59 -03:00
Santiago Pastorino
c946cdceb4
Document opt_local_def_id
2022-08-04 11:26:59 -03:00
Santiago Pastorino
966269a464
Document generics_def_id_map field and record/get methods on it
2022-08-04 11:26:58 -03:00
Santiago Pastorino
78585098b5
Add comments about lifetime collect and create lifetime defs for RPITs
2022-08-04 11:26:58 -03:00
Santiago Pastorino
40bcbed3c7
Avoid explicitly handling res when is not needed
2022-08-04 11:26:58 -03:00
Santiago Pastorino
cd3c388418
create_and_capture_lifetime_defs -> create_lifetime_defs
2022-08-04 11:26:57 -03:00
Santiago Pastorino
13800624de
Remove captured_lifetimes and LifetimeCaptureContext and make create_lifetime_defs return the captures
2022-08-04 11:26:57 -03:00
Santiago Pastorino
1d6cebfd6b
Implement def_id based remapping
2022-08-04 11:26:57 -03:00
Santiago Pastorino
f0db1d68e6
Remove local_def_id from captured_lifetimes
2022-08-04 11:26:57 -03:00
Santiago Pastorino
2d826e27c4
Capture things as Lifetime object to simplify things
2022-08-04 11:26:57 -03:00
Santiago Pastorino
f6b4dd1541
Create new_mapping local structure and avoid checking def_ids on captures
2022-08-04 11:26:56 -03:00
Santiago Pastorino
6c6a81e48e
Remove binders_to_ignore from LifetimeCaptureContext
2022-08-04 11:26:56 -03:00
Santiago Pastorino
95158fdf3a
No need to store parent_def_id in LifetimeCaptureContext
2022-08-04 11:26:56 -03:00
Santiago Pastorino
552f6b0f81
No need to check binders to ignore on new_named_lifetime_with_res's LifetimeRes::Fresh
2022-08-04 11:26:56 -03:00
Santiago Pastorino
6041ed0775
No need to check binders to ignore on new_named_lifetime_with_res's LifetimeRes::Param
2022-08-04 11:26:55 -03:00
Santiago Pastorino
d9e6364755
new_named_lifetime_with_res's LifetimeRes::Fresh should have created def_id already
2022-08-04 11:26:55 -03:00
Santiago Pastorino
3030ab3074
new_named_lifetime_with_res's LifetimeRes::Param should have created def_id already
2022-08-04 11:26:55 -03:00
Santiago Pastorino
14ea17858d
Fail if LifetimeRes is Infer when creating def ids for lifetimes copies
2022-08-04 11:26:55 -03:00
Santiago Pastorino
c390bda356
Record RPITs elided lifetimes in Rptr Tys
2022-08-04 11:26:55 -03:00
Santiago Pastorino
1802d45b12
Record RPITs elided lifetimes in path segments
2022-08-04 11:26:54 -03:00
Santiago Pastorino
81c4d2371a
Restructure visit_ty in a more clear way
2022-08-04 11:26:54 -03:00
Santiago Pastorino
05b989e16e
Skip lifetimes in binders when visiting
2022-08-04 11:26:54 -03:00
Santiago Pastorino
4f334f2b97
Move LifetimeCollectVisitor to rustc_ast_lowering
2022-08-04 11:26:54 -03:00
Santiago Pastorino
9f77688d17
Completely remove captures flag
2022-08-04 11:26:53 -03:00
Santiago Pastorino
20c88a2a30
Do not execute captures code when lowering lifetimes as GenericArg
2022-08-04 11:26:53 -03:00
Santiago Pastorino
9c0d9babd1
Do not execute captures code for async fns
2022-08-04 11:26:53 -03:00
Santiago Pastorino
5a184acfc6
There's no need to check binders_to_ignore using the old code anymore
2022-08-04 11:26:53 -03:00
Santiago Pastorino
19dcbd151b
Explicitly gather lifetimes and definitions for bare async fns
2022-08-04 11:26:52 -03:00
Santiago Pastorino
25825cd4fa
Extract create_and_capture_lifetime_defs function
2022-08-04 11:26:52 -03:00
Santiago Pastorino
fac763168f
Remove NEW_COLLECT_LIFETIMES env var
2022-08-04 11:26:52 -03:00
Santiago Pastorino
399609e841
Add debug! calls
2022-08-04 11:26:52 -03:00
Santiago Pastorino
cda2c04592
Explicitly gather lifetimes and definitions in RPIT
2022-08-04 11:26:51 -03:00
Santiago Pastorino
84a24a1b3c
Unroll while_capturing_lifetimes into lower_opaque_impl_trait
2022-08-04 11:26:51 -03:00
Santiago Pastorino
0f11a0cd24
Add captures flag to capture or not while lowering
2022-08-04 11:26:51 -03:00
Santiago Pastorino
b14c9571fa
Make lower_generic_bound_predicate receive AST bounds instead of HIR bounds
2022-08-04 11:26:51 -03:00
Santiago Pastorino
5c23a2e5a6
Remove old docs on lower_async_fn_ret_ty
2022-08-04 11:26:50 -03:00
Camille GILLOT
110f0656cb
Store associated item defaultness in impl_defaultness.
2022-08-01 21:38:16 +02:00
Camille GILLOT
10be0dd8df
Replace LifetimeRes::Anonymous by LifetimeRes::Infer.
2022-07-26 19:00:31 +02:00
Camille GILLOT
ab63591f00
Remove the distinction between LifetimeName::Implicit and LifetimeName::Underscore.
2022-07-26 19:00:31 +02:00
bors
6dbae3ad19
Auto merge of #97313 - cjgillot:ast-lifetimes-anon, r=petrochenkov
...
Resolve function lifetime elision on the AST
~Based on https://github.com/rust-lang/rust/pull/97720~
Lifetime elision for functions is purely syntactic in nature, so can be resolved on the AST.
This PR replicates the elision logic and diagnostics on the AST, and replaces HIR-based resolution by a `delay_span_bug`.
This refactor allows for more consistent diagnostics, which don't have to guess the original code from HIR.
r? `@petrochenkov`
2022-07-25 20:02:55 +00:00
Camille GILLOT
3c5048d2ec
Report elision failures on the AST.
2022-07-25 19:19:23 +02:00
Michael Woerister
88f6c6d8a0
Remove unused StableMap and StableSet types from rustc_data_structures
2022-07-20 13:11:39 +02:00
Matthias Krüger
4815f94c51
Rollup merge of #99401 - TaKO8Ki:avoid-symbol-to-&str-conversions, r=nnethercote
...
Avoid `Symbol` to `&str` conversions
`Symbol::as_str` is a slowish operation, so this patch removes some usages of it.
2022-07-19 13:30:46 +02:00
Takayuki Maeda
a22934bea1
avoid Symbol
to &str
conversions
2022-07-18 14:25:34 +09:00
Caio
3266460749
Stabilize let_chains
2022-07-16 20:17:58 -03:00
bors
f1a8854f9b
Auto merge of #99231 - Dylan-DPC:rollup-0tl8c0o, r=Dylan-DPC
...
Rollup of 5 pull requests
Successful merges:
- #97720 (Always create elided lifetime parameters for functions)
- #98315 (Stabilize `core::ffi:c_*` and rexport in `std::ffi`)
- #98705 (Implement `for<>` lifetime binder for closures)
- #99126 (remove allow(rustc::potential_query_instability) in rustc_span)
- #99139 (Give a better error when `x dist` fails for an optional tool)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2022-07-14 11:00:30 +00:00