diff options
| author | Michael Goulet <michael@errs.io> | 2024-05-06 14:11:21 -0400 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2024-05-06 14:38:35 -0400 |
| commit | e34723997ae8e44538cea5f9f68085d828771e54 (patch) | |
| tree | a9a79f9b2f195f233a2e23531e42c0030095447f | |
| parent | 207b4b8e88d3fad105e3fe892c64cdf8d1ace252 (diff) | |
Use correct ImplSource for alias bounds
| -rw-r--r-- | compiler/rustc_trait_selection/src/solve/eval_ctxt/select.rs | 3 | ||||
| -rw-r--r-- | tests/ui/traits/next-solver/select-alias-bound-as-param.rs | 13 |
2 files changed, 14 insertions, 2 deletions
diff --git a/compiler/rustc_trait_selection/src/solve/eval_ctxt/select.rs b/compiler/rustc_trait_selection/src/solve/eval_ctxt/select.rs index 3700ddf7ef5..f586a74258d 100644 --- a/compiler/rustc_trait_selection/src/solve/eval_ctxt/select.rs +++ b/compiler/rustc_trait_selection/src/solve/eval_ctxt/select.rs @@ -157,8 +157,7 @@ fn to_selection<'tcx>( }) } CandidateSource::BuiltinImpl(builtin) => ImplSource::Builtin(builtin, nested), - CandidateSource::ParamEnv(_) => ImplSource::Param(nested), - CandidateSource::AliasBound => ImplSource::Builtin(BuiltinImplSource::Misc, nested), + CandidateSource::ParamEnv(_) | CandidateSource::AliasBound => ImplSource::Param(nested), CandidateSource::CoherenceUnknowable => { span_bug!(span, "didn't expect to select an unknowable candidate") } diff --git a/tests/ui/traits/next-solver/select-alias-bound-as-param.rs b/tests/ui/traits/next-solver/select-alias-bound-as-param.rs new file mode 100644 index 00000000000..fd40ef1f872 --- /dev/null +++ b/tests/ui/traits/next-solver/select-alias-bound-as-param.rs @@ -0,0 +1,13 @@ +//@ check-pass +//@ compile-flags: -Znext-solver + +pub(crate) fn y() -> impl FnMut() { + || {} +} + +pub(crate) fn x(a: (), b: ()) { + let x = (); + y()() +} + +fn main() {} |
