> On Jun 27, 2016, at 12:13 PM, Dave Abrahams <dabrah...@apple.com> wrote:
> 
> 
> on Mon Jun 27 2016, Erica Sadun <erica-AT-ericasadun.com 
> <http://erica-at-ericasadun.com/>> wrote:
>> So a protocol of `Syntax.AcceptsIntegerLiteralValues` or
>> `Syntax.AutoconvertsIntegerLiteralValues` might
>> better explain what this is doing and the intent of the protocol. It
>> ain't short but it's a hella lot clearer.
> 
> Being clear isn't helpful when it clearly implies the wrong meaning.
> What's essential about this protocol neither that it “accepts” nor that
> it “autoconverts” anything.  It's that it allows allows an integer
> literal to be interpreted as an expression having the conforming type,
> or to put it differently, it confers integer literal syntax upon the
> conforming type.

I suppose  
"Syntax.AllowsIntegerLiteralToBeInterpretedAsExpressionOfConformingType"
is a tiny bit too wordy?

Putting on my hat of extreme pedantry:

Conformance does "accept" integer literals. By conforming, this protocol
allows them to be interpreted as expressions of the conforming type. That
reads as acceptance to me.

I'm not sure if you could call this promotion, casting, interpretation or 
whatever
but the way you describe it sounds exactly backwards from the way it's used. 

You say "It confers integer literal syntax", which reads to me as "Oh great, I 
can
use a floating point number as an integer literal. Great, let x: Int = 4.2".

When I see it used, I think "Conforming types consume integer literal syntax as 
native",
which is more `let x: Double = 1` and `let y Double = 2.5 * myOtherDouble * 4`.

And then grabbing a paintbrush of many colors, perhaps 
"Syntax.IntegerLiteralConsumer"?

-- E

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to