// This tests whether we accept fixits from warnings without filtering.
// The particular diagnostics used are not important.

// RUN: %swift -typecheck -target %target-triple %s -fixit-all -emit-fixits-path %t.remap
// RUN: c-arcmt-test %t.remap | arcmt-test -verify-transformed-files %s.result

func ftest1() {
  _ = 0
}

func foo() -> Int {
  do {
  } catch let err {
    goo(err)
  }
}
func goo(_ e: Error) {

}


func warn_unused_result_removal() -> Int { return 5 }

func discardableResultOnVoidFunc() {}

func discardableResultOnNeverFunc() -> Never { fatalError() }
