The best way to pass the Dave Test is to ask him directly, for example:

Dave:

Do you think the stdlib team would be okay with a naming scheme like 
Syntax.Literal.ArrayProtocol,  Syntax.Literal.IntegerProtocol, etc. We think 
this produces a clear description of the conformant role and one that is 
unlikely to be 
misinterpreted. It may read less fluently but it's also less subject to 
confusing users. 

This naming scheme uses the Syntax namespacing, and creates a Literal subspace. 
Each protocol is named as "XXXXProtocol". This introduction a distinction 
between 
"This is/can be used as  an integer literal" and "Conforming to this protocol 
ensures
that an instance of the type can be written as an integer literal". 

The problem with earlier approximations was that people saw 
"Syntax.IntegerLiteralXXX" 
and thought the typed could be substituted into expressions where an integer 
literal
was used, and not that an integer literal could be be used to write an instance 
of 
the type.

So what do (and your team) think of this idea?

-- Adrian (and Erica)


> On Jul 1, 2016, at 2:08 AM, Adrian Zubarev via swift-evolution 
> <[email protected]> wrote:
> 
> We haven’t pass the dave test yet? :D 
> 
> Still curious what he’d say about Syntax.Literal.*Protocol
> 
> One more question:
> 
> What can the namespace Syntax could be used for except for literals, any 
> idea? (I have no clue.)

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to