<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Under what circumstances could these ever escape scope?</div><div class=""><br class=""></div><div class="">-- E</div><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 22, 2016, at 10:20 AM, Shawn Erickson &lt;<a href="mailto:shawnce@gmail.com" class="">shawnce@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class="">I have similar concerns as David. I do like the idea but I see it becoming a problem in not a typical usage as David outlined. You likely would never want to use this in any public API or possibly any function signature for that matter (again given the limits implied by the short hand). I see it being useful in a given scope of code for the purpose of readability and even safety. It is when it starts to escape that scope it become less useful and possibly unsafe.<br class=""><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Mon, Feb 22, 2016 at 9:12 AM David Waite via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class="">Having this work similar to other anonymous types would be an extension to the proposal.&nbsp;</div><div class=""><br class=""></div><div class="">Other anonymous types can be considered equivalent by their definitions, e.g. (x:Int, y:Int) taken as input from one function can be passed to another.&nbsp;</div><div class=""><br class=""></div><div class="">E.g. your adjustTemperature function wanted to call a checkSafety(device:DeviceType, [low | medium | high]:temperature) -&gt; Bool function - could it?</div><div class=""><br class=""></div><div class="">what about if adjustTemperature took [low | medium | high | extreme]?</div><div class=""><br class=""></div><div class="">what about adjustTemperature having an internal var lastAdjustment:[low | medium | high] - would that work?</div><div class=""><br class=""></div><div class="">My concern is that there could many reasons to need to switch from shorthand/anonymous syntax to a full enum, and that switch will have the same fragility as changing a function from accepting a tuple to accepting a struct. If passing to another function or assigning to a variable would require a switch to a properly qualified enum, the feature seems not worth its character savings.</div><div class=""><br class=""></div><div class="">And I’m already unsure it is worth its existing character savings, especially once you start documenting the meaning of low / medium / high for other developers, and especially if you now have to do so for multiple functions rather than a single enum declaration.</div></div><div style="word-wrap:break-word" class=""><div class=""><br class=""></div><div class="">-DW</div></div><div style="word-wrap:break-word" class=""><div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><div class="">On Feb 22, 2016, at 9:46 AM, Erica Sadun via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class=""><div class=""><div style="word-wrap:break-word" class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Feb 22, 2016, at 3:53 AM, Tino Heth via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class=""><div class=""><div class="">I'm not sure wether I want to see that feature added, but I think there is a "structural" argument for it:<br class="">We have anonymous functions (closures) and a (restricted) form of anonymous structs (tuples), so it would be consequent to have a anonymous variant for each fundamental entity in the language.<br class="">I guess it is to late to establish a unified syntax for all of those, though…<br class=""></div></div></blockquote></div><br class=""><div class="">I like the symmetry with the other anonymous types. This provides a highly focused tweak to Swift, with limited impact, and a measurable benefit to developers. (AKA the "Rule of Lattner")</div><div class=""><br class=""></div><div class="">Further, the values cannot be assigned to variables or passed as arguments as they have no "type".&nbsp; I suspect it won't be hard to restrict them for being used with `Any` argument, limiting their use to flags and switch cases. If I'm conceptualizing this correctly, the benefits are clear and the consequences are small.</div><div class=""><br class=""></div><div class="">-- Erica</div><div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><div class="">On Feb 21, 2016, at 11:52 PM, Yong hee Lee via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class=""><div class=""><div style="word-wrap:break-word" class=""><div class=""><br class=""></div><div class="">please check the link below.</div><div class=""><br class=""></div><div class=""><a href="https://gist.github.com/erica/9148e2be916c7fae6f1e" target="_blank" class="">https://gist.github.com/erica/9148e2be916c7fae6f1e</a></div><div class=""><br class=""></div></div></div></blockquote></div><div class=""><div class=""><br class=""></div></div></div>_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div></blockquote></div><br class=""></div>_______________________________________________<br class="">
swift-evolution mailing list<br class="">
<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a><br class="">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="">
</blockquote></div>
</div></blockquote></div><br class=""></body></html>