[swift-evolution] [Proposal Draft] Literal Syntax Protocols
    Adrian Zubarev 
    adrian.zubarev at devandartist.com
       
    Wed Jun 29 01:44:53 CDT 2016
    
    
  
In fact this doesn’t tell you that you can do this:
func f<T : Syntax.Literal.IntegerProtocol>() -> T {
    return T(integerLiteral: 43) // Error
    return T(43) // Also an Error
}
As I already said, literals will be read and converted to an actual type, but to adopt this, your time needs conformance to a protocol (sounds trivial?). The only direction we have is literal -> type. Should always remember this.
With this in mind, this example is crystal clear:
func f<T : Syntax.Literal.IntegerProtocol>() -> T {
    return 43 // OK
}
I’m only suggesting a clean design here, do what ever you want :P
-- 
Adrian Zubarev
Sent with Airmail
Am 29. Juni 2016 um 08:31:05, Adrian Zubarev (adrian.zubarev at devandartist.com) schrieb:
How about:
public enum Syntax {
      
    public enum Literal {
        public typealias NilProtocol = ...
        public typealias BooleanProtocol = ...
        public typealias IntegerProtocol = ...
        public typealias FloatProtocol = ...
        public typealias UnicodeScalarProtocol = ...
        public typealias ExtendedGraphemeClusterProtocol = ...
        public typealias StringProtocol = ...
        public typealias StringInterpolationProtocol = ...
        public typealias ArrayProtocol = ...
        public typealias DictionaryProtocol = ...
    }
}
extension Array : Syntax.Literal.ArrayProtocol { ... }
-- 
Adrian Zubarev
Sent with Airmail
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160629/2633340a/attachment.html>
    
    
More information about the swift-evolution
mailing list