mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-12-18 00:53:31 +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| {
|
||||
if let ty::TypeVariants::TyAdt(def, ..) = ty.sty {
|
||||
if let Some(span) = cx.tcx.hir.span_if_local(def.did) {
|
||||
let param_env = ty::ParamEnv::empty();
|
||||
if param_env.can_type_implement_copy(cx.tcx, ty).is_ok() {
|
||||
if cx.param_env.can_type_implement_copy(cx.tcx, ty).is_ok() {
|
||||
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