| Age | Commit message (Collapse) | Author | Lines |
|
|
|
Rollup of 9 pull requests
Successful merges:
- #106806 (Replace format flags u32 by enums and bools.)
- #107194 (Remove dependency on slice_internals feature in rustc_ast)
- #107234 (Revisit fix_is_ci_llvm_available logic)
- #107316 (Update snap from `1.0.1` to `1.1.0`)
- #107321 (solver comments + remove `TyCtxt::evaluate_goal`)
- #107332 (Fix wording from `rustbuild` to `bootstrap`)
- #107347 (reduce rightward-drift)
- #107352 (compiler: Fix E0587 explanation)
- #107357 (Fix infinite loop in rustdoc get_all_import_attributes function)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
solver comments + remove `TyCtxt::evaluate_goal`
from the `RustcContributor::explore` session yesterday.
This also removes `TyCtxt::evaluate_goal` because to canonicalize you have to use an `InferCtxt` anyways at which point we should just always get people to use `evaluate_root_goal`.
r? ``@spastorino``
|
|
Switch to `EarlyBinder` for `fn_sig` query
Part of the work to finish #105779 (also see https://github.com/rust-lang/types-team/issues/78).
Several queries `X` have a `bound_X` variant that wraps the output in [`EarlyBinder`](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/subst/struct.EarlyBinder.html). This adds `EarlyBinder` to the return type of the `fn_sig` query and removes `bound_fn_sig`.
r? `@lcnr`
|
|
|
|
|
|
|
|
EarlyBinder to fn_sig in metadata
|
|
|
|
|
|
|
|
|
|
|
|
ICE in new solver if we see an inference variable
By construction, we do not expect to see any `ty::Infer(ty::TyVar(_))` inference types in the solver (we treat this as ambiguous, since we need to be able to structurally resolve the self type at least one layer to assemble candidates for it). Additionally, since we're doing no freshening, we also don't expect to see any fresh vars of any kind in the solver.
Let's make that an ICE so we can catch any mistakes.
When #107282 lands, we should also ICE there too if we see a non-int/float infer.
r? `@lcnr`
|
|
r=lcnr
Implement `Generator` and `Future` in the new solver
r? `@lcnr`
|
|
Implement ObjectSafe and WF in the new solver
r? ``@lcnr``
|
|
|
|
|
|
|
|
|
|
|
|
erica solver: implement builtin `Pointee` trait impl candidates
r? ```@compiler-errors```
|
|
Tweak E0597
CC #99430
|
|
|
|
|
|
use `LocalDefId` instead of `HirId` in trait resolution to simplify the obligation clause resolution
This commit introduces a refactoring suggested by `@lcnr` to simplify the obligation clause resolution.
This is just the first PR that introduces a type of refactoring, but others PRs will follow this to introduce name changing to change from the variable name from `body_id` to something else.
Fixes https://github.com/rust-lang/rust/issues/104827
Signed-off-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
`@rustbot` r? `@lcnr`
|
|
`new_outside_solver` -> `evaluate_root_goal`
r? ```@rust-lang/initiative-trait-system-refactor```
|
|
|
|
|
|
|
|
|
|
|
|
use LocalDefId instead of HirId in trait resolution to simplify
the obligation clause resolution
Signed-off-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
|
|
Filter param-env predicates for errors before calling `to_opt_poly_trait_pred`
cc #106309 https://github.com/rust-lang/rust/pull/106757#issuecomment-1396616318
r? `@ghost`
|
|
r=lcnr
Move relationships from FulfillmentContext to Inherited
r? `@lcnr`
|
|
|
|
|
|
|
|
Implement some more new solver candidates and fix some bugs
First, fix some bugs:
1. `IndexVec::drain_enumerated(a..b)` does not give us an iterator of index keys + items enumerated from `a..b`, but from `0..(b-a)`... That caused a bug. See first commit for the fix.
2. Implement the `_: Trait` ambiguity hack. I put it in assemble, let me know if it should live elsewhere. This is important, since we otherwise consider `_: Sized` to have no solutions, and nothing passes!
3. Swap `Ambiguity` and `Unimplemented` cases for the new solver. Sorry for accidentally swapping them 😄
4. Check GATs' own predicates during projection confirmation.
Then implement a few builtin traits:
5. Implement `PointerSized`. Pretty independent.
6. Implement `Fn` family of traits for fnptr, fndef, and closures. Closures are currently broken because `FulfillCtxt::relationships` is intentionally left unimplemented. See comment in the test.
r? ```@lcnr```
|
|
Check ADT fields for copy implementations considering regions
Fixes #88901
r? `@ghost`
|
|
Rollup of 6 pull requests
Successful merges:
- #106699 ([drop tracking] Visit break expressions )
- #106738 (Fix known-bug annotations)
- #106891 (Tweak "borrow closure argument" suggestion)
- #106928 (add raw identifier for keyword in suggestion)
- #107065 (Clippy: Make sure to include in beta: Move `unchecked_duration_subtraction` to pedantic)
- #107068 (autoderive Subdiagnostic for AddtoExternBlockSuggestion)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Rollup of 8 pull requests
Successful merges:
- #106783 (Recover labels written as identifiers)
- #106973 (Don't treat closures from other crates as local)
- #106979 (Document how to get the type of a default associated type)
- #107053 (signal update string representation for haiku.)
- #107058 (Recognise double-equals homoglyph)
- #107067 (Custom MIR: Support storage statements)
- #107076 (Added const-generic ui test case for issue #106419)
- #107091 (Fix broken format strings in `infer.ftl`)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Tweak "borrow closure argument" suggestion
Fix #45727.
|
|
Don't treat closures from other crates as local
fixes #104817
r? `@lcnr`
Specialization can prefer an impl for an opaque type over a blanket impls that also matches. If the blanket impl only applies if an auto-trait applies, we look at the hidden type of the opaque type to see if that implements the auto trait. The hidden type can be a closure or generator, and thus we will end up seeing these types in coherence and have to handle them properly.
|
|
Remove some `ref` patterns from the compiler
Previous PR: https://github.com/rust-lang/rust/pull/105368
r? `@Nilstrieb`
|
|
|
|
Fix #45727.
|
|
|
|
|
|
|