> On Oct 13, 2016, at 2:36 PM, Rick Mann via swift-users 
> <swift-users@swift.org> wrote:
> 
> It seems I can write this:
> 
> extension String
> {
>  public func deleting(prefix inPrefix: String) -> String
>  public func deleting(prefix inPrefix: String) -> String?
> }
> 
> But I was hoping it would do the right thing:
> 
> let a = s.deleting(prefix: "foo")
> if let b = s.deleting(prefix: "foo") { }
> 
> But it finds these ambiguous, and I'm not sure how to specify which I want.

The first one is truly ambiguous since either overload works. If you specify 
the type of 'a', you should be able to choose one or the other:

let a: String = s.deleting(prefix: "foo")
let b: String? = s.deleting(prefix: "foo")

The `if let` should not be ambiguous, since only the Optional-returning 
overload is a valid candidate. Got time to file a bug?

-Joe

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

Reply via email to