<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">Sorry, initially sent off-list:<div><br></div><div><div><span style="background-color: rgba(255, 255, 255, 0);">I think this proposal is a great idea. But I would vote for the alternative of only having default and implicitly deducing extend when default is not specified: it would mimic how override works with only one keyword, it would not introduce a completely new keyword, and it would provide progressive disclosure (your usually start implementing types before going deeper in default implementations). Yes, it would generate warnings at all current default implementations, but it wouldn’t break source compatibility and would provide a lot of value for developers.</span></div><div><span style="background-color: rgba(255, 255, 255, 0);"><br></span></div><div><span style="background-color: rgba(255, 255, 255, 0);">Perhaps a future version of Swift could transform that warning into an error to provide the most value and really mirror the override behavior.</span></div><div><br>On 14 Jun 2017, at 19:11, Erica Sadun via swift-evolution <<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>> wrote:<br><br></div><blockquote type="cite"><div><meta http-equiv="Content-Type" content="text/html charset=us-ascii">Some pals and I have been kicking an idea around about introducing better ways to support the compiler in protocol extensions. We want to eliminate some hard-to-detect bugs. We've been brainstorming on how to do this without affecting backward compatibility and introducing a minimal impact on keywords. <div class=""><br class=""></div><div class="">We'd love to know what you think of our idea, which is to introduce "role" keywords. Roles allow the compiler to automatically check the intended use of a extension member definition against its protocol declarations, and emit errors, warnings, and fixits as needed. We think it's a pretty straightforward approach that, if adopted, eliminates an entire category of bugs.</div><div class=""><br class=""></div><div class="">The draft proposal is here: <a href="https://gist.github.com/erica/14283fe18254489c1498a7069b7760c4" class="">https://gist.github.com/erica/14283fe18254489c1498a7069b7760c4</a></div><div class=""><br class=""></div><div class="">Thanks in advance for your thoughtful feedback,</div><div class=""><br class=""></div><div class=""><div class=""><div class="">-- E</div></div></div><div class=""><br class=""></div></div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>swift-evolution mailing list</span><br><span><a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a></span><br><span><a href="https://lists.swift.org/mailman/listinfo/swift-evolution">https://lists.swift.org/mailman/listinfo/swift-evolution</a></span><br></div></blockquote></div></body></html>