about summary refs log tree commit diff
path: root/compiler/rustc_trait_selection
AgeCommit message (Collapse)AuthorLines
2023-01-19Assert goal is fully normalized during assembleMichael Goulet-1/+4
2023-01-19Encode whether foreign opaques are TAITs or notMichael Goulet-1/+1
2023-01-19HACK: self ty ambiguity hackMichael Goulet-1/+11
2023-01-19Fix IndexVec::drain_enumeratedMichael Goulet-10/+5
2023-01-19Don't treat closures from other crates as localOli Scherer-22/+20
2023-01-18Rollup merge of #107030 - albertlarsan68:patch-3, r=lcnrMichael Goulet-1/+1
Correct typo https://github.com/rust-lang/rust/pull/106718#discussion_r1073508490
2023-01-18Rollup merge of #107023 - scottmcm:stop-shouting, r=NilstriebMichael Goulet-24/+24
Stop using `BREAK` & `CONTINUE` in compiler Switching them to `Break(())` and `Continue(())` instead. Entirely search-and-replace, though there's one spot where rustfmt insisted on a reformatting too. libs-api would like to remove these constants (https://github.com/rust-lang/rust/pull/102697#issuecomment-1385705202), so stop using them in compiler to make the removal PR later smaller.
2023-01-18Handle structural traits more gracefullyMichael Goulet-215/+212
2023-01-18no subtyping in the new trait solverMichael Goulet-34/+23
2023-01-18Sized, Copy/CloneMichael Goulet-3/+151
2023-01-18Auto and alias traitsMichael Goulet-21/+164
2023-01-18Assemble object bound candidatesMichael Goulet-0/+52
2023-01-18implement consider_assumptionMichael Goulet-10/+70
2023-01-18Canonicalize trait solver response inside probeMichael Goulet-24/+25
2023-01-18Correct typoAlbert Larsan-1/+1
2023-01-17Stop using `BREAK` & `CONTINUE` in compilerScott McMurray-24/+24
Switching them to `Break(())` and `Continue(())` instead. libs-api would like to remove these constants, so stop using them in compiler to make the removal PR later smaller.
2023-01-18add commentlcnr-0/+1
2023-01-18add note about indirect cycleslcnr-0/+4
2023-01-18update project to emulate a projection cachelcnr-14/+124
2023-01-18add `eq` to `InferCtxtExt`lcnr-38/+49
2023-01-18remove assembly context and impl a bit morelcnr-163/+311
2023-01-18instantiate canonical vars eagerlylcnr-485/+509
2023-01-18update cachelcnr-112/+90
2023-01-17Rollup merge of #106970 - kylematsuda:earlybinder-item-bounds, r=lcnrMatthias Krüger-6/+5
Switch to `EarlyBinder` for `item_bounds` 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`. This adds `EarlyBinder` to the return type of the `item_bounds` query and removes `bound_item_bounds`. r? `@lcnr`
2023-01-17Rollup merge of #106834 - compiler-errors:new-solver-did-changed, r=lcnrMatthias Krüger-1/+1
new trait solver: only consider goal changed if response is not identity I think this is the right way of implementing it.. r? `@lcnr`
2023-01-17Rollup merge of #104505 - WaffleLapkin:no-double-spaces-in-comments, r=jackh726Matthias Krüger-17/+17
Remove double spaces after dots in comments Most of the comments do not have double spaces, so I assume these are typos.
2023-01-17new trait solver: only consider goal changed if response is not identityMichael Goulet-1/+1
2023-01-17change item_bounds query to return EarlyBinder; remove bound_item_bounds queryKyle Matsuda-6/+5
2023-01-17Remove double spaces after dots in commentsMaybe Waffle-17/+17
2023-01-17Untouch back perf sensetive code :sweat_smile:Maybe Waffle-5/+7
2023-01-17Review suggestionsMaybe Waffle-1/+1
2023-01-17Don't call closures immediately, use `try{}` blocksMaybe Waffle-17/+15
2023-01-16Rollup merge of #106835 - compiler-errors:new-solver-gat-rebase-oops, r=lcnrMatthias Krüger-1/+1
new trait solver: rebase impl substs for gats correctly you might've caught this while working on projection code, if so then you can close this pr r? `@lcnr`
2023-01-16Auto merge of #106395 - compiler-errors:rework-predicates, r=eholkbors-46/+41
Rework some `predicates_of`/`{Generic,Instantiated}Predicates` code 1. Make `instantiate_own` return an iterator, since it's a bit more efficient and easier to work with 2. Remove `bound_{explicit,}_predicates_of` -- these `bound_` methods in particular were a bit awkward to work with since `ty::GenericPredicates` *already* acts kinda like an `EarlyBinder` with its own `instantiate_*` methods, and had only a few call sites anyways. 3. Implement `IntoIterator` for `InstantiatedPredicates`, since it's *very* commonly being `zip`'d together.
2023-01-15Tweak E0597Esteban Küber-1/+1
CC #99430
2023-01-15Remove bound_{explicit,}_item_boundsMichael Goulet-7/+6
2023-01-15Make InstantiatedPredicates impl IntoIteratorMichael Goulet-33/+27
2023-01-15instantiate_own doesn't need to return a pair of vectorsMichael Goulet-6/+8
2023-01-15Auto merge of #106742 - compiler-errors:new-solver-make-it-not-ice, r=lcnrbors-39/+98
Implement some FIXME methods in the new trait solver Implement just enough of the solver's response logic to make it not ICE. Also, fix a bug with `no_bound_vars` call failing due to canonical bound vars. r? `@lcnr`
2023-01-15Auto merge of #106171 - compiler-errors:consolidate-extract_callable_info, ↵bors-84/+138
r=estebank,lcnr Consolidate two almost duplicated fn info extraction routines Moves `extract_callable_info` up to trait selection, because it was being (almost) duplicated fully there for similar diagnostic purposes. This also generalizes the diagnostics we can give slightly (see UI test).
2023-01-15Rollup merge of #106863 - anden3:compiler-double-spaces, r=NilstriebMatthias Krüger-1/+1
Remove various double spaces in compiler source comments. Was asked to do it by `@Nilstrieb`
2023-01-14Auto merge of #106866 - matthiaskrgr:rollup-r063s44, r=matthiaskrgrbors-3/+5
Rollup of 8 pull requests Successful merges: - #105526 (libcore: make result of iter::from_generator Clone) - #106563 (Fix `unused_braces` on generic const expr macro call) - #106661 (Stop probing for statx unless necessary) - #106820 (Deprioritize fulfillment errors that come from expansions.) - #106828 (rustdoc: remove `docblock` class from notable trait popover) - #106849 (Allocate one less vec while parsing arrays) - #106855 (rustdoc: few small cleanups) - #106860 (Remove various double spaces in the libraries.) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2023-01-14Rollup merge of #106820 - m-ou-se:macro-type-error-thing, r=estebankMatthias Krüger-3/+5
Deprioritize fulfillment errors that come from expansions. Fixes (part of?) #69455
2023-01-14Auto merge of #106696 - kylematsuda:early-binder, r=lcnrbors-21/+25
Switch to `EarlyBinder` for `const_param_default` and `impl_trait_ref` queries Part of the work to close #105779 and implement https://github.com/rust-lang/types-team/issues/78. Several queries `X` have a `bound_X` variant that wraps the output in `EarlyBinder`. This PR adds `EarlyBinder` to the return type of `const_param_default` and `impl_trait_ref`, and removes their `bound_X` variants. r? `@lcnr`
2023-01-14Removed various double spaces in compiler source comments.André Vennberg-1/+1
2023-01-14Deprioritize fulfillment errors that come from expansions.Mara Bos-3/+5
2023-01-14Add note when `FnPtr` vs. `FnDef` impl traitkadmin-16/+38
I encountered an instance where an `FnPtr` implemented a trait, but I was passing an `FnDef`. To the end user, there is really no way to differentiate each of them, but it is necessary to cast to the generic function in order to compile. It is thus useful to suggest `as` in the help note, (even if the Fn output implements the trait).
2023-01-14fix various subst_identity vs skip_binderKyle Matsuda-10/+11
2023-01-14change impl_trait_ref query to return EarlyBinder; remove ↵Kyle Matsuda-22/+22
bound_impl_trait_ref query; add EarlyBinder to impl_trait_ref in metadata
2023-01-14change usages of impl_trait_ref to bound_impl_trait_refKyle Matsuda-15/+18