> 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