Commit Graph

16078 Commits

Author SHA1 Message Date
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
Michael Goulet
f5af266b6d Address nits 2022-08-04 13:59:25 +00:00
Michael Goulet
fe894756f8 Add traits::fully_solve_obligation that acts like traits::fully_normalize
It spawns up a trait engine, registers the single obligation, then fully
solves it
2022-08-04 13:50:56 +00:00
Michael Goulet
3e48434cc7 Use ObligationCtxt in impossible_predicates 2022-08-04 13:42:13 +00:00
Michael Goulet
61d9b1656d Remove unnecessary FulfillmentContext from need_migrate_deref_output_trait_object 2022-08-04 13:42:13 +00:00
Michael Goulet
37d412cff7 Remove FulfillmentContext param from fully_normalize 2022-08-04 13:42:13 +00:00
Michael Goulet
da59fa74f0 Use ObligationCtxt in main fn return type check 2022-08-04 13:42:12 +00:00
bors
3830ecaa8d Auto merge of #100087 - JakobDegen:mir-patch, r=tmiasko
Avoid invalidating the CFG in `MirPatch`

As a part of this change, we adjust `MirPatch` to not needlessly create unnecessary resume blocks.

r? `@tmiasko`
2022-08-04 13:24:57 +00:00
Takayuki Maeda
8c85c9936f add a comment about what we can parse now 2022-08-04 20:43:35 +09:00
wcampbell
8dd44f1af4 Enable unused_parens for match arms 2022-08-04 07:16:39 -04:00
bors
6f18f0a9d4 Auto merge of #99953 - cjgillot:in-path-always, r=petrochenkov
Always create elided lifetimes, even if inferred.

`PathSource` gives the context in which a path is encountered.  The same `PathSource` is used for the full path and the `QSelf` part.

Therefore, we can only rely on `PathSource` to know whether typechecking will be able to infer the lifetimes, not whether we need to insert them at all.

Fixes https://github.com/rust-lang/rust/issues/99949
2022-08-04 10:21:40 +00:00
bors
2f2243c9b6 Auto merge of #99843 - oli-obk:is_useful_perf, r=compiler-errors
Some `is_useful` cleanups

#98582 was reverted because it was a perf regression.

https://github.com/rust-lang/rust/pull/99806 reintroduces the changes, but this PR picks individual ones that have no regressions.
2022-08-04 07:35:33 +00:00
Michael Goulet
47a7a91c96 Use (actually) dummy place for let-else divergence 2022-08-04 05:08:09 +00:00
bors
caee496150 Auto merge of #100120 - matthiaskrgr:rollup-g6ycykq, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #98771 (Add support for link-flavor rust-lld for iOS, tvOS and watchOS)
 - #98835 (relate `closure_substs.parent_substs()` to parent fn in NLL)
 - #99746 (Use `TraitEngine` in more places that don't specifically need `FulfillmentContext::new_in_snapshot`)
 - #99786 (Recover from C++ style `enum struct`)
 - #99795 (Delay a bug when failed to normalize trait ref during specialization)
 - #100029 (Prevent ICE for `doc_alias` on match arm, statement, expression)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-08-04 03:52:29 +00:00
Michael Goulet
1f463ac407 Resolve vars before emitting coerce error 2022-08-04 03:05:57 +00:00
Michael Goulet
c62a8ea9df Don't point out return span on every E0308 2022-08-04 02:55:40 +00:00
Takayuki Maeda
dcd70c0995 return when captured argument is not a struct field 2022-08-04 11:51:25 +09:00
yukang
e614bbcd30 link_ordinal is available for foreign static 2022-08-04 09:28:59 +08:00
Obei Sideg
accb8e34c5 Suggest removing let if let const is used 2022-08-04 01:23:14 +03:00
Matthias Krüger
d4bd4ae27a Rollup merge of #100111 - estebank:missing-let, r=compiler-errors
Provide suggestion on missing `let` in binding statement

Fix #78907.

