> On Sep 5, 2017, at 1:02 PM, Haravikk via swift-evolution > <[email protected]> wrote: > > This proposal idea is essentially for a new attribute @synthetic (name is up > for debate). This attribute is required for any default implementation that > includes reflective type compiler magic, use of the reflection API against > `self` or, in future, any native Swift macros within the method (possibly > limited to specific features, will depend on the macro language and its > capabilities).
"Use of the reflection API against `self`"? `String(describing:)` and `String(reflecting:)` sometimes do that. I see zero justification for having @synthetic cover all of these random things, but not ordinary default implementations—they have the same amount of dangerous implicitness. And I think we agree that using default methods only when @synthetic is specified is a non-starter, if only because default methods are a backwards compatibility tool for library evolution. We should show these pseudo-default methods in the generated interface for the module and be done with it. They only seem scary right now because people haven't had time to grow comfortable with them. -- Brent Royal-Gordon Architechies
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
