[swift-evolution] Name disambiguation of computed property/function with same type defined in extensions
LM
laurent.mihalkovic at gmail.com
Tue Jun 7 09:27:27 CDT 2016
>> We already have the concept of prefixing a type name with a module to disambiguate when two modules have the same type. I wonder if we could do the same thing to disambiguate between conflicting extensions?
>>
>> import ModuleA
>> import ModuleB
>>
>> ("hello world" as ModuleA.String).capitalized() // Swift.String, with only APIs known to ModuleA
>> ("hello world" as ModuleB.String).capitalized() // Swift.String, with only APIs known to ModuleB
>> "hello world".capitalized() // Still causes a compile-time error for ambiguity
>
> This only introduces a new kind of ambiguity since you can have both ModuleA and ModuleB declare something like
>
> class String {
> /// ...
> }
>
> And now you have no idea if ModuleA.String refers to Swift.String extension in ModuleA or class String in ModuleA.
>
Keep in mind that extensions are not types. (See prev response)
>
>
>>
>> --
>> Brent Royal-Gordon
>> Architechies
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
More information about the swift-evolution
mailing list