Static members lookups in array of protocol type elements

I added static members to a protocol type as described in SE-0299, but when I try to make an array with the static members, I got errors saying: reference to member 'a' cannot be resolved without a contextual type (same for b and c.)

protocol P {}

struct A: P {}
struct B: P {}
struct C: P {}

extension P where Self == A { static var a: P { A() } }
extension P where Self == B { static var b: P { B() } }
extension P where Self == C { static var c: P { C() } }

let ps: [P] = [.a] // OK
// let ps: [P] = [.a, .b] // Error

func f(ps: [P]) {}

f(ps: [.a, .b]) // OK
// f(ps: [.a, .b, .c]) // Error

After reading the proposal again, I realized it's only mentioning usage of the static members in generic context, not as an existentials.

So what I'm wondering is, is it not intended to use the added static members in this context? Or is it a bug?

swift --version: swift-driver version: 1.26.21 Apple Swift version 5.5.2 (swiftlang-1300.0.47.5 clang-1300.0.29.30).