Fallout from the type ascription syntax.
2022-08-03 22:30:49 +02:00
Matthias Krüger
551224019b Rollup merge of #100107 - klensy:tr-w, r=compiler-errors
fix trailing whitespace in error message
2022-08-03 22:30:49 +02:00
Matthias Krüger
6919a07eb8 Rollup merge of #100102 - b-naber:typo-higher-ranked-sub, r=Dylan-DPC
Fix typo

r? ```@jackh726```
2022-08-03 22:30:46 +02:00
Matthias Krüger
5a5f4993ad Rollup merge of #100068 - dcsommer:master, r=petrochenkov
Fix backwards-compatibility check for tests with `+whole-archive`

Fixes #100066
2022-08-03 22:30:45 +02:00
Matthias Krüger
f8e6617239 Rollup merge of #100029 - hdelc:master, r=cjgillot
Prevent ICE for `doc_alias` on match arm, statement, expression

Fixes #99777.

This is a pretty minimal fix that should be safe, since rustdoc doesn't generate documentation for match arms, statements, or expressions. I mentioned in the linked issue that the `doc_alias` target checking should probably be improved to avoid future ICEs, but as a new contributor, I'm not confident enough with the HIR types to make a larger change.
2022-08-03 22:29:31 +02:00
Matthias Krüger
02fcec2ac8 Rollup merge of #99795 - compiler-errors:delay-specialization-normalize-error, r=spastorino
Delay a bug when failed to normalize trait ref during specialization

The error messages still kinda suck here but they don't ICE anymore...

Fixes #45814
Fixes #43037

r? types
2022-08-03 22:29:30 +02:00
Matthias Krüger
9c18fdc71f Rollup merge of #99786 - obeis:issue-99625, r=compiler-errors
Recover from C++ style `enum struct`

Closes #99625
2022-08-03 22:29:29 +02:00
Matthias Krüger
0de7f756f0 Rollup merge of #99746 - compiler-errors:more-trait-engine, r=jackh726
Use `TraitEngine` in more places that don't specifically need `FulfillmentContext::new_in_snapshot`

Not sure if this change is worthwhile, but couldn't hurt re: chalkification

r? types
2022-08-03 22:29:27 +02:00
Matthias Krüger
88e9417156 Rollup merge of #98835 - aliemjay:relate_closure_substs, r=nikomatsakis
relate `closure_substs.parent_substs()` to parent fn in NLL

Fixes #98589

The discrepancy between early- and late-bound lifetimes is because we map early-bound lifetimes into those found in the `closure_substs` while late-bound lifetimes are mapped into liberated free regions:
5f98537eb7/compiler/rustc_borrowck/src/universal_regions.rs (L255-L261)

r? `@rust-lang/types`
2022-08-03 22:29:26 +02:00
Matthias Krüger
7b0360e516 Rollup merge of #98771 - Thog:rust-lld-apple-target, r=petrochenkov
Add support for link-flavor rust-lld for iOS, tvOS and watchOS

This adds support for rust-lld for Apple *OS targets.

This was tested against targets ``aarch64-apple-ios`` and ``aarch64-apple-ios-sim`` with [a simple test program](https://github.com/Thog/rust-lld-apple-target_test).

It currently doesn't work with targets ``armv7-apple-ios`` and ``armv7s-apple-ios`` because of ``symbols.o`` not being generated with the correct CPU subtype. This will require changes in the ``object`` crate to expose an API.

As ``ld64.lld`` requires ``-platform_version`` with the minimal version supported and an sdk version, I made ``rustc_target::apple_base`` public to get access to ``*os_deployment_target``  helper functions and also added ``tvos_deployment_target`` as it was missing.
2022-08-03 22:29:25 +02:00
Camille GILLOT
845009d071 Only fetch HIR for naked functions that have the attribute. 2022-08-03 19:14:29 +02:00
Esteban Küber
939c2b6313 Provide suggestion on missing let in binding statement
Fix #78907.
2022-08-03 09:29:29 -07:00