P
foo(Bar) -> Either<A,B> отличается от B Bar.foo() throws A ?Size: a a a

P
foo(Bar) -> Either<A,B> отличается от B Bar.foo() throws A ?А⚙
P
А⚙
foo(Bar) -> Either<A,B> отличается от B Bar.foo() throws A ?P
А⚙
А⚙
P
А⚙
[0, 0] — это литерал массива. [..] — это индексация литералом RangeFull, который возвращает слайс целиком. Массивы непосредственно Index{, Mut}<RangeFull>, но они реализуют Deref{, Mut}<Target = [T]>, поэтому массив за счёт deref coercion приводится к слайсу. Ну и так как слайс по значению передавать нельзя, от всего это берётся ссылка: &А⚙
P
P
P
А⚙
А⚙
P
P
A
A
P