swiftlang/swift

[SR-8811] Diagnosing Implicit Accessors for Uninhabited Types Should Be Smarter

開放

#51,319 建立於 2018年9月20日

 (3 則留言) (0 個反應) (0 位負責人)Swift (10,719 個分叉)batch import
SILcompilerdiagnostics qualitygood first issueimprovement

倉庫指標

星標
 (69,989 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

Previous ID SR-8811
Radar None
Original Reporter @CodaFi
Type Improvement
Status Reopened
Resolution
Votes 0
Component/s Compiler
Labels Improvement, SILDiagnostics, StarterBug
Assignee None
Priority Medium

md5: fe8546f9296464e8c547c7c953e07a35

Issue Description:

Try to emit SIL for the following code

enum Empty {}

class Foo {
  var x: Empty // function with uninhabited return type 'Empty' is missing call to another never-returning function on all paths

  init(_ x: Empty) {
    self.x = x
  }
}

It's good that we error, it's dismaying that we're diagnosing an implicit declaration. In particular, we're diagnosing the getter. We should check for accessors and emit something specialized here.

貢獻者指南