Commits

practicalswift committed 05d30742803
[SourceKit] Add test case for crash triggered in swift::ProtocolDecl::requiresClassSlow() Stack trace: ``` found code completion token A at offset 224 swift-ide-test: /path/to/swift/lib/AST/Decl.cpp:2476: bool swift::ProtocolDecl::requiresClassSlow(): Assertion `isInheritedProtocolsValid() || isBeingTypeChecked()' failed. 8 swift-ide-test 0x0000000000b3be03 swift::ProtocolDecl::requiresClassSlow() + 403 9 swift-ide-test 0x0000000000b89562 swift::CanType::isReferenceTypeImpl(swift::CanType, bool) + 290 11 swift-ide-test 0x000000000092c150 swift::configureImplicitSelf(swift::TypeChecker&, swift::AbstractFunctionDecl*) + 160 14 swift-ide-test 0x000000000092c680 swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) + 800 15 swift-ide-test 0x0000000000b77a1c swift::DeclContext::lookupQualified(swift::Type, swift::DeclName, unsigned int, swift::LazyResolver*, llvm::SmallVectorImpl<swift::ValueDecl*>&) const + 2908 16 swift-ide-test 0x0000000000b7640c swift::UnqualifiedLookup::UnqualifiedLookup(swift::DeclName, swift::DeclContext*, swift::LazyResolver*, bool, swift::SourceLoc, bool, bool) + 2252 17 swift-ide-test 0x00000000009541ab swift::TypeChecker::lookupUnqualified(swift::DeclContext*, swift::DeclName, swift::SourceLoc, swift::OptionSet<swift::NameLookupFlags, unsigned int>) + 187 20 swift-ide-test 0x000000000097e0ce swift::TypeChecker::resolveIdentifierType(swift::DeclContext*, swift::IdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 158 22 swift-ide-test 0x000000000097dfc4 swift::TypeChecker::validateType(swift::TypeLoc&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 212 23 swift-ide-test 0x00000000009ef4e2 swift::IterativeTypeChecker::processResolveInheritedClauseEntry(std::pair<llvm::PointerUnion<swift::TypeDecl*, swift::ExtensionDecl*>, unsigned int>, llvm::function_ref<bool (swift::TypeCheckRequest)>) + 146 24 swift-ide-test 0x00000000009eede7 swift::IterativeTypeChecker::satisfy(swift::TypeCheckRequest) + 359 25 swift-ide-test 0x0000000000928fc9 swift::TypeChecker::resolveInheritanceClause(llvm::PointerUnion<swift::TypeDecl*, swift::ExtensionDecl*>) + 137 26 swift-ide-test 0x000000000092c793 swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) + 1075 27 swift-ide-test 0x0000000000b7637c swift::UnqualifiedLookup::UnqualifiedLookup(swift::DeclName, swift::DeclContext*, swift::LazyResolver*, bool, swift::SourceLoc, bool, bool) + 2108 28 swift-ide-test 0x00000000009541ab swift::TypeChecker::lookupUnqualified(swift::DeclContext*, swift::DeclName, swift::SourceLoc, swift::OptionSet<swift::NameLookupFlags, unsigned int>) + 187 31 swift-ide-test 0x000000000097e0ce swift::TypeChecker::resolveIdentifierType(swift::DeclContext*, swift::IdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 158 33 swift-ide-test 0x000000000097dfc4 swift::TypeChecker::validateType(swift::TypeLoc&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 212 34 swift-ide-test 0x000000000092a351 swift::TypeChecker::checkInheritanceClause(swift::Decl*, swift::GenericTypeResolver*) + 4929 35 swift-ide-test 0x00000000009503f5 swift::TypeChecker::checkGenericParamList(swift::ArchetypeBuilder*, swift::GenericParamList*, swift::DeclContext*, bool, swift::GenericTypeResolver*) + 373 37 swift-ide-test 0x000000000095081c swift::TypeChecker::validateGenericFuncSignature(swift::AbstractFunctionDecl*) + 124 42 swift-ide-test 0x0000000000931ec7 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) + 151 43 swift-ide-test 0x00000000008ff562 swift::typeCheckCompletionDecl(swift::Decl*) + 1122 46 swift-ide-test 0x000000000085ce13 swift::performDelayedParsing(swift::DeclContext*, swift::PersistentParserState&, swift::CodeCompletionCallbacksFactory*) + 307 47 swift-ide-test 0x000000000076bb24 swift::CompilerInstance::performSema() + 3316 48 swift-ide-test 0x00000000007152b7 main + 33239 Stack dump: 0. Program arguments: swift-ide-test -code-completion -code-completion-token=A -source-filename=<INPUT-FILE> 1. While type-checking 'P' at <INPUT-FILE>:6:47 2. While resolving type o at [<INPUT-FILE>:8:4 - line:8:4] RangeText="o" 3. While resolving type a at [<INPUT-FILE>:6:35 - line:6:35] RangeText="a" 4. While type-checking 'a' at <INPUT-FILE>:5:1 ```