The following code compiles:
struct B<P: Sized = [Self]>(P);
but shouldn't, because [Self] is NOT Sized.
If we change [Self] with a [u8], like this:
struct B<P: Sized = [u8]>(P);
it fails to compile, because [u8] isnt sized.
Also note that if we would write impl B {} in the case of P being of default type [Self], we get an ICE:
Related to #59956 (comment)
The following code compiles:
but shouldn't, because
[Self]is NOT Sized.If we change
[Self]with a[u8], like this:it fails to compile, because
[u8]isnt sized.Also note that if we would write
impl B {}in the case of P being of default type[Self], we get an ICE:Related to #59956 (comment)