rust-marker / marker

An experimental linting interface for Rust. Let's make custom lints a reality
https://rust-marker.github.io/marker/
Other
144 stars 11 forks source link

[Panic]: `&MarkerConverterInner::lang_item_map` doesn't contain `TryTraitFromOutput #331

Open matthiaskrgr opened 11 months ago

matthiaskrgr commented 11 months ago

Summary

needs --edition=2021

Reproducer

// edition:2021
// check-pass

#![feature(try_blocks)]

fn main() {
    let _: Result<i32, i32> = try {
        let Some(x) = Some(0) else {
            Err(1)?
        };

        x
    };
}

Version

No response

Logs and Backtrace

MARKER_ERROR_TRACE=1 MARKER_LOG=info RUST_BACKTRACE=1    LD_LIBRARY_PATH='/home/matthias/o/target/debug/deps:/home/matthias/.rustup/toolchains/nightly-2023-11-16-x86_64-unknown-linux-gnu/lib:/home/matthias/.rustup/toolchains/nightly-2023-11-16-x86_64-unknown-linux-gnu/lib:/home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib'  RUSTC_WORKSPACE_WRAPPER=/home/matthias/.rustup/toolchains/nightly-2023-11-16-x86_64-unknown-linux-gnu/bin/marker_rustc_driver MARKER_LINT_CRATES=marker_lints:/home/matthias/o/target/marker/lints/libmarker_lints.so   RUSTUP_TOOLCHAIN=nightly-2023-11-16    /home/matthias/.rustup/toolchains/nightly-2023-11-16-x86_64-unknown-linux-gnu/bin/marker_rustc_driver /home/matthias/vcs/github/rust_misc_stuff/tests/ui/let-else/issue-100103.rs  --crate-type lib --edition=2021
warning: function `main` is never used
 --> /home/matthias/vcs/github/rust_misc_stuff/tests/ui/let-else/issue-100103.rs:7:4
  |
7 | fn main() {
  |    ^^^^
  |
  = note: `#[warn(dead_code)]` on by default

thread 'rustc' panicked at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/marker_rustc_driver-0.4.3/src/conversion/marker/common.rs:286:33:
`&MarkerConverterInner::lang_item_map` doesn't contain `TryTraitFromOutput`
stack backtrace:
   0: rust_begin_unwind
             at /rustc/6b771f6b5a6c8b03b6322a9c77ac77cb346148f0/library/std/src/panicking.rs:645:5
   1: core::panicking::panic_fmt
             at /rustc/6b771f6b5a6c8b03b6322a9c77ac77cb346148f0/library/core/src/panicking.rs:72:14
   2: marker_rustc_driver::conversion::marker::common::<impl marker_rustc_driver::conversion::marker::MarkerConverterInner>::to_qpath
   3: marker_rustc_driver::conversion::marker::ast::expr::<impl marker_rustc_driver::conversion::marker::MarkerConverterInner>::to_expr
   4: marker_rustc_driver::conversion::marker::ast::expr::<impl marker_rustc_driver::conversion::marker::MarkerConverterInner>::to_expr
   5: marker_rustc_driver::conversion::marker::ast::expr::<impl marker_rustc_driver::conversion::marker::MarkerConverterInner>::to_block_expr
   6: marker_rustc_driver::conversion::marker::ast::expr::<impl marker_rustc_driver::conversion::marker::MarkerConverterInner>::to_expr
   7: marker_rustc_driver::conversion::marker::ast::stmts::<impl marker_rustc_driver::conversion::marker::MarkerConverterInner>::to_stmt
   8: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
   9: marker_rustc_driver::conversion::marker::ast::expr::<impl marker_rustc_driver::conversion::marker::MarkerConverterInner>::to_block_expr
  10: marker_rustc_driver::conversion::marker::ast::expr::<impl marker_rustc_driver::conversion::marker::MarkerConverterInner>::to_expr
  11: marker_rustc_driver::conversion::marker::MarkerConverter::body
  12: marker_utils::visitor::traverse_item
  13: marker_utils::visitor::traverse_item
  14: marker_adapter::Adapter::process_krate
  15: marker_rustc_driver::lint_pass::process_crate
  16: rustc_lint::late::check_crate::{closure#0}
  17: rustc_lint::late::check_crate
  18: rustc_interface::passes::analysis
      [... omitted 1 frame ...]
  19: rustc_interface::interface::run_compiler::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

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

note: we would appreciate a bug report: https://github.com/rust-marker/marker/issues/new?template=panic.yml

note: please attach the file at `/tmp/marker/rustc-ice-2023-12-17T23_41_18-1810956.txt` to your bug report

note: compiler flags: --crate-type lib

query stack during panic:
#0 [analysis] running analysis passes on this crate
end of query stack
note: marker_rustc_driver 0.4.3

note: Achievement Unlocked: [Free Ice Cream]

warning: 1 warning emitted