Michael Goulet
322694ed56
Remove unused ErrorReporting variant from overflow handling
2024-01-12 17:00:32 +00:00
Michael Goulet
8abf133c4b
Make inductive cycles in coherence ambiguous always
2024-01-08 15:03:59 +00:00
Michael Goulet
e24da8ea19
Movability doesn't need to be a query anymore
2023-12-28 16:35:01 +00:00
Michael Goulet
fcb42b42d6
Remove movability from TyKind::Coroutine
2023-12-28 16:35:01 +00:00
Nicholas Nethercote
99472c7049
Remove Session methods that duplicate DiagCtxt methods.
...
Also add some `dcx` methods to types that wrap `TyCtxt`, for easier
access.
2023-12-24 08:05:28 +11:00
Michael Goulet
009cd9c815
Remove unnecessary param-env from lexical region resolution and fully structural relations
2023-12-19 15:10:26 +00:00
Michael Goulet
69f360d00c
Check FnPtr/FnDef built-in fn traits correctly with effects
2023-12-18 20:28:06 +00:00
Michael Goulet
20927d3956
Remove unnecessary constness from ProjectionCandidate
2023-12-16 17:21:20 +00:00
Michael Goulet
96bb542a31
Implement async gen blocks
2023-12-08 17:23:25 +00:00
lcnr
3978f545ba
add unused NormalizesTo predicate
2023-12-07 17:52:51 +01:00
Michael Goulet
d732c3b756
EvaluatedToUnknown -> EvaluatedToAmbigStackDependent, EvaluatedToRecur -> EvaluatedToErrStackDependent
2023-12-06 19:59:47 +00:00
Michael Goulet
f6c30b3a54
Add more
2023-12-05 17:15:46 +00:00
Nicholas Nethercote
5d1d384443
Rename HandlerInner::delay_span_bug as HandlerInner::span_delayed_bug.
...
Because the corresponding `Level` is `DelayedBug` and `span_delayed_bug`
follows the pattern used everywhere else: `span_err`, `span_warning`,
etc.
2023-12-02 09:01:19 +11:00
Michael Goulet
0750a5df4d
AmbiguityCause should not eagerly format strings
2023-11-24 22:29:59 +00:00
bors
1e9dda77b5
Auto merge of #118120 - compiler-errors:closure-kind, r=lcnr
...
Remove `PredicateKind::ClosureKind`
We don't need the `ClosureKind` predicate kind -- instead, `Fn`-family trait goals are left as ambiguous, and we only need to make progress on `FnOnce` projection goals for inference purposes.
This is similar to how we do confirmation of `Fn`-family trait and projection goals in the new trait solver, which also doesn't use the `ClosureKind` predicate.
Some hacky logic is added in the second commit so that we can keep the error messages the same.
2023-11-22 21:09:01 +00:00
Nilstrieb
21a870515b
Fix clippy::needless_borrow in the compiler
...
`x clippy compiler -Aclippy::all -Wclippy::needless_borrow --fix`.
Then I had to remove a few unnecessary parens and muts that were exposed
now.
2023-11-21 20:13:40 +01:00
Michael Goulet
93298ee0dd
Remove ClosureKind predicate kind
2023-11-21 18:35:45 +00:00
lcnr
8935a1be01
update type flags
...
- `HAS_RE_LATE_BOUND` -> `HAS_RE_BOUND`
- `HAS_TY_LATE_BOUND` -> `HAS_TY_BOUND`
- `HAS_CT_LATE_BOUND` -> `HAS_CT_BOUND`
- `HAS_LATE_BOUND` -> `HAS_BOUND_VARS`
- `fn has_late_bound_regions` -> `fn has_bound_regions`
- `fnhas_non_region_late_bound` -> `fn has_non_region_bound_vars`
- `fn has_late_bound_vars` -> `fn has_bound_vars`
2023-11-13 14:13:54 +00:00
lcnr
dd0739aabe
continue renaming
...
- `RegionVariableOrigin::~~Late~~BoundRegion`
- `~~Late~~BoundRegionConversionTime`
2023-11-13 14:13:54 +00:00
lcnr
86fa1317a3
rename ReLateBound to ReBound
...
other changes:
- `Region::new_late_bound` -> `Region::new_bound`
- `Region::is_late_bound` -> `Region::is_bound`
2023-11-13 14:13:54 +00:00
Michael Goulet
c17d33f1df
Extend builtin/auto trait args with error when they have >1 argument
2023-11-06 21:29:08 +00:00
Oli Scherer
998a816106
Make gen blocks implement the Iterator trait
2023-10-27 13:05:48 +00:00
Oli Scherer
e96ce20b34
s/generator/coroutine/
2023-10-20 21:14:01 +00:00
Oli Scherer
60956837cf
s/Generator/Coroutine/
2023-10-20 21:10:38 +00:00
Ali MJ Al-Nasrawy
a1e274f172
revert rust-lang/rust#114586
2023-10-18 06:19:04 +00:00
Michael Goulet
b2d2184ede
Format all the let chains in compiler
2023-10-13 08:59:36 +00:00
Camille GILLOT
14c846cb05
Do not assert that hidden types don't have erased regions.
2023-10-05 15:50:36 +00:00
Michael Goulet
2ffaeb5110
Rename both of the Match relations
2023-10-02 21:06:09 +00:00
Camille GILLOT
26cb34cd18
Remove span from BrAnon.
2023-09-24 09:46:55 +00:00
Camille GILLOT
44ac8dcc71
Remove GeneratorWitness and rename GeneratorWitnessMIR.
2023-09-23 13:47:30 +00:00
Camille GILLOT
ff03204365
Fold lifetimes before substitution.
2023-09-23 13:15:15 +00:00
John Kåre Alsaker
1806efe7f2
Move DepKind to rustc_query_system and define it as u16
2023-09-21 17:06:14 +02:00
Ralf Jung
89ac57db4d
move required_consts check to general post-mono-check function
2023-09-14 22:30:42 +02:00
bors
e2b3676733
Auto merge of #114586 - oli-obk:patch_tait_rpit_order_check, r=lcnr,compiler-errors
...
Bubble up opaque <eq> opaque operations instead of picking an order
In case we are in `Bubble` mode (meaning every opaque type that is defined in the current crate is treated as if it were in its defining scope), we don't try to register an opaque type as the hidden type of another opaque type, but instead bubble up an obligation to equate them at the query caller site. Usually that means we have a `DefiningAnchor::Bind` and thus can reliably figure out whether an opaque type is in its defining scope. Where we can't, we'll error out, so the default is sound.
With this change we start using `AliasTyEq` predicates in the old solver, too.
fixes https://github.com/rust-lang/rust/issues/108498
But also regresses `tests/ui/impl-trait/anon_scope_creep.rs`. Our use of `Bubble` for `check_opaque_type_well_formed` is going to keep biting us.
r? `@lcnr` `@compiler-errors`
2023-09-11 19:01:38 +00:00
Oli Scherer
930affa39d
Bubble up opaque <eq> opaque operations instead of picking an order
2023-09-11 16:53:39 +00:00
Michael Goulet
bf53598828
More precisely detect cycle errors from type_of on opaque
2023-08-27 22:03:16 +00:00
Michael Goulet
0e20155662
more nits
2023-08-15 03:44:21 +00:00
Michael Goulet
ca49a37390
Reuse the selection context, compute failing obligations first in ambig mode
2023-08-15 03:40:19 +00:00
Michael Goulet
d2a14df70e
nits
...
Co-authored-by: lcnr <rust@lcnr.de >
2023-08-15 03:40:19 +00:00
Michael Goulet
56f5704ff8
Implement lint against coinductive impl overlap
2023-08-15 03:40:19 +00:00
bors
7455aa5395
Auto merge of #114457 - lcnr:trait_ref_is_knowable-normalize, r=compiler-errors
...
normalize in `trait_ref_is_knowable` in new solver
fixes https://github.com/rust-lang/trait-system-refactor-initiative/issues/51
Alternatively we could avoid normalizing the self type and do this at the end of the `assemble_candidates_via_self_ty` stack by splitting candidates into:
- applicable without normalizing self type
- applicable for aliases, even if they can be normalized
- applicable for stuff which cannot get normalized further
I don't think this would have any significant benefits and it also seems non-trivial to avoid normalizing only the self type in `trait_ref_is_knowable`.
r? `@compiler-errors`
2023-08-13 05:18:27 +00:00
lcnr
9eeaf1fd13
normalize in trait_ref_is_knowable in new solver
2023-08-12 20:37:53 +02:00
lcnr
bb76fde734
remove builtin impl for float and int infer
2023-08-11 19:08:11 +02:00
Michael Goulet
540afe202f
Comment nits
2023-08-10 23:22:03 +00:00
Michael Goulet
7c942ccb0c
Don't be incomplete
2023-08-03 18:21:11 +00:00
Deadbeef
4fec845c3f
Remove constness from TraitPredicate
2023-08-02 15:38:00 +00:00
Nilstrieb
46f6b05eb7
Rollup merge of #114079 - compiler-errors:closure-upvars, r=oli-obk
...
Use `upvar_tys` in more places, make it return a list
Just a cleanup that fell out of a PR that I was gonna write, but that PR kinda got stuck.
2023-08-02 13:46:54 +02:00
Michael Goulet
99969d282b
Use upvar_tys in more places, make it a list
2023-08-01 23:19:31 +00:00
Michael Goulet
8696fa71b3
Convert adt_sized_constraint to early-binder, use list
2023-08-01 23:10:38 +00:00
Matthias Krüger
3ce90b1649
inline format!() args up to and including rustc_codegen_llvm
2023-07-30 14:22:50 +02:00