> 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?


swift-users mailing list

Reply via email to