mirror of https://github.com/rust-lang/rust.git
35 lines
608 B
Rust
35 lines
608 B
Rust
//@ known-bug: #114212
|
|
|
|
#![feature(generic_const_exprs)]
|
|
|
|
use core::marker::PhantomData;
|
|
|
|
pub const DEFAULT_MAX_INPUT_LEN: usize = 256;
|
|
|
|
pub trait FooTrait {}
|
|
|
|
pub struct Foo<const MAX_INPUT_LEN: usize>;
|
|
|
|
impl<const MAX_INPUT_LEN: usize> FooTrait for Foo<MAX_INPUT_LEN> {}
|
|
|
|
pub struct Bar<
|
|
const MAX_INPUT_LEN: usize = DEFAULT_MAX_INPUT_LEN,
|
|
PB = Foo<MAX_INPUT_LEN>,
|
|
>
|
|
where
|
|
PB: FooTrait,
|
|
{
|
|
_pb: PhantomData<PB>,
|
|
}
|
|
|
|
impl<const MAX_INPUT_LEN: usize, PB> Bar<MAX_INPUT_LEN, PB>
|
|
where
|
|
PB: FooTrait,
|
|
{
|
|
pub fn new() -> Self {
|
|
Self {
|
|
_pb: PhantomData,
|
|
}
|
|
}
|
|
}
|