From 3d01a782ae7b323a9380a463051f6977659f913c Mon Sep 17 00:00:00 2001 From: Mykola Pokhylets Date: Sat, 2 Aug 2025 15:26:45 +0200 Subject: [PATCH] Fix https://github.com/swiftlang/swift/issues/83463 --- lib/Sema/TypeCheckStmt.cpp | 2 +- test/attr/attr_discardableResult.swift | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/Sema/TypeCheckStmt.cpp b/lib/Sema/TypeCheckStmt.cpp index 7e78556aafb6f..3651d88c9ef9f 100644 --- a/lib/Sema/TypeCheckStmt.cpp +++ b/lib/Sema/TypeCheckStmt.cpp @@ -1886,7 +1886,7 @@ void TypeChecker::checkIgnoredExpr(Expr *E) { : valueE; if (auto *Fn = dyn_cast(expr)) { - if (auto *calledValue = Fn->getCalledValue()) { + if (auto *calledValue = Fn->getCalledValue(true)) { if (auto *FD = dyn_cast(calledValue)) { if (FD->getAttrs().hasAttribute()) { isDiscardable = true; diff --git a/test/attr/attr_discardableResult.swift b/test/attr/attr_discardableResult.swift index 37699dacc4cc4..238a01c5f92da 100644 --- a/test/attr/attr_discardableResult.swift +++ b/test/attr/attr_discardableResult.swift @@ -248,3 +248,14 @@ do { S_54699().bar1 // expected-error {{function is unused}} S_54699.bar2 // expected-error {{function is unused}} } + +// https://github.com/swiftlang/swift/issues/83463 +@discardableResult @MainActor +func foo_83463() -> () -> Void { + return {} +} + +@MainActor +func test_83463() { + foo_83463() +}