Open
Description
Description
No response
Reproduction
protocol P {
associatedtype A where A == Undefined
func foo(_: A)
}
func test(p: any P) {
_ = p.foo
}
Stack dump
Unhandled coercion:
(dependent_member_type assoc_type="test.(file).P.A@/Users/anthonylatsis/Desktop/test.swift:381:18"
(base=existential_type
(protocol_type decl="test.(file).P@/Users/anthonylatsis/Desktop/test.swift:380:10")))
(dependent_member_type assoc_type="test.(file).P.A@/Users/anthonylatsis/Desktop/test.swift:381:18"
(base=opened_archetype_type address=0x14e170000 conforms_to="test.(file).P@/Users/anthonylatsis/Desktop/test.swift:380:10" opened_existential_id="F8EFB1A8-ABED-11EF-AA89-2E7849F3693B"
(interface_type=generic_type_param_type depth=0 index=0 param_kind=type)
(opened_existential=existential_type
(protocol_type decl="test.(file).P@/Users/anthonylatsis/Desktop/test.swift:380:10"))))
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Stack dump:
0. Program arguments: bin/swift-frontend -debug-diagnostic-names /Users/anthonylatsis/Desktop/test.swift -typecheck
1. Swift version 6.1-dev (LLVM 393ce0eca916d0f, Swift 26e888e45e6ede4)
2. Compiling with effective version 5.10
3. While evaluating request TypeCheckSourceFileRequest(source_file "/Users/anthonylatsis/Desktop/test.swift")
4. While evaluating request TypeCheckFunctionBodyRequest(test.(file).test(p:)@/Users/anthonylatsis/Desktop/test.swift:384:6)
5. While type-checking statement at [/Users/anthonylatsis/Desktop/test.swift:384:21 - line:386:1] RangeText="{
_ = p.foo
"
6. While type-checking expression at [/Users/anthonylatsis/Desktop/test.swift:385:3 - line:385:9] RangeText="_ = p."
7. While type-checking-target starting at /Users/anthonylatsis/Desktop/test.swift:385:3
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 0x000000010d7e11c0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1 swift-frontend 0x000000010d7df704 llvm::sys::RunSignalHandlers() + 112
2 swift-frontend 0x000000010d7e1804 SignalHandler(int) + 292
3 libsystem_platform.dylib 0x00000001814b16a4 _sigtramp + 56
4 libsystem_pthread.dylib 0x00000001814788c8 pthread_kill + 296
5 libsystem_c.dylib 0x00000001813829e0 abort + 124
6 swift-frontend 0x00000001076c849c (anonymous namespace)::ExprRewriter::coerceToType(swift::Expr*, swift::Type, swift::constraints::ConstraintLocatorBuilder) + 14016
7 swift-frontend 0x00000001076d34e0 (anonymous namespace)::ExprRewriter::buildSingleCurryThunkBodyCall(swift::Expr*, swift::Expr*, swift::DeclContext*, swift::ParameterList*, swift::constraints::ConstraintLocatorBuilder) + 1056
8 swift-frontend 0x00000001076d287c (anonymous namespace)::ExprRewriter::buildSingleCurryThunk(swift::Expr*, swift::Expr*, swift::DeclContext*, swift::FunctionType*, swift::constraints::ConstraintLocatorBuilder) + 1032
9 swift-frontend 0x00000001076fd490 (anonymous namespace)::ExprRewriter::buildDoubleCurryThunk(swift::DeclRefExpr*, swift::ValueDecl*, swift::FunctionType*, swift::constraints::ConstraintLocatorBuilder, swift::DeclNameLoc, bool) + 1748
10 swift-frontend 0x00000001076fa2b4 (anonymous namespace)::ExprRewriter::buildMemberRef(swift::Expr*, swift::SourceLoc, swift::constraints::SelectedOverload, swift::DeclNameLoc, swift::constraints::ConstraintLocatorBuilder, swift::constraints::ConstraintLocatorBuilder, bool, swift::AccessSemantics) + 7340
11 swift-frontend 0x000000010770994c (anonymous namespace)::ExprRewriter::applyMemberRefExpr(swift::Expr*, swift::Expr*, swift::SourceLoc, swift::DeclNameLoc, bool) + 1296
12 swift-frontend 0x00000001076dd1bc (anonymous namespace)::ExprRewriter::visitUnresolvedDotExpr(swift::UnresolvedDotExpr*) + 120
13 swift-frontend 0x00000001076d9f94 swift::ASTVisitor<(anonymous namespace)::ExprRewriter, swift::Expr*, void, void, void, void, void>::visit(swift::Expr*) + 584
14 swift-frontend 0x00000001076d9cb0 (anonymous namespace)::ExprRewriter::walkToExprPost(swift::Expr*) + 36
15 swift-frontend 0x00000001076d1a2c (anonymous namespace)::ExprWalker::walkToExprPost(swift::Expr*) + 40
16 swift-frontend 0x0000000108766608 (anonymous namespace)::Traversal::doIt(swift::Expr*)::'lambda0'(swift::Expr*)::operator()(swift::Expr*) const + 48
17 swift-frontend 0x00000001087665cc swift::ASTWalker::PostWalkResult<swift::Expr*> llvm::function_ref<swift::ASTWalker::PostWalkResult<swift::Expr*> (swift::Expr*)>::callback_fn<(anonymous namespace)::Traversal::doIt(swift::Expr*)::'lambda0'(swift::Expr*)>(long, swift::Expr*) + 32
18 swift-frontend 0x0000000108760b58 llvm::function_ref<swift::ASTWalker::PostWalkResult<swift::Expr*> (swift::Expr*)>::operator()(swift::Expr*) const + 40
19 swift-frontend 0x0000000108760940 swift::Expr* (anonymous namespace)::Traversal::traverse<swift::Expr>(swift::ASTWalker::PreWalkResult<swift::Expr*>, llvm::function_ref<swift::Expr* (swift::Expr*)>, llvm::function_ref<swift::ASTWalker::PostWalkResult<swift::Expr*> (swift::Expr*)>) + 384
20 swift-frontend 0x000000010875fd4c (anonymous namespace)::Traversal::doIt(swift::Expr*) + 144
21 swift-frontend 0x000000010876448c (anonymous namespace)::Traversal::visitAssignExpr(swift::AssignExpr*) + 172
22 swift-frontend 0x0000000108761730 swift::ASTVisitor<(anonymous namespace)::Traversal, swift::Expr*, swift::Stmt*, bool, swift::Pattern*, bool, void>::visit(swift::Expr*) + 2368
23 swift-frontend 0x0000000108760d94 (anonymous namespace)::Traversal::visit(swift::Expr*) + 60
24 swift-frontend 0x0000000108760d4c (anonymous namespace)::Traversal::doIt(swift::Expr*)::'lambda'(swift::Expr*)::operator()(swift::Expr*) const + 36
25 swift-frontend 0x0000000108760d1c swift::Expr* llvm::function_ref<swift::Expr* (swift::Expr*)>::callback_fn<(anonymous namespace)::Traversal::doIt(swift::Expr*)::'lambda'(swift::Expr*)>(long, swift::Expr*) + 32
26 swift-frontend 0x0000000107cfbb2c llvm::function_ref<swift::Expr* (swift::Expr*)>::operator()(swift::Expr*) const + 40
27 swift-frontend 0x00000001087608e8 swift::Expr* (anonymous namespace)::Traversal::traverse<swift::Expr>(swift::ASTWalker::PreWalkResult<swift::Expr*>, llvm::function_ref<swift::Expr* (swift::Expr*)>, llvm::function_ref<swift::ASTWalker::PostWalkResult<swift::Expr*> (swift::Expr*)>) + 296
28 swift-frontend 0x000000010875fd4c (anonymous namespace)::Traversal::doIt(swift::Expr*) + 144
29 swift-frontend 0x000000010875fc7c swift::Expr::walk(swift::ASTWalker&) + 56
30 swift-frontend 0x00000001076c349c (anonymous namespace)::ExprWalker::rewriteTarget(swift::constraints::SyntacticElementTarget) + 180
31 swift-frontend 0x00000001076c30b0 swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::constraints::SyntacticElementTarget) + 664
32 swift-frontend 0x0000000107cefe90 swift::TypeChecker::typeCheckTarget(swift::constraints::SyntacticElementTarget&, swift::optionset::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::DiagnosticTransaction*) + 744
33 swift-frontend 0x0000000107cefb68 swift::TypeChecker::typeCheckExpression(swift::constraints::SyntacticElementTarget&, swift::optionset::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::DiagnosticTransaction*) + 236
34 swift-frontend 0x0000000107cef968 swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::constraints::ContextualTypeInfo, swift::optionset::OptionSet<swift::TypeCheckExprFlags, unsigned int>) + 208
35 swift-frontend 0x0000000107f8ff5c (anonymous namespace)::StmtChecker::typeCheckASTNode(swift::ASTNode&) + 348
36 swift-frontend 0x0000000107f974b4 (anonymous namespace)::StmtChecker::visitBraceStmt(swift::BraceStmt*) + 480
37 swift-frontend 0x0000000107f97014 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) + 100
38 swift-frontend 0x0000000107f9281c bool (anonymous namespace)::StmtChecker::typeCheckStmt<swift::BraceStmt>(swift::BraceStmt*&) + 156
39 swift-frontend 0x0000000107f9222c (anonymous namespace)::StmtChecker::typeCheckBody(swift::BraceStmt*&) + 36
40 swift-frontend 0x0000000107f91c44 swift::TypeCheckFunctionBodyRequest::evaluate(swift::Evaluator&, swift::AbstractFunctionDecl*) const + 1276
41 swift-frontend 0x0000000107f7ece4 swift::BraceStmt* swift::SimpleRequest<swift::TypeCheckFunctionBodyRequest, swift::BraceStmt* (swift::AbstractFunctionDecl*), (swift::RequestFlags)20>::callDerived<0ul>(swift::Evaluator&, std::__1::integer_sequence<unsigned long, 0ul>) const + 76
42 swift-frontend 0x0000000107f79294 swift::SimpleRequest<swift::TypeCheckFunctionBodyRequest, swift::BraceStmt* (swift::AbstractFunctionDecl*), (swift::RequestFlags)20>::evaluateRequest(swift::TypeCheckFunctionBodyRequest const&, swift::Evaluator&) + 32
43 swift-frontend 0x0000000108b74470 swift::TypeCheckFunctionBodyRequest::OutputType swift::Evaluator::getResultUncached<swift::TypeCheckFunctionBodyRequest, swift::TypeCheckFunctionBodyRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckFunctionBodyRequest>(swift::Evaluator&, swift::TypeCheckFunctionBodyRequest, swift::TypeCheckFunctionBodyRequest::OutputType)::'lambda'()>(swift::TypeCheckFunctionBodyRequest const&, swift::TypeCheckFunctionBodyRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckFunctionBodyRequest>(swift::Evaluator&, swift::TypeCheckFunctionBodyRequest, swift::TypeCheckFunctionBodyRequest::OutputType)::'lambda'()) + 212
44 swift-frontend 0x0000000108b74370 swift::TypeCheckFunctionBodyRequest::OutputType swift::Evaluator::getResultCached<swift::TypeCheckFunctionBodyRequest, swift::TypeCheckFunctionBodyRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckFunctionBodyRequest>(swift::Evaluator&, swift::TypeCheckFunctionBodyRequest, swift::TypeCheckFunctionBodyRequest::OutputType)::'lambda'(), (void*)0>(swift::TypeCheckFunctionBodyRequest const&, swift::TypeCheckFunctionBodyRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckFunctionBodyRequest>(swift::Evaluator&, swift::TypeCheckFunctionBodyRequest, swift::TypeCheckFunctionBodyRequest::OutputType)::'lambda'()) + 164
45 swift-frontend 0x0000000108b7427c swift::TypeCheckFunctionBodyRequest::OutputType swift::Evaluator::operator()<swift::TypeCheckFunctionBodyRequest, swift::TypeCheckFunctionBodyRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckFunctionBodyRequest>(swift::Evaluator&, swift::TypeCheckFunctionBodyRequest, swift::TypeCheckFunctionBodyRequest::OutputType)::'lambda'(), (void*)0>(swift::TypeCheckFunctionBodyRequest const&, swift::TypeCheckFunctionBodyRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckFunctionBodyRequest>(swift::Evaluator&, swift::TypeCheckFunctionBodyRequest, swift::TypeCheckFunctionBodyRequest::OutputType)::'lambda'()) + 72
46 swift-frontend 0x00000001088d2aec swift::TypeCheckFunctionBodyRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckFunctionBodyRequest>(swift::Evaluator&, swift::TypeCheckFunctionBodyRequest, swift::TypeCheckFunctionBodyRequest::OutputType) + 52
47 swift-frontend 0x00000001088d2aac swift::AbstractFunctionDecl::getTypecheckedBody() const + 84
48 swift-frontend 0x0000000108e00790 swift::SourceFile::typeCheckDelayedFunctions() + 184
49 swift-frontend 0x00000001080ad62c swift::TypeCheckSourceFileRequest::evaluate(swift::Evaluator&, swift::SourceFile*) const + 948
50 swift-frontend 0x0000000107f7fd4c std::__1::tuple<> swift::SimpleRequest<swift::TypeCheckSourceFileRequest, std::__1::tuple<> (swift::SourceFile*), (swift::RequestFlags)20>::callDerived<0ul>(swift::Evaluator&, std::__1::integer_sequence<unsigned long, 0ul>) const + 76
51 swift-frontend 0x0000000107f797cc swift::SimpleRequest<swift::TypeCheckSourceFileRequest, std::__1::tuple<> (swift::SourceFile*), (swift::RequestFlags)20>::evaluateRequest(swift::TypeCheckSourceFileRequest const&, swift::Evaluator&) + 32
52 swift-frontend 0x00000001080b0870 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'()) + 212
53 swift-frontend 0x00000001080b0784 swift::TypeCheckSourceFileRequest::OutputType swift::Evaluator::getResultCached<swift::TypeCheckSourceFileRequest, swift::TypeCheckSourceFileRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckSourceFileRequest>(swift::Evaluator&, swift::TypeCheckSourceFileRequest, swift::TypeCheckSourceFileRequest::OutputType)::'lambda'(), (void*)0>(swift::TypeCheckSourceFileRequest const&, swift::TypeCheckSourceFileRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckSourceFileRequest>(swift::Evaluator&, swift::TypeCheckSourceFileRequest, swift::TypeCheckSourceFileRequest::OutputType)::'lambda'()) + 160
54 swift-frontend 0x00000001080b069c swift::TypeCheckSourceFileRequest::OutputType swift::Evaluator::operator()<swift::TypeCheckSourceFileRequest, swift::TypeCheckSourceFileRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckSourceFileRequest>(swift::Evaluator&, swift::TypeCheckSourceFileRequest, swift::TypeCheckSourceFileRequest::OutputType)::'lambda'(), (void*)0>(swift::TypeCheckSourceFileRequest const&, swift::TypeCheckSourceFileRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckSourceFileRequest>(swift::Evaluator&, swift::TypeCheckSourceFileRequest, swift::TypeCheckSourceFileRequest::OutputType)::'lambda'()) + 80
55 swift-frontend 0x00000001080ad238 swift::TypeCheckSourceFileRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckSourceFileRequest>(swift::Evaluator&, swift::TypeCheckSourceFileRequest, swift::TypeCheckSourceFileRequest::OutputType) + 44
56 swift-frontend 0x00000001080ad1fc swift::performTypeChecking(swift::SourceFile&) + 100
57 swift-frontend 0x000000010557e418 swift::CompilerInstance::performSema()::$_0::operator()(swift::SourceFile&) const + 28
58 swift-frontend 0x000000010557e3ec bool llvm::function_ref<bool (swift::SourceFile&)>::callback_fn<swift::CompilerInstance::performSema()::$_0>(long, swift::SourceFile&) + 32
59 swift-frontend 0x0000000105557690 llvm::function_ref<bool (swift::SourceFile&)>::operator()(swift::SourceFile&) const + 40
60 swift-frontend 0x00000001055573c0 swift::CompilerInstance::forEachFileToTypeCheck(llvm::function_ref<bool (swift::SourceFile&)>) + 184
61 swift-frontend 0x00000001055572ec swift::CompilerInstance::performSema() + 116
62 swift-frontend 0x00000001050acdec withSemanticAnalysis(swift::CompilerInstance&, swift::FrontendObserver*, llvm::function_ref<bool (swift::CompilerInstance&)>, bool) + 160
63 swift-frontend 0x00000001050a7550 performAction(swift::CompilerInstance&, int&, swift::FrontendObserver*) + 988
64 swift-frontend 0x000000010508edf0 performCompile(swift::CompilerInstance&, int&, swift::FrontendObserver*) + 256
65 swift-frontend 0x000000010508e224 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 1880
66 swift-frontend 0x0000000104d1f1cc run_driver(llvm::StringRef, llvm::ArrayRef<char const*>, llvm::ArrayRef<char const*>) + 1720
67 swift-frontend 0x0000000104d1e06c swift::mainEntry(int, char const**) + 1160
68 swift-frontend 0x0000000104d1d7f0 main + 36
69 dyld 0x00000001810e569c start + 4800
Abort trap: 6
Expected behavior
Error.
Environment
Swift version 6.1-dev (LLVM 393ce0eca916d0f, Swift 26e888e)
Additional information
No response
Metadata
Metadata
Assignees
Labels
A deviation from expected or documented behavior. Also: expected but undesirable behavior.The Swift compiler itselfBug: A crash, i.e., an abnormal termination of softwareFeature → existentials: existential member accessesFeature: values of types like `any Collection`, `Any` and `AnyObject`; type-erased valuesFeature: expressionsFeature: function references as in 'foo(bar:baz:)'Area → compiler: Semantic analysisFeature: types