summary refs log tree commit diff
path: root/compiler/rustc_middle/src/traits
AgeCommit message (Collapse)AuthorLines
2024-08-08Detect `*` operator on `!Sized` expressionEsteban Küber-1/+1
``` error[E0277]: the size for values of type `str` cannot be known at compilation time --> $DIR/unsized-str-in-return-expr-arg-and-local.rs:15:9 | LL | let x = *""; | ^ doesn't have a size known at compile-time | = help: the trait `Sized` is not implemented for `str` = note: all local variables must have a statically known size = help: unsized locals are gated as an unstable feature help: references are always `Sized`, even if they point to unsized data; consider not dereferencing the expression | LL - let x = *""; LL + let x = ""; | ```
2024-07-29Reformat `use` declarations.Nicholas Nethercote-27/+26
The previous commit updated `rustfmt.toml` appropriately. This commit is the outcome of running `x fmt --all` with the new formatting options.
2024-07-12enable fuzzing of `SearchGraph`lcnr-125/+0
fully move it into `rustc_type_ir` and make it independent of `Interner`.
2024-07-07Get rid of the redundant elaboration in middleMichael Goulet-63/+0
2024-06-27Make queries more explicitMichael Goulet-1/+1
2024-06-21Rename a bunch of thingsMichael Goulet-12/+10
2024-06-18Uplift PredefinedOpaquesDataMichael Goulet-9/+3
2024-06-18Make SearchGraph fully genericMichael Goulet-18/+12
2024-06-16Uplift ExternalConstraintDataMichael Goulet-24/+5
2024-06-16Make ExternalConstraints just carry outlivesMichael Goulet-2/+1
2024-06-16Uplift Reveal to rustc_type_irMichael Goulet-48/+1
2024-06-13Method resolution constrains hidden types instead of rejecting method candidatesOli Scherer-1/+1
2024-06-12Stop passing traitref/traitpredicate by refMichael Goulet-1/+1
2024-06-06Uplift TypeErrorMichael Goulet-7/+0
2024-06-06Make middle not rely on next_trait_solverMichael Goulet-4/+4
2024-06-05Fully implement `ConstArgHasType`Boxy-0/+2
2024-05-24remove proof tree formatter, make em shallowlcnr-3/+3
2024-05-20move global cache lookup into fnlcnr-16/+18
2024-05-18Uplift inspect into rustc_type_irMichael Goulet-516/+14
2024-05-18Uplift GenericArgKind, CanonicalVarValues, QueryInputMichael Goulet-31/+5
and make NestedGoals generic
2024-05-16Uplift Goal to rustc_type_irMichael Goulet-27/+2
2024-05-16Rename ToPredicate for UpcastMichael Goulet-8/+8
2024-05-13Use a proper probe for shadowing implMichael Goulet-0/+5
2024-05-11Consolidate obligation cause codes for where clausesMichael Goulet-16/+9
2024-05-10Name tweaksMichael Goulet-7/+7
2024-05-10More rename falloutMichael Goulet-18/+19
2024-05-10Rename some ObligationCauseCode variantsMichael Goulet-27/+20
2024-05-10Remove glob imports for ObligationCauseCodeMichael Goulet-11/+12
2024-05-06Record impl args in the InsepctCandiate rather than rematching during selectMichael Goulet-0/+5
2024-05-02Higher ranked goal source, do overflow handling less badlyMichael Goulet-0/+3
2024-04-30Rollup merge of #124511 - nnethercote:rm-extern-crates, r=fee1-deadMatthias Krüger-2/+11
Remove many `#[macro_use] extern crate foo` items This requires the addition of more `use` items, which often make the code more verbose. But they also make the code easier to read, because `#[macro_use]` obscures where macros are defined. r? `@fee1-dead`
2024-04-29Take proof trees by value in inspect goalMichael Goulet-3/+3
2024-04-29Only register candidate if it is associated w a shallow certaintyMichael Goulet-4/+4
2024-04-29Actually use probes when needed and stop relying on existing outer probesMichael Goulet-6/+9
2024-04-29Remove `extern crate smallvec` from a couple of crates.Nicholas Nethercote-1/+1
2024-04-29Remove `extern crate rustc_data_structures` from numerous crates.Nicholas Nethercote-1/+1
2024-04-29Remove `extern crate rustc_macros` from `rustc_middle`.Nicholas Nethercote-0/+9
2024-04-27Record certainty of evaluate_added_goals_and_make_canonical_response call in ↵Michael Goulet-0/+9
candidate
2024-04-26Auto merge of #122385 - lcnr:analyze-obligations-for-infer, r=compiler-errorsbors-0/+1
`obligations_for_self_ty`: use `ProofTreeVisitor` for nested goals As always, dealing with proof trees continues to be a hacked together mess. After this PR and #124380 the only remaining blocker for core is https://github.com/rust-lang/trait-system-refactor-initiative/issues/90. There is also a `ProofTreeVisitor` issue causing an ICE when compiling `alloc` which I will handle in a separate PR. This issue likely affects coherence diagnostics more generally. The core idea is to extend the proof tree visitor to support visiting nested candidates without using a `probe`. We then simply recurse into nested candidates if they are the only potentially applicable candidate for a given goal and check whether the self type matches the expected one. For that to work, we need to improve `CanonicalState` to also handle unconstrained inference variables created inside of the trait solver. This is done by extending the `var_values` of `CanoncalState` with each fresh inference variables. Furthermore, we also store the state of all inference variables at the end of each probe. When recursing into `InspectCandidates` we then unify the values of all these states. r? `@compiler-errors`
2024-04-25Rollup merge of #124381 - compiler-errors:derived-for-wf, r=lcnrMichael Goulet-2/+7
Renamed `DerivedObligation` to `WellFormedDeriveObligation` It's used when computing `WellFormed` obligations, so let's give it a less ambiguous name.
2024-04-25Renamed DerivedObligation to WellFormedDeriveObligationMichael Goulet-2/+7
2024-04-25hir typeck: look into nested goalslcnr-0/+1
uses a `ProofTreeVisitor` to look into nested goals when looking at the pending obligations during hir typeck. Used by closure signature inference, coercion, and for async functions.
2024-04-25Check closure args and returns are WFMichael Goulet-1/+1
2024-04-18Auto merge of #124008 - nnethercote:simpler-static_assert_size, r=Nilstriebbors-1/+1
Simplify `static_assert_size`s. We want to run them on all 64-bit platforms. r? `@ghost`
2024-04-18Simplify `static_assert_size`s.Nicholas Nethercote-1/+1
We want to run them on all 64-bit platforms.
2024-04-16Avoid lots of `hir::HirId{,Map,Set}` qualifiers.Nicholas Nethercote-15/+16
Because they're a bit redundant.
2024-04-15Stop using PolyTraitRef for closure/coroutine predicates already ↵Michael Goulet-3/+2
instantiated w placeholders
2024-04-08Eliminate `DefiningAnchor` now that is just a single-variant enumOli Scherer-30/+1
2024-04-08Pass list of defineable opaque types into canonical queriesOli Scherer-10/+8
2024-04-05Fix typoWaffle Maybe-1/+1