swiftlang/swift

Missing fix-it when opaque property type is inferred

Open

#69.241 aperta il 18 ott 2023

Vedi su GitHub
 (6 commenti) (0 reazioni) (1 assegnatario)Swift (10.719 fork)batch import
compilerdiagnostics qualityfix-itsgood first issueimprovementopaque result typesopaque typesswift 6.0type checker

Metriche repository

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

Descrizione

Description When the type of a variable or property is inferred as an opaque type, the compiler emits an error to that effect:

Property definition has inferred type 'some Proto', involving the 'some' return type of another declaration

Steps to reproduce When compiling this code, the last line has the above error attached.:

protocol Proto {}
struct Concrete: Proto {}
func getProto() -> some Proto { Concrete() }

let value = getProto() // error

Expected behavior Since the fix is straightforward and included in the error message, the compiler should offer a fixit that would rectify the problem:

let value: some Proto = getProto()

Environment

  • Swift compiler version info Apple Swift version 5.9 (swiftlang-5.9.0.128.108 clang-1500.0.40.1) Target: arm64-apple-macosx14.0

Guida contributor