[swift-evolution] Revisiting SE-0041 Names

Dmitri Gribenko gribozavr at gmail.com
Thu Jun 23 04:34:05 CDT 2016


On Thu, Jun 23, 2016 at 2:00 AM, Xiaodi Wu <xiaodi.wu at gmail.com> wrote:
> On Thu, Jun 23, 2016 at 1:26 AM, David Sweeris via swift-evolution
> <swift-evolution at swift.org> wrote:
>>
>>
>> > On Jun 22, 2016, at 19:35, Dmitri Gribenko <gribozavr at gmail.com> wrote:
>> >
>> >> On Wed, Jun 22, 2016 at 5:15 PM, David Sweeris <davesweeris at mac.com>
>> >> wrote:
>> >> That's a really interesting idea. Is "Syntax" a placeholder, or is that
>> >> the intended name?
>> >
>> > It is the best name we could come up with, we are open to better
>> > suggestions.
>>
>> I guess it depends on the intended semantics of the "namespace". If the
>> purpose is to be a container for the various LiteralConvertible protocols,
>> then maybe something like `AcceptsLiteralType.Integer` might be better? It's
>> a bit wordy, though.
>
>
> I get what's being aimed at here, but I think the meaning of `Syntax` in
> this context is indecipherable. IIUC, the point to be conveyed by the term
> is that a literal has no type until it is supplied as an argument to the
> initializer and becomes typed.

The point of using "Syntax" is to emphasize that this protocol is for
integration with the language syntax.  The "Syntax" pseudo-namespace
groups protocols that provide a special kind of a capability --
changing the meaning of builtin language syntax.  This protocol is not
meant to be coded against, used in other APIs or handled by the code
in any other way except by being adopted (except maybe in the standard
library code itself).

Should we add any other compiler interfaces that affect how builtin
syntax works, they would also go into the "Syntax" namespace.

Dmitri

-- 
main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
(j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/


More information about the swift-evolution mailing list