-
Notifications
You must be signed in to change notification settings - Fork 10.6k
Open
Labels
assertion failureBug → crash: An assertion failureBug → crash: An assertion failurecompilerThe Swift compiler itselfThe Swift compiler itselfcrashBug: A crash, i.e., an abnormal termination of softwareBug: A crash, i.e., an abnormal termination of softwaregenericsFeature: generic declarations and typesFeature: generic declarations and typesparameter packsFeature → generics: Parameter packsFeature → generics: Parameter packsswift 6.3type checkerArea → compiler: Semantic analysisArea → compiler: Semantic analysis
Description
The following hits an assertion in the requirement machine:
struct S<T> {
func foo<each U>() where (repeat each U, T) == T {}
}
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Stack dump:
0. Program arguments: /Users/hamish/src/swift-dev/build/Release/swift-macosx-arm64/bin/swift-frontend -typecheck /Users/hamish/src/swift-test-arena/main.swift -sdk /Users/hamish/src/MacOSX.sdk -debug-diagnostic-names -diagnostic-style=llvm -debug-constraints
1. Swift version 6.3-dev (LLVM 03f1c7896cf606d, Swift 9dd1f7b5c40cdb7)
2. Compiling with effective version 5.10
3. While evaluating request TypeCheckPrimaryFileRequest(source_file "/Users/hamish/src/swift-test-arena/main.swift")
4. While type-checking 'S' (at /Users/hamish/src/swift-test-arena/main.swift:1946:1)
5. While type-checking 'pick()' (at /Users/hamish/src/swift-test-arena/main.swift:1947:3)
6. While evaluating request InterfaceTypeRequest(main.(file).S.pick()@/Users/hamish/src/swift-test-arena/main.swift:1947:8)
7. While evaluating request GenericSignatureRequest(main.(file).S.pick()@/Users/hamish/src/swift-test-arena/main.swift:1947:8)
8. While evaluating request InferredGenericSignatureRequest(<T where T : Copyable, T : Escapable>, <A>, main.(file).S.pick()@/Users/hamish/src/swift-test-arena/main.swift:1947:8, {}, {}, , (null), 1)
9. Assertion failed: (result.back().getKind() != Symbol::Kind::Shape), function getRelativeTermForType at InterfaceType.cpp:427.
| (to display assertion configuration options: -Xllvm -assert-help)
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 0x000000010a4c1088 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1 swift-frontend 0x000000010a4bf3a4 llvm::sys::RunSignalHandlers() + 112
2 swift-frontend 0x000000010a4c1704 SignalHandler(int, __siginfo*, void*) + 324
3 libsystem_platform.dylib 0x00000001818d6744 _sigtramp + 56
4 libsystem_pthread.dylib 0x00000001818cc888 pthread_kill + 296
5 libsystem_c.dylib 0x00000001817d2808 abort + 124
6 swift-frontend 0x000000010612aad0 _ABORT(char const*, int, char const*, llvm::function_ref<void (llvm::raw_ostream&)>) + 0
7 swift-frontend 0x000000010612aa8c _abortWithMessage(llvm::StringRef) + 0
8 swift-frontend 0x0000000105fdf848 swift::rewriting::RewriteContext::getRelativeTermForType(swift::CanType, llvm::ArrayRef<swift::rewriting::Term>) + 1140
9 swift-frontend 0x0000000105fe0f10 std::__1::optional<swift::Type> llvm::function_ref<std::__1::optional<swift::Type> (swift::TypeBase*, swift::TypePosition)>::callback_fn<swift::rewriting::RewriteContext::getRelativeSubstitutionSchemaFromType(swift::CanType, llvm::ArrayRef<swift::rewriting::Term>, llvm::SmallVectorImpl<swift::rewriting::Term>&)::$_0>(long, swift::TypeBase*, swift::TypePosition) + 92
10 swift-frontend 0x00000001060684fc swift::TypeTransform<swift::Type::transformWithPosition(swift::TypePosition, llvm::function_ref<std::__1::optional<swift::Type> (swift::TypeBase*, swift::TypePosition)>) const::Transform>::doIt(swift::Type, swift::TypePosition) + 64
11 swift-frontend 0x0000000106071730 swift::TypeTransform<swift::Type::transformWithPosition(swift::TypePosition, llvm::function_ref<std::__1::optional<swift::Type> (swift::TypeBase*, swift::TypePosition)>) const::Transform>::transformPackExpansionType(swift::PackExpansionType*, swift::TypePosition) + 60
12 swift-frontend 0x0000000106069100 swift::TypeTransform<swift::Type::transformWithPosition(swift::TypePosition, llvm::function_ref<std::__1::optional<swift::Type> (swift::TypeBase*, swift::TypePosition)>) const::Transform>::doIt(swift::Type, swift::TypePosition) + 3140
13 swift-frontend 0x00000001060687cc swift::TypeTransform<swift::Type::transformWithPosition(swift::TypePosition, llvm::function_ref<std::__1::optional<swift::Type> (swift::TypeBase*, swift::TypePosition)>) const::Transform>::doIt(swift::Type, swift::TypePosition) + 784
14 swift-frontend 0x000000010605cdf4 swift::Type::transformWithPosition(swift::TypePosition, llvm::function_ref<std::__1::optional<swift::Type> (swift::TypeBase*, swift::TypePosition)>) const + 112
15 swift-frontend 0x0000000105fdf9c0 swift::rewriting::RewriteContext::getRelativeSubstitutionSchemaFromType(swift::CanType, llvm::ArrayRef<swift::rewriting::Term>, llvm::SmallVectorImpl<swift::rewriting::Term>&) + 160
16 swift-frontend 0x000000010603c85c (anonymous namespace)::ConcreteTypeMatcher::mismatch(swift::TypeBase*, swift::TypeBase*, swift::Type) + 336
17 swift-frontend 0x0000000106037460 swift::TypeMatcher<(anonymous namespace)::ConcreteTypeMatcher>::MatchVisitor::visitGenericTypeParamType(swift::CanTypeWrapper<swift::GenericTypeParamType>, swift::Type, swift::Type) + 1160
18 swift-frontend 0x000000010603602c swift::TypeMatcher<(anonymous namespace)::ConcreteTypeMatcher>::MatchVisitor::visitTupleType(swift::CanTypeWrapper<swift::TupleType>, swift::Type, swift::Type) + 368
19 swift-frontend 0x000000010602cf50 swift::rewriting::RewriteSystem::computeTypeDifference(swift::rewriting::Term, swift::rewriting::Symbol, swift::rewriting::Symbol, std::__1::optional<unsigned int>&, std::__1::optional<unsigned int>&) + 324
20 swift-frontend 0x0000000105ff023c swift::rewriting::PropertyMap::unifyConcreteTypes(swift::rewriting::Term, swift::rewriting::Symbol, unsigned int, swift::rewriting::Symbol, unsigned int) + 484
21 swift-frontend 0x0000000105feff3c swift::rewriting::PropertyMap::unifyConcreteTypes(swift::rewriting::Term, std::__1::optional<swift::rewriting::Symbol>&, llvm::SmallVectorImpl<std::__1::pair<swift::rewriting::Symbol, unsigned int>>&, swift::rewriting::Symbol, unsigned int) + 104
22 swift-frontend 0x0000000105ff0b30 swift::rewriting::PropertyMap::addProperty(swift::rewriting::Term, swift::rewriting::Symbol, unsigned int) + 212
23 swift-frontend 0x0000000105fec8c4 swift::rewriting::PropertyMap::buildPropertyMap() + 1452
24 swift-frontend 0x0000000106009dc4 swift::rewriting::RequirementMachine::computeCompletion(swift::rewriting::RewriteSystem::ValidityPolicy) + 184
25 swift-frontend 0x000000010600a7a8 swift::rewriting::RequirementMachine::initWithWrittenRequirements(llvm::ArrayRef<swift::GenericTypeParamType*>, llvm::ArrayRef<swift::StructuralRequirement>) + 512
26 swift-frontend 0x000000010600e1c8 swift::InferredGenericSignatureRequest::evaluate(swift::Evaluator&, swift::GenericSignatureImpl const*, swift::GenericParamList*, swift::WhereClauseOwner, llvm::SmallVector<swift::Requirement, 2u>, llvm::SmallVector<swift::TypeBase*, 2u>, swift::SourceLoc, swift::ExtensionDecl*, bool) const + 2216
27 swift-frontend 0x0000000105ab5f28 llvm::PointerIntPair<swift::GenericSignature, 3u, swift::optionset::OptionSet<swift::GenericSignatureErrorFlags, unsigned int>, llvm::PointerLikeTypeTraits<swift::GenericSignature>, llvm::PointerIntPairInfo<swift::GenericSignature, 3u, llvm::PointerLikeTypeTraits<swift::GenericSignature>>> swift::SimpleRequest<swift::InferredGenericSignatureRequest, llvm::PointerIntPair<swift::GenericSignature, 3u, swift::optionset::OptionSet<swift::GenericSignatureErrorFlags, unsigned int>, llvm::PointerLikeTypeTraits<swift::GenericSignature>, llvm::PointerIntPairInfo<swift::GenericSignature, 3u, llvm::PointerLikeTypeTraits<swift::GenericSignature>>> (swift::GenericSignatureImpl const*, swift::GenericParamList*, swift::WhereClauseOwner, llvm::SmallVector<swift::Requirement, 2u>, llvm::SmallVector<swift::TypeBase*, 2u>, swift::SourceLoc, swift::ExtensionDecl*, bool), (swift::RequestFlags)1>::callDerived<0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul>(swift::Evaluator&, std::__1::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul>) const + 180
28 swift-frontend 0x00000001059a97bc swift::InferredGenericSignatureRequest::OutputType swift::Evaluator::getResultUncached<swift::InferredGenericSignatureRequest, swift::InferredGenericSignatureRequest::OutputType swift::evaluateOrDefault<swift::InferredGenericSignatureRequest>(swift::Evaluator&, swift::InferredGenericSignatureRequest, swift::InferredGenericSignatureRequest::OutputType)::'lambda'()>(swift::InferredGenericSignatureRequest const&, swift::InferredGenericSignatureRequest::OutputType swift::evaluateOrDefault<swift::InferredGenericSignatureRequest>(swift::Evaluator&, swift::InferredGenericSignatureRequest, swift::InferredGenericSignatureRequest::OutputType)::'lambda'()) + 180
29 swift-frontend 0x0000000105a661a8 swift::GenericSignatureRequest::evaluate(swift::Evaluator&, swift::GenericContext*) const + 1832
30 swift-frontend 0x0000000105e14a78 swift::GenericContext::getGenericSignature() const + 512
31 swift-frontend 0x00000001059fea80 swift::InterfaceTypeRequest::evaluate(swift::Evaluator&, swift::ValueDecl*) const + 264
32 swift-frontend 0x0000000105e1147c swift::ValueDecl::getInterfaceType() const + 304
33 swift-frontend 0x0000000105a3be04 (anonymous namespace)::DeclChecker::visitFuncDecl(swift::FuncDecl*) + 44
34 swift-frontend 0x0000000105a3476c (anonymous namespace)::DeclChecker::visit(swift::Decl*) + 332
35 swift-frontend 0x0000000105a3551c (anonymous namespace)::DeclChecker::visit(swift::Decl*) + 3836
36 swift-frontend 0x0000000105a34608 swift::TypeChecker::typeCheckDecl(swift::Decl*) + 116
37 swift-frontend 0x0000000105b0329c swift::TypeCheckPrimaryFileRequest::evaluate(swift::Evaluator&, swift::SourceFile*) const + 148
38 swift-frontend 0x0000000105b065b8 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'()) + 216
39 swift-frontend 0x0000000105b031e0 swift::performTypeChecking(swift::SourceFile&) + 84
40 swift-frontend 0x0000000104b02364 bool llvm::function_ref<bool (swift::SourceFile&)>::callback_fn<swift::CompilerInstance::performSema()::$_0>(long, swift::SourceFile&) + 16
41 swift-frontend 0x0000000104af9c58 swift::CompilerInstance::forEachFileToTypeCheck(llvm::function_ref<bool (swift::SourceFile&)>) + 164
42 swift-frontend 0x0000000104af9b94 swift::CompilerInstance::performSema() + 144
43 swift-frontend 0x00000001048ad7ec withSemanticAnalysis(swift::CompilerInstance&, swift::FrontendObserver*, llvm::function_ref<bool (swift::CompilerInstance&)>, bool) + 60
44 swift-frontend 0x00000001048a1200 performCompile(swift::CompilerInstance&, int&, swift::FrontendObserver*) + 700
45 swift-frontend 0x000000010489e9b8 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2316
46 swift-frontend 0x000000010464d094 swift::mainEntry(int, char const**) + 3080
47 dyld 0x000000018150dd54 start + 7184
Metadata
Metadata
Assignees
Labels
assertion failureBug → crash: An assertion failureBug → crash: An assertion failurecompilerThe Swift compiler itselfThe Swift compiler itselfcrashBug: A crash, i.e., an abnormal termination of softwareBug: A crash, i.e., an abnormal termination of softwaregenericsFeature: generic declarations and typesFeature: generic declarations and typesparameter packsFeature → generics: Parameter packsFeature → generics: Parameter packsswift 6.3type checkerArea → compiler: Semantic analysisArea → compiler: Semantic analysis