Skip to content

ICE: clippy: cannot relate region: ReErased, -Wclippy::needless_pass_by_value #107147

Closed
rust-lang/rust-clippy
#10328
@matthiaskrgr

Description

@matthiaskrgr

Code: tests/ui/associated-type-bounds/enum-bounds.rs

// run-pass

#![feature(associated_type_bounds)]
#![allow(dead_code)]

trait Tr1 { type As1; }
trait Tr2 { type As2; }

impl Tr1 for &str { type As1 = bool; }
impl Tr2 for bool { type As2 = u8; }

enum _En7<'a, 'b, T> // `<T::As1 as Tr2>::As2: 'a` is implied.
where
    T: Tr1<As1: Tr2>,
{
    V0(&'a T),
    V1(&'b <T::As1 as Tr2>::As2),
}

fn _make_en7<'a, 'b, T>(x: _En7<'a, 'b, T>)
where
    T: Tr1<As1: Tr2>,
{
    match x {
        _En7::V0(x) => {
            let _: &'a T = &x;
        },
        _ => {},
    }
}

fn main() {}

exec: clippy-driver enum-bounds.rs -Wclippy::needless_pass_by_value

This crashes since 94a300b cc @compiler-errors

backtrace:

error: internal compiler error: compiler/rustc_infer/src/infer/lexical_region_resolve/mod.rs:203:17: cannot relate region: ReErased

thread 'rustc' panicked at 'Box<dyn Any>', /rustc/0726909f6d219951ba15ac2f65656eff96bb1867/compiler/rustc_errors/src/lib.rs:1609:9
stack backtrace:
   0:     0x7f8b91b653ca - std::backtrace_rs::backtrace::libunwind::trace::h2ca2e0eba5cfe8d9
                               at /rustc/0726909f6d219951ba15ac2f65656eff96bb1867/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7f8b91b653ca - std::backtrace_rs::backtrace::trace_unsynchronized::h98bd949b8b0b35d4
                               at /rustc/0726909f6d219951ba15ac2f65656eff96bb1867/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7f8b91b653ca - std::sys_common::backtrace::_print_fmt::hed7d87ad527ea338
                               at /rustc/0726909f6d219951ba15ac2f65656eff96bb1867/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x7f8b91b653ca - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h574062ba946b9368
                               at /rustc/0726909f6d219951ba15ac2f65656eff96bb1867/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7f8b91bc867e - core::fmt::write::h77be6e6d2f1c648a
                               at /rustc/0726909f6d219951ba15ac2f65656eff96bb1867/library/core/src/fmt/mod.rs:1213:17
   5:     0x7f8b91b55b15 - std::io::Write::write_fmt::he75a05bbfafcedff
                               at /rustc/0726909f6d219951ba15ac2f65656eff96bb1867/library/std/src/io/mod.rs:1682:15
   6:     0x7f8b91b65195 - std::sys_common::backtrace::_print::hf835dc8d93029605
                               at /rustc/0726909f6d219951ba15ac2f65656eff96bb1867/library/std/src/sys_common/backtrace.rs:47:5
   7:     0x7f8b91b65195 - std::sys_common::backtrace::print::h69c58f82a106c19a
                               at /rustc/0726909f6d219951ba15ac2f65656eff96bb1867/library/std/src/sys_common/backtrace.rs:34:9
   8:     0x7f8b91b67f5f - std::panicking::default_hook::{{closure}}::h6a8b639b2d2d78cb
                               at /rustc/0726909f6d219951ba15ac2f65656eff96bb1867/library/std/src/panicking.rs:267:22
   9:     0x7f8b91b67c9b - std::panicking::default_hook::h5c4555cd2fc1f2a2
                               at /rustc/0726909f6d219951ba15ac2f65656eff96bb1867/library/std/src/panicking.rs:286:9
  10:     0x560d54d9f170 - clippy_driver[965cec86cb767e44]::ICE_HOOK::{closure#0}::{closure#0}
  11:     0x7f8b91b6879a - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hbd2046e382430105
                               at /rustc/0726909f6d219951ba15ac2f65656eff96bb1867/library/alloc/src/boxed.rs:2002:9
  12:     0x7f8b91b6879a - std::panicking::rust_panic_with_hook::h5032b74b3a6755cc
                               at /rustc/0726909f6d219951ba15ac2f65656eff96bb1867/library/std/src/panicking.rs:692:13
  13:     0x7f8b953ce151 - std[e5194df39356a98b]::panicking::begin_panic::<rustc_errors[9a263acecc8f02b5]::ExplicitBug>::{closure#0}
  14:     0x7f8b953cada6 - std[e5194df39356a98b]::sys_common::backtrace::__rust_end_short_backtrace::<std[e5194df39356a98b]::panicking::begin_panic<rustc_errors[9a263acecc8f02b5]::ExplicitBug>::{closure#0}, !>
  15:     0x7f8b9542fb76 - std[e5194df39356a98b]::panicking::begin_panic::<rustc_errors[9a263acecc8f02b5]::ExplicitBug>
  16:     0x7f8b953e7c06 - std[e5194df39356a98b]::panic::panic_any::<rustc_errors[9a263acecc8f02b5]::ExplicitBug>
  17:     0x7f8b953e58e6 - <rustc_errors[9a263acecc8f02b5]::HandlerInner>::bug::<&alloc[b4a1ac6178dd424a]::string::String>
  18:     0x7f8b953e4720 - <rustc_errors[9a263acecc8f02b5]::Handler>::bug::<&alloc[b4a1ac6178dd424a]::string::String>
  19:     0x7f8b953f491b - rustc_middle[356745a150da3aac]::util::bug::opt_span_bug_fmt::<rustc_span[2d977aba4a48af86]::span_encoding::Span>::{closure#0}
  20:     0x7f8b953f1cba - rustc_middle[356745a150da3aac]::ty::context::tls::with_opt::<rustc_middle[356745a150da3aac]::util::bug::opt_span_bug_fmt<rustc_span[2d977aba4a48af86]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  21:     0x7f8b953f1c8a - rustc_middle[356745a150da3aac]::ty::context::tls::with_context_opt::<rustc_middle[356745a150da3aac]::ty::context::tls::with_opt<rustc_middle[356745a150da3aac]::util::bug::opt_span_bug_fmt<rustc_span[2d977aba4a48af86]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  22:     0x7f8b953f4866 - rustc_middle[356745a150da3aac]::util::bug::opt_span_bug_fmt::<rustc_span[2d977aba4a48af86]::span_encoding::Span>
  23:     0x7f8b93171953 - rustc_middle[356745a150da3aac]::util::bug::bug_fmt
  24:     0x7f8b93a1dbf5 - <rustc_infer[8fc7a53e61725adb]::infer::lexical_region_resolve::LexicalResolver>::lub_empty
  25:     0x7f8b93a1d990 - <rustc_infer[8fc7a53e61725adb]::infer::lexical_region_resolve::LexicalResolver>::expand_node
  26:     0x7f8b93a1a029 - rustc_infer[8fc7a53e61725adb]::infer::lexical_region_resolve::resolve
  27:     0x7f8b93a191e8 - <rustc_infer[8fc7a53e61725adb]::infer::InferCtxt>::resolve_regions
  28:     0x7f8b93c8343b - rustc_trait_selection[49386bab22c0fb1d]::traits::misc::type_allowed_to_implement_copy
  29:     0x560d5503e9c0 - <clippy_utils[51b63d5ba4e51333]::diagnostics::span_lint_and_then<rustc_lint[ab8d78263ddfc922]::context::LateContext, rustc_span[2d977aba4a48af86]::span_encoding::Span, <clippy_lints[5b11773baa9bac1c]::needless_pass_by_value::NeedlessPassByValue as rustc_lint[ab8d78263ddfc922]::passes::LateLintPass>::check_fn::{closure#6}>::{closure#0} as core[749018e742f43565]::ops::function::FnOnce<(&mut rustc_errors[9a263acecc8f02b5]::diagnostic_builder::DiagnosticBuilder<()>,)>>::call_once::{shim:vtable#0}
  30:     0x560d55027f14 - rustc_middle[356745a150da3aac]::lint::struct_lint_level::struct_lint_level_impl::<&str>
  31:     0x560d54ea800e - <rustc_middle[356745a150da3aac]::ty::context::TyCtxt>::struct_span_lint_hir::<rustc_span[2d977aba4a48af86]::span_encoding::Span, &str, clippy_utils[51b63d5ba4e51333]::diagnostics::span_lint_and_then<rustc_lint[ab8d78263ddfc922]::context::LateContext, rustc_span[2d977aba4a48af86]::span_encoding::Span, <clippy_lints[5b11773baa9bac1c]::needless_pass_by_value::NeedlessPassByValue as rustc_lint[ab8d78263ddfc922]::passes::LateLintPass>::check_fn::{closure#6}>::{closure#0}>
  32:     0x560d550577d6 - <clippy_lints[5b11773baa9bac1c]::needless_pass_by_value::NeedlessPassByValue as rustc_lint[ab8d78263ddfc922]::passes::LateLintPass>::check_fn
  33:     0x7f8b95298fdf - <rustc_lint[ab8d78263ddfc922]::late::RuntimeCombinedLateLintPass as rustc_lint[ab8d78263ddfc922]::passes::LateLintPass>::check_fn
  34:     0x7f8b9522610b - <rustc_lint[ab8d78263ddfc922]::late::LateContextAndPass<rustc_lint[ab8d78263ddfc922]::late::RuntimeCombinedLateLintPass> as rustc_hir[71d429f827444320]::intravisit::Visitor>::visit_fn
  35:     0x7f8b951fd2fd - rustc_hir[71d429f827444320]::intravisit::walk_item::<rustc_lint[ab8d78263ddfc922]::late::LateContextAndPass<rustc_lint[ab8d78263ddfc922]::late::RuntimeCombinedLateLintPass>>
  36:     0x7f8b95226663 - <rustc_lint[ab8d78263ddfc922]::late::LateContextAndPass<rustc_lint[ab8d78263ddfc922]::late::RuntimeCombinedLateLintPass> as rustc_hir[71d429f827444320]::intravisit::Visitor>::visit_nested_item
  37:     0x7f8b951fcb48 - rustc_hir[71d429f827444320]::intravisit::walk_mod::<rustc_lint[ab8d78263ddfc922]::late::LateContextAndPass<rustc_lint[ab8d78263ddfc922]::late::RuntimeCombinedLateLintPass>>
  38:     0x7f8b94450db3 - rustc_lint[ab8d78263ddfc922]::late::late_lint_crate::<rustc_lint[ab8d78263ddfc922]::BuiltinCombinedLateLintPass>
  39:     0x7f8b94450022 - <rustc_session[4fc2ae9e63ee7171]::session::Session>::time::<(), rustc_lint[ab8d78263ddfc922]::late::check_crate<rustc_lint[ab8d78263ddfc922]::BuiltinCombinedLateLintPass, rustc_interface[e0418be0553a28c9]::passes::analysis::{closure#5}::{closure#1}::{closure#2}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}>
  40:     0x7f8b944ba8c2 - <rustc_session[4fc2ae9e63ee7171]::session::Session>::time::<(), rustc_interface[e0418be0553a28c9]::passes::analysis::{closure#5}::{closure#1}::{closure#2}::{closure#0}>
  41:     0x7f8b9452937f - <core[749018e742f43565]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[e0418be0553a28c9]::passes::analysis::{closure#5}::{closure#1}> as core[749018e742f43565]::ops::function::FnOnce<()>>::call_once
  42:     0x7f8b93406428 - <rustc_session[4fc2ae9e63ee7171]::session::Session>::time::<(), rustc_interface[e0418be0553a28c9]::passes::analysis::{closure#5}>
  43:     0x7f8b93402eb6 - rustc_interface[e0418be0553a28c9]::passes::analysis
  44:     0x7f8b945c836e - rustc_query_system[9c3bda3f04ae13c3]::query::plumbing::try_execute_query::<rustc_query_impl[1f0746acf769e1f5]::queries::analysis, rustc_query_impl[1f0746acf769e1f5]::plumbing::QueryCtxt>
  45:     0x7f8b9485193a - <rustc_query_impl[1f0746acf769e1f5]::Queries as rustc_middle[356745a150da3aac]::ty::query::QueryEngine>::analysis
  46:     0x7f8b940e7d40 - <rustc_interface[e0418be0553a28c9]::passes::QueryContext>::enter::<rustc_driver[a3a58aad692ded1b]::run_compiler::{closure#1}::{closure#2}::{closure#2}, core[749018e742f43565]::result::Result<(), rustc_errors[9a263acecc8f02b5]::ErrorGuaranteed>>
  47:     0x7f8b940e6b41 - <rustc_interface[e0418be0553a28c9]::interface::Compiler>::enter::<rustc_driver[a3a58aad692ded1b]::run_compiler::{closure#1}::{closure#2}, core[749018e742f43565]::result::Result<core[749018e742f43565]::option::Option<rustc_interface[e0418be0553a28c9]::queries::Linker>, rustc_errors[9a263acecc8f02b5]::ErrorGuaranteed>>
  48:     0x7f8b940e4c14 - rustc_span[2d977aba4a48af86]::with_source_map::<core[749018e742f43565]::result::Result<(), rustc_errors[9a263acecc8f02b5]::ErrorGuaranteed>, rustc_interface[e0418be0553a28c9]::interface::run_compiler<core[749018e742f43565]::result::Result<(), rustc_errors[9a263acecc8f02b5]::ErrorGuaranteed>, rustc_driver[a3a58aad692ded1b]::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
  49:     0x7f8b940e4724 - <scoped_tls[964654d9bfefaa53]::ScopedKey<rustc_span[2d977aba4a48af86]::SessionGlobals>>::set::<rustc_interface[e0418be0553a28c9]::interface::run_compiler<core[749018e742f43565]::result::Result<(), rustc_errors[9a263acecc8f02b5]::ErrorGuaranteed>, rustc_driver[a3a58aad692ded1b]::run_compiler::{closure#1}>::{closure#0}, core[749018e742f43565]::result::Result<(), rustc_errors[9a263acecc8f02b5]::ErrorGuaranteed>>
  50:     0x7f8b940e3e22 - std[e5194df39356a98b]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[e0418be0553a28c9]::util::run_in_thread_pool_with_globals<rustc_interface[e0418be0553a28c9]::interface::run_compiler<core[749018e742f43565]::result::Result<(), rustc_errors[9a263acecc8f02b5]::ErrorGuaranteed>, rustc_driver[a3a58aad692ded1b]::run_compiler::{closure#1}>::{closure#0}, core[749018e742f43565]::result::Result<(), rustc_errors[9a263acecc8f02b5]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[749018e742f43565]::result::Result<(), rustc_errors[9a263acecc8f02b5]::ErrorGuaranteed>>
  51:     0x7f8b940e3bca - <<std[e5194df39356a98b]::thread::Builder>::spawn_unchecked_<rustc_interface[e0418be0553a28c9]::util::run_in_thread_pool_with_globals<rustc_interface[e0418be0553a28c9]::interface::run_compiler<core[749018e742f43565]::result::Result<(), rustc_errors[9a263acecc8f02b5]::ErrorGuaranteed>, rustc_driver[a3a58aad692ded1b]::run_compiler::{closure#1}>::{closure#0}, core[749018e742f43565]::result::Result<(), rustc_errors[9a263acecc8f02b5]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[749018e742f43565]::result::Result<(), rustc_errors[9a263acecc8f02b5]::ErrorGuaranteed>>::{closure#1} as core[749018e742f43565]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  52:     0x7f8b91b72bd3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h1faedbb3aa636d41
                               at /rustc/0726909f6d219951ba15ac2f65656eff96bb1867/library/alloc/src/boxed.rs:1988:9
  53:     0x7f8b91b72bd3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h671735cb50e79975
                               at /rustc/0726909f6d219951ba15ac2f65656eff96bb1867/library/alloc/src/boxed.rs:1988:9
  54:     0x7f8b91b72bd3 - std::sys::unix::thread::Thread::new::thread_start::hb5bc489c52ec14fd
                               at /rustc/0726909f6d219951ba15ac2f65656eff96bb1867/library/std/src/sys/unix/thread.rs:108:17
  55:     0x7f8b9181c8fd - <unknown>
  56:     0x7f8b9189ea60 - <unknown>
  57:                0x0 - <unknown>

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust-clippy/issues/new

note: Clippy version: clippy 0.1.68 (0726909 2023-01-21)

query stack during panic:
#0 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to previous error

Metadata

Metadata

Labels

A-clippyArea: ClippyI-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions