Sorry about the double post.
> On 05 Jan 2016, at 18:26, David Hart via swift-users <swift-us...@swift.org> > wrote: > > How is it that Swift allows code like this: > > struct Sneaky: StringLiteralConvertible { > init(stringLiteral value: String) {} > init(extendedGraphemeClusterLiteral value: String) {} > init(unicodeScalarLiteral value: String) {} > } > > func ~=(sneaky: Sneaky, string: String) -> Bool { > return false > } > > enum NormalEnum: String { > case Super = "super" > case Mario = "mario" > } > > let value = NormalEnum(rawValue: "super”) // return nil!!!! > > It hit completely by surprise today because of of a Regex library: > > struct Regex: StringLiteralConvertible { > init(stringLiteral value: String) {} > init(extendedGraphemeClusterLiteral value: String) {} > init(unicodeScalarLiteral value: String) {} > > //... > } > > func ~=(regex: Regex, string: String) -> Bool { > return regex.matches(string) > } > > If I was not already a Swift enthusiast, this behaviour would have left me > completely dumbfounded. > What can we do about it? > > David. > > _______________________________________________ > swift-users mailing list > swift-us...@swift.org > https://lists.swift.org/mailman/listinfo/swift-users
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution