Open
Description
With this code:
class Store<State> {
var currentState: State { fatalError() }
}
class CompositeStore<CompositeState, each State, OriginalState>: Store<CompositeState> {
let store: (repeat Store<each State>)
let combine: ((repeat (each State)) -> CompositeState)
override var currentState: CompositeState {
return self.combine(repeat (each store).currentState)
}
func foo(_ all: (repeat Store<each State>)) {}
init(store1: (repeat Store<each State>),
combine: @escaping (repeat (each State)) -> CompositeState)
{
self.store = store1
self.combine = combine
foo(store1)
}
}
The attempted call to foo(store1)
results in a crash:
error: compile command failed due to signal 6 (use -v to see invocation)
Assertion failed: (!tupleTy.containsPackExpansionType() && "can't extract elements from tuples containing pack expansions " "right now"), function extractElements, file RValue.cpp, line 709.
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Stack dump:
0. Program arguments: /Users/ksmiley/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2023-06-05-a.xctoolchain/usr/bin/swift-frontend -frontend -c -primary-file /tmp/foo.swift -target arm64-apple-macosx13.0 -Xllvm -aarch64-use-tbi -enable-objc-interop -sdk /Applications/Xcode-15.0.0-beta1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk -color-diagnostics -new-driver-path /Users/ksmiley/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2023-06-05-a.xctoolchain/usr/bin/swift-driver -disable-availability-checking -empty-abi-descriptor -plugin-path /Users/ksmiley/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2023-06-05-a.xctoolchain/usr/lib/swift/host/plugins -plugin-path /Users/ksmiley/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2023-06-05-a.xctoolchain/usr/local/lib/swift/host/plugins -resource-dir /Users/ksmiley/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2023-06-05-a.xctoolchain/usr/lib/swift -module-name foo -target-sdk-version 14.0 -target-sdk-name macosx14.0 -o /var/folders/gj/wf3swl0x215b2sq1qy84kzkm0000gn/T/TemporaryDirectory.03bCcE/foo-1.o
1. Apple Swift version 5.9-dev (LLVM 4a3b38183d7bb09, Swift 44a40979e52be8e)
2. Compiling with the current language version
3. While evaluating request ASTLoweringRequest(Lowering AST to SIL for file "/tmp/foo.swift")
4. While silgen constructor initializer SIL function "@$s3foo14CompositeStoreC6store17combineACyxq_q_Qp_QPq0_GAA0C0Cyq_Gq_Qp_t_xq_q_Qpctcfc".
for 'init(store1:combine:)' (at /tmp/foo.swift:15:5)
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 0x00000001097ddf30 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1 swift-frontend 0x00000001097dd2d4 llvm::sys::RunSignalHandlers() + 112
2 swift-frontend 0x00000001097de570 SignalHandler(int) + 304
3 libsystem_platform.dylib 0x00000001a84eaa24 _sigtramp + 56
4 libsystem_pthread.dylib 0x00000001a84bbc28 pthread_kill + 288
5 libsystem_c.dylib 0x00000001a83c9ae8 abort + 180
6 libsystem_c.dylib 0x00000001a83c8e44 err + 0
7 swift-frontend 0x00000001098b4738 swift::Lowering::RValue::extractElements(llvm::SmallVectorImpl<swift::Lowering::RValue>&) && (.cold.3) + 0
8 swift-frontend 0x000000010503a528 swift::Lowering::RValue::extractElements(llvm::SmallVectorImpl<swift::Lowering::RValue>&) && + 436
9 swift-frontend 0x00000001050604e4 (anonymous namespace)::ArgEmitter::emitExpanded(swift::Lowering::ArgumentSource&&, swift::Lowering::AbstractionPattern) + 284
10 swift-frontend 0x00000001050607ec (anonymous namespace)::ArgEmitter::emitExpanded(swift::Lowering::ArgumentSource&&, swift::Lowering::AbstractionPattern) + 1060
11 swift-frontend 0x000000010505ee70 (anonymous namespace)::ArgEmitter::emit(swift::Lowering::ArgumentSource&&, swift::Lowering::AbstractionPattern) + 160
12 swift-frontend 0x0000000105051a10 (anonymous namespace)::ArgEmitter::emitSingleArg(swift::Lowering::ArgumentSource&&, swift::Lowering::AbstractionPattern) + 400
13 swift-frontend 0x000000010505e720 (anonymous namespace)::ArgEmitter::emitPreparedArgs(swift::Lowering::PreparedArguments&&, swift::Lowering::AbstractionPattern) + 160
14 swift-frontend 0x0000000105068928 (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&) && + 536
15 swift-frontend 0x00000001050682a8 (anonymous namespace)::CallEmission::emitArgumentsForNormalApply(swift::Lowering::AbstractionPattern, swift::CanTypeWrapper<swift::SILFunctionType>, swift::ForeignInfo const&, llvm::SmallVectorImpl<swift::Lowering::ManagedValue>&, llvm::Optional<swift::SILLocation>&) + 1112
16 swift-frontend 0x0000000105055098 (anonymous namespace)::CallEmission::apply(swift::Lowering::SGFContext) + 2288
17 swift-frontend 0x00000001050534c8 swift::Lowering::SILGenFunction::emitApplyExpr(swift::ApplyExpr*, swift::Lowering::SGFContext) + 1728
18 swift-frontend 0x00000001050a2690 swift::Lowering::SILGenFunction::emitIgnoredExpr(swift::Expr*) + 944
19 swift-frontend 0x000000010510dd8c swift::ASTVisitor<(anonymous namespace)::StmtEmitter, void, void, void, void, void, void>::visit(swift::Stmt*) + 4156
20 swift-frontend 0x000000010510cd44 swift::Lowering::SILGenFunction::emitStmt(swift::Stmt*) + 24
21 swift-frontend 0x0000000105084cec swift::Lowering::SILGenFunction::emitClassConstructorInitializer(swift::ConstructorDecl*) + 2656
22 swift-frontend 0x0000000105043094 swift::Lowering::SILGenModule::emitFunctionDefinition(swift::SILDeclRef, swift::SILFunction*) + 3348
23 swift-frontend 0x0000000105045940 emitOrDelayFunction(swift::Lowering::SILGenModule&, swift::SILDeclRef) + 200
24 swift-frontend 0x0000000105045c78 swift::Lowering::SILGenModule::emitConstructor(swift::ConstructorDecl*) + 372
25 swift-frontend 0x000000010511ae58 swift::ASTVisitor<(anonymous namespace)::SILGenType, void, void, void, void, void, void>::visit(swift::Decl*) + 356
26 swift-frontend 0x000000010511810c (anonymous namespace)::SILGenType::emitType() + 156
27 swift-frontend 0x0000000105118064 swift::Lowering::SILGenModule::visitNominalTypeDecl(swift::NominalTypeDecl*) + 24
28 swift-frontend 0x00000001050478e0 swift::ASTLoweringRequest::evaluate(swift::Evaluator&, swift::ASTLoweringDescriptor) const + 1000
29 swift-frontend 0x000000010510c7e0 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&) + 148
30 swift-frontend 0x000000010504b60c llvm::Expected<swift::ASTLoweringRequest::OutputType> swift::Evaluator::getResultUncached<swift::ASTLoweringRequest>(swift::ASTLoweringRequest const&) + 396
31 swift-frontend 0x0000000105048b94 swift::performASTLowering(swift::FileUnit&, swift::Lowering::TypeConverter&, swift::SILOptions const&, swift::IRGenOptions const*) + 100
32 swift-frontend 0x0000000104b21350 swift::performCompileStepsPostSema(swift::CompilerInstance&, int&, swift::FrontendObserver*) + 524
33 swift-frontend 0x0000000104b3056c withSemanticAnalysis(swift::CompilerInstance&, swift::FrontendObserver*, llvm::function_ref<bool (swift::CompilerInstance&)>, bool) + 160
34 swift-frontend 0x0000000104b23e5c performCompile(swift::CompilerInstance&, int&, swift::FrontendObserver*) + 724
35 swift-frontend 0x0000000104b22df0 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2456
36 swift-frontend 0x000000010496d524 swift::mainEntry(int, char const**) + 2144
37 dyld 0x00000001a8163f28 start + 2236
Steps to reproduce
xcrun --toolchain org.swift.59202306051a swiftc /tmp/foo.swift -Xfrontend -disable-availability-checking
Environment
- 6/5/23 main snapshot
Metadata
Metadata
Assignees
Labels
Area → compiler: The SIL generation stageBug → crash: An assertion failureA deviation from expected or documented behavior. Also: expected but undesirable behavior.The Swift compiler itselfBug: A crash, i.e., an abnormal termination of softwareFeature: expressionsFeature: generic declarations and typesFeature → generics: Parameter packsFeature: tuples