Commit Graph

2431 Commits

Author SHA1 Message Date
lcnr
2e087d2eaa review 2024-11-18 10:50:14 +01:00
lcnr
9cba14b95b use TypingEnv when no infcx is available
the behavior of the type system not only depends on the current
assumptions, but also the currentnphase of the compiler. This is
mostly necessary as we need to decide whether and how to reveal
opaque types. We track this via the `TypingMode`.
2024-11-18 10:38:56 +01:00
Boxy
bea0148ac6 Consolidate type system const evaluation under traits::evaluate_const
mew
2024-11-12 02:54:03 +00:00
Michael Goulet
97dfe8b871 Manually register some bounds for a better span 2024-11-08 04:56:08 +00:00
clubby789
b480f0f224 Remove unused intercrate dependencies 2024-11-07 14:17:16 +00:00
Michael Goulet
d458f850aa ty::BrK -> ty::BoundRegionKind::K 2024-11-04 04:45:52 +00:00
Michael Goulet
9e5e47fc32 Remove or fix some FIXME(async_closure) 2024-11-02 03:33:31 +00:00
Michael Goulet
e093b82a41 Encode cross-crate opaque type origin 2024-10-31 01:35:13 +00:00
lcnr
f51ec110a7 TypingMode 🤔 2024-10-29 17:01:24 +01:00
klensy
746b675c5a fix clippy::clone_on_ref_ptr for compiler 2024-10-28 18:05:08 +03:00
Michael Goulet
cde29b9ec9 Implement const effect predicate in new solver 2024-10-24 09:46:36 +00:00
Michael Goulet
a16d491054 Remove associated type based effects logic 2024-10-24 09:46:36 +00:00
Matthias Krüger
d84d659cb5 clone range in a more obvious way 2024-10-23 22:22:58 +02:00
lcnr
d836d35739 refactor fudge_inference, handle effect vars 2024-10-19 00:41:56 +02:00
lcnr
3360c1773a move defining_opaque_types out of Canonical 2024-10-17 10:22:52 +02:00
GnomedDev
8de8f46f78 Swap PredicateObligation to ThinVec 2024-10-12 15:17:16 +01:00
GnomedDev
7ec06b0d1d Swap Vec<PredicateObligation> to type alias 2024-10-12 15:17:08 +01:00
Michael Goulet
8715bfbf0e Make super combine into fns 2024-10-10 06:07:52 -04:00
Michael Goulet
a4cd2202ef Use SolverRelating in favor of TypeRelating in the old solver where possible 2024-10-10 06:07:52 -04:00
Michael Goulet
30a2ecddb4 Remove unnecessary StructurallyRelateAliases from CombineFields/TypeRelating 2024-10-10 06:07:52 -04:00
Michael Goulet
3da257a98d Use SolverRelating in new solver 2024-10-10 06:07:52 -04:00
Michael Goulet
efb1c23ff6 Introduce SolverRelating 2024-10-10 06:07:51 -04:00
Michael Goulet
ce7a61b9d0 Uplift super_combine 2024-10-10 06:07:51 -04:00
Michael Goulet
09da2ebd63 Move ty::Error branch into super_combine_tys 2024-10-10 06:07:51 -04:00
Nicholas Nethercote
3b1eee7755 Remove unnecessary return keyword. 2024-10-08 16:28:58 +11:00
Nicholas Nethercote
1dac23f6fe Use Default more in InferCtxtInner. 2024-10-08 16:28:58 +11:00
Nicholas Nethercote
4df21f2ca0 Downgrade a &mut self to &self. 2024-10-08 16:28:58 +11:00
Nicholas Nethercote
8b05df44f9 Remove Deref/DerefMut impls for RegionConstraintCollector.
`Deref`/`DerefMut` can be useful, but they can also obfuscate. I don't
think they're worth it for `RegionConstraintCollector`. They're also not
present on the similar types `OpaqueTypeTable` and `TypeVariableTable`.
2024-10-08 16:28:58 +11:00
Nicholas Nethercote
e8a0bd6549 Remove unnecessary lifetime from LeakCheck.
`LeakCheck` can own `mini_graph` and `rcc` instead of holding references
to them. This requires inlining `assign_scc_value` to avoid a borrowck
error, but that's fine because it has a single call site.
2024-10-08 16:28:58 +11:00
Nicholas Nethercote
85507cffc3 Inline and remove RegionConstraintStorage::remove_constraint_entry.
It has a single call site.
2024-10-08 16:28:58 +11:00
Nicholas Nethercote
2b57a785a9 Inline and remove RegionConstraintCollector::into_infos_and_data.
It's a weird method, and used weirdly:
- It's on `RegionConstraintCollector` but operates on
  `RegionConstraintStorage`. So at both call sites we create a temporary
  `RegionConstraintCollector`, using `with_log`, to call it.
