Commits

practicalswift committed 8b5f8d1aed6
[swiftc (47 vs. 5156)] Add crasher in swift::TypeChecker::checkConformance(...) Add test case for crash triggered in `swift::TypeChecker::checkConformance(...)`. Current number of unresolved compiler crashers: 47 (5156 resolved) Assertion failure in [`lib/Sema/TypeCheckProtocol.cpp (line 1598)`](https://github.com/apple/swift/blob/master/lib/Sema/TypeCheckProtocol.cpp#L1598): ``` Assertion `isa<SubscriptDecl>(VD) && "Unhandled requirement kind"' failed. When executing: diag::RequirementKind getRequirementKind(swift::ValueDecl *) ``` Assertion context: ``` if (isa<ConstructorDecl>(VD)) return diag::RequirementKind::Constructor; if (isa<FuncDecl>(VD)) return diag::RequirementKind::Func; if (isa<VarDecl>(VD)) return diag::RequirementKind::Var; assert(isa<SubscriptDecl>(VD) && "Unhandled requirement kind"); return diag::RequirementKind::Subscript; ``` Stack trace: ``` swift: /path/to/swift/lib/Sema/TypeCheckProtocol.cpp:1598: diag::RequirementKind getRequirementKind(swift::ValueDecl *): Assertion `isa<SubscriptDecl>(VD) && "Unhandled requirement kind"' failed. 11 swift 0x0000000000f1f666 swift::TypeChecker::checkConformance(swift::NormalProtocolConformance*) + 1686 12 swift 0x0000000000f1fda7 swift::TypeChecker::checkConformancesInContext(swift::DeclContext*, swift::IterableDeclContext*) + 471 15 swift 0x0000000000ed7466 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) + 150 16 swift 0x0000000000efb42a swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) + 1162 17 swift 0x0000000000c7b5b9 swift::CompilerInstance::performSema() + 3289 19 swift 0x00000000007db487 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2887 20 swift 0x00000000007a72b8 main + 2872 Stack dump: 0. Program arguments: /path/to/swift/bin/swift -frontend -c -primary-file validation-test/compiler_crashers/28394-swift-typechecker-checkconformance.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -module-name main -o /tmp/28394-swift-typechecker-checkconformance-09c483.o 1. While type-checking 'd' at validation-test/compiler_crashers/28394-swift-typechecker-checkconformance.swift:10:1 <unknown>:0: error: unable to execute command: Aborted <unknown>:0: error: compile command failed due to signal (use -v to see invocation) ```