about summary refs log tree commit diff
path: root/compiler/rustc_infer/src
AgeCommit message (Collapse)AuthorLines
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.
2024-10-07Remove unused features.Nicholas Nethercote-3/+0
2024-10-04Rollup merge of #130518 - scottmcm:stabilize-controlflow-extra, r=dtolnayJubilee-1/+0
Stabilize the `map`/`value` methods on `ControlFlow` And fix the stability attribute on the `pub use` in `core::ops`. libs-api in https://github.com/rust-lang/rust/issues/75744#issuecomment-2231214910 seemed reasonably happy with naming for these, so let's try for an FCP. Summary: ```rust impl<B, C> ControlFlow<B, C> { pub fn break_value(self) -> Option<B>; pub fn map_break<T>(self, f: impl FnOnce(B) -> T) -> ControlFlow<T, C>; pub fn continue_value(self) -> Option<C>; pub fn map_continue<T>(self, f: impl FnOnce(C) -> T) -> ControlFlow<B, T>; } ``` Resolves #75744 ``@rustbot`` label +needs-fcp +t-libs-api -t-libs --- Aside, in case it keeps someone else from going down the same dead end: I looked at the `{break,continue}_value` methods and tried to make them `const` as part of this, but that's disallowed because of not having `const Drop`, so put it back to not even unstably-const.
2024-10-04Auto merge of #131191 - nnethercote:lattice_op, r=lcnrbors-403/+231
Merge `glb` and `lub` modules Tons of code is duplicated across them, and it's easy to factor that out. r? `@lcnr`