- It `take`s just two of the six fields in `RegionConstraintStorage`.
  At one of the two call sites we unnecessarily clone the entire
  `RegionConstraintStorage` just to take those two fields.

This commit just inlines and removes it. We no longer need to `take` the
two fields, we can just use them directly.
2024-10-08 16:28:58 +11:00
Nicholas Nethercote
0293827e09 Improve formatting of some comments.
I.e. fixing comments lines that are too long or too short.
2024-10-08 16:28:58 +11:00
Nicholas Nethercote
27dad009c6 Add a useful comment about InferOk.
Prompted by #131134, which tried to remove `InferOk<'tcx, ()>`
occurrences.
2024-10-08 16:27:44 +11:00
Nicholas Nethercote
abf212c16c Remove OutlivesEnvironmentBuilder.
`OutlivesEnvironment::new` can call `OutlivesEnvironment::with_bounds`
with an empty `extra_bounds`. And once that's done,
`OutlivesEnvironmentBuilder` has a single use and can be inlined and
removed into `OutlivesEnvironment::with_bounds`.
2024-10-08 16:27:44 +11:00
bors
3ae715c8c6 Auto merge of #131343 - compiler-errors:remove-combine-fields, r=lcnr
Remove `CombineFields`

This conflicts with #131263, but if this one lands first then perhaps #131263 could then go ahead and remove all the branching on solver in `TypeRelating`. We could perhaps then rename `TypeRelating` to `OldSolverRelating` or something, idk.

r? lcnr
2024-10-07 21:23:06 +00:00
Matthias Krüger
df61a0b1b2
Rollup merge of #131344 - nnethercote:ref-Lrc, r=compiler-errors
Avoid `&Lrc<T>` in various places

Seeing `&Lrc<T>` is a bit suspicious, and `&T` or `Lrc<T>` is often better.

r? `@oli-obk`
2024-10-07 12:23:54 +02:00
Michael Goulet
0c5d2f98d1 Remove At methods that are unused 2024-10-07 05:29:13 -04:00
Michael Goulet
5d62afd2ba Remove unnecessary DefineOpaqueTypes from lub 2024-10-07 05:29:13 -04:00
Michael Goulet
da71dfbc51 Inline CombineFields 2024-10-07 05:29:13 -04:00
Nicholas Nethercote
860cbccad9 Convert a &Lrc<T> argument to Lrc<T>.
It's slightly simpler.
2024-10-07 13:58:10 +11:00
Nicholas Nethercote
3fdcde76d9 Remove out-of-date comment. 2024-10-07 09:50:51 +11:00
Nicholas Nethercote
afbff05c84 Move a use statement so it's with the other use statements. 2024-10-07 09:50:51 +11:00
Nicholas Nethercote
e800967478 Simplify two matches.
Matches involving `GenericArgKind` pairs typically use a single `_` for
the impossible case. This commit shortens two verbose matches in this
way.
2024-10-07 09:50:51 +11:00
Nicholas Nethercote
3386530c91 Streamline next_*_var* methods.
Inline and remove `next_const_var_id`, `next_int_var_id`,
`next_float_var_id`, all of which have a single call site.
2024-10-07 09:50:51 +11:00
Nicholas Nethercote
deeb0c5cf3 Inline and remove InferCtxtBuilder::with_defining_opaque_types.
It has a single use.
2024-10-07 09:50:51 +11:00
Nicholas Nethercote
0ca4784c45 Fix FIXME comment on FixupError.
`FixupError` is isomorphic with `TyOrConstInferVar`, so this commit
changes it to just be a wrapper around `TyOrConstInferVar`.

Also, move the `Display` impl for `FixupError` next to `FixupError`.
2024-10-07 09:50:51 +11:00
Nicholas Nethercote
25d1ef1993 Remove InferCtxt::err_count_on_creation.
It's no longer used meaningfully.

This also means `DiagCtxtHandle::err_count_excluding_lint_errs` can be
removed.
2024-10-07 09:50:50 +11:00
Nicholas Nethercote
2d2755ff97 Reduce visibilities some more.
It helps people reading the code understand how widely things are used.
2024-10-07 09:50:50 +11:00
Nicholas Nethercote
5c015eed47 Remove unused UnitResult type. 2024-10-07 09:50:50 +11:00
Nicholas Nethercote
5486d72e77 Reduce visibilities.
Three of the modules don't need to be `pub`, and then
`warn(unreachable_pub)` identifies a bunch more things that also
shouldn't be `pub`, plus a couple of things that are unused.
2024-10-07 09:50:50 +11:00