mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-24 07:44:10 +00:00
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,
|
||
|
}
|
||
|
}
|
||
|
}
|