diff --git a/compiler/rustc_next_trait_solver/src/solve/trait_goals.rs b/compiler/rustc_next_trait_solver/src/solve/trait_goals.rs index 651f073efb82..003841f3af3f 100644 --- a/compiler/rustc_next_trait_solver/src/solve/trait_goals.rs +++ b/compiler/rustc_next_trait_solver/src/solve/trait_goals.rs @@ -659,7 +659,7 @@ where } // `rustc_transmute` does not have support for type or const params - if goal.has_non_region_placeholders() { + if goal.predicate.has_non_region_placeholders() { return Err(NoSolution); } diff --git a/tests/ui/transmutability/transmute-with-type-params.rs b/tests/ui/transmutability/transmute-with-type-params.rs new file mode 100644 index 000000000000..f1630449a41b --- /dev/null +++ b/tests/ui/transmutability/transmute-with-type-params.rs @@ -0,0 +1,21 @@ +//@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) +//@ [next] compile-flags: -Znext-solver +//@ check-pass + +// A regression test for https://github.com/rust-lang/rust/issues/151300 + +#![feature(transmutability)] +use std::mem::TransmuteFrom; + +pub fn is_maybe_transmutable() +where + Dst: TransmuteFrom, +{ +} + +fn function_with_generic() { + is_maybe_transmutable::<(), ()>(); +} + +fn main() {}