Moving the discussion from the other thread into here:
So either the default argument feature from above cannot be reduced to zero arguments or I still don‘t understand something here.
protocol P {
static func foo() -> Self
}
struct S: P {
static func foo(_ s: S = .init()) -> S { s } // #1 is this okay?
}
enum E: P {
case foo(Void = ()) // if #1 is okay then this should be okay as well
}