Skip to content

[Panic]: unimplemented: type aliases / assoc type bounds #333

@matthiaskrgr

Description

@matthiaskrgr

Summary

No response

Reproducer

// check-pass

#![feature(associated_type_bounds)]

type _TaWhere1<T> where T: Iterator<Item: Copy> = T; //~ WARNING type_alias_bounds
type _TaWhere2<T> where T: Iterator<Item: 'static> = T; //~ WARNING type_alias_bounds
type _TaWhere3<T> where T: Iterator<Item: 'static> = T; //~ WARNING type_alias_bounds
type _TaWhere4<T> where T: Iterator<Item: 'static + Copy + Send> = T; //~ WARNING type_alias_bounds
type _TaWhere5<T> where T: Iterator<Item: for<'a> Into<&'a u8>> = T; //~ WARNING type_alias_bounds
type _TaWhere6<T> where T: Iterator<Item: Iterator<Item: Copy>> = T; //~ WARNING type_alias_bounds

type _TaInline1<T: Iterator<Item: Copy>> = T; //~ WARNING type_alias_bounds
type _TaInline2<T: Iterator<Item: 'static>> = T; //~ WARNING type_alias_bounds
type _TaInline3<T: Iterator<Item: 'static>> = T; //~ WARNING type_alias_bounds
type _TaInline4<T: Iterator<Item: 'static + Copy + Send>> = T; //~ WARNING type_alias_bounds
type _TaInline5<T: Iterator<Item: for<'a> Into<&'a u8>>> = T; //~ WARNING type_alias_bounds
type _TaInline6<T: Iterator<Item: Iterator<Item: Copy>>> = T; //~ WARNING type_alias_bounds

