Closed JaviSoto closed 8 months ago
I should note this also crashes in the release version of Xcode 15.2 / Swift 5.9
I could only get the bigger one to crash with a 4-day old dev compiler, and I ended up reducing it to https://github.com/apple/swift/issues/69232#issuecomment-1768242481 with this same stack trace. Looks like a dupe. 11ef6e58d869783
Assertion failed: (!tupleTy.containsPackExpansionType() && "can't extract elements from tuples containing pack expansions " "right now"), function extractElements, file RValue.cpp, line 713.
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Stack dump:
0. Program arguments: /Users/mac/Desktop/swift-project/build/Ninja-RelWithDebInfoAssert+swift-DebugAssert/swift-macosx-x86_64/bin/swift-frontend -frontend -emit-ir -primary-file /Users/mac/Desktop/test.swift -target x86_64-apple-darwin23.0.0 -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -color-diagnostics -external-plugin-path /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/swift/host/plugins#/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/bin/swift-plugin-server -external-plugin-path /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/local/lib/swift/host/plugins#/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/bin/swift-plugin-server -external-plugin-path /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins#/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server -external-plugin-path /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/local/lib/swift/host/plugins#/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server -plugin-path /Users/mac/Desktop/swift-project/build/Ninja-RelWithDebInfoAssert+swift-DebugAssert/swift-macosx-x86_64/lib/swift/host/plugins -plugin-path /Users/mac/Desktop/swift-project/build/Ninja-RelWithDebInfoAssert+swift-DebugAssert/swift-macosx-x86_64/local/lib/swift/host/plugins -target-sdk-version 14.0 -dwarf-version=4 -module-name test -o -
1. Swift version 5.11-dev (LLVM 6119d0e182a1003, Swift 11ef6e58d869783)
2. Compiling with the current language version
3. While evaluating request ASTLoweringRequest(Lowering AST to SIL for file "/Users/mac/Desktop/test.swift")
4. While silgen emitValueConstructor SIL function "@$s4test17EnvironmentReaderV_7contentACyxxQp_QPq_Gs7KeyPathCy7SwiftUI0B6ValuesVxGxQp_t_q_xxQp_t_tctcfC".
for 'init(_:content:)' (at /Users/mac/Desktop/test.swift:170:10)
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 0x0000000113c70298 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 40
1 swift-frontend 0x0000000113c6e6e5 llvm::sys::RunSignalHandlers() + 85
2 swift-frontend 0x0000000113c708ee SignalHandler(int) + 270
3 libsystem_platform.dylib 0x00007ff81bbae37d _sigtramp + 29
4 swift-frontend 0x000000010b7361c2 llvm::isa_impl_wrap<swift::VarDecl, swift::ValueDecl* const, swift::ValueDecl const*>::doit(swift::ValueDecl* const&) + 34
5 libsystem_c.dylib 0x00007ff81ba9fa4d abort + 126
6 libsystem_c.dylib 0x00007ff81ba9ed60 err + 0
7 swift-frontend 0x000000010c1ceb2d swift::Lowering::RValue::extractElements(llvm::SmallVectorImpl<swift::Lowering::RValue>&) && + 525
8 swift-frontend 0x000000010c1a4690 swift::Lowering::ArgumentSourceExpansion::ArgumentSourceExpansion(swift::Lowering::SILGenFunction&, swift::Lowering::ArgumentSource&&, bool) + 576
9 swift-frontend 0x000000010c1a4974 swift::Lowering::ArgumentSourceExpansion::ArgumentSourceExpansion(swift::Lowering::SILGenFunction&, swift::Lowering::ArgumentSource&&, bool) + 52
10 swift-frontend 0x000000010c24292f (anonymous namespace)::ArgEmitter::emitExpanded(swift::Lowering::ArgumentSource&&, swift::Lowering::AbstractionPattern) + 399
11 swift-frontend 0x000000010c23fea4 (anonymous namespace)::ArgEmitter::emit(swift::Lowering::ArgumentSource&&, swift::Lowering::AbstractionPattern, std::__1::optional<swift::AnyFunctionType::Param>) + 212
12 swift-frontend 0x000000010c22a619 (anonymous namespace)::ArgEmitter::emitSingleArg(swift::Lowering::ArgumentSource&&, swift::Lowering::AbstractionPattern, std::__1::optional<swift::AnyFunctionType::Param>) + 473
13 swift-frontend 0x000000010c239e9f (anonymous namespace)::ArgEmitter::emitPreparedArgs(swift::Lowering::PreparedArguments&&, swift::Lowering::AbstractionPattern) + 447
14 swift-frontend 0x000000010c266051 (anonymous namespace)::CallSite::emit(swift::Lowering::SILGenFunction&, swift::Lowering::AbstractionPattern, swift::CanTypeWrapper<swift::SILFunctionType>, (anonymous namespace)::ParamLowering&, llvm::SmallVectorImpl<swift::Lowering::ManagedValue>&, llvm::SmallVectorImpl<(anonymous namespace)::DelayedArgument>&, swift::ForeignInfo const&) && + 481
15 swift-frontend 0x000000010c264f66 (anonymous namespace)::CallEmission::emitArgumentsForNormalApply(swift::Lowering::AbstractionPattern, swift::CanTypeWrapper<swift::SILFunctionType>, swift::ForeignInfo const&, llvm::SmallVectorImpl<swift::Lowering::ManagedValue>&, std::__1::optional<swift::SILLocation>&) + 1574
16 swift-frontend 0x000000010c264244 (anonymous namespace)::CallEmission::applyNormalCall(swift::Lowering::SGFContext) + 1108
17 swift-frontend 0x000000010c262a0b (anonymous namespace)::CallEmission::applyFirstLevelCallee(swift::Lowering::SGFContext) + 219
18 swift-frontend 0x000000010c22d5fe (anonymous namespace)::CallEmission::apply(swift::Lowering::SGFContext) + 94
19 swift-frontend 0x000000010c22cf82 swift::Lowering::SILGenFunction::emitApplyExpr(swift::ApplyExpr*, swift::Lowering::SGFContext) + 130
20 swift-frontend 0x000000010c3493d9 (anonymous namespace)::RValueEmitter::visitApplyExpr(swift::ApplyExpr*, swift::Lowering::SGFContext) + 73
21 swift-frontend 0x000000010c3358d6 swift::ASTVisitor<(anonymous namespace)::RValueEmitter, swift::Lowering::RValue, void, void, void, void, void, swift::Lowering::SGFContext>::visitCallExpr(swift::CallExpr*, swift::Lowering::SGFContext) + 70
22 swift-frontend 0x000000010c31de34 swift::ASTVisitor<(anonymous namespace)::RValueEmitter, swift::Lowering::RValue, void, void, void, void, void, swift::Lowering::SGFContext>::visit(swift::Expr*, swift::Lowering::SGFContext) + 3156
23 swift-frontend 0x000000010c30d911 swift::Lowering::SILGenFunction::emitRValue(swift::Expr*, swift::Lowering::SGFContext) + 209
24 swift-frontend 0x000000010c1a13ca swift::Lowering::ArgumentSource::getAsRValue(swift::Lowering::SILGenFunction&, swift::Lowering::SGFContext) && + 218
25 swift-frontend 0x000000010c3a2a91 swift::Lowering::SILGenFunction::emitAssignToLValue(swift::SILLocation, swift::Lowering::ArgumentSource&&, swift::Lowering::LValue&&) + 561
26 swift-frontend 0x000000010c34f0a0 emitSimpleAssignment(swift::Lowering::SILGenFunction&, swift::SILLocation, swift::Expr*, swift::Expr*) + 1664
27 swift-frontend 0x000000010c33d7ef (anonymous namespace)::RValueEmitter::visitAssignExpr(swift::AssignExpr*, swift::Lowering::SGFContext) + 207
28 swift-frontend 0x000000010c31e733 swift::ASTVisitor<(anonymous namespace)::RValueEmitter, swift::Lowering::RValue, void, void, void, void, void, swift::Lowering::SGFContext>::visit(swift::Expr*, swift::Lowering::SGFContext) + 5459
29 swift-frontend 0x000000010c30d911 swift::Lowering::SILGenFunction::emitRValue(swift::Expr*, swift::Lowering::SGFContext) + 209
30 swift-frontend 0x000000010c313404 swift::Lowering::SILGenFunction::emitIgnoredExpr(swift::Expr*) + 2020
31 swift-frontend 0x000000010c4654ef (anonymous namespace)::StmtEmitter::visitBraceStmt(swift::BraceStmt*) + 2271
32 swift-frontend 0x000000010c45f241 swift::ASTVisitor<(anonymous namespace)::StmtEmitter, void, void, void, void, void, void>::visit(swift::Stmt*) + 81
33 swift-frontend 0x000000010c45f1ba swift::Lowering::SILGenFunction::emitStmt(swift::Stmt*) + 42
34 swift-frontend 0x000000010c2b1fb6 swift::Lowering::SILGenFunction::emitValueConstructor(swift::ConstructorDecl*) + 5190
35 swift-frontend 0x000000010c1f7a14 swift::Lowering::SILGenModule::emitFunctionDefinition(swift::SILDeclRef, swift::SILFunction*) + 5492
36 swift-frontend 0x000000010c1fac15 swift::Lowering::SILGenModule::emitOrDelayFunction(swift::SILDeclRef) + 533
37 swift-frontend 0x000000010c1fc5ed swift::Lowering::SILGenModule::emitConstructor(swift::ConstructorDecl*) + 669
38 swift-frontend 0x000000010c493e84 (anonymous namespace)::SILGenType::visitConstructorDecl(swift::ConstructorDecl*) + 36
39 swift-frontend 0x000000010c493756 swift::ASTVisitor<(anonymous namespace)::SILGenType, void, void, void, void, void, void>::visit(swift::Decl*) + 838
40 swift-frontend 0x000000010c492e43 (anonymous namespace)::SILGenType::visit(swift::Decl*) + 67
41 swift-frontend 0x000000010c4882a8 (anonymous namespace)::SILGenType::emitType() + 200
42 swift-frontend 0x000000010c4881aa swift::Lowering::SILGenModule::visitNominalTypeDecl(swift::NominalTypeDecl*) + 42
43 swift-frontend 0x000000010c21892d swift::ASTVisitor<swift::Lowering::SILGenModule, void, void, void, void, void, void>::visitStructDecl(swift::StructDecl*) + 29
44 swift-frontend 0x000000010c1f5c42 swift::ASTVisitor<swift::Lowering::SILGenModule, void, void, void, void, void, void>::visit(swift::Decl*) + 194
45 swift-frontend 0x000000010c1f5b70 swift::Lowering::SILGenModule::visit(swift::Decl*) + 64
46 swift-frontend 0x000000010c1ffe24 (anonymous namespace)::SILGenModuleRAII::emitSourceFile(swift::SourceFile*) + 340
47 swift-frontend 0x000000010c1ff9a4 swift::ASTLoweringRequest::evaluate(swift::Evaluator&, swift::ASTLoweringDescriptor) const + 884
48 swift-frontend 0x000000010c45e36e std::__1::unique_ptr<swift::SILModule, std::__1::default_delete<swift::SILModule>> swift::SimpleRequest<swift::ASTLoweringRequest, std::__1::unique_ptr<swift::SILModule, std::__1::default_delete<swift::SILModule>> (swift::ASTLoweringDescriptor), (swift::RequestFlags)9>::callDerived<0ul>(swift::Evaluator&, std::__1::integer_sequence<unsigned long, 0ul>) const + 142
49 swift-frontend 0x000000010c45e288 swift::SimpleRequest<swift::ASTLoweringRequest, std::__1::unique_ptr<swift::SILModule, std::__1::default_delete<swift::SILModule>> (swift::ASTLoweringDescriptor), (swift::RequestFlags)9>::evaluateRequest(swift::ASTLoweringRequest const&, swift::Evaluator&) + 40
50 swift-frontend 0x000000010c21bcb8 swift::ASTLoweringRequest::OutputType swift::Evaluator::getResultUncached<swift::ASTLoweringRequest, swift::ASTLoweringRequest::OutputType swift::evaluateOrFatal<swift::ASTLoweringRequest>(swift::Evaluator&, swift::ASTLoweringRequest)::'lambda'()>(swift::ASTLoweringRequest const&, swift::ASTLoweringRequest::OutputType swift::evaluateOrFatal<swift::ASTLoweringRequest>(swift::Evaluator&, swift::ASTLoweringRequest)::'lambda'()) + 264
51 swift-frontend 0x000000010c21bb98 swift::ASTLoweringRequest::OutputType swift::Evaluator::operator()<swift::ASTLoweringRequest, swift::ASTLoweringRequest::OutputType swift::evaluateOrFatal<swift::ASTLoweringRequest>(swift::Evaluator&, swift::ASTLoweringRequest)::'lambda'(), (void*)0>(swift::ASTLoweringRequest const&, swift::ASTLoweringRequest::OutputType swift::evaluateOrFatal<swift::ASTLoweringRequest>(swift::Evaluator&, swift::ASTLoweringRequest)::'lambda'()) + 40
52 swift-frontend 0x000000010c2005e4 swift::ASTLoweringRequest::OutputType swift::evaluateOrFatal<swift::ASTLoweringRequest>(swift::Evaluator&, swift::ASTLoweringRequest) + 36
53 swift-frontend 0x000000010c200920 swift::performASTLowering(swift::FileUnit&, swift::Lowering::TypeConverter&, swift::SILOptions const&, swift::IRGenOptions const*) + 256
54 swift-frontend 0x000000010b469b0b swift::performCompileStepsPostSema(swift::CompilerInstance&, int&, swift::FrontendObserver*) + 779
55 swift-frontend 0x000000010b49aef3 performAction(swift::CompilerInstance&, int&, swift::FrontendObserver*)::$_29::operator()(swift::CompilerInstance&) const + 147
56 swift-frontend 0x000000010b49ae4d bool llvm::function_ref<bool (swift::CompilerInstance&)>::callback_fn<performAction(swift::CompilerInstance&, int&, swift::FrontendObserver*)::$_29>(long, swift::CompilerInstance&) + 29
57 swift-frontend 0x000000010b49a211 llvm::function_ref<bool (swift::CompilerInstance&)>::operator()(swift::CompilerInstance&) const + 33
58 swift-frontend 0x000000010b499138 withSemanticAnalysis(swift::CompilerInstance&, swift::FrontendObserver*, llvm::function_ref<bool (swift::CompilerInstance&)>, bool) + 392
59 swift-frontend 0x000000010b491835 performAction(swift::CompilerInstance&, int&, swift::FrontendObserver*) + 1349
60 swift-frontend 0x000000010b46cdd6 performCompile(swift::CompilerInstance&, int&, swift::FrontendObserver*) + 262
61 swift-frontend 0x000000010b46b7bd swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2813
62 swift-frontend 0x000000010b3198fe run_driver(llvm::StringRef, llvm::ArrayRef<char const*>, llvm::ArrayRef<char const*>) + 382
63 swift-frontend 0x000000010b318d27 swift::mainEntry(int, char const**) + 1543
64 swift-frontend 0x000000010b3182d2 main + 34
65 dyld 0x00007ff81b7f83a6 start + 1942
Abort trap: 6
Duplicate of #66392
Description
I was playing around with Variadic Generics to make a SwiftUI API, and I kept hitting crashes. I ended up reducing the repro case to very little code which still crashes.
Reproduction
The original code of what I was trying to do is this (I'm not sure if it's correct because I didn't get a chance to test it yet):
That crashes, but so does this:
If you remove the
: View
conformance it does compile, which is odd.Stack dump
I'm not seeing a stack dump in Xcode 15.3 Beta 3, for some reason, just this output:
Expected behavior
Code either fails to compile with a diagnostic, or compiles correctly (I'm not sure which one is expected at this point since this is my first time using variadic generics and I may very well be doing something wrong)
Environment
Xcode 15.3 Beta 3 Apple Swift version 5.10 (swiftlang-5.10.0.13 clang-1500.3.9.4)
Additional information
No response