Ralf Jung
6e4779ab17
make the eval() functions on our const types return the resulting value
2023-09-13 07:29:34 +02:00
Matthias Krüger
3ce90b1649
inline format!() args up to and including rustc_codegen_llvm
2023-07-30 14:22:50 +02:00
bors
ad963232d9
Auto merge of #113471 - compiler-errors:new-solver-norm-escaping, r=lcnr
...
Allow escaping bound vars during `normalize_erasing_regions` in new solver
Add `AllowEscapingBoundVars` to `deeply_normalize`, and use it in the new solver in the `query_normalize` routine.
Ideally, we'd make all `query_normalize` calls handle pass in `AllowEscapingBoundVars` individually, because really the only `query_normalize` call that needs `AllowEscapingBoundVars::Yes` is the one in `try_normalize_generic_arg_after_erasing_regions`, but I think that's kind of overkill. I am happy to be convinced otherwise, though.
r? `@lcnr`
2023-07-14 21:14:30 +00:00
Michael Goulet
4bcca3294a
Allow escaping bound vars during normalize_erasing_regions in new solver
2023-07-14 15:03:21 +00:00
Mahdi Dibaiee
e55583c4b8
refactor(rustc_middle): Substs -> GenericArg
2023-07-14 13:27:35 +01:00
lcnr
42067596c2
add deep normalization via the new solver
2023-07-03 09:12:14 +02:00
Michael Goulet
983f6b9787
Normalize opaques with escaping bound vars
2023-06-27 21:36:15 +00:00
Michael Goulet
493b18b653
Continue folding in query normalizer on weak aliases
2023-06-18 20:56:30 +00:00
Oli Scherer
f3b7dd6388
Add AliasKind::Weak for type aliases.
...
Only use it when the type alias contains an opaque type.
Also does wf-checking on such type aliases.
2023-06-16 19:39:48 +00:00
León Orell Valerian Liehr
e8139dfd5a
IAT: Introduce AliasKind::Inherent
2023-05-04 16:59:10 +02:00
Oli Scherer
d87fbb918c
Deduplicate logic between projection normalization with and without escaping bound vars
2023-03-15 12:02:00 +00:00
Oli Scherer
d3d537b972
Exhaustively match over all alias kinds
2023-03-15 12:00:25 +00:00
Alan Egerton
695072daa6
Remove type-traversal trait aliases
2023-02-22 17:04:58 +00:00
Kyle Matsuda
c183110cc2
remove bound_type_of query; make type_of return EarlyBinder; change type_of in metadata
2023-02-16 17:05:56 -07:00
Alan Egerton
63ad5d0522
Rename folder traits' tcx method to interner
2023-02-13 10:24:51 +00:00
Alan Egerton
9783fcc13b
Make folding traits generic over the Interner
2023-02-13 10:24:49 +00:00
Alan Egerton
dea342d861
Make visiting traits generic over the Interner
2023-02-13 10:24:49 +00:00
Alan Egerton
ba55a453eb
Alias folding/visiting traits instead of re-export
2023-02-13 10:24:46 +00:00
Camille GILLOT
de110f9208
Pacify tidy.
2023-01-27 22:01:25 +00:00
Camille GILLOT
caefec955f
Do not abort compilation when failing to normalize opaque types.
2023-01-27 18:55:58 +00:00
bors
56ee85274e
Auto merge of #106090 - WaffleLapkin:dereffffffffff, r=Nilstrieb
...
Remove some `ref` patterns from the compiler
Previous PR: https://github.com/rust-lang/rust/pull/105368
r? `@Nilstrieb`
2023-01-20 04:52:28 +00:00
Scott McMurray
925dc37313
Stop using BREAK & CONTINUE in compiler
...
Switching them to `Break(())` and `Continue(())` instead.
libs-api would like to remove these constants, so stop using them in compiler to make the removal PR later smaller.
2023-01-17 23:17:51 -08:00
Maybe Waffle
8d3c90ae13
Review suggestions
2023-01-17 07:48:20 +00:00
Maybe Waffle
360e978437
Don't call closures immediately, use try{} blocks
2023-01-17 07:48:19 +00:00
Oli Scherer
a5cd3bde95
Ensure no one constructs AliasTys themselves
2022-12-14 15:36:39 +00:00
Michael Goulet
61adaf8187
Combine projection and opaque into alias
2022-12-13 17:48:55 +00:00
Michael Goulet
c13bd83528
squash OpaqueTy and ProjectionTy into AliasTy
2022-12-13 17:40:27 +00:00
Michael Goulet
7f3af72606
Use ty::OpaqueTy everywhere
2022-12-13 17:29:26 +00:00
Michael Goulet
d2a80c1571
Avoid noting cause code (which is usually misc, b/c codegen) for opaque type reveal overflow
2022-12-06 00:19:55 +00:00
Michael Goulet
02b64c5d26
Document normalization methods on At
2022-12-01 19:00:09 +00:00
Michael Goulet
fc710832ea
partially_normalize_... -> At::normalize
2022-11-28 17:35:39 +00:00
Michael Goulet
f12e772b83
Rename At::normalize to At::query_normalize
2022-11-28 17:32:35 +00:00
Michael Goulet
b8a92c1dd6
Revert "Normalize opaques with escaping bound vars"
...
This reverts commit 43119d6438 .
2022-11-18 17:40:14 +00:00
Oli Scherer
4f11f3b257
Convert predicates into Predicate in the Obligation constructor
2022-11-16 09:25:19 +00:00
Michael Goulet
152646f23f
Don't normalize constants unless they need normalization
2022-11-07 00:30:56 +00:00
Michael Goulet
9f6b9dd644
Delay ambiguity span bug in normalize query iff not rustdoc
2022-10-21 18:53:16 +00:00
lcnr
e8150fa60c
mir constants: type traversing bye bye
2022-10-17 10:54:01 +02:00
Cameron Steffen
349415d1c6
Remove TypeckResults from InferCtxt
2022-10-07 07:06:19 -05:00
Cameron Steffen
4a68373217
Introduce TypeErrCtxt
...
TypeErrCtxt optionally has a TypeckResults so that InferCtxt doesn't
need to.
2022-10-07 07:06:16 -05:00
Matthias Krüger
3a8bad98d7
Rollup merge of #102137 - b-naber:lazy-const-val-conversion, r=lcnr
...
Don't convert valtree to constvalue during normalization
r? ``@lcnr``
2022-09-23 15:40:22 +02:00
b-naber
a9e657dbfc
don't convert valtree to constvalue during normalization
2022-09-22 14:46:14 +02:00
Michael Goulet
43119d6438
Normalize opaques with escaping bound vars
2022-09-22 02:17:39 +00:00
lcnr
647052fc04
remove the Subst trait, always use EarlyBinder
2022-09-19 11:37:27 +02:00
bors
efa717bc2d
Auto merge of #101924 - jackh726:revert-static-hrtb-error, r=compiler-errors
...
Re-add HRTB implied static bug note
r? `@compiler-errors` since you reviewed it previously
I deleted a `normalize` call and forgot about it. Whoops.
2022-09-19 04:56:14 +00:00
Jack Huey
e7ca6e1b47
Use Predicate ConstraintCategory when normalizing
2022-09-17 11:46:05 -04:00
Jack Huey
bba514b7b4
Revert "Use Predicate ConstraintCategory when normalizing"
...
This reverts commit aae37f8763 .
2022-09-16 09:01:28 -04:00
Jack Huey
aae37f8763
Use Predicate ConstraintCategory when normalizing
2022-09-13 20:18:49 -04:00
b-naber
a4bbb8db5c
use ty::Unevaluated<'tcx, ()> in type system
2022-09-13 17:40:59 +02:00
lcnr
d15b00af48
don't evaluate with escaping bound vars
2022-09-08 11:41:00 +02:00
bors
aeb5067967
Auto merge of #100315 - compiler-errors:norm-ct-in-proj, r=lcnr
...
Keep going if normalized projection has unevaluated consts in `QueryNormalizer`
#100312 was the wrong approach, I think this is the right one.
When normalizing a type, if we see that it's a projection, we currently defer to `tcx.normalize_projection_ty`, which normalizes the projections away but doesn't touch the unevaluated constants. So now we just continue to fold the type if it has unevaluated constants so we make sure to evaluate those too, if we can.
Fixes #100217
Fixes #83972
Fixes #84669
Fixes #86710
Fixes #82268
Fixes #73298
2022-08-11 10:47:48 +00:00