mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-27 15:11:30 +00:00
Merge pull request #2786 from phansch/fix_param_env_compile_fail
Fix chrono compile-fail due to empty param_env
This commit is contained in:
commit
736a1a8dc3
2 changed files with 20 additions and 2 deletions
|
@ -200,8 +200,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for NeedlessPassByValue {
|
||||||
let sugg = |db: &mut DiagnosticBuilder| {
|
let sugg = |db: &mut DiagnosticBuilder| {
|
||||||
if let ty::TypeVariants::TyAdt(def, ..) = ty.sty {
|
if let ty::TypeVariants::TyAdt(def, ..) = ty.sty {
|
||||||
if let Some(span) = cx.tcx.hir.span_if_local(def.did) {
|
if let Some(span) = cx.tcx.hir.span_if_local(def.did) {
|
||||||
let param_env = ty::ParamEnv::empty();
|
if cx.param_env.can_type_implement_copy(cx.tcx, ty).is_ok() {
|
||||||
if param_env.can_type_implement_copy(cx.tcx, ty).is_ok() {
|
|
||||||
db.span_help(span, "consider marking this type as Copy");
|
db.span_help(span, "consider marking this type as Copy");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
19
tests/run-pass/ice-2760.rs
Normal file
19
tests/run-pass/ice-2760.rs
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#![allow(unused_variables, blacklisted_name, needless_pass_by_value, dead_code)]
|
||||||
|
|
||||||
|
// This should not compile-fail with:
|
||||||
|
//
|
||||||
|
// error[E0277]: the trait bound `T: Foo` is not satisfied
|
||||||
|
//
|
||||||
|
// See https://github.com/rust-lang-nursery/rust-clippy/issues/2760
|
||||||
|
|
||||||
|
trait Foo {
|
||||||
|
type Bar;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Baz<T: Foo> {
|
||||||
|
bar: T::Bar,
|
||||||
|
}
|
||||||
|
|
||||||
|
fn take<T: Foo>(baz: Baz<T>) {}
|
||||||
|
|
||||||
|
fn main() {}
|
Loading…
Reference in a new issue