What happens when you need the backticks for the function name itself? We can't nest them.
On Thu, Feb 23, 2017 at 08:16 Ben Rimmington via swift-evolution < [email protected]> wrote: > > On 22 Feb 2017, at 07:05, Jacob Bandes-Storch wrote: > > *Compound name syntax* — foo(_:), foo(bar:), foo(bar:baz:) — is used to > disambiguate references to functions. (You might've used it inside a > #selector expression.) But there's currently no compound name for a > function with no arguments. > > func foo() {} // no compound syntax for this one :( > func foo(_ bar: Int) {} // foo(_:) > func foo(bar: Int) {} // foo(bar:) > func foo(bar: String, baz: Double) {} // foo(bar:baz:) > > Given these four functions, only the first one has no compound name > syntax. And the simple reference "let myfn = foo" is ambiguous because it > could refer to any of the four. A workaround is to specify a contextual > type, e.g. "let myfn = foo as () -> Void". > > I filed SR-3550 <https://bugs.swift.org/browse/SR-3550> for this a while > ago, and there was some discussion in JIRA about it. I'd like to continue > exploring solutions here and then write up a formal proposal. > > > Would the following be an option? > > foo() // Function call expression. > `foo()` // Function reference (using backticks). > > -- Ben > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution >
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