fn main() {}

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/associated-type-bounds/type-alias.rs
thread 'rustc' panicked at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/marker_rustc_driver-0.4.3/src/conversion/marker/ast/generic.rs:67:62:
not yet implemented
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: core::panicking::panic
             at /rustc/6b771f6b5a6c8b03b6322a9c77ac77cb346148f0/library/core/src/panicking.rs:127:5
   3: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
   4: marker_rustc_driver::conversion::marker::ast::generic::<impl marker_rustc_driver::conversion::marker::MarkerConverterInner>::to_syn_generic_args
   5: marker_rustc_driver::conversion::marker::common::<impl marker_rustc_driver::conversion::marker::MarkerConverterInner>::to_trait_ref
   6: core::ops::function::impls::<impl core::ops::function::FnMut<A> for &mut F>::call_mut
   7: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
   8: marker_rustc_driver::conversion::marker::ast::generic::<impl marker_rustc_driver::conversion::marker::MarkerConverterInner>::to_syn_ty_param_bound
   9: core::ops::function::impls::<impl core::ops::function::FnMut<A> for &mut F>::call_mut
  10: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
  11: marker_rustc_driver::conversion::marker::ast::generic::<impl marker_rustc_driver::conversion::marker::MarkerConverterInner>::to_syn_generic_params
  12: marker_rustc_driver::conversion::marker::ast::item::<impl marker_rustc_driver::conversion::marker::MarkerConverterInner>::to_item
  13: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
  14: marker_rustc_driver::conversion::marker::ast::item::<impl marker_rustc_driver::conversion::marker::MarkerConverterInner>::to_items
  15: marker_rustc_driver::conversion::marker::MarkerConverterInner::local_crate_mod
  16: core::cell::once::OnceCell<T>::get_or_try_init::outlined_call
  17: marker_rustc_driver::lint_pass::process_crate
  18: rustc_lint::late::check_crate::{closure#0}
  19: rustc_lint::late::check_crate
  20: rustc_interface::passes::analysis
      [... omitted 1 frame ...]
  21: 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_45_31-1811322.txt` to your bug report

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: where clauses are not enforced in type aliases
 --> /home/matthias/vcs/github/rust_misc_stuff/tests/ui/associated-type-bounds/type-alias.rs:5:25
  |
5 | type _TaWhere1<T> where T: Iterator<Item: Copy> = T; //~ WARNING type_alias_bounds
  |                         ^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: `#[warn(type_alias_bounds)]` on by default
help: the clause will not be checked when the type alias is used, and should be removed
  |
5 - type _TaWhere1<T> where T: Iterator<Item: Copy> = T; //~ WARNING type_alias_bounds
5 + type _TaWhere1<T>  = T; //~ WARNING type_alias_bounds
  |

warning: where clauses are not enforced in type aliases
 --> /home/matthias/vcs/github/rust_misc_stuff/tests/ui/associated-type-bounds/type-alias.rs:6:25
  |
6 | type _TaWhere2<T> where T: Iterator<Item: 'static> = T; //~ WARNING type_alias_bounds
  |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
help: the clause will not be checked when the type alias is used, and should be removed
  |
6 - type _TaWhere2<T> where T: Iterator<Item: 'static> = T; //~ WARNING type_alias_bounds
6 + type _TaWhere2<T>  = T; //~ WARNING type_alias_bounds
  |

warning: where clauses are not enforced in type aliases
 --> /home/matthias/vcs/github/rust_misc_stuff/tests/ui/associated-type-bounds/type-alias.rs:7:25
  |
7 | type _TaWhere3<T> where T: Iterator<Item: 'static> = T; //~ WARNING type_alias_bounds
  |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
help: the clause will not be checked when the type alias is used, and should be removed
  |
7 - type _TaWhere3<T> where T: Iterator<Item: 'static> = T; //~ WARNING type_alias_bounds
7 + type _TaWhere3<T>  = T; //~ WARNING type_alias_bounds
  |

warning: where clauses are not enforced in type aliases
 --> /home/matthias/vcs/github/rust_misc_stuff/tests/ui/associated-type-bounds/type-alias.rs:8:25
  |
8 | type _TaWhere4<T> where T: Iterator<Item: 'static + Copy + Send> = T; //~ WARNING type_alias_bounds
  |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
help: the clause will not be checked when the type alias is used, and should be removed
  |
8 - type _TaWhere4<T> where T: Iterator<Item: 'static + Copy + Send> = T; //~ WARNING type_alias_bounds
8 + type _TaWhere4<T>  = T; //~ WARNING type_alias_bounds
  |

warning: where clauses are not enforced in type aliases
 --> /home/matthias/vcs/github/rust_misc_stuff/tests/ui/associated-type-bounds/type-alias.rs:9:25
  |
9 | type _TaWhere5<T> where T: Iterator<Item: for<'a> Into<&'a u8>> = T; //~ WARNING type_alias_bounds
  |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
help: the clause will not be checked when the type alias is used, and should be removed
  |
9 - type _TaWhere5<T> where T: Iterator<Item: for<'a> Into<&'a u8>> = T; //~ WARNING type_alias_bounds
9 + type _TaWhere5<T>  = T; //~ WARNING type_alias_bounds
  |

warning: where clauses are not enforced in type aliases
  --> /home/matthias/vcs/github/rust_misc_stuff/tests/ui/associated-type-bounds/type-alias.rs:10:25
   |
10 | type _TaWhere6<T> where T: Iterator<Item: Iterator<Item: Copy>> = T; //~ WARNING type_alias_bounds
   |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: the clause will not be checked when the type alias is used, and should be removed
   |
10 - type _TaWhere6<T> where T: Iterator<Item: Iterator<Item: Copy>> = T; //~ WARNING type_alias_bounds
10 + type _TaWhere6<T>  = T; //~ WARNING type_alias_bounds
   |

warning: bounds on generic parameters are not enforced in type aliases
  --> /home/matthias/vcs/github/rust_misc_stuff/tests/ui/associated-type-bounds/type-alias.rs:12:20
   |
12 | type _TaInline1<T: Iterator<Item: Copy>> = T; //~ WARNING type_alias_bounds
   |                    ^^^^^^^^^^^^^^^^^^^^
   |
help: the bound will not be checked when the type alias is used, and should be removed
   |
12 - type _TaInline1<T: Iterator<Item: Copy>> = T; //~ WARNING type_alias_bounds
12 + type _TaInline1<T> = T; //~ WARNING type_alias_bounds
   |

warning: bounds on generic parameters are not enforced in type aliases
  --> /home/matthias/vcs/github/rust_misc_stuff/tests/ui/associated-type-bounds/type-alias.rs:13:20
   |
13 | type _TaInline2<T: Iterator<Item: 'static>> = T; //~ WARNING type_alias_bounds
   |                    ^^^^^^^^^^^^^^^^^^^^^^^
   |
help: the bound will not be checked when the type alias is used, and should be removed
   |
13 - type _TaInline2<T: Iterator<Item: 'static>> = T; //~ WARNING type_alias_bounds
13 + type _TaInline2<T> = T; //~ WARNING type_alias_bounds
   |

warning: bounds on generic parameters are not enforced in type aliases
  --> /home/matthias/vcs/github/rust_misc_stuff/tests/ui/associated-type-bounds/type-alias.rs:14:20
   |
14 | type _TaInline3<T: Iterator<Item: 'static>> = T; //~ WARNING type_alias_bounds
   |                    ^^^^^^^^^^^^^^^^^^^^^^^
   |
help: the bound will not be checked when the type alias is used, and should be removed
   |
14 - type _TaInline3<T: Iterator<Item: 'static>> = T; //~ WARNING type_alias_bounds
14 + type _TaInline3<T> = T; //~ WARNING type_alias_bounds
   |

warning: bounds on generic parameters are not enforced in type aliases
  --> /home/matthias/vcs/github/rust_misc_stuff/tests/ui/associated-type-bounds/type-alias.rs:15:20
   |
15 | type _TaInline4<T: Iterator<Item: 'static + Copy + Send>> = T; //~ WARNING type_alias_bounds
   |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: the bound will not be checked when the type alias is used, and should be removed
   |
15 - type _TaInline4<T: Iterator<Item: 'static + Copy + Send>> = T; //~ WARNING type_alias_bounds
15 + type _TaInline4<T> = T; //~ WARNING type_alias_bounds
   |

warning: bounds on generic parameters are not enforced in type aliases
  --> /home/matthias/vcs/github/rust_misc_stuff/tests/ui/associated-type-bounds/type-alias.rs:16:20
   |
16 | type _TaInline5<T: Iterator<Item: for<'a> Into<&'a u8>>> = T; //~ WARNING type_alias_bounds
   |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: the bound will not be checked when the type alias is used, and should be removed
   |
16 - type _TaInline5<T: Iterator<Item: for<'a> Into<&'a u8>>> = T; //~ WARNING type_alias_bounds
16 + type _TaInline5<T> = T; //~ WARNING type_alias_bounds
   |

warning: bounds on generic parameters are not enforced in type aliases
  --> /home/matthias/vcs/github/rust_misc_stuff/tests/ui/associated-type-bounds/type-alias.rs:17:20
   |
17 | type _TaInline6<T: Iterator<Item: Iterator<Item: Copy>>> = T; //~ WARNING type_alias_bounds
   |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: the bound will not be checked when the type alias is used, and should be removed
   |
17 - type _TaInline6<T: Iterator<Item: Iterator<Item: Copy>>> = T; //~ WARNING type_alias_bounds
17 + type _TaInline6<T> = T; //~ WARNING type_alias_bounds
   |

warning: 12 warnings emitted

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: Something isn't workingI-panicIssue: Some part of the linter panicked unexpectedly

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions