Closed
Description
Description
The following macro @Test
fails to parse the following arguments under swift-6.0.3. No issues with swift-6.1.2.
Reproduction
import Testing
enum TestClosure {
case failed(f: () -> Void)
}
struct ClosureWrapper {
let f: () -> Void
init(f: @escaping () -> Void) {
self.f = f
}
}
enum TestClosureWrapper {
case failed(ClosureWrapper)
}
struct AbstractClosureTests {
@Test(arguments: [TestClosure.failed(f: {})])
func example(_ input: TestClosure) async throws {
switch input {
case .failed(let f):
f()
}
}
@Test(arguments: [TestClosureWrapper.failed(ClosureWrapper(f: {}))])
func example(_ input: TestClosureWrapper) async throws {
switch input {
case .failed(let wrapper):
wrapper.f()
}
}
}
Stack dump
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Stack dump:
0. Program arguments: ~/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -c -primary-file /Volumes/MacintoshData2/Mobile/PGS/AbstractClosure/AbstractClosureTests/AbstractClosureTests.swift -emit-dependencies-path ~/Library/Developer/Xcode/DerivedData/AbstractClosure-hidfjrycdmkglydpawncnmhrfwso/Build/Intermediates.noindex/AbstractClosure.build/Debug-maccatalyst/AbstractClosureTests.build/Objects-normal/arm64/AbstractClosureTests.d -emit-const-values-path ~/Library/Developer/Xcode/DerivedData/AbstractClosure-hidfjrycdmkglydpawncnmhrfwso/Build/Intermediates.noindex/AbstractClosure.build/Debug-maccatalyst/AbstractClosureTests.build/Objects-normal/arm64/AbstractClosureTests.swiftconstvalues -emit-reference-dependencies-path ~/Library/Developer/Xcode/DerivedData/AbstractClosure-hidfjrycdmkglydpawncnmhrfwso/Build/Intermediates.noindex/AbstractClosure.build/Debug-maccatalyst/AbstractClosureTests.build/Objects-normal/arm64/AbstractClosureTests.swiftdeps -serialize-diagnostics-path ~/Library/Developer/Xcode/DerivedData/AbstractClosure-hidfjrycdmkglydpawncnmhrfwso/Build/Intermediates.noindex/AbstractClosure.build/Debug-maccatalyst/AbstractClosureTests.build/Objects-normal/arm64/AbstractClosureTests.dia -target arm64-apple-ios15.6-macabi -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -cxx-interoperability-mode=default -sdk ~/Downloads/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.2.sdk -I ~/Library/Developer/Xcode/DerivedData/AbstractClosure-hidfjrycdmkglydpawncnmhrfwso/Build/Products/Debug-maccatalyst -I ~/Downloads/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib -F ~/Library/Developer/Xcode/DerivedData/AbstractClosure-hidfjrycdmkglydpawncnmhrfwso/Build/Products/Debug-maccatalyst -Fsystem ~/Downloads/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.2.sdk/System/iOSSupport/System/Library/Frameworks -F ~/Downloads/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -no-color-diagnostics -enable-testing -g -debug-info-format=dwarf -dwarf-version=4 -module-cache-path ~/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -profile-generate -profile-coverage-mapping -swift-version 5 -enforce-exclusivity=checked -Onone -D DEBUG -serialize-debugging-options -const-gather-protocols-file ~/Library/Developer/Xcode/DerivedData/AbstractClosure-hidfjrycdmkglydpawncnmhrfwso/Build/Intermediates.noindex/AbstractClosure.build/Debug-maccatalyst/AbstractClosureTests.build/Objects-normal/arm64/AbstractClosureTests_const_extract_protocols.json -enable-experimental-feature DebugDescriptionMacro -enable-experimental-feature OpaqueTypeErasure -enable-bare-slash-regex -empty-abi-descriptor -plugin-path ~/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/plugins/testing -validate-clang-modules-once -clang-build-session-file ~/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /Volumes/MacintoshData2/Mobile/PGS/AbstractClosure -resource-dir ~/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift -enable-anonymous-context-mangled-names -file-compilation-dir /Volumes/MacintoshData2/Mobile/PGS/AbstractClosure -Xcc -std=gnu++20 -Xcc -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -ivfsstatcache -Xcc ~/Library/Developer/Xcode/DerivedData/SDKStatCaches.noindex/macosx15.2-24C94-adb7e3b2ac9371c132d38cd54945bc99.sdkstatcache -Xcc -I~/Library/Developer/Xcode/DerivedData/AbstractClosure-hidfjrycdmkglydpawncnmhrfwso/Build/Intermediates.noindex/AbstractClosure.build/Debug-maccatalyst/AbstractClosureTests.build/swift-overrides.hmap -Xcc -iquote -Xcc ~/Library/Developer/Xcode/DerivedData/AbstractClosure-hidfjrycdmkglydpawncnmhrfwso/Build/Intermediates.noindex/AbstractClosure.build/Debug-maccatalyst/AbstractClosureTests.build/AbstractClosureTests-generated-files.hmap -Xcc -I~/Library/Developer/Xcode/DerivedData/AbstractClosure-hidfjrycdmkglydpawncnmhrfwso/Build/Intermediates.noindex/AbstractClosure.build/Debug-maccatalyst/AbstractClosureTests.build/AbstractClosureTests-own-target-headers.hmap -Xcc -I~/Library/Developer/Xcode/DerivedData/AbstractClosure-hidfjrycdmkglydpawncnmhrfwso/Build/Intermediates.noindex/AbstractClosure.build/Debug-maccatalyst/AbstractClosureTests.build/AbstractClosureTests-all-target-headers.hmap -Xcc -iquote -Xcc ~/Library/Developer/Xcode/DerivedData/AbstractClosure-hidfjrycdmkglydpawncnmhrfwso/Build/Intermediates.noindex/AbstractClosure.build/Debug-maccatalyst/AbstractClosureTests.build/AbstractClosureTests-project-headers.hmap -Xcc -I~/Library/Developer/Xcode/DerivedData/AbstractClosure-hidfjrycdmkglydpawncnmhrfwso/Build/Products/Debug-maccatalyst/include -Xcc -isystem -Xcc ~/Downloads/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.2.sdk/System/iOSSupport/usr/include -Xcc -I~/Library/Developer/Xcode/DerivedData/AbstractClosure-hidfjrycdmkglydpawncnmhrfwso/Build/Intermediates.noindex/AbstractClosure.build/Debug-maccatalyst/AbstractClosureTests.build/DerivedSources-normal/arm64 -Xcc -I~/Library/Developer/Xcode/DerivedData/AbstractClosure-hidfjrycdmkglydpawncnmhrfwso/Build/Intermediates.noindex/AbstractClosure.build/Debug-maccatalyst/AbstractClosureTests.build/DerivedSources/arm64 -Xcc -I~/Library/Developer/Xcode/DerivedData/AbstractClosure-hidfjrycdmkglydpawncnmhrfwso/Build/Intermediates.noindex/AbstractClosure.build/Debug-maccatalyst/AbstractClosureTests.build/DerivedSources -Xcc -DDEBUG=1 -module-name AbstractClosureTests -frontend-parseable-output -disable-clang-spi -target-sdk-version 18.2 -target-sdk-name macosx15.2 -prebuilt-module-cache-path ~/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/prebuilt-modules/15.2 -external-plugin-path ~/Downloads/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins#~/Downloads/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server -external-plugin-path ~/Downloads/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/local/lib/swift/host/plugins#~/Downloads/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server -plugin-path ~/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/plugins -plugin-path ~/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/local/lib/swift/host/plugins -parse-as-library -o ~/Library/Developer/Xcode/DerivedData/AbstractClosure-hidfjrycdmkglydpawncnmhrfwso/Build/Intermediates.noindex/AbstractClosure.build/Debug-maccatalyst/AbstractClosureTests.build/Objects-normal/arm64/AbstractClosureTests.o -index-unit-output-path /AbstractClosure.build/Debug-maccatalyst/AbstractClosureTests.build/Objects-normal/arm64/AbstractClosureTests.o -index-store-path ~/Library/Developer/Xcode/DerivedData/AbstractClosure-hidfjrycdmkglydpawncnmhrfwso/Index.noindex/DataStore -index-system-modules
1. Apple Swift version 6.0.3 (swiftlang-6.0.3.1.10 clang-1600.0.30.1)
2. Compiling with effective version 5.10
3. While evaluating request TypeCheckSourceFileRequest(source_file "/Volumes/MacintoshData2/Mobile/PGS/AbstractClosure/AbstractClosureTests/AbstractClosureTests.swift")
4. While type-checking 'AbstractClosureTests' (at /Volumes/MacintoshData2/Mobile/PGS/AbstractClosure/AbstractClosureTests/AbstractClosureTests.swift:25:1)
5. While evaluating request StoredPropertiesRequest(AbstractClosureTests.(file).AbstractClosureTests@/Volumes/MacintoshData2/Mobile/PGS/AbstractClosure/AbstractClosureTests/AbstractClosureTests.swift:25:8)
6. While evaluating request ExpandPeerMacroRequest(AbstractClosureTests.(file).AbstractClosureTests.example@/Volumes/MacintoshData2/Mobile/PGS/AbstractClosure/AbstractClosureTests/AbstractClosureTests.swift:27:10)
7. While evaluating request ResolveMacroRequest(custom-attr, 0x1268b2d98 StructDecl name=AbstractClosureTests)
8. While type-checking expression at [/Volumes/MacintoshData2/Mobile/PGS/AbstractClosure/AbstractClosureTests/AbstractClosureTests.swift:26:5 - line:26:49] RangeText="@Test(arguments: [TestClosure.failed(f: {})]"
9. While type-checking-target starting at /Volumes/MacintoshData2/Mobile/PGS/AbstractClosure/AbstractClosureTests/AbstractClosureTests.swift:26:5
10. While evaluating request FragileFunctionKindRequest(0x1268b2f78 AbstractClosureExpr line=26 : () -> ())
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0 swift-frontend 0x00000001085caa9c llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1 swift-frontend 0x00000001085c8cf0 llvm::sys::RunSignalHandlers() + 112
2 swift-frontend 0x00000001085cb068 SignalHandler(int) + 292
3 libsystem_platform.dylib 0x000000019f7d0624 _sigtramp + 56
4 swift-frontend 0x000000010480fe04 swift::FragileFunctionKindRequest::OutputType swift::Evaluator::getResultCached<swift::FragileFunctionKindRequest, swift::FragileFunctionKindRequest::OutputType swift::evaluateOrDefault<swift::FragileFunctionKindRequest>(swift::Evaluator&, swift::FragileFunctionKindRequest, swift::FragileFunctionKindRequest::OutputType)::'lambda'(), (void*)0>(swift::FragileFunctionKindRequest const&, swift::FragileFunctionKindRequest::OutputType swift::evaluateOrDefault<swift::FragileFunctionKindRequest>(swift::Evaluator&, swift::FragileFunctionKindRequest, swift::FragileFunctionKindRequest::OutputType)::'lambda'()) + 1256
5 swift-frontend 0x000000010480fe04 swift::FragileFunctionKindRequest::OutputType swift::Evaluator::getResultCached<swift::FragileFunctionKindRequest, swift::FragileFunctionKindRequest::OutputType swift::evaluateOrDefault<swift::FragileFunctionKindRequest>(swift::Evaluator&, swift::FragileFunctionKindRequest, swift::FragileFunctionKindRequest::OutputType)::'lambda'(), (void*)0>(swift::FragileFunctionKindRequest const&, swift::FragileFunctionKindRequest::OutputType swift::evaluateOrDefault<swift::FragileFunctionKindRequest>(swift::Evaluator&, swift::FragileFunctionKindRequest, swift::FragileFunctionKindRequest::OutputType)::'lambda'()) + 1256
6 swift-frontend 0x00000001042ab3d0 swift::ExportContext::forFunctionBody(swift::DeclContext*, swift::SourceLoc) + 208
7 swift-frontend 0x00000001042bb36c (anonymous namespace)::ExprAvailabilityWalker::walkToExprPre(swift::Expr*) + 3036
8 swift-frontend 0x00000001042bba04 (anonymous namespace)::ExprAvailabilityWalker::walkToArgumentPre(swift::Argument const&) + 52
9 swift-frontend 0x00000001046d4330 (anonymous namespace)::Traversal::visit(swift::ArgumentList*) + 208
10 swift-frontend 0x00000001046d0f18 (anonymous namespace)::Traversal::visitApplyExpr(swift::ApplyExpr*) + 196
11 swift-frontend 0x00000001046ce43c (anonymous namespace)::Traversal::visit(swift::Expr*) + 88
12 swift-frontend 0x00000001046d0d2c (anonymous namespace)::Traversal::visitCollectionExpr(swift::CollectionExpr*) + 136
13 swift-frontend 0x00000001046ce454 (anonymous namespace)::Traversal::visit(swift::Expr*) + 112
14 swift-frontend 0x00000001042bba28 (anonymous namespace)::ExprAvailabilityWalker::walkToArgumentPre(swift::Argument const&) + 88
15 swift-frontend 0x00000001046d4330 (anonymous namespace)::Traversal::visit(swift::ArgumentList*) + 208
16 swift-frontend 0x00000001046d11f0 (anonymous namespace)::Traversal::visitFreestandingMacroArgs(swift::FreestandingMacroExpansion*) + 152
17 swift-frontend 0x00000001046d0bd8 (anonymous namespace)::Traversal::visitMacroExpansionExpr(swift::MacroExpansionExpr*) + 164
18 swift-frontend 0x00000001046ce8c0 (anonymous namespace)::Traversal::visit(swift::Expr*) + 1244
19 swift-frontend 0x00000001042b3e88 swift::diagnoseExprAvailability(swift::Expr const*, swift::DeclContext*) + 272
20 swift-frontend 0x000000010422bc8c swift::performSyntacticExprDiagnostics(swift::Expr const*, swift::DeclContext const*, std::__1::optional<swift::ContextualTypePurpose>, bool, bool, bool) + 3584
21 swift-frontend 0x00000001042f0898 swift::TypeChecker::typeCheckTarget(swift::constraints::SyntacticElementTarget&, swift::optionset::OptionSet<swift::TypeCheckExprFlags, unsigned int>) + 720
22 swift-frontend 0x00000001042f04a4 swift::TypeChecker::typeCheckExpression(swift::constraints::SyntacticElementTarget&, swift::optionset::OptionSet<swift::TypeCheckExprFlags, unsigned int>) + 416
23 swift-frontend 0x000000010438cd34 swift::ResolveMacroRequest::evaluate(swift::Evaluator&, swift::UnresolvedMacroReference, swift::DeclContext*) const + 1760
24 swift-frontend 0x0000000104366a2c swift::ResolveMacroRequest::OutputType swift::Evaluator::getResultUncached<swift::ResolveMacroRequest, swift::ResolveMacroRequest::OutputType swift::evaluateOrDefault<swift::ResolveMacroRequest>(swift::Evaluator&, swift::ResolveMacroRequest, swift::ResolveMacroRequest::OutputType)::'lambda'()>(swift::ResolveMacroRequest const&, swift::ResolveMacroRequest::OutputType swift::evaluateOrDefault<swift::ResolveMacroRequest>(swift::Evaluator&, swift::ResolveMacroRequest, swift::ResolveMacroRequest::OutputType)::'lambda'()) + 600
25 swift-frontend 0x000000010436678c swift::ResolveMacroRequest::OutputType swift::Evaluator::getResultCached<swift::ResolveMacroRequest, swift::ResolveMacroRequest::OutputType swift::evaluateOrDefault<swift::ResolveMacroRequest>(swift::Evaluator&, swift::ResolveMacroRequest, swift::ResolveMacroRequest::OutputType)::'lambda'(), (void*)0>(swift::ResolveMacroRequest const&, swift::ResolveMacroRequest::OutputType swift::evaluateOrDefault<swift::ResolveMacroRequest>(swift::Evaluator&, swift::ResolveMacroRequest, swift::ResolveMacroRequest::OutputType)::'lambda'()) + 260
26 swift-frontend 0x0000000104731418 swift::Decl::forEachAttachedMacro(swift::MacroRole, llvm::function_ref<void (swift::CustomAttr*, swift::MacroDecl*)>) const + 372
27 swift-frontend 0x0000000104388eb8 swift::ExpandPeerMacroRequest::evaluate(swift::Evaluator&, swift::Decl*) const + 84
28 swift-frontend 0x00000001043f3bc0 swift::ExpandPeerMacroRequest::OutputType swift::Evaluator::getResultUncached<swift::ExpandPeerMacroRequest, swift::ExpandPeerMacroRequest::OutputType swift::evaluateOrDefault<swift::ExpandPeerMacroRequest>(swift::Evaluator&, swift::ExpandPeerMacroRequest, swift::ExpandPeerMacroRequest::OutputType)::'lambda'()>(swift::ExpandPeerMacroRequest const&, swift::ExpandPeerMacroRequest::OutputType swift::evaluateOrDefault<swift::ExpandPeerMacroRequest>(swift::Evaluator&, swift::ExpandPeerMacroRequest, swift::ExpandPeerMacroRequest::OutputType)::'lambda'()) + 612
29 swift-frontend 0x00000001043f38c0 swift::ExpandPeerMacroRequest::OutputType swift::Evaluator::getResultCached<swift::ExpandPeerMacroRequest, swift::ExpandPeerMacroRequest::OutputType swift::evaluateOrDefault<swift::ExpandPeerMacroRequest>(swift::Evaluator&, swift::ExpandPeerMacroRequest, swift::ExpandPeerMacroRequest::OutputType)::'lambda'(), (void*)0>(swift::ExpandPeerMacroRequest const&, swift::ExpandPeerMacroRequest::OutputType swift::evaluateOrDefault<swift::ExpandPeerMacroRequest>(swift::Evaluator&, swift::ExpandPeerMacroRequest, swift::ExpandPeerMacroRequest::OutputType)::'lambda'()) + 328
30 swift-frontend 0x00000001043e98d8 computeLoweredProperties(swift::NominalTypeDecl*, swift::IterableDeclContext*, (anonymous namespace)::LoweredPropertiesReason) + 800
31 swift-frontend 0x00000001043e81f4 swift::StoredPropertiesRequest::evaluate(swift::Evaluator&, swift::NominalTypeDecl*) const + 348
32 swift-frontend 0x000000010478cf88 swift::StoredPropertiesRequest::OutputType swift::Evaluator::getResultCached<swift::StoredPropertiesRequest, swift::StoredPropertiesRequest::OutputType swift::evaluateOrDefault<swift::StoredPropertiesRequest>(swift::Evaluator&, swift::StoredPropertiesRequest, swift::StoredPropertiesRequest::OutputType)::'lambda'(), (void*)0>(swift::StoredPropertiesRequest const&, swift::StoredPropertiesRequest::OutputType swift::evaluateOrDefault<swift::StoredPropertiesRequest>(swift::Evaluator&, swift::StoredPropertiesRequest, swift::StoredPropertiesRequest::OutputType)::'lambda'()) + 1268
33 swift-frontend 0x0000000104344b30 (anonymous namespace)::DeclChecker::visit(swift::Decl*) + 3452
34 swift-frontend 0x0000000104343da4 swift::TypeChecker::typeCheckDecl(swift::Decl*) + 152
35 swift-frontend 0x000000010442b01c swift::TypeCheckSourceFileRequest::evaluate(swift::Evaluator&, swift::SourceFile*) const + 660
36 swift-frontend 0x0000000104432680 swift::TypeCheckSourceFileRequest::OutputType swift::Evaluator::getResultUncached<swift::TypeCheckSourceFileRequest, swift::TypeCheckSourceFileRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckSourceFileRequest>(swift::Evaluator&, swift::TypeCheckSourceFileRequest, swift::TypeCheckSourceFileRequest::OutputType)::'lambda'()>(swift::TypeCheckSourceFileRequest const&, swift::TypeCheckSourceFileRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckSourceFileRequest>(swift::Evaluator&, swift::TypeCheckSourceFileRequest, swift::TypeCheckSourceFileRequest::OutputType)::'lambda'()) + 620
37 swift-frontend 0x000000010442ad6c swift::performTypeChecking(swift::SourceFile&) + 328
38 swift-frontend 0x0000000103347e00 swift::CompilerInstance::performSema() + 260
39 swift-frontend 0x0000000102f74df0 performCompile(swift::CompilerInstance&, int&, swift::FrontendObserver*) + 1532
40 swift-frontend 0x0000000102f73bb4 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 3572
41 swift-frontend 0x0000000102efaa5c swift::mainEntry(int, char const**) + 3680
42 dyld 0x000000019f3f6b98 start + 6076
Command SwiftCompile failed with a nonzero exit code
Command SwiftCompile failed with a nonzero exit code
Build failed 2025-05-23, 11:45 PM 45.3 seconds
Expected behavior
The compiler should successfully parse the closure within the enum value.
Environment
swift 6.0.3
Additional information
No response