swiftlang/swift

[SR-5984] Error message for accidentally calling function in #selector(foo()) could suggest removing parens

Open

#48.543 aperta il 26 set 2017

Vedi su GitHub
 (3 commenti) (0 reazioni) (0 assegnatari)Swift (10.719 fork)batch import
bugcompilerdiagnostics qualitygood first issuetype checker

Metriche repository

Star
 (69.989 star)
Metriche merge PR
 (Merge medio 8g 17h) (510 PR mergiate in 30 g)

Descrizione

Previous ID SR-5984
Radar rdar://problem/34640740
Original Reporter @huonw
Type Bug
Status In Progress
Resolution

Swift 4.0

Votes 0
Component/s Compiler
Labels Bug, DiagnosticsQoI, StarterBug, TypeChecker
Assignee None
Priority Medium

md5: 939952c8851f309540d6ce3aaa7d7c15

Issue Description:

import Foundation

class Foo {
    @objc func foo() {
        _ = #selector(foo())
    }
}

call-selector.swift:5:13: error: argument of '#selector' does not refer to an '@objc' method, property, or initializer
        _ = #selector(foo())
            ^         ~~~~~

This is close to the correct syntax (#selector(foo)) and the compiler could help guide the user to this. This probably comes up most often with selectors for methods with no arguments (https://bugs.swift.org/browse/SR-1016).

Guida contributor