Skip to content

Compiler crash when writing "try" keyword before instance variable in closure #85034

@nickasd

Description

@nickasd

Description

Xcode fails to compile with an error

Command SwiftCompile failed with a nonzero exit code

I assume this is a compiler crash; I'd appreciate if anyone can confirm this. In Console.app I have crash reports for both swift-frontend and SourceKitService: do any of them, or both, signal a compiler crash? The stack dump below is from the latest SourceKitService crash report.

Reproduction

let asd = Asd()
let _ = Dictionary(uniqueKeysWithValues: [0].map({ ($0, try asd.asd )}))

class Asd {
    var asd = 0
}

Stack dump

0     sourcekitdInProc              	       0x11ae7127c swift::constraints::ConstraintSystem::coerceToRValue(swift::Expr*) + 4
1     sourcekitdInProc              	       0x11ae779c0 (anonymous namespace)::ExprRewriter::coerceToType(swift::Expr*, swift::Type, swift::constraints::ConstraintLocatorBuilder) + 6932
2     sourcekitdInProc              	       0x11ae768b8 (anonymous namespace)::ExprRewriter::coerceToType(swift::Expr*, swift::Type, swift::constraints::ConstraintLocatorBuilder) + 2572
-------- RECURSION LEVEL 12173
3     sourcekitdInProc              	       0x11ae768b8 (anonymous namespace)::ExprRewriter::coerceToType(swift::Expr*, swift::Type, swift::constraints::ConstraintLocatorBuilder) + 2572
-------- RECURSION LEVEL 12172
4     sourcekitdInProc              	       0x11ae768b8 (anonymous namespace)::ExprRewriter::coerceToType(swift::Expr*, swift::Type, swift::constraints::ConstraintLocatorBuilder) + 2572
-------- RECURSION LEVEL 12171
--------
-------- ELIDED 12167 LEVELS OF RECURSION THROUGH 0x11ae768b8 (anonymous namespace)::ExprRewriter::coerceToType(swift::Expr*, swift::Type, swift::constraints::ConstraintLocatorBuilder) + 2572
--------
12172 sourcekitdInProc              	       0x11ae768b8 (anonymous namespace)::ExprRewriter::coerceToType(swift::Expr*, swift::Type, swift::constraints::ConstraintLocatorBuilder) + 2572
-------- RECURSION LEVEL 3
12173 sourcekitdInProc              	       0x11ae768b8 (anonymous namespace)::ExprRewriter::coerceToType(swift::Expr*, swift::Type, swift::constraints::ConstraintLocatorBuilder) + 2572
-------- RECURSION LEVEL 2
12174 sourcekitdInProc              	       0x11ae768b8 (anonymous namespace)::ExprRewriter::coerceToType(swift::Expr*, swift::Type, swift::constraints::ConstraintLocatorBuilder) + 2572
-------- RECURSION LEVEL 1
12175 sourcekitdInProc              	       0x11ae74a3c (anonymous namespace)::ExprWalker::rewriteTarget(swift::constraints::SyntacticElementTarget) + 7400
12176 sourcekitdInProc              	       0x11aec6314 (anonymous namespace)::SyntacticElementSolutionApplication::visitReturnStmt(swift::ReturnStmt*) + 1108
12177 sourcekitdInProc              	       0x11aec5d04 swift::ASTVisitor<(anonymous namespace)::SyntacticElementSolutionApplication, void, swift::ASTNode, void, void, void, void>::visit(swift::Stmt*) + 5200
12178 sourcekitdInProc              	       0x11aec2bbc swift::constraints::ConstraintSystem::applySolution(swift::AnyFunctionRef, swift::constraints::SyntacticElementTargetRewriter&) + 2664
12179 sourcekitdInProc              	       0x11ae791e0 (anonymous namespace)::ExprWalker::walkToExprPre(swift::Expr*) + 80
12180 sourcekitdInProc              	       0x11b6de0d4 (anonymous namespace)::Traversal::visit(swift::ArgumentList*) + 220
12181 sourcekitdInProc              	       0x11b6daa80 (anonymous namespace)::Traversal::visitApplyExpr(swift::ApplyExpr*) + 196
12182 sourcekitdInProc              	       0x11b6d8060 (anonymous namespace)::Traversal::visit(swift::Expr*) + 84
12183 sourcekitdInProc              	       0x11b6de0fc (anonymous namespace)::Traversal::visit(swift::ArgumentList*) + 260
12184 sourcekitdInProc              	       0x11b6daa80 (anonymous namespace)::Traversal::visitApplyExpr(swift::ApplyExpr*) + 196
12185 sourcekitdInProc              	       0x11b6d8060 (anonymous namespace)::Traversal::visit(swift::Expr*) + 84
12186 sourcekitdInProc              	       0x11ae73378 (anonymous namespace)::ExprWalker::rewriteTarget(swift::constraints::SyntacticElementTarget) + 1572
12187 sourcekitdInProc              	       0x11ae72c58 swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::constraints::SyntacticElementTarget) + 6560
12188 sourcekitdInProc              	       0x11b169244 swift::TypeChecker::typeCheckTarget(swift::constraints::SyntacticElementTarget&, swift::optionset::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::DiagnosticTransaction*) + 792
12189 sourcekitdInProc              	       0x11b168e08 swift::TypeChecker::typeCheckExpression(swift::constraints::SyntacticElementTarget&, swift::optionset::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::DiagnosticTransaction*) + 420
12190 sourcekitdInProc              	       0x11b16a660 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, swift::Type, swift::PatternBindingDecl*, unsigned int, swift::optionset::OptionSet<swift::TypeCheckExprFlags, unsigned int>) + 200
12191 sourcekitdInProc              	       0x11b16a87c swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int, swift::Type, swift::optionset::OptionSet<swift::TypeCheckExprFlags, unsigned int>) + 292
12192 sourcekitdInProc              	       0x11b2894b8 swift::PatternBindingEntryRequest::evaluate(swift::Evaluator&, swift::PatternBindingDecl*, unsigned int) const + 3760
12193 sourcekitdInProc              	       0x11b7b08c4 swift::PatternBindingEntryRequest::OutputType swift::Evaluator::getResultUncached<swift::PatternBindingEntryRequest, swift::PatternBindingEntryRequest::OutputType swift::evaluateOrDefault<swift::PatternBindingEntryRequest>(swift::Evaluator&, swift::PatternBindingEntryRequest, swift::PatternBindingEntryRequest::OutputType)::'lambda'()>(swift::PatternBindingEntryRequest const&, swift::PatternBindingEntryRequest::OutputType swift::evaluateOrDefault<swift::PatternBindingEntryRequest>(swift::Evaluator&, swift::PatternBindingEntryRequest, swift::PatternBindingEntryRequest::OutputType)::'lambda'()) + 676
12194 sourcekitdInProc              	       0x11b770a48 swift::PatternBindingDecl::getCheckedPatternBindingEntry(unsigned int) const + 140
12195 sourcekitdInProc              	       0x11b1c5e3c (anonymous namespace)::DeclChecker::visit(swift::Decl*) + 1656
12196 sourcekitdInProc              	       0x11b279508 (anonymous namespace)::StmtChecker::typeCheckASTNode(swift::ASTNode&) + 1024
12197 sourcekitdInProc              	       0x11b27f12c swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) + 288
12198 sourcekitdInProc              	       0x11b27c78c bool (anonymous namespace)::StmtChecker::typeCheckStmt<swift::BraceStmt>(swift::BraceStmt*&) + 312
12199 sourcekitdInProc              	       0x11b27c94c swift::TypeChecker::typeCheckTopLevelCodeDecl(swift::TopLevelCodeDecl*) + 120
12200 sourcekitdInProc              	       0x11b2cf660 swift::TypeCheckPrimaryFileRequest::evaluate(swift::Evaluator&, swift::SourceFile*) const + 696
12201 sourcekitdInProc              	       0x11b2d6640 swift::TypeCheckPrimaryFileRequest::OutputType swift::Evaluator::getResultUncached<swift::TypeCheckPrimaryFileRequest, swift::TypeCheckPrimaryFileRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckPrimaryFileRequest>(swift::Evaluator&, swift::TypeCheckPrimaryFileRequest, swift::TypeCheckPrimaryFileRequest::OutputType)::'lambda'()>(swift::TypeCheckPrimaryFileRequest const&, swift::TypeCheckPrimaryFileRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckPrimaryFileRequest>(swift::Evaluator&, swift::TypeCheckPrimaryFileRequest, swift::TypeCheckPrimaryFileRequest::OutputType)::'lambda'()) + 672
12202 sourcekitdInProc              	       0x119fca544 bool llvm::function_ref<bool (swift::SourceFile&)>::callback_fn<swift::CompilerInstance::performSema()::$_0>(long, swift::SourceFile&) + 156
12203 sourcekitdInProc              	       0x119fc4330 swift::CompilerInstance::forEachFileToTypeCheck(llvm::function_ref<bool (swift::SourceFile&)>) + 176
12204 sourcekitdInProc              	       0x119fc41c4 swift::CompilerInstance::performSema() + 120
12205 sourcekitdInProc              	       0x119cfb880 void SourceKit::WorkQueue::DispatchData::callAndDelete<(anonymous namespace)::ASTBuildOperation::schedule(SourceKit::WorkQueue)::$_0>(void*) + 3204
12206 libdispatch.dylib             	       0x190082ac4 _dispatch_client_callout + 16
12207 libdispatch.dylib             	       0x19006dc34 _dispatch_block_invoke_direct + 284
12208 sourcekitdInProc              	       0x11f143a6c executeBlock(void*) + 28
12209 sourcekitdInProc              	       0x11f143a9c void* llvm::thread::ThreadProxy<std::__1::tuple<void (*)(void*), void*>>(void*) + 24
12210 libsystem_pthread.dylib       	       0x190224c08 _pthread_start + 136
12211 libsystem_pthread.dylib       	       0x19021fba8 thread_start + 8

Expected behavior

A meaningful error message.

Environment

swift-driver version: 1.127.14.1 Apple Swift version 6.2 (swiftlang-6.2.0.19.9 clang-1700.3.19.1)
Target: arm64-apple-macosx26.0

Additional information

No response

Metadata

Metadata

Assignees

Labels

compilerThe Swift compiler itselfcrashBug: A crash, i.e., an abnormal termination of softwaretype checkerArea → compiler: Semantic analysis

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions