about summary refs log tree commit diff
path: root/tests/ui/traits/new-solver
AgeCommit message (Collapse)AuthorLines
2023-12-14Unconditionally register alias-relate in projection goalMichael Goulet-43/+0
2023-12-14consistently use "next solver" instead of "new solver"lcnr-3834/+0
2023-12-14update use of feature flagslcnr-119/+119
2023-12-12refactor writeback: emit normalization errors with new solverlcnr-20/+27
2023-12-09add test for inductive cycle hangslcnr-4/+57
2023-12-08add regression testslcnr-0/+43
2023-12-08implement and use `NormalizesTo`lcnr-11/+14
2023-12-04rebaselcnr-2/+2
2023-12-04cleanup and commentslcnr-0/+46
2023-12-04generalize: handle occurs check failure in aliaseslcnr-10/+4
2023-11-24Show number in error message even for one errorNilstrieb-27/+27
Co-authored-by: Adrian <adrian.iosdev@gmail.com>
2023-11-22Stabilize RFC3324 dyn upcasting coercionUrgau-9/+1
Aka trait_upcasting feature. And also adjust the `deref_into_dyn_supertrait` lint.
2023-11-20self ty infer ambiguity: add proof tree candlcnr-3/+0
2023-11-17Auto merge of #117278 - lcnr:try-normalize-ty, r=compiler-errorsbors-5/+32
new solver normalization improvements cool beans At the core of this PR is a `try_normalize_ty` which stops for rigid aliases by using `commit_if_ok`. Reworks alias-relate to fully normalize both the lhs and rhs and then equate the resulting rigid (or inference) types. This fixes https://github.com/rust-lang/trait-system-refactor-initiative/issues/68 by avoiding the exponential blowup. Also supersedes #116369 by only defining opaque types if the hidden type is rigid. I removed the stability check in `EvalCtxt::evaluate_goal` due to https://github.com/rust-lang/trait-system-refactor-initiative/issues/75. While I personally have opinions on how to fix it, that still requires further t-types/`@nikomatsakis` buy-in, so I removed that for now. Once we've decided on our approach there, we can revert this commit. r? `@compiler-errors`
2023-11-09update overflow handling for norm, add testlcnr-0/+22
2023-11-09update testslcnr-5/+10
2023-11-08Only use normalize_param_env when normalizing predicate in check_item_boundsMichael Goulet-6/+20
2023-11-03Auto merge of #116439 - compiler-errors:on-unimplemented, r=davidtwcobors-10/+10
Pretty print `Fn` traits in `rustc_on_unimplemented` I don't think that users really ever should need to think about `Fn*` traits' tupled args for a simple trait error. r? diagnostics
2023-11-02Pretty print Fn traits in rustc_on_unimplementedMichael Goulet-10/+10
2023-11-02Use the normalizing param-env always in check_type_boundsMichael Goulet-20/+6
2023-10-27Allows `#[diagnostic::on_unimplemented]` attributes to have multipleGeorg Semmler-0/+2
notes This commit extends the `#[diagnostic::on_unimplemented]` (and `#[rustc_on_unimplemented]`) attributes to allow multiple `note` options. This enables emitting multiple notes for custom error messages. For now I've opted to not change any of the existing usages of `#[rustc_on_unimplemented]` and just updated the relevant compile tests.
2023-10-25Work around the fact that `check_mod_type_wf` may spuriously return ↵Oli Scherer-3/+10
`ErrorGuaranteed`, even if that error is only emitted by `check_modwitem_types`
2023-10-20Rename lots of files that had `generator` in their nameOli Scherer-10/+10
2023-10-20s/generator/coroutine/Oli Scherer-20/+20
2023-10-20s/Generator/Coroutine/Oli Scherer-12/+12
2023-10-18Tweak wording of type errors involving type paramsEsteban Küber-1/+1
Fix #78206.
2023-10-15Suggest adding `return` if the type of unused semi return value can coerce ↵yukang-6/+6
to the fn return type
2023-10-13Stabilize AFIT and RPITITMichael Goulet-4/+0
2023-10-11Rollup merge of #116436 - ↵Matthias Krüger-0/+23
compiler-errors:structurally-normalize-for-closure, r=lcnr Structurally normalize for closure Fixes some signature deduction problems in the new trait solver (and in the case of async, an ICE). r? lcnr
2023-10-09Extend impl's def_span to include where clausesMichael Goulet-5/+9
2023-10-05Also closuresMichael Goulet-0/+12
2023-10-05Structurally normalize async fn return type in ↵Michael Goulet-0/+11
deduce_future_output_from_obligations
2023-10-04Reorder fullfillment errors to keep more interesting ones firstEsteban Küber-57/+52
In `report_fullfillment_errors` push back `T: Sized`, `T: WellFormed` and coercion errors to the end of the list. The pre-existing deduplication logic eliminates redundant errors better that way, keeping the resulting output with fewer errors than before, while also having more detail.
2023-09-29Auto merge of #115843 - lcnr:bb-provisional-cache, r=compiler-errorsbors-2/+78
new solver: remove provisional cache The provisional cache is a performance optimization if there are large, interleaving cycles. Such cycles generally do not exist. It is incredibly complex and unsound in all trait solvers which have one: the old solver, chalk, and the new solver ([link](https://github.com/rust-lang/rust/blob/master/tests/ui/traits/new-solver/cycles/inductive-not-on-stack.rs)). Given the assumption that it is not perf-critical and also incredibly complex, remove it from the new solver, only checking whether a goal is on the stack. While writing this, I uncovered two additional soundness bugs, see the inline comments for them. r? `@compiler-errors`
2023-09-23Bless tests.Camille GILLOT-1/+1
2023-09-21adjust how closure/generator types and rvalues are printedRalf Jung-5/+5
2023-09-21update testslcnr-0/+8
2023-09-18remove provisional cachelcnr-2/+78
2023-09-15Canonicalize effect vars in new solverMichael Goulet-0/+22
2023-09-10Point out if a local trait has no implementationsMichael Goulet-0/+5
2023-09-03Don't ICE on associated type projection without feature gateMichael Goulet-0/+40
2023-08-29add non-regression test for issue 115351Rémy Rakic-0/+39
2023-08-28Revert "Suggest using `Arc` on `!Send`/`!Sync` types"David Tolnay-1/+0
This reverts commit 9de1a472b68ed85f396b2e2cc79c3ef17584d6e1.
2023-08-26More accurately point at argumentsEsteban Küber-2/+2
2023-08-26Point at appropriate type parameter in more trait bound errorsEsteban Küber-26/+24
2023-08-18change to known buglcnr-2/+2
2023-08-18instantiate response: no unnecessary new universelcnr-0/+157
this previously was a off-by-one error.
2023-08-12normalize in `trait_ref_is_knowable` in new solverlcnr-0/+103
2023-08-10add and move trait solver cycle testslcnr-1/+215
2023-08-10make the provisional cache slightly less brokenlcnr-15/+2