> On 06 Dec 2017, at 20:54, Joe DeCapo via swift-evolution 
> <swift-evolution@swift.org> wrote:
>> On Dec 6, 2017, at 12:39 PM, Thorsten Seitz via swift-evolution 
>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>> IUO is Swift’s equivalent to a null pointer and those are a _hole_ in the 
>> type system (this applies to all type systems having an equivalent to the 
>> null pointer). That is why such types are marked with "!“ in Swift.
>> This does not mean that Swift has no type system but that it’s type system 
>> has carefully marked holes.
> But the types are only marked with "!" at the declaration site, just as types 
> conforming to DynamicMemberLookup and DynamicCallable would be marked at the 
> declaration site. There's no more indication at the call site that something 
> is an IUO than there would be for something conforming to these protocols. 
> They both require inspecting the type itself.

But IUO’s are marked with an “!” to differentiate it from a normal type, where 
as DynamicMemberLookup is just a normal protocol conformance. I would be 
curious as to what you think of this idea [1]? Would this still be too much of 
a constraint just to make sure that when people use this they’re explicitly 
aware of what they’re doing?


swift-evolution mailing list

Reply via email to