about summary refs log tree commit diff
path: root/compiler/rustc_infer/src
AgeCommit message (Collapse)AuthorLines
2024-11-18reviewlcnr-3/+3
2024-11-18use `TypingEnv` when no `infcx` is availablelcnr-1/+45
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-12Consolidate type system const evaluation under `traits::evaluate_const`Boxy-135/+1
mew
2024-11-08Manually register some bounds for a better spanMichael Goulet-0/+1
2024-11-04ty::BrK -> ty::BoundRegionKind::KMichael Goulet-1/+1
2024-11-02Remove or fix some FIXME(async_closure)Michael Goulet-1/+0
2024-10-31Encode cross-crate opaque type originMichael Goulet-1/+4
2024-10-29TypingMode :thinking:lcnr-110/+108
2024-10-28fix clippy::clone_on_ref_ptr for compilerklensy-1/+1
2024-10-24Implement const effect predicate in new solverMichael Goulet-12/+2
2024-10-24Remove associated type based effects logicMichael Goulet-159/+7
2024-10-23clone range in a more obvious wayMatthias Krüger-4/+1
2024-10-19refactor fudge_inference, handle effect varslcnr-124/+175
2024-10-17move `defining_opaque_types` out of `Canonical`lcnr-21/+12
2024-10-12Swap PredicateObligation to ThinVecGnomedDev-1/+2
2024-10-12Swap Vec<PredicateObligation> to type aliasGnomedDev-29/+34
2024-10-10Make super combine into fnsMichael Goulet-8/+8
2024-10-10Use SolverRelating in favor of TypeRelating in the old solver where possibleMichael Goulet-30/+73
2024-10-10Remove unnecessary StructurallyRelateAliases from CombineFields/TypeRelatingMichael Goulet-8/+2
2024-10-10Use SolverRelating in new solverMichael Goulet-72/+2
2024-10-10Introduce SolverRelatingMichael Goulet-1/+34
2024-10-10Uplift super_combineMichael Goulet-254/+70
2024-10-10Move ty::Error branch into super_combine_tysMichael Goulet-5/+5
2024-10-08Remove unnecessary `return` keyword.Nicholas Nethercote-1/+1
2024-10-08Use `Default` more in `InferCtxtInner`.Nicholas Nethercote-18/+7
2024-10-08Downgrade a `&mut self` to `&self`.Nicholas Nethercote-1/+1
2024-10-08Remove `Deref`/`DerefMut` impls for `RegionConstraintCollector`.Nicholas Nethercote-32/+18
`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-08Remove unnecessary lifetime from `LeakCheck`.Nicholas Nethercote-32/+22
`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-08Inline and remove `RegionConstraintStorage::remove_constraint_entry`.Nicholas Nethercote-24/+20
It has a single call site.
2024-10-08Inline and remove `RegionConstraintCollector::into_infos_and_data`.Nicholas Nethercote-32/+18
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-08Improve formatting of some comments.Nicholas Nethercote-53/+50
I.e. fixing comments lines that are too long or too short.
2024-10-08Add a useful comment about `InferOk`.Nicholas Nethercote-0/+7
Prompted by #131134, which tried to remove `InferOk<'tcx, ()>` occurrences.
2024-10-08Remove `OutlivesEnvironmentBuilder`.Nicholas Nethercote-61/+26
`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-07Auto merge of #131343 - compiler-errors:remove-combine-fields, r=lcnrbors-262/+161
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-07Rollup merge of #131344 - nnethercote:ref-Lrc, r=compiler-errorsMatthias Krüger-4/+12
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-07Remove At methods that are unusedMichael Goulet-41/+0
2024-10-07Remove unnecessary DefineOpaqueTypes from lubMichael Goulet-25/+9
2024-10-07Inline CombineFieldsMichael Goulet-218/+174
2024-10-07Convert a `&Lrc<T>` argument to `Lrc<T>`.Nicholas Nethercote-4/+12
It's slightly simpler.
2024-10-07Remove out-of-date comment.Nicholas Nethercote-2/+0
2024-10-07Move a `use` statement so it's with the other `use` statements.Nicholas Nethercote-2/+1
2024-10-07Simplify two matches.Nicholas Nethercote-15/+1
Matches involving `GenericArgKind` pairs typically use a single `_` for the impossible case. This commit shortens two verbose matches in this way.
2024-10-07Streamline `next_*_var*` methods.Nicholas Nethercote-18/+6
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-07Inline and remove `InferCtxtBuilder::with_defining_opaque_types`.Nicholas Nethercote-10/+3
It has a single use.
2024-10-07Fix `FIXME` comment on `FixupError`.Nicholas Nethercote-27/+24
`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-07Remove `InferCtxt::err_count_on_creation`.Nicholas Nethercote-18/+3
It's no longer used meaningfully. This also means `DiagCtxtHandle::err_count_excluding_lint_errs` can be removed.
2024-10-07Reduce visibilities some more.Nicholas Nethercote-25/+26
It helps people reading the code understand how widely things are used.
2024-10-07Remove unused `UnitResult` type.Nicholas Nethercote-2/+0
2024-10-07Reduce visibilities.Nicholas Nethercote-52/+25
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-07Rename `errors/mod.rs` as `errors.rs`.Nicholas Nethercote-0/+0
It's simpler, for this tiny module.