<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">I'm "weak oppose" on this proposal.</div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">The core premise here is to increase the encapsulation of a struct around its member variables. &nbsp;But I think the purview of encapsulation is more classes than structs. &nbsp;e.g. a struct leaks information about the mutation of its member variables, even if those variables are private. &nbsp;Structs are the obvious implementation for a named tuple (CGPoint CGAffineTransform UIColor etc.) where there is inherently a fixed set of members that are more conveniently accessed directly. &nbsp;Structs and classes have different purposes and so the argument for consistency with classes is weak.</div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">With regard to the BalancedPair problem, I would prefer to see a "final struct" or "required init".</div><p class="airmail_on">On November 14, 2017 at 1:31:25 PM, Ted Kremenek (<a href="mailto:kremenek@apple.com">kremenek@apple.com</a>) wrote:</p> <blockquote type="cite" class="clean_bq"><span><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div></div><div>



<title></title>


<p style="-webkit-print-color-adjust: exact; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255); margin-top: 0px !important;" class="">The review of "SE-0189: Restrict Cross-module Struct
Initializers" begins now and runs through&nbsp;<strong style="-webkit-print-color-adjust: exact;" class="">November 21,
2017</strong>.</p>
<p style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">The proposal is available here:</p>
<blockquote style="-webkit-print-color-adjust: exact; margin: 15px 0px; border-left-width: 4px; border-left-style: solid; border-left-color: rgb(221, 221, 221); padding: 0px 15px; color: rgb(119, 119, 119); font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">
<div style="-webkit-print-color-adjust: exact; margin: 0px;" class=""><a href="https://github.com/apple/swift-evolution/blob/master/proposals/0189-restrict-cross-module-struct-initializers.md" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0189-restrict-cross-module-struct-initializers.md</a></div>
</blockquote>
<p style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">Reviews are an important part of the Swift evolution
process. All review feedback should be sent to the swift-evolution
mailing list at:</p>
<blockquote style="-webkit-print-color-adjust: exact; margin: 15px 0px; border-left-width: 4px; border-left-style: solid; border-left-color: rgb(221, 221, 221); padding: 0px 15px; color: rgb(119, 119, 119); font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">
<div style="-webkit-print-color-adjust: exact; margin: 0px;" class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a></div>
</blockquote>
<p style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">or, if you would like to keep your feedback private,
directly to the review manager.&nbsp;</p>
<p style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">When replying, please try to keep the proposal link at the
top of the message:</p>
<blockquote style="-webkit-print-color-adjust: exact; margin: 15px 0px; border-left-width: 4px; border-left-style: solid; border-left-color: rgb(221, 221, 221); padding: 0px 15px; color: rgb(119, 119, 119); font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">
<div style="-webkit-print-color-adjust: exact; margin: 0px;" class="">Proposal link: <a href="https://github.com/apple/swift-evolution/blob/master/proposals/0189-restrict-cross-module-struct-initializers.md" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0189-restrict-cross-module-struct-initializers.md</a><br style="-webkit-print-color-adjust: exact;" class="">
...<br style="-webkit-print-color-adjust: exact;" class="">
Reply text<br style="-webkit-print-color-adjust: exact;" class="">
...<br style="-webkit-print-color-adjust: exact;" class="">
Other replies</div>
</blockquote>
<h3 id="toc_0" style="-webkit-print-color-adjust: exact; margin: 20px 0px 10px; padding: 0px; -webkit-font-smoothing: antialiased; cursor: text; position: relative; font-size: 18px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">What goes into a review of a proposal?</h3>
<p style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">The goal of the review process is to improve the proposal
under review through constructive criticism and, eventually,
determine the direction of Swift.&nbsp;</p>
<p style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">When reviewing a proposal, here are some questions to
consider:</p>
<ul style="-webkit-print-color-adjust: exact; margin: 15px 0px; padding-left: 30px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">
<li style="-webkit-print-color-adjust: exact; margin: 0px;" class="">
<p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class="">What is your evaluation of the proposal?</p>
</li>
<li style="-webkit-print-color-adjust: exact; margin: 0px;" class="">
<p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class="">Is the problem being addressed significant enough to
warrant a change to Swift?</p>
</li>
<li style="-webkit-print-color-adjust: exact; margin: 0px;" class="">
<p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class="">Does this proposal fit well with the feel and direction of
Swift?</p>
</li>
<li style="-webkit-print-color-adjust: exact; margin: 0px;" class="">
<p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class="">If you have used other languages or libraries with a
similar feature, how do you feel that this proposal compares to
those?</p>
</li>
<li style="-webkit-print-color-adjust: exact; margin: 0px;" class="">
<p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class="">How much effort did you put into your review? A glance, a
quick reading, or an in-depth study?</p>
</li>
</ul>
<p style="-webkit-print-color-adjust: exact; margin-top: 15px; margin-right: 0px; margin-left: 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255); margin-bottom: 0px !important;" class="">Thanks,<br style="-webkit-print-color-adjust: exact;" class="">
Ted Kremenek<br style="-webkit-print-color-adjust: exact;" class="">
Review Manager</p>


_______________________________________________<br>swift-evolution-announce mailing list<br>swift-evolution-announce@swift.org<br>https://lists.swift.org/mailman/listinfo/swift-evolution-announce<br></div></div></span></blockquote></body></html>