I really don't understand optionals. This code fails with "Call can throw, but is not marked with try ..." on the program line: t1.mth("abc", s1);
class Test { private var s1 : String! func tst() { let t1 : Test1 = Test1() t1.mth("abc", s1) } } class Test1 { func mth(p1 : String, _ p2 : String) -> String { return p1 } func mth(p1 : String, _ p2 : Any) throws -> String { return p1 } } but the program compiles fine if I change the code in either of these two manners: 1. I define s1 as non-optional like this: private var s1 = "", or 2. I remove the second overloaded mth method (the one with "_ p2 : Any" as the second parameter and the throws clause) Swift method lookup obviously chose the second mth func if it exists, but why? _______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users