Skip to content

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

Open

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

Activity

  1. added
    C-bugCategory: Something isn't working
    I-panicIssue: Some part of the linter panicked unexpectedly
    S-needs-triageStatus: This issue needs triage
    on Dec 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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