<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="">Hey Tino,&nbsp;<div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jan 13, 2016, at 03:50, Tino Heth &lt;<a href="mailto:2th@gmx.de" class="">2th@gmx.de</a>&gt; wrote:</div><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">I'm still waiting for someone asking for compile-time execution with a reference to&nbsp;</div><div class=""><a href="https://www.youtube.com/watch?v=UTqZNujQOlA" class="">https://www.youtube.com/watch?v=UTqZNujQOlA</a></div><div class="">(it's such a cool concept — we really should have a use case for it :), and your idea is a variant of this feature.</div></div></div></blockquote><br class=""><div>Yes, what I was suggesting yesterday was at least half inspired by that video, which came up in an earlier thread.</div><div><br class=""></div><div><br class=""></div><blockquote type="cite" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">In theory, this could work without new keywords (when all input is known at compile time, just evaluate), </div></div></blockquote><br class=""><div>True, I think you could get a lot of benefit here without new keywords, perhaps with a&nbsp;<a href="https://doc.rust-lang.org/stable/book/compiler-plugins.html" class="">compiler plugin</a>&nbsp;as Sean suggested. &nbsp;But there is one interesting part that seems like it will require a new bit of syntax, which is being able to define new types based on restrictions of some other type's member values. &nbsp;I don’t know if others find that as interesting as I do though :)</div><div><br class=""></div><br class=""><blockquote type="cite" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">I'm sure that checks at compile-time would not only be useful for calculations:</div><div class="">NSURL, for example, can be initialized with a string that simply does not represent an URL (therefore, init can return nil). But if the parameter is a string literal, you'll always have the same result at runtime…</div></div></blockquote><br class=""></div><div>Yep, that’s another good example. &nbsp;Here’s to hoping it finds its way into Swift 4 :)</div><div><br class=""></div><div>Matt &nbsp;</div><br class=""></div><div class=""><br class=""></div></body></html>