summary refs log tree commit diff
path: root/compiler/rustc_infer/src
AgeCommit message (Collapse)AuthorLines
2024-12-30fix a couple nitsRémy Rakic-1/+1
- remove unneeded type ascription - fix variable name - fix typo in comment - fix `var_origins` var and function name: these are `VarInfos`
2024-12-26nit: Remove redundant functionMichael Goulet-4/+0
2024-12-22Begin to implement type system layer of unsafe bindersMichael Goulet-0/+1
2024-12-20remove non-borrowck member constraintslcnr-353/+5
2024-12-18Re-export more `rustc_span::symbol` things from `rustc_span`.Nicholas Nethercote-4/+2
`rustc_span::symbol` defines some things that are re-exported from `rustc_span`, such as `Symbol` and `sym`. But it doesn't re-export some closely related things such as `Ident` and `kw`. So you can do `use rustc_span::{Symbol, sym}` but you have to do `use rustc_span::symbol::{Ident, kw}`, which is inconsistent for no good reason. This commit re-exports `Ident`, `kw`, and `MacroRulesNormalizedIdent`, and changes many `rustc_span::symbol::` qualifiers in `compiler/` to `rustc_span::`. This is a 200+ net line of code reduction, mostly because many files with two `use rustc_span` items can be reduced to one.
2024-12-17`fn member_constraint` to `add_member_constraint`lcnr-4/+4
2024-12-02Assert that obligations are empty before deeply normalizingMichael Goulet-0/+2
2024-11-28support revealing defined opaque post borrowcklcnr-5/+19
2024-11-28uplift fold_regions to rustc_type_irlcnr-4/+4
2024-11-23Auto merge of #133242 - lcnr:questionable-uwu, r=compiler-errors,BoxyUwUbors-39/+15
finish `Reveal` removal After #133212 changed the `TypingMode` to be the only source of truth, this entirely rips out `Reveal`. cc #132279 r? `@compiler-errors`
2024-11-23global old solver cache: use `TypingEnv`lcnr-4/+5
2024-11-23no more Reveal :(lcnr-35/+10
2024-11-23Remove unnecessary bool from ExpectedFoundMichael Goulet-44/+18
2024-11-19Implement ~const opaquesMichael Goulet-4/+23
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