mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
This warnings don't give much benefits for developers. Code completion
UI tends to show them unusable. But usually, developers can modify the
context to accept async calls, e.g. by wrapping it with `Task { }`
rdar://126737530
64 lines
2.8 KiB
Swift
64 lines
2.8 KiB
Swift
// RUN: %batch-code-completion
|
|
|
|
// REQUIRES: concurrency
|
|
|
|
func funcThrows() throws {
|
|
fatalError()
|
|
}
|
|
func asyncThrows() async throws {
|
|
fatalError()
|
|
}
|
|
func asyncRethrows(fn : () async throws -> Int) async rethrows -> Int {
|
|
fatalError()
|
|
}
|
|
func asyncRethrows(fn : () async throws -> String) async rethrows -> String {
|
|
fatalError()
|
|
}
|
|
func invoke<T>(fn : () async throws -> T) async rethrows -> T {
|
|
fatalError()
|
|
}
|
|
func invokeAuto<T>(_ val : @autoclosure () async throws -> T) async rethrows -> T {
|
|
fatalError()
|
|
}
|
|
func normalTask() async -> Int {
|
|
fatalError()
|
|
}
|
|
func throwingTask() async throws -> String {
|
|
fatalError()
|
|
}
|
|
|
|
// CHECK_syncContext-DAG: Decl[FreeFunction]/CurrModule: funcThrows()[' throws'][#Void#];
|
|
// CHECK_syncContext-DAG: Decl[FreeFunction]/CurrModule: asyncRethrows({#fn: () async throws -> Int##() async throws -> Int#})[' async'][' rethrows'][#Int#];
|
|
// CHECK_syncContext-DAG: Decl[FreeFunction]/CurrModule: asyncRethrows({#fn: () async throws -> String##() async throws -> String#})[' async'][' rethrows'][#String#];
|
|
// CHECK_syncContext-DAG: Decl[FreeFunction]/CurrModule: invokeAuto({#(val): T#})[' async'][' rethrows'][#T#];
|
|
// CHECK_syncContext-DAG: Decl[FreeFunction]/CurrModule: throwingTask()[' async'][' throws'][#String#];
|
|
// CHECK_syncContext-DAG: Decl[FreeFunction]/CurrModule: invoke({#fn: () async throws -> T##() async throws -> T#})[' async'][' rethrows'][#T#];
|
|
// CHECK_syncContext-DAG: Decl[FreeFunction]/CurrModule: normalTask()[' async'][#Int#];
|
|
|
|
// CHECK_asyncContext-DAG: Decl[FreeFunction]/CurrModule: funcThrows()[' throws'][#Void#];
|
|
// CHECK_asyncContext-DAG: Decl[FreeFunction]/CurrModule: asyncRethrows({#fn: () async throws -> Int##() async throws -> Int#})[' async'][' rethrows'][#Int#];
|
|
// CHECK_asyncContext-DAG: Decl[FreeFunction]/CurrModule: asyncRethrows({#fn: () async throws -> String##() async throws -> String#})[' async'][' rethrows'][#String#];
|
|
// CHECK_asyncContext-DAG: Decl[FreeFunction]/CurrModule: invokeAuto({#(val): T#})[' async'][' rethrows'][#T#];
|
|
// CHECK_asyncContext-DAG: Decl[FreeFunction]/CurrModule: throwingTask()[' async'][' throws'][#String#];
|
|
// CHECK_asyncContext-DAG: Decl[FreeFunction]/CurrModule: invoke({#fn: () async throws -> T##() async throws -> T#})[' async'][' rethrows'][#T#];
|
|
// CHECK_asyncContext-DAG: Decl[FreeFunction]/CurrModule: normalTask()[' async'][#Int#];
|
|
|
|
func syncFunc() {
|
|
#^CHECK_syncFunc?check=CHECK_syncContext^#
|
|
}
|
|
func syncClosure() async {
|
|
func handleSyncClosure<T>(_: () -> T) {}
|
|
handleSyncClosure {
|
|
#^CHECK_syncClosure?check=CHECK_syncContext^#
|
|
}
|
|
}
|
|
func syncClosure() {
|
|
func handleAsyncClosure<T>(_: () async -> T) async {}
|
|
handleAsyncClosure {
|
|
#^CHECK_asyncClosure?check=CHECK_asyncContext^#
|
|
}
|
|
}
|
|
func asyncFunc() async {
|
|
#^CHECK_asyncFunc?check=CHECK_asyncContext^#
|
|
}
|