Commit Graph

1517 Commits

Author SHA1 Message Date
Doug Gregor
949cd57996 This test case is crashing again. Acknowledge the regression. 2017-12-14 16:39:50 -08:00
Doug Gregor
04a9714d9b [Type checker] Short-circuit uses of concrete typealiases in protocols.
Hack to allow IndexDistance to become a deprecated typealias. The actual
fix here involves deeper surgery into the substitution machinery.
2017-12-04 10:05:48 -08:00
Slava Pestov
b6200728a6 Sema: Fix crash on invalid openUnboundGenericType()
We can't construct a nominal type with an ErrorType as a
parent, so in the bad circular case, return a Type() instead
to bail out of transform() altogether.
2017-11-14 00:07:56 -08:00
Xi Ge
0d9745f6eb libSyntax: teach parser to parse dictionary and array literals. (#12821)
This commit also adds ArrayExpr and DictionaryExpr to the libSyntax nodes
family. Also, it refactors the original parser code for these two
expressions to better fit to the design of SyntaxParsingContext.

This commit has also fixed two crashers.
2017-11-09 09:00:43 -08:00
Doug Gregor
fe54e70fce [GSB] Don't infer requirements from types in the definitions of protocols.
Previously, we were inferring requirements from types within the definitions
of protocols, e.g., given something like:

    protocol P {
      associatedtype A: Collection
      associatedtype B where A.Element == Set<B>
    }

we would infer that B: Hashable. The code for doing this was actually
incorrect due to its mis-use of requirement sources, causing a few
crashers. Plus, it's not a good idea in general because it hides the
actual requirements on B. Stop doing this.

Also stop trying to infer requirements from conditional
requirements---those have already been canonicalized and minimized, so
there's nothing to infer from.
2017-10-31 15:28:19 -07:00
Doug Gregor
3a3e96cf66 Set the outer generic parameters of a protocol extension properly.
Fixes two compiler crashers.
2017-10-27 23:41:08 -07:00
Doug Gregor
e0aedef88a [AST] Handle superclass and concrete sources in conformance access paths.
If we encounter a superclass or concrete source within a conformance
access path, use the stored conformance to terminate the path. Fixes a
compiler crasher.
2017-10-27 23:41:08 -07:00
Doug Gregor
439bb8cc2b Make sure that TypeChecker::validateExtension() wires up generic environment.
Fixes a crasher.
2017-10-27 23:41:08 -07:00
Doug Gregor
832a154b08 [GSB] Make sure we wire up same-named type declarations consistently.
Fixes a former crasher that included well-formed code that was rejected
by my previous refactoring. Said crasher now passes, and IRGen's properly
as well. Also, account for three more fixed crashers.
2017-10-27 22:17:45 -07:00
Graydon Hoare
30b6fdce83 Merge pull request #12429 from graydon/named-lazy-member-loading
Named lazy member loading 1/N
2017-10-24 14:27:04 -07:00
Slava Pestov
31176d713a Sema: Only validate all members of a class if we access one of its members
... Or if we subclass it, or define an extension of it.
2017-10-22 20:05:01 -07:00
Graydon Hoare
d538519544 [NamedLazyMemberLoading] Skip some type-member logic for ObjC protocols. 2017-10-20 22:48:44 -07:00
Doug Gregor
1892dbd598 Cope with ill-formed recursion in associated type overrides computation.
Fixes some crasher regressions and accounts for some newly-fixed
crashers.
2017-10-17 22:23:14 -07:00
practicalswift
abc88eff1d [swiftc (70 vs. 5600)] Add crasher in swift::ASTContext::getConformance
Add test case for crash triggered in `swift::ASTContext::getConformance`.

Current number of unresolved compiler crashers: 70 (5600 resolved)

/cc @huonw - just wanted to let you know that this crasher caused an assertion failure for the assertion `(bool)typeSig == (bool)extensionSig && "unexpected generic-ness mismatch on conformance"` added on 2017-09-14 by you in commit 945f723d :-)

Assertion failure in [`lib/AST/ProtocolConformance.cpp (line 320)`](01416ab5bf/lib/AST/ProtocolConformance.cpp (L320)):

```
Assertion `(bool)typeSig == (bool)extensionSig && "unexpected generic-ness mismatch on conformance"' failed.

When executing: void swift::NormalProtocolConformance::differenceAndStoreConditionalRequirements()
```

Assertion context:

```c++
                     ->getGenericSignature();
  auto extensionSig = DC->getGenericSignatureOfContext();

  // If the type is generic, the extension should be too, and vice versa.
  assert((bool)typeSig == (bool)extensionSig &&
         "unexpected generic-ness mismatch on conformance");
  if (!typeSig)
    return;

  auto canExtensionSig = extensionSig->getCanonicalSignature();
  auto canTypeSig = typeSig->getCanonicalSignature();
```
Stack trace:

```
0 0x0000000003ebc124 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3ebc124)
1 0x0000000003ebc466 SignalHandler(int) (/path/to/swift/bin/swift+0x3ebc466)
2 0x00007f1c947e3390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007f1c92d08428 gsignal /build/glibc-bfm8X4/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f1c92d0a02a abort /build/glibc-bfm8X4/glibc-2.23/stdlib/abort.c:91:0
5 0x00007f1c92d00bd7 __assert_fail_base /build/glibc-bfm8X4/glibc-2.23/assert/assert.c:92:0
6 0x00007f1c92d00c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x00000000016dcc3b (/path/to/swift/bin/swift+0x16dcc3b)
8 0x00000000015ad8fc swift::ASTContext::getConformance(swift::Type, swift::ProtocolDecl*, swift::SourceLoc, swift::DeclContext*, swift::ProtocolConformanceState) (/path/to/swift/bin/swift+0x15ad8fc)
9 0x0000000001708ab3 swift::ConformanceLookupTable::getConformance(swift::NominalTypeDecl*, swift::ConformanceLookupTable::ConformanceEntry*) (/path/to/swift/bin/swift+0x1708ab3)
10 0x000000000170c53b bool __gnu_cxx::__ops::_Iter_pred<swift::ConformanceLookupTable::lookupConformances(swift::NominalTypeDecl*, swift::DeclContext*, swift::LazyResolver*, swift::ConformanceLookupKind, llvm::SmallVectorImpl<swift::ProtocolDecl*>*, llvm::SmallVectorImpl<swift::ProtocolConformance*>*, llvm::SmallVectorImpl<swift::ConformanceDiagnostic>*)::$_12>::operator()<swift::ConformanceLookupTable::ConformanceEntry**>(swift::ConformanceLookupTable::ConformanceEntry**) (/path/to/swift/bin/swift+0x170c53b)
11 0x0000000001709287 swift::ConformanceLookupTable::lookupConformances(swift::NominalTypeDecl*, swift::DeclContext*, swift::LazyResolver*, swift::ConformanceLookupKind, llvm::SmallVectorImpl<swift::ProtocolDecl*>*, llvm::SmallVectorImpl<swift::ProtocolConformance*>*, llvm::SmallVectorImpl<swift::ConformanceDiagnostic>*) (/path/to/swift/bin/swift+0x1709287)
12 0x00000000016dee3f swift::DeclContext::getLocalConformances(swift::ConformanceLookupKind, llvm::SmallVectorImpl<swift::ConformanceDiagnostic>*, bool) const (/path/to/swift/bin/swift+0x16dee3f)
13 0x00000000012ea9a6 swift::TypeChecker::checkConformancesInContext(swift::DeclContext*, swift::IterableDeclContext*) (/path/to/swift/bin/swift+0x12ea9a6)
14 0x00000000012b7898 (anonymous namespace)::DeclChecker::visitExtensionDecl(swift::ExtensionDecl*) (/path/to/swift/bin/swift+0x12b7898)
15 0x00000000012a631f (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a631f)
16 0x00000000012a6183 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12a6183)
17 0x0000000001338f7a swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x1338f7a)
18 0x0000000001057b54 swift::CompilerInstance::parseAndTypeCheckMainFile(swift::PersistentParserState&, swift::DelayedParsingCallbacks*, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>) (/path/to/swift/bin/swift+0x1057b54)
19 0x0000000001056c17 swift::CompilerInstance::parseAndCheckTypes(swift::CompilerInstance::ImplicitImports const&) (/path/to/swift/bin/swift+0x1056c17)
20 0x000000000105653a swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x105653a)
21 0x00000000004bfec5 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) (/path/to/swift/bin/swift+0x4bfec5)
22 0x00000000004bec2b swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4bec2b)
23 0x0000000000476fd4 main (/path/to/swift/bin/swift+0x476fd4)
24 0x00007f1c92cf3830 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:325:0
25 0x0000000000474889 _start (/path/to/swift/bin/swift+0x474889)
```
2017-10-17 10:11:24 +02:00
practicalswift
0d3d3efa85 [swiftc (69 vs. 5600)] Add crasher in swift::TypeBase::getSuperclassForDecl
Add test case for crash triggered in `swift::TypeBase::getSuperclassForDecl`.

Current number of unresolved compiler crashers: 69 (5600 resolved)

/cc @slavapestov - just wanted to let you know that this crasher caused an assertion failure for the assertion `t->is<ArchetypeType>() || t->isExistentialType() && "expected a class, archetype or existential"` added on 2017-04-07 by you in commit 473faf1e :-)

Assertion failure in [`lib/AST/Type.cpp (line 3245)`](ab06b148ee/lib/AST/Type.cpp (L3245)):

```
Assertion `t->is<ArchetypeType>() || t->isExistentialType() && "expected a class, archetype or existential"' failed.

When executing: swift::Type swift::TypeBase::getSuperclassForDecl(const swift::ClassDecl *)
```

Assertion context:

```c++
    // If we have a class-constrained archetype or class-constrained
    // existential, get the underlying superclass constraint.
    auto *nominalDecl = t->getAnyNominal();
    if (!nominalDecl) {
      assert(t->is<ArchetypeType>() || t->isExistentialType() &&
             "expected a class, archetype or existential");
      t = t->getSuperclass();
      assert(t && "archetype or existential is not class constrained");
      continue;
    }
    assert(isa<ClassDecl>(nominalDecl) && "expected a class here");
```
Stack trace:

```
0 0x0000000003ebc124 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3ebc124)
1 0x0000000003ebc466 SignalHandler(int) (/path/to/swift/bin/swift+0x3ebc466)
2 0x00007f9690e07390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007f968f32c428 gsignal /build/glibc-bfm8X4/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f968f32e02a abort /build/glibc-bfm8X4/glibc-2.23/stdlib/abort.c:91:0
5 0x00007f968f324bd7 __assert_fail_base /build/glibc-bfm8X4/glibc-2.23/assert/assert.c:92:0
6 0x00007f968f324c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x00000000016f4c5a swift::TypeBase::getSuperclassForDecl(swift::ClassDecl const*) (/path/to/swift/bin/swift+0x16f4c5a)
8 0x00000000016f4d5f swift::TypeBase::getContextSubstitutions(swift::DeclContext const*, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x16f4d5f)
9 0x00000000012734a1 swift::constraints::ConstraintSystem::openUnboundGenericType(swift::UnboundGenericType*, swift::constraints::ConstraintLocatorBuilder, llvm::DenseMap<swift::GenericTypeParamType*, swift::TypeVariableType*, llvm::DenseMapInfo<swift::GenericTypeParamType*>, llvm::detail::DenseMapPair<swift::GenericTypeParamType*, swift::TypeVariableType*> >&) (/path/to/swift/bin/swift+0x12734a1)
10 0x0000000001279f20 swift::Type llvm::function_ref<swift::Type (swift::Type)>::callback_fn<swift::constraints::ConstraintSystem::openUnboundGenericType(swift::Type, swift::constraints::ConstraintLocatorBuilder)::$_1>(long, swift::Type) (/path/to/swift/bin/swift+0x1279f20)
11 0x00000000016fc286 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<swift::Type::transform(llvm::function_ref<swift::Type (swift::Type)>) const::$_15>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16fc286)
12 0x00000000016f56f6 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16f56f6)
13 0x00000000016f5783 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16f5783)
14 0x00000000016f60e7 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16f60e7)
15 0x00000000016eca17 swift::Type::transform(llvm::function_ref<swift::Type (swift::Type)>) const (/path/to/swift/bin/swift+0x16eca17)
16 0x0000000001273be8 swift::constraints::ConstraintSystem::openUnboundGenericType(swift::Type, swift::constraints::ConstraintLocatorBuilder) (/path/to/swift/bin/swift+0x1273be8)
17 0x000000000122c292 swift::ASTVisitor<(anonymous namespace)::ConstraintGenerator, swift::Type, void, void, void, void, void>::visit(swift::Expr*) (/path/to/swift/bin/swift+0x122c292)
18 0x00000000012320be (anonymous namespace)::ConstraintWalker::walkToExprPost(swift::Expr*) (/path/to/swift/bin/swift+0x12320be)
19 0x000000000163319c swift::Expr::walk(swift::ASTWalker&) (/path/to/swift/bin/swift+0x163319c)
20 0x0000000001228bbf swift::constraints::ConstraintSystem::generateConstraints(swift::Expr*) (/path/to/swift/bin/swift+0x1228bbf)
21 0x0000000001256a11 swift::constraints::ConstraintSystem::solve(swift::Expr*&, swift::Type, swift::ExprTypeCheckListener*, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::FreeTypeVariableBinding) (/path/to/swift/bin/swift+0x1256a11)
22 0x000000000128aae7 swift::TypeChecker::solveForExpression(swift::Expr*&, swift::DeclContext*, swift::Type, swift::FreeTypeVariableBinding, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem&, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>) (/path/to/swift/bin/swift+0x128aae7)
23 0x000000000128e8ac swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/path/to/swift/bin/swift+0x128e8ac)
24 0x00000000012931d6 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, bool) (/path/to/swift/bin/swift+0x12931d6)
25 0x0000000001293456 swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int, bool) (/path/to/swift/bin/swift+0x1293456)
26 0x00000000012abd98 validatePatternBindingEntries(swift::TypeChecker&, swift::PatternBindingDecl*) (/path/to/swift/bin/swift+0x12abd98)
27 0x00000000012a6338 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a6338)
28 0x00000000012b826b (anonymous namespace)::DeclChecker::visitClassDecl(swift::ClassDecl*) (/path/to/swift/bin/swift+0x12b826b)
29 0x00000000012a63de (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a63de)
30 0x00000000012b826b (anonymous namespace)::DeclChecker::visitClassDecl(swift::ClassDecl*) (/path/to/swift/bin/swift+0x12b826b)
31 0x00000000012a63de (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a63de)
32 0x00000000012a6183 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12a6183)
33 0x0000000001338ef5 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x1338ef5)
34 0x0000000001057b54 swift::CompilerInstance::parseAndTypeCheckMainFile(swift::PersistentParserState&, swift::DelayedParsingCallbacks*, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>) (/path/to/swift/bin/swift+0x1057b54)
35 0x0000000001056c17 swift::CompilerInstance::parseAndCheckTypes(swift::CompilerInstance::ImplicitImports const&) (/path/to/swift/bin/swift+0x1056c17)
36 0x000000000105653a swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x105653a)
37 0x00000000004bfec5 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) (/path/to/swift/bin/swift+0x4bfec5)
38 0x00000000004bec2b swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4bec2b)
39 0x0000000000476fd4 main (/path/to/swift/bin/swift+0x476fd4)
40 0x00007f968f317830 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:325:0
41 0x0000000000474889 _start (/path/to/swift/bin/swift+0x474889)
```
2017-10-17 09:29:10 +02:00
practicalswift
8f4bb5b96b [swiftc (68 vs. 5600)] Add crasher in swift::TypeBase::getCanonicalType(...)
Add test case for crash triggered in `swift::TypeBase::getCanonicalType(...)`.

Current number of unresolved compiler crashers: 68 (5600 resolved)

Stack trace:

```
0 0x0000000003ebc124 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3ebc124)
1 0x0000000003ebc466 SignalHandler(int) (/path/to/swift/bin/swift+0x3ebc466)
2 0x00007fe07c778390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00000000016ee71e swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16ee71e)
4 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
5 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
6 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
7 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
8 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
9 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
10 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
11 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
12 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
13 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
14 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
15 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
16 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
17 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
18 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
19 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
20 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
21 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
22 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
23 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
24 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
25 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
26 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
27 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
28 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
29 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
30 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
31 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
32 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
33 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
34 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
35 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
36 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
37 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
38 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
39 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
40 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
41 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
42 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
43 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
44 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
45 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
46 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
47 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
48 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
49 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
50 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
51 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
52 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
53 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
54 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
55 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
56 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
57 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
58 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
59 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
60 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
61 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
62 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
63 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
64 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
65 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
66 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
67 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
68 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
69 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
70 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
71 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
72 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
73 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
74 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
75 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
76 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
77 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
78 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
79 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
80 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
81 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
82 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
83 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
84 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
85 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
86 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
87 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
88 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
89 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
90 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
91 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
92 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
93 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
94 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
95 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
96 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
97 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
98 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
99 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
100 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
101 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
102 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
103 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
104 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
105 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
106 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
107 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
108 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
109 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
110 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
111 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
112 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
113 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
114 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
115 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
116 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
117 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
118 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
119 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
120 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
121 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
122 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
123 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
124 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
125 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
126 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
127 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
128 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
129 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
130 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
131 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
132 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
133 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
134 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
135 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
136 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
137 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
138 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
139 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
140 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
141 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
142 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
143 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
144 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
145 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
146 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
147 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
148 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
149 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
150 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
151 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
152 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
153 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
154 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
155 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
156 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
157 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
158 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
159 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
160 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
161 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
162 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
163 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
164 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
165 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
166 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
167 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
168 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
169 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
170 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
171 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
172 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
173 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
174 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
175 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
176 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
177 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
178 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
179 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
180 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
181 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
182 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
183 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
184 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
185 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
186 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
187 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
188 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
189 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
190 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
191 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
192 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
193 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
194 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
195 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
196 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
197 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
198 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
199 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
200 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
201 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
202 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
203 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
204 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
205 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
206 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
207 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
208 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
209 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
210 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
211 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
212 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
213 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
214 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
215 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
216 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
217 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
218 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
219 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
220 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
221 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
222 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
223 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
224 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
225 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
226 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
227 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
228 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
229 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
230 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
231 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
232 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
233 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
234 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
235 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
236 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
237 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
238 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
239 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
240 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
241 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
242 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
243 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
244 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
245 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
246 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
247 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
248 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
249 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
250 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
251 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
252 0x00000000016ef5ea swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ef5ea)
253 0x00000000016eaff9 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16eaff9)
254 0x0000000001659ae5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x1659ae5)
255 0x00000000016eeaa0 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16eeaa0)
```
2017-10-17 08:14:50 +02:00
practicalswift
b5ca50619f [swiftc (67 vs. 5600)] Add crasher in swift::TypeBase::getCanonicalType(...)
Add test case for crash triggered in `swift::TypeBase::getCanonicalType(...)`.

Current number of unresolved compiler crashers: 67 (5600 resolved)

/cc @slavapestov - just wanted to let you know that this crasher caused an assertion failure for the assertion `gpDecl->getDepth() != GenericTypeParamDecl::InvalidDepth && "parameter hasn't been validated"` added on 2017-02-22 by you in commit fdb0a186 :-)

Assertion failure in [`lib/AST/Type.cpp (line 1107)`](ab72b541f9/lib/AST/Type.cpp (L1107)):

```
Assertion `gpDecl->getDepth() != GenericTypeParamDecl::InvalidDepth && "parameter hasn't been validated"' failed.

When executing: swift::CanType swift::TypeBase::getCanonicalType()
```

Assertion context:

```c++

  case TypeKind::GenericTypeParam: {
    GenericTypeParamType *gp = cast<GenericTypeParamType>(this);
    auto gpDecl = gp->getDecl();
    assert(gpDecl->getDepth() != GenericTypeParamDecl::InvalidDepth &&
           "parameter hasn't been validated");
    Result = GenericTypeParamType::get(gpDecl->getDepth(), gpDecl->getIndex(),
                                       gpDecl->getASTContext());
    break;
  }

```
Stack trace:

```
0 0x0000000003eb9144 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3eb9144)
1 0x0000000003eb9486 SignalHandler(int) (/path/to/swift/bin/swift+0x3eb9486)
2 0x00007ff3236da390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007ff321bff428 gsignal /build/glibc-bfm8X4/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007ff321c0102a abort /build/glibc-bfm8X4/glibc-2.23/stdlib/abort.c:91:0
5 0x00007ff321bf7bd7 __assert_fail_base /build/glibc-bfm8X4/glibc-2.23/assert/assert.c:92:0
6 0x00007ff321bf7c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x00000000016e8c57 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16e8c57)
8 0x00000000016e8e6c swift::QuerySubstitutionMap::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x16e8e6c)
9 0x00000000016f68e9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_20>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16f68e9)
10 0x00000000016f2d86 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16f2d86)
11 0x00000000016f309d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16f309d)
12 0x00000000016edf35 swift::Type::subst(swift::SubstitutionMap const&, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16edf35)
13 0x0000000000f51803 llvm::Optional<swift::Requirement> swift::Requirement::subst<swift::SubstitutionMap&>(swift::SubstitutionMap&) const (/path/to/swift/bin/swift+0xf51803)
14 0x000000000168fc42 swift::GenericSignatureBuilder::expandConformanceRequirement(swift::GenericSignatureBuilder::PotentialArchetype*, swift::ProtocolDecl*, swift::GenericSignatureBuilder::RequirementSource const*, bool)::$_16::operator()(swift::TypeDecl*, swift::TypeDecl*) const (/path/to/swift/bin/swift+0x168fc42)
15 0x000000000168ec4f swift::GenericSignatureBuilder::expandConformanceRequirement(swift::GenericSignatureBuilder::PotentialArchetype*, swift::ProtocolDecl*, swift::GenericSignatureBuilder::RequirementSource const*, bool) (/path/to/swift/bin/swift+0x168ec4f)
16 0x00000000016914d9 swift::GenericSignatureBuilder::addTypeRequirement(llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::GenericSignatureBuilder::UnresolvedHandlingKind, swift::ModuleDecl*) (/path/to/swift/bin/swift+0x16914d9)
17 0x00000000016a8c1d swift::GenericSignatureBuilder::ConstraintResult llvm::function_ref<swift::GenericSignatureBuilder::ConstraintResult (swift::Type, swift::TypeRepr const*)>::callback_fn<swift::GenericSignatureBuilder::addInheritedRequirements(swift::TypeDecl*, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::RequirementSource const*, swift::ModuleDecl*)::$_23>(long, swift::Type, swift::TypeRepr const*) (/path/to/swift/bin/swift+0x16a8c1d)
18 0x000000000169ee12 std::_Function_handler<void (swift::Type, swift::TypeRepr const*), visitInherited(llvm::ArrayRef<swift::TypeLoc>, llvm::function_ref<swift::GenericSignatureBuilder::ConstraintResult (swift::Type, swift::TypeRepr const*)>)::$_55>::_M_invoke(std::_Any_data const&, swift::Type&&, swift::TypeRepr const*&&) (/path/to/swift/bin/swift+0x169ee12)
19 0x000000000168d29e swift::GenericSignatureBuilder::addInheritedRequirements(swift::TypeDecl*, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::RequirementSource const*, swift::ModuleDecl*) (/path/to/swift/bin/swift+0x168d29e)
20 0x000000000168d8ee swift::GenericSignatureBuilder::expandConformanceRequirement(swift::GenericSignatureBuilder::PotentialArchetype*, swift::ProtocolDecl*, swift::GenericSignatureBuilder::RequirementSource const*, bool) (/path/to/swift/bin/swift+0x168d8ee)
21 0x00000000016914d9 swift::GenericSignatureBuilder::addTypeRequirement(llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::GenericSignatureBuilder::UnresolvedHandlingKind, swift::ModuleDecl*) (/path/to/swift/bin/swift+0x16914d9)
22 0x00000000016a8c1d swift::GenericSignatureBuilder::ConstraintResult llvm::function_ref<swift::GenericSignatureBuilder::ConstraintResult (swift::Type, swift::TypeRepr const*)>::callback_fn<swift::GenericSignatureBuilder::addInheritedRequirements(swift::TypeDecl*, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::RequirementSource const*, swift::ModuleDecl*)::$_23>(long, swift::Type, swift::TypeRepr const*) (/path/to/swift/bin/swift+0x16a8c1d)
23 0x000000000169ee12 std::_Function_handler<void (swift::Type, swift::TypeRepr const*), visitInherited(llvm::ArrayRef<swift::TypeLoc>, llvm::function_ref<swift::GenericSignatureBuilder::ConstraintResult (swift::Type, swift::TypeRepr const*)>)::$_55>::_M_invoke(std::_Any_data const&, swift::Type&&, swift::TypeRepr const*&&) (/path/to/swift/bin/swift+0x169ee12)
24 0x000000000168d29e swift::GenericSignatureBuilder::addInheritedRequirements(swift::TypeDecl*, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::RequirementSource const*, swift::ModuleDecl*) (/path/to/swift/bin/swift+0x168d29e)
25 0x000000000168d60c swift::GenericSignatureBuilder::expandConformanceRequirement(swift::GenericSignatureBuilder::PotentialArchetype*, swift::ProtocolDecl*, swift::GenericSignatureBuilder::RequirementSource const*, bool) (/path/to/swift/bin/swift+0x168d60c)
26 0x00000000016914d9 swift::GenericSignatureBuilder::addTypeRequirement(llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::GenericSignatureBuilder::UnresolvedHandlingKind, swift::ModuleDecl*) (/path/to/swift/bin/swift+0x16914d9)
27 0x00000000016a8c1d swift::GenericSignatureBuilder::ConstraintResult llvm::function_ref<swift::GenericSignatureBuilder::ConstraintResult (swift::Type, swift::TypeRepr const*)>::callback_fn<swift::GenericSignatureBuilder::addInheritedRequirements(swift::TypeDecl*, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::RequirementSource const*, swift::ModuleDecl*)::$_23>(long, swift::Type, swift::TypeRepr const*) (/path/to/swift/bin/swift+0x16a8c1d)
28 0x000000000169ee12 std::_Function_handler<void (swift::Type, swift::TypeRepr const*), visitInherited(llvm::ArrayRef<swift::TypeLoc>, llvm::function_ref<swift::GenericSignatureBuilder::ConstraintResult (swift::Type, swift::TypeRepr const*)>)::$_55>::_M_invoke(std::_Any_data const&, swift::Type&&, swift::TypeRepr const*&&) (/path/to/swift/bin/swift+0x169ee12)
29 0x000000000168d29e swift::GenericSignatureBuilder::addInheritedRequirements(swift::TypeDecl*, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::RequirementSource const*, swift::ModuleDecl*) (/path/to/swift/bin/swift+0x168d29e)
30 0x000000000168d8ee swift::GenericSignatureBuilder::expandConformanceRequirement(swift::GenericSignatureBuilder::PotentialArchetype*, swift::ProtocolDecl*, swift::GenericSignatureBuilder::RequirementSource const*, bool) (/path/to/swift/bin/swift+0x168d8ee)
31 0x00000000016914d9 swift::GenericSignatureBuilder::addTypeRequirement(llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::GenericSignatureBuilder::UnresolvedHandlingKind, swift::ModuleDecl*) (/path/to/swift/bin/swift+0x16914d9)
32 0x000000000168547c swift::GenericSignatureBuilder::addRequirement(swift::Requirement const&, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::ModuleDecl*) (/path/to/swift/bin/swift+0x168547c)
33 0x000000000169d0dc swift::GenericSignatureBuilder::computeRequirementSignature(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x169d0dc)
34 0x0000000001658ed6 swift::ProtocolDecl::computeRequirementSignature() (/path/to/swift/bin/swift+0x1658ed6)
35 0x00000000012d7b48 swift::TypeChecker::validateGenericTypeSignature(swift::GenericTypeDecl*) (/path/to/swift/bin/swift+0x12d7b48)
36 0x00000000012a5ab8 swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12a5ab8)
37 0x00000000012b6ba4 (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12b6ba4)
38 0x00000000012a3c4f (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a3c4f)
39 0x00000000012a3ae3 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12a3ae3)
40 0x00000000013367f5 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x13367f5)
41 0x0000000001056f44 swift::CompilerInstance::parseAndTypeCheckMainFile(swift::PersistentParserState&, swift::DelayedParsingCallbacks*, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>) (/path/to/swift/bin/swift+0x1056f44)
42 0x0000000001056007 swift::CompilerInstance::parseAndCheckTypes(swift::CompilerInstance::ImplicitImports const&) (/path/to/swift/bin/swift+0x1056007)
43 0x000000000105592a swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x105592a)
44 0x00000000004bfed2 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) (/path/to/swift/bin/swift+0x4bfed2)
45 0x00000000004bec2b swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4bec2b)
46 0x0000000000476fd4 main (/path/to/swift/bin/swift+0x476fd4)
47 0x00007ff321bea830 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:325:0
48 0x0000000000474889 _start (/path/to/swift/bin/swift+0x474889)
```
2017-10-12 23:14:55 +02:00
practicalswift
4f27b78562 [swiftc (66 vs. 5600)] Add crasher in swift::TypeChecker::resolveTypeWitness
Add test case for crash triggered in `swift::TypeChecker::resolveTypeWitness`.

Current number of unresolved compiler crashers: 66 (5600 resolved)

/cc @jtbandes - just wanted to let you know that this crasher caused an assertion failure for the assertion `(!isComplete() || isInvalid()) && "Conformance already complete?"` added on 2016-01-07 by you in commit 8cc8c5cc :-)

Assertion failure in [`lib/AST/ProtocolConformance.cpp (line 542)`](9ec6587ec3/lib/AST/ProtocolConformance.cpp (L542)):

```
Assertion `(!isComplete() || isInvalid()) && "Conformance already complete?"' failed.

When executing: void swift::NormalProtocolConformance::setTypeWitness(swift::AssociatedTypeDecl *, swift::Type, swift::TypeDecl *) const
```

Assertion context:

```c++
                                               Type type,
                                               TypeDecl *typeDecl) const {
  assert(getProtocol() == cast<ProtocolDecl>(assocType->getDeclContext()) &&
         "associated type in wrong protocol");
  assert(TypeWitnesses.count(assocType) == 0 && "Type witness already known");
  assert((!isComplete() || isInvalid()) && "Conformance already complete?");
  TypeWitnesses[assocType] = std::make_pair(type, typeDecl);
}

Type ProtocolConformance::getAssociatedType(Type assocType,
                                            LazyResolver *resolver) const {
```
Stack trace:

```
0 0x0000000003eb9144 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3eb9144)
1 0x0000000003eb9486 SignalHandler(int) (/path/to/swift/bin/swift+0x3eb9486)
2 0x00007f7723992390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007f7721eb7428 gsignal /build/glibc-bfm8X4/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f7721eb902a abort /build/glibc-bfm8X4/glibc-2.23/stdlib/abort.c:91:0
5 0x00007f7721eafbd7 __assert_fail_base /build/glibc-bfm8X4/glibc-2.23/assert/assert.c:92:0
6 0x00007f7721eafc82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x00000000016dabd6 (/path/to/swift/bin/swift+0x16dabd6)
8 0x0000000001303613 (anonymous namespace)::ConformanceChecker::recordTypeWitness(swift::AssociatedTypeDecl*, swift::Type, swift::TypeDecl*, bool) (/path/to/swift/bin/swift+0x1303613)
9 0x0000000001300778 (anonymous namespace)::ConformanceChecker::resolveTypeWitnessViaLookup(swift::AssociatedTypeDecl*) (/path/to/swift/bin/swift+0x1300778)
10 0x00000000012eca30 swift::TypeChecker::resolveTypeWitness(swift::NormalProtocolConformance const*, swift::AssociatedTypeDecl*) (/path/to/swift/bin/swift+0x12eca30)
11 0x00000000016d92f3 swift::NormalProtocolConformance::getTypeWitnessAndDecl(swift::AssociatedTypeDecl*, swift::LazyResolver*, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16d92f3)
12 0x00000000016d9018 swift::ProtocolConformance::getTypeWitnessAndDecl(swift::AssociatedTypeDecl*, swift::LazyResolver*, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16d9018)
13 0x00000000012da41b (anonymous namespace)::LookupResultBuilder::add(swift::ValueDecl*, swift::DeclContext*, swift::Type) (/path/to/swift/bin/swift+0x12da41b)
14 0x00000000012da031 swift::TypeChecker::lookupUnqualified(swift::DeclContext*, swift::DeclName, swift::SourceLoc, swift::OptionSet<swift::NameLookupFlags, unsigned int>) (/path/to/swift/bin/swift+0x12da031)
15 0x00000000012865b6 swift::TypeChecker::resolveDeclRefExpr(swift::UnresolvedDeclRefExpr*, swift::DeclContext*) (/path/to/swift/bin/swift+0x12865b6)
16 0x0000000001295062 (anonymous namespace)::PreCheckExpression::walkToExprPre(swift::Expr*) (/path/to/swift/bin/swift+0x1295062)
17 0x0000000001630d6b swift::Expr::walk(swift::ASTWalker&) (/path/to/swift/bin/swift+0x1630d6b)
18 0x000000000128827a swift::TypeChecker::preCheckExpression(swift::Expr*&, swift::DeclContext*) (/path/to/swift/bin/swift+0x128827a)
19 0x000000000128bfcb swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/path/to/swift/bin/swift+0x128bfcb)
20 0x0000000001290b36 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, bool) (/path/to/swift/bin/swift+0x1290b36)
21 0x0000000001290db6 swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int, bool) (/path/to/swift/bin/swift+0x1290db6)
22 0x00000000012a96f8 validatePatternBindingEntries(swift::TypeChecker&, swift::PatternBindingDecl*) (/path/to/swift/bin/swift+0x12a96f8)
23 0x00000000012a3c98 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a3c98)
24 0x00000000012b5bcb (anonymous namespace)::DeclChecker::visitClassDecl(swift::ClassDecl*) (/path/to/swift/bin/swift+0x12b5bcb)
25 0x00000000012a3d3e (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a3d3e)
26 0x00000000012a3ae3 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12a3ae3)
27 0x00000000013173c5 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0x13173c5)
28 0x0000000001316526 (anonymous namespace)::StmtChecker::typeCheckBody(swift::BraceStmt*&) (/path/to/swift/bin/swift+0x1316526)
29 0x0000000001316af4 swift::TypeChecker::typeCheckClosureBody(swift::ClosureExpr*) (/path/to/swift/bin/swift+0x1316af4)
30 0x000000000133c2bb swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::Expr*, swift::Type, bool, bool, bool) (/path/to/swift/bin/swift+0x133c2bb)
31 0x000000000128c306 swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/path/to/swift/bin/swift+0x128c306)
32 0x0000000001317425 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0x1317425)
33 0x0000000001316c36 swift::TypeChecker::typeCheckTopLevelCodeDecl(swift::TopLevelCodeDecl*) (/path/to/swift/bin/swift+0x1316c36)
34 0x0000000001336860 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x1336860)
35 0x0000000001056f44 swift::CompilerInstance::parseAndTypeCheckMainFile(swift::PersistentParserState&, swift::DelayedParsingCallbacks*, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>) (/path/to/swift/bin/swift+0x1056f44)
36 0x0000000001056007 swift::CompilerInstance::parseAndCheckTypes(swift::CompilerInstance::ImplicitImports const&) (/path/to/swift/bin/swift+0x1056007)
37 0x000000000105592a swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x105592a)
38 0x00000000004bfed2 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) (/path/to/swift/bin/swift+0x4bfed2)
39 0x00000000004bec2b swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4bec2b)
40 0x0000000000476fd4 main (/path/to/swift/bin/swift+0x476fd4)
41 0x00007f7721ea2830 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:325:0
42 0x0000000000474889 _start (/path/to/swift/bin/swift+0x474889)
```
2017-10-12 22:23:20 +02:00
practicalswift
4aa8a006bc [swiftc (65 vs. 5600)] Add crasher in swift::NormalProtocolConformance::getTypeWitnessAndDecl
Add test case for crash triggered in `swift::NormalProtocolConformance::getTypeWitnessAndDecl`.

Current number of unresolved compiler crashers: 65 (5600 resolved)

/cc @slavapestov - just wanted to let you know that this crasher caused an assertion failure for the assertion `resolver && "Unable to resolve type witness"` added on 2017-09-12 by you in commit e26949d3 :-)

Assertion failure in [`lib/AST/ProtocolConformance.cpp (line 528)`](1a9533ca7e/lib/AST/ProtocolConformance.cpp (L528)):

```
Assertion `resolver && "Unable to resolve type witness"' failed.

When executing: std::pair<Type, TypeDecl *> swift::NormalProtocolConformance::getTypeWitnessAndDecl(swift::AssociatedTypeDecl *, swift::LazyResolver *, swift::SubstOptions) const
```

Assertion context:

```c++
    return { Type(), nullptr };
  }

  // Otherwise, resolve the type witness.
  PrettyStackTraceRequirement trace("resolving", this, assocType);
  assert(resolver && "Unable to resolve type witness");
  resolver->resolveTypeWitness(this, assocType);

  known = TypeWitnesses.find(assocType);
  assert(known != TypeWitnesses.end() && "Didn't resolve witness?");
  return known->second;
```
Stack trace:

```
0 0x0000000003eb9144 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3eb9144)
1 0x0000000003eb9486 SignalHandler(int) (/path/to/swift/bin/swift+0x3eb9486)
2 0x00007f91ecfd4390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007f91eb4f9428 gsignal /build/glibc-bfm8X4/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f91eb4fb02a abort /build/glibc-bfm8X4/glibc-2.23/stdlib/abort.c:91:0
5 0x00007f91eb4f1bd7 __assert_fail_base /build/glibc-bfm8X4/glibc-2.23/assert/assert.c:92:0
6 0x00007f91eb4f1c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x00000000016d93dc swift::NormalProtocolConformance::getTypeWitnessAndDecl(swift::AssociatedTypeDecl*, swift::LazyResolver*, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16d93dc)
8 0x00000000016d9018 swift::ProtocolConformance::getTypeWitnessAndDecl(swift::AssociatedTypeDecl*, swift::LazyResolver*, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16d9018)
9 0x00000000016d8b39 swift::ProtocolConformance::getTypeWitness(swift::AssociatedTypeDecl*, swift::LazyResolver*, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16d8b39)
10 0x00000000012f0e98 (anonymous namespace)::ConformanceChecker::resolveWitnessViaLookup(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12f0e98)
11 0x00000000012e77ac (anonymous namespace)::MultiConformanceChecker::checkAllConformances() (/path/to/swift/bin/swift+0x12e77ac)
12 0x00000000012e8d3b swift::TypeChecker::checkConformancesInContext(swift::DeclContext*, swift::IterableDeclContext*) (/path/to/swift/bin/swift+0x12e8d3b)
13 0x00000000012b5b9d (anonymous namespace)::DeclChecker::visitClassDecl(swift::ClassDecl*) (/path/to/swift/bin/swift+0x12b5b9d)
14 0x00000000012a3d3e (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a3d3e)
15 0x00000000012a3ae3 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12a3ae3)
16 0x000000000133687a swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x133687a)
17 0x0000000001056f44 swift::CompilerInstance::parseAndTypeCheckMainFile(swift::PersistentParserState&, swift::DelayedParsingCallbacks*, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>) (/path/to/swift/bin/swift+0x1056f44)
18 0x0000000001056007 swift::CompilerInstance::parseAndCheckTypes(swift::CompilerInstance::ImplicitImports const&) (/path/to/swift/bin/swift+0x1056007)
19 0x000000000105592a swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x105592a)
20 0x00000000004bfed2 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) (/path/to/swift/bin/swift+0x4bfed2)
21 0x00000000004bec2b swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4bec2b)
22 0x0000000000476fd4 main (/path/to/swift/bin/swift+0x476fd4)
23 0x00007f91eb4e4830 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:325:0
24 0x0000000000474889 _start (/path/to/swift/bin/swift+0x474889)
```
2017-10-12 20:51:57 +02:00
practicalswift
ff809fd72c [swiftc (64 vs. 5600)] Add crasher in swift::ProtocolCompositionType::get
Add test case for crash triggered in `swift::ProtocolCompositionType::get`.

Current number of unresolved compiler crashers: 64 (5600 resolved)

Assertion failure in `llvm/include/llvm/Support/Casting.h (line 106)`:

```
Assertion `Val && "isa<> used on a null pointer"' failed.

When executing: static bool llvm::isa_impl_cl<swift::ClassDecl, const swift::NominalTypeDecl *>::doit(const From *) [To = swift::ClassDecl, From = const swift::NominalTypeDecl *]
```

Assertion context:

```c++
  }
};

template <typename To, typename From> struct isa_impl_cl<To, const From*> {
  static inline bool doit(const From *Val) {
    assert(Val && "isa<> used on a null pointer");
    return isa_impl<To, From>::doit(*Val);
  }
};

template <typename To, typename From> struct isa_impl_cl<To, const From*const> {
```
Stack trace:

```
0 0x0000000003eb9144 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3eb9144)
1 0x0000000003eb9486 SignalHandler(int) (/path/to/swift/bin/swift+0x3eb9486)
2 0x00007fcbd737c390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007fcbd58a1428 gsignal /build/glibc-bfm8X4/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007fcbd58a302a abort /build/glibc-bfm8X4/glibc-2.23/stdlib/abort.c:91:0
5 0x00007fcbd5899bd7 __assert_fail_base /build/glibc-bfm8X4/glibc-2.23/assert/assert.c:92:0
6 0x00007fcbd5899c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x00000000016f139d addProtocols(swift::Type, llvm::SmallVectorImpl<swift::ProtocolDecl*>&, swift::Type&, bool&) (/path/to/swift/bin/swift+0x16f139d)
8 0x00000000016ecc61 swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16ecc61)
9 0x00000000016f4555 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16f4555)
10 0x00000000016ea0a7 swift::Type::transform(llvm::function_ref<swift::Type (swift::Type)>) const (/path/to/swift/bin/swift+0x16ea0a7)
11 0x0000000001271548 swift::constraints::ConstraintSystem::openUnboundGenericType(swift::Type, swift::constraints::ConstraintLocatorBuilder) (/path/to/swift/bin/swift+0x1271548)
12 0x0000000001228157 swift::ASTVisitor<(anonymous namespace)::ConstraintGenerator, swift::Type, void, void, void, void, void>::visit(swift::Expr*) (/path/to/swift/bin/swift+0x1228157)
13 0x000000000122fa0e (anonymous namespace)::ConstraintWalker::walkToExprPost(swift::Expr*) (/path/to/swift/bin/swift+0x122fa0e)
14 0x0000000001630dbc swift::Expr::walk(swift::ASTWalker&) (/path/to/swift/bin/swift+0x1630dbc)
15 0x00000000012264cf swift::constraints::ConstraintSystem::generateConstraints(swift::Expr*) (/path/to/swift/bin/swift+0x12264cf)
16 0x0000000001254361 swift::constraints::ConstraintSystem::solve(swift::Expr*&, swift::Type, swift::ExprTypeCheckListener*, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::FreeTypeVariableBinding) (/path/to/swift/bin/swift+0x1254361)
17 0x0000000001288447 swift::TypeChecker::solveForExpression(swift::Expr*&, swift::DeclContext*, swift::Type, swift::FreeTypeVariableBinding, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem&, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>) (/path/to/swift/bin/swift+0x1288447)
18 0x000000000128c20c swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/path/to/swift/bin/swift+0x128c20c)
19 0x0000000001290b36 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, bool) (/path/to/swift/bin/swift+0x1290b36)
20 0x0000000001290db6 swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int, bool) (/path/to/swift/bin/swift+0x1290db6)
21 0x00000000012a96f8 validatePatternBindingEntries(swift::TypeChecker&, swift::PatternBindingDecl*) (/path/to/swift/bin/swift+0x12a96f8)
22 0x00000000012a3c98 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a3c98)
23 0x00000000012a3ae3 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12a3ae3)
24 0x00000000013173c5 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0x13173c5)
25 0x0000000001316c36 swift::TypeChecker::typeCheckTopLevelCodeDecl(swift::TopLevelCodeDecl*) (/path/to/swift/bin/swift+0x1316c36)
26 0x0000000001336860 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x1336860)
27 0x0000000001056f44 swift::CompilerInstance::parseAndTypeCheckMainFile(swift::PersistentParserState&, swift::DelayedParsingCallbacks*, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>) (/path/to/swift/bin/swift+0x1056f44)
28 0x0000000001056007 swift::CompilerInstance::parseAndCheckTypes(swift::CompilerInstance::ImplicitImports const&) (/path/to/swift/bin/swift+0x1056007)
29 0x000000000105592a swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x105592a)
30 0x00000000004bfed2 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) (/path/to/swift/bin/swift+0x4bfed2)
31 0x00000000004bec2b swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4bec2b)
32 0x0000000000476fd4 main (/path/to/swift/bin/swift+0x476fd4)
33 0x00007fcbd588c830 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:325:0
34 0x0000000000474889 _start (/path/to/swift/bin/swift+0x474889)
```
2017-10-12 20:03:33 +02:00
practicalswift
964e6036e6 [swiftc (63 vs. 5600)] Add crasher in swift::GenericSignatureBuilder::RequirementSource::getMinimalConformanceSource
Add test case for crash triggered in `swift::GenericSignatureBuilder::RequirementSource::getMinimalConformanceSource`.

Current number of unresolved compiler crashers: 63 (5600 resolved)

/cc @DougGregor - just wanted to let you know that this crasher caused an assertion failure for the assertion `nestedPAByName && "Didn't find the associated type we wanted"` added on 2017-03-23 by you in commit 8bd863e6 :-)

Assertion failure in [`lib/AST/GenericSignatureBuilder.cpp (line 640)`](f1d8f94b6d/lib/AST/GenericSignatureBuilder.cpp (L640)):

```
Assertion `nestedPAByName && "Didn't find the associated type we wanted"' failed.

When executing: PotentialArchetype *replaceSelfWithPotentialArchetype(PotentialArchetype *, swift::Type)
```

Assertion context:

```c++

      if (auto result = findNested(otherBasePA))
        return result;
    }

    assert(nestedPAByName && "Didn't find the associated type we wanted");
    return nestedPAByName;
  }

  assert(depTy->is<GenericTypeParamType>() && "missing Self?");
  return selfPA;
```
Stack trace:

```
0 0x0000000003eb9144 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3eb9144)
1 0x0000000003eb9486 SignalHandler(int) (/path/to/swift/bin/swift+0x3eb9486)
2 0x00007f81bfff8390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007f81be51d428 gsignal /build/glibc-bfm8X4/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f81be51f02a abort /build/glibc-bfm8X4/glibc-2.23/stdlib/abort.c:91:0
5 0x00007f81be515bd7 __assert_fail_base /build/glibc-bfm8X4/glibc-2.23/assert/assert.c:92:0
6 0x00007f81be515c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x0000000001680b5c replaceSelfWithPotentialArchetype(swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type) (/path/to/swift/bin/swift+0x1680b5c)
8 0x000000000167edba swift::GenericSignatureBuilder::RequirementSource::getMinimalConformanceSource(swift::GenericSignatureBuilder::PotentialArchetype*, swift::ProtocolDecl*, bool&) const (/path/to/swift/bin/swift+0x167edba)
9 0x000000000167ef35 swift::GenericSignatureBuilder::RequirementSource::getMinimalConformanceSource(swift::GenericSignatureBuilder::PotentialArchetype*, swift::ProtocolDecl*, bool&) const (/path/to/swift/bin/swift+0x167ef35)
10 0x00000000016aa278 bool __gnu_cxx::__ops::_Iter_pred<bool (anonymous namespace)::removeSelfDerived<swift::GenericSignatureBuilder::PotentialArchetype*>(std::vector<swift::GenericSignatureBuilder::Constraint<swift::GenericSignatureBuilder::PotentialArchetype*>, std::allocator<swift::GenericSignatureBuilder::Constraint<swift::GenericSignatureBuilder::PotentialArchetype*> > >&, swift::ProtocolDecl*, bool, bool)::{lambda(swift::GenericSignatureBuilder::Constraint<swift::GenericSignatureBuilder::PotentialArchetype*> const&)#1}>::operator()<__gnu_cxx::__normal_iterator<swift::GenericSignatureBuilder::Constraint<swift::GenericSignatureBuilder::PotentialArchetype*>*, std::vector<swift::GenericSignatureBuilder::Constraint<swift::GenericSignatureBuilder::PotentialArchetype*>, std::allocator<swift::GenericSignatureBuilder::Constraint<swift::GenericSignatureBuilder::PotentialArchetype*> > > > >(__gnu_cxx::__normal_iterator<swift::GenericSignatureBuilder::Constraint<swift::GenericSignatureBuilder::PotentialArchetype*>*, std::vector<swift::GenericSignatureBuilder::Constraint<swift::GenericSignatureBuilder::PotentialArchetype*>, std::allocator<swift::GenericSignatureBuilder::Constraint<swift::GenericSignatureBuilder::PotentialArchetype*> > > >) (/path/to/swift/bin/swift+0x16aa278)
11 0x000000000169aeb3 bool (anonymous namespace)::removeSelfDerived<swift::GenericSignatureBuilder::PotentialArchetype*>(std::vector<swift::GenericSignatureBuilder::Constraint<swift::GenericSignatureBuilder::PotentialArchetype*>, std::allocator<swift::GenericSignatureBuilder::Constraint<swift::GenericSignatureBuilder::PotentialArchetype*> > >&, swift::ProtocolDecl*, bool, bool) (/path/to/swift/bin/swift+0x169aeb3)
12 0x000000000169707f swift::GenericSignatureBuilder::checkSameTypeConstraints(llvm::ArrayRef<swift::GenericTypeParamType*>, swift::GenericSignatureBuilder::PotentialArchetype*) (/path/to/swift/bin/swift+0x169707f)
13 0x00000000016951a5 swift::GenericSignatureBuilder::finalize(swift::SourceLoc, llvm::ArrayRef<swift::GenericTypeParamType*>, bool) (/path/to/swift/bin/swift+0x16951a5)
14 0x000000000169ceba swift::GenericSignatureBuilder::computeGenericSignature(swift::SourceLoc, bool, bool) && (/path/to/swift/bin/swift+0x169ceba)
15 0x000000000169d0e8 swift::GenericSignatureBuilder::computeRequirementSignature(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x169d0e8)
16 0x0000000001658ed6 swift::ProtocolDecl::computeRequirementSignature() (/path/to/swift/bin/swift+0x1658ed6)
17 0x00000000012d7b48 swift::TypeChecker::validateGenericTypeSignature(swift::GenericTypeDecl*) (/path/to/swift/bin/swift+0x12d7b48)
18 0x00000000012a5ab8 swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12a5ab8)
19 0x00000000012b6ba4 (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12b6ba4)
20 0x00000000012a3c4f (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a3c4f)
21 0x00000000012a3ae3 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12a3ae3)
22 0x00000000013367f5 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x13367f5)
23 0x0000000001056f44 swift::CompilerInstance::parseAndTypeCheckMainFile(swift::PersistentParserState&, swift::DelayedParsingCallbacks*, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>) (/path/to/swift/bin/swift+0x1056f44)
24 0x0000000001056007 swift::CompilerInstance::parseAndCheckTypes(swift::CompilerInstance::ImplicitImports const&) (/path/to/swift/bin/swift+0x1056007)
25 0x000000000105592a swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x105592a)
26 0x00000000004bfed2 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) (/path/to/swift/bin/swift+0x4bfed2)
27 0x00000000004bec2b swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4bec2b)
28 0x0000000000476fd4 main (/path/to/swift/bin/swift+0x476fd4)
29 0x00007f81be508830 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:325:0
30 0x0000000000474889 _start (/path/to/swift/bin/swift+0x474889)
```
2017-10-12 18:33:44 +02:00
Huon Wilson
1dee31fe2b [GSB] subst Requirements directly; no need for the extra argument. 2017-10-10 20:17:42 -07:00
Doug Gregor
d3de4f2321 Merge pull request #12321 from DougGregor/assoc-type-overrides
Track "overrides" of associated types
2017-10-09 12:59:21 -07:00
practicalswift
80b5256f08 [swiftc (62 vs. 5600)] Add crasher in swift::constraints::ConstraintGraph::lookupNode(...)
Add test case for crash triggered in `swift::constraints::ConstraintGraph::lookupNode(...)`.

Current number of unresolved compiler crashers: 62 (5600 resolved)

/cc @DougGregor - just wanted to let you know that this crasher caused an assertion failure for the assertion `TypeVariables[impl.getGraphIndex()] == typeVar && "Type variable mismatch"` added on 2013-12-09 by you in commit 11794095 :-)

Assertion failure in [`lib/Sema/ConstraintGraph.cpp (line 52)`](9fdf08ac98/lib/Sema/ConstraintGraph.cpp (L52)):

```
Assertion `TypeVariables[impl.getGraphIndex()] == typeVar && "Type variable mismatch"' failed.

When executing: std::pair<ConstraintGraphNode &, unsigned int> swift::constraints::ConstraintGraph::lookupNode(swift::TypeVariableType *)
```

Assertion context:

```c++
  // Check whether we've already created a node for this type variable.
  auto &impl = typeVar->getImpl();
  if (auto nodePtr = impl.getGraphNode()) {
    assert(impl.getGraphIndex() < TypeVariables.size() && "Out-of-bounds index");
    assert(TypeVariables[impl.getGraphIndex()] == typeVar &&
           "Type variable mismatch");
    return { *nodePtr, impl.getGraphIndex() };
  }

  // Allocate the new node.
  auto nodePtr = new ConstraintGraphNode(typeVar);
```
Stack trace:

```
0 0x0000000003ea95e4 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3ea95e4)
1 0x0000000003ea9926 SignalHandler(int) (/path/to/swift/bin/swift+0x3ea9926)
2 0x00007f2e21ca6390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007f2e201cb428 gsignal /build/glibc-bfm8X4/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f2e201cd02a abort /build/glibc-bfm8X4/glibc-2.23/stdlib/abort.c:91:0
5 0x00007f2e201c3bd7 __assert_fail_base /build/glibc-bfm8X4/glibc-2.23/assert/assert.c:92:0
6 0x00007f2e201c3c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x00000000012609ed swift::constraints::ConstraintGraph::lookupNode(swift::TypeVariableType*) (/path/to/swift/bin/swift+0x12609ed)
8 0x00000000012624ef swift::constraints::ConstraintGraph::addConstraint(swift::constraints::Constraint*) (/path/to/swift/bin/swift+0x12624ef)
9 0x0000000001230239 swift::constraints::ConstraintSystem::addUnsolvedConstraint(swift::constraints::Constraint*) (/path/to/swift/bin/swift+0x1230239)
10 0x000000000123a2bc swift::constraints::ConstraintSystem::matchTypes(swift::Type, swift::Type, swift::constraints::ConstraintKind, swift::OptionSet<swift::constraints::ConstraintSystem::TypeMatchFlags, unsigned int>, swift::constraints::ConstraintLocatorBuilder) (/path/to/swift/bin/swift+0x123a2bc)
11 0x0000000001246778 swift::constraints::ConstraintSystem::addConstraintImpl(swift::constraints::ConstraintKind, swift::Type, swift::Type, swift::constraints::ConstraintLocatorBuilder, bool) (/path/to/swift/bin/swift+0x1246778)
12 0x000000000123d8ad swift::constraints::ConstraintSystem::addConstraint(swift::constraints::ConstraintKind, swift::Type, swift::Type, swift::constraints::ConstraintLocatorBuilder, bool) (/path/to/swift/bin/swift+0x123d8ad)
13 0x0000000001229025 swift::ASTVisitor<(anonymous namespace)::ConstraintGenerator, swift::Type, void, void, void, void, void>::visit(swift::Expr*) (/path/to/swift/bin/swift+0x1229025)
14 0x000000000122d6be (anonymous namespace)::ConstraintWalker::walkToExprPost(swift::Expr*) (/path/to/swift/bin/swift+0x122d6be)
15 0x00000000016299df swift::ASTVisitor<(anonymous namespace)::Traversal, swift::Expr*, swift::Stmt*, bool, swift::Pattern*, bool, void>::visit(swift::Expr*) (/path/to/swift/bin/swift+0x16299df)
16 0x000000000162655b swift::Expr::walk(swift::ASTWalker&) (/path/to/swift/bin/swift+0x162655b)
17 0x0000000001223d9f swift::constraints::ConstraintSystem::generateConstraints(swift::Expr*) (/path/to/swift/bin/swift+0x1223d9f)
18 0x0000000001251da1 swift::constraints::ConstraintSystem::solve(swift::Expr*&, swift::Type, swift::ExprTypeCheckListener*, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::FreeTypeVariableBinding) (/path/to/swift/bin/swift+0x1251da1)
19 0x0000000001286057 swift::TypeChecker::solveForExpression(swift::Expr*&, swift::DeclContext*, swift::Type, swift::FreeTypeVariableBinding, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem&, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>) (/path/to/swift/bin/swift+0x1286057)
20 0x000000000128a6da swift::TypeChecker::getPossibleTypesOfExpressionWithoutApplying(swift::Expr*&, swift::DeclContext*, llvm::SmallVectorImpl<swift::Type>&, swift::FreeTypeVariableBinding, swift::ExprTypeCheckListener*) (/path/to/swift/bin/swift+0x128a6da)
21 0x0000000001383d6b (anonymous namespace)::FailureDiagnosis::visitApplyExpr(swift::ApplyExpr*) (/path/to/swift/bin/swift+0x1383d6b)
22 0x00000000013657d2 swift::ASTVisitor<(anonymous namespace)::FailureDiagnosis, bool, void, void, void, void, void>::visit(swift::Expr*) (/path/to/swift/bin/swift+0x13657d2)
23 0x000000000135f162 swift::constraints::ConstraintSystem::diagnoseFailureForExpr(swift::Expr*) (/path/to/swift/bin/swift+0x135f162)
24 0x00000000013651d9 swift::constraints::ConstraintSystem::salvage(llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::Expr*) (/path/to/swift/bin/swift+0x13651d9)
25 0x0000000001286098 swift::TypeChecker::solveForExpression(swift::Expr*&, swift::DeclContext*, swift::Type, swift::FreeTypeVariableBinding, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem&, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>) (/path/to/swift/bin/swift+0x1286098)
26 0x0000000001289e1c swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/path/to/swift/bin/swift+0x1289e1c)
27 0x0000000001313335 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0x1313335)
28 0x0000000001312b46 swift::TypeChecker::typeCheckTopLevelCodeDecl(swift::TopLevelCodeDecl*) (/path/to/swift/bin/swift+0x1312b46)
29 0x00000000013326d0 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x13326d0)
30 0x0000000001055cb4 swift::CompilerInstance::parseAndTypeCheckMainFile(swift::PersistentParserState&, swift::DelayedParsingCallbacks*, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>) (/path/to/swift/bin/swift+0x1055cb4)
31 0x0000000001054d77 swift::CompilerInstance::parseAndCheckTypes(swift::CompilerInstance::ImplicitImports const&) (/path/to/swift/bin/swift+0x1054d77)
32 0x000000000105469a swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x105469a)
33 0x00000000004bdc96 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) (/path/to/swift/bin/swift+0x4bdc96)
34 0x00000000004bca59 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4bca59)
35 0x0000000000474d54 main (/path/to/swift/bin/swift+0x474d54)
36 0x00007f2e201b6830 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:325:0
37 0x0000000000472609 _start (/path/to/swift/bin/swift+0x472609)
```
2017-10-09 11:36:01 +02:00
practicalswift
11dd19e9a9 [swiftc (61 vs. 5600)] Add crasher in swift::GenericSignatureBuilder::addRequirement
Add test case for crash triggered in `swift::GenericSignatureBuilder::addRequirement`.

Current number of unresolved compiler crashers: 61 (5600 resolved)

Stack trace:

```
0 0x0000000003ea95e4 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3ea95e4)
1 0x0000000003ea9926 SignalHandler(int) (/path/to/swift/bin/swift+0x3ea9926)
2 0x00007f6f711e2390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00000000016842f0 swift::GenericSignatureBuilder::addRequirement(swift::RequirementRepr const*, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::SubstitutionMap const*, swift::ModuleDecl*) (/path/to/swift/bin/swift+0x16842f0)
4 0x00000000016824b7 swift::GenericSignatureBuilder::expandConformanceRequirement(swift::GenericSignatureBuilder::PotentialArchetype*, swift::ProtocolDecl*, swift::GenericSignatureBuilder::RequirementSource const*, bool) (/path/to/swift/bin/swift+0x16824b7)
5 0x000000000168669a swift::GenericSignatureBuilder::addTypeRequirement(llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::GenericSignatureBuilder::UnresolvedHandlingKind) (/path/to/swift/bin/swift+0x168669a)
6 0x0000000001683f8b swift::GenericSignatureBuilder::addRequirement(swift::Requirement const&, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::ModuleDecl*, swift::SubstitutionMap const*) (/path/to/swift/bin/swift+0x1683f8b)
7 0x0000000001692302 swift::GenericSignatureBuilder::computeRequirementSignature(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x1692302)
8 0x000000000164e6f6 swift::ProtocolDecl::computeRequirementSignature() (/path/to/swift/bin/swift+0x164e6f6)
9 0x00000000012d5c58 swift::TypeChecker::validateGenericTypeSignature(swift::GenericTypeDecl*) (/path/to/swift/bin/swift+0x12d5c58)
10 0x00000000012a3888 swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12a3888)
11 0x00000000012b4b94 (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12b4b94)
12 0x00000000012a1a1f (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a1a1f)
13 0x00000000012a18b3 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12a18b3)
14 0x0000000001332665 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x1332665)
15 0x0000000001055cb4 swift::CompilerInstance::parseAndTypeCheckMainFile(swift::PersistentParserState&, swift::DelayedParsingCallbacks*, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>) (/path/to/swift/bin/swift+0x1055cb4)
16 0x0000000001054d77 swift::CompilerInstance::parseAndCheckTypes(swift::CompilerInstance::ImplicitImports const&) (/path/to/swift/bin/swift+0x1054d77)
17 0x000000000105469a swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x105469a)
18 0x00000000004bdc96 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) (/path/to/swift/bin/swift+0x4bdc96)
19 0x00000000004bca59 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4bca59)
20 0x0000000000474d54 main (/path/to/swift/bin/swift+0x474d54)
21 0x00007f6f6f6f2830 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:325:0
22 0x0000000000472609 _start (/path/to/swift/bin/swift+0x472609)
```
2017-10-09 11:01:21 +02:00
practicalswift
dd63358112 [swiftc (60 vs. 5600)] Add crasher in swift::ProtocolConformance::getTypeWitnessAndDecl
Add test case for crash triggered in `swift::ProtocolConformance::getTypeWitnessAndDecl`.

Current number of unresolved compiler crashers: 60 (5600 resolved)

/cc @DougGregor - just wanted to let you know that this crasher caused an assertion failure for the assertion `known != TypeWitnesses.end() && "Didn't resolve witness?"` added on 2017-05-03 by you in commit dbb973aa :-)

Assertion failure in [`lib/AST/ProtocolConformance.cpp (line 474)`](488aa70600/lib/AST/ProtocolConformance.cpp (L474)):

```
Assertion `known != TypeWitnesses.end() && "Didn't resolve witness?"' failed.

When executing: std::pair<Type, TypeDecl *> swift::NormalProtocolConformance::getTypeWitnessAndDecl(swift::AssociatedTypeDecl *, swift::LazyResolver *, swift::SubstOptions) const
```

Assertion context:

```c++
  PrettyStackTraceRequirement trace("resolving", this, assocType);
  assert(resolver && "Unable to resolve type witness");
  resolver->resolveTypeWitness(this, assocType);

  known = TypeWitnesses.find(assocType);
  assert(known != TypeWitnesses.end() && "Didn't resolve witness?");
  return known->second;
}

void NormalProtocolConformance::setTypeWitness(AssociatedTypeDecl *assocType,
                                               Type type,
```
Stack trace:

```
0 0x0000000003ea95e4 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3ea95e4)
1 0x0000000003ea9926 SignalHandler(int) (/path/to/swift/bin/swift+0x3ea9926)
2 0x00007f505d9d9390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007f505befe428 gsignal /build/glibc-bfm8X4/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f505bf0002a abort /build/glibc-bfm8X4/glibc-2.23/stdlib/abort.c:91:0
5 0x00007f505bef6bd7 __assert_fail_base /build/glibc-bfm8X4/glibc-2.23/assert/assert.c:92:0
6 0x00007f505bef6c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x00000000016cdbdb (/path/to/swift/bin/swift+0x16cdbdb)
8 0x00000000016cd7f8 swift::ProtocolConformance::getTypeWitnessAndDecl(swift::AssociatedTypeDecl*, swift::LazyResolver*, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16cd7f8)
9 0x00000000016cd319 swift::ProtocolConformance::getTypeWitness(swift::AssociatedTypeDecl*, swift::LazyResolver*, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16cd319)
10 0x00000000016e5fe7 getMemberForBaseType(llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::Type, swift::Type, swift::AssociatedTypeDecl*, swift::Identifier, swift::SubstOptions) (/path/to/swift/bin/swift+0x16e5fe7)
11 0x00000000016eab4d llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_20>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16eab4d)
12 0x00000000016e6ec6 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e6ec6)
13 0x00000000016e20e5 swift::Type::subst(swift::SubstitutionMap const&, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e20e5)
14 0x00000000013228bb swift::TypeChecker::substMemberTypeWithBase(swift::ModuleDecl*, swift::TypeDecl*, swift::Type) (/path/to/swift/bin/swift+0x13228bb)
15 0x0000000001322605 swift::TypeChecker::resolveTypeInContext(swift::TypeDecl*, swift::DeclContext*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*) (/path/to/swift/bin/swift+0x1322605)
16 0x000000000132a3cb resolveTypeDecl(swift::TypeChecker&, swift::TypeDecl*, swift::SourceLoc, swift::DeclContext*, swift::DeclContext*, swift::GenericIdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x132a3cb)
17 0x0000000001329f16 resolveTopLevelIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, swift::ComponentIdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1329f16)
18 0x00000000013243e6 resolveIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, llvm::ArrayRef<swift::ComponentIdentTypeRepr*>, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x13243e6)
19 0x0000000001323d9a swift::TypeChecker::resolveIdentifierType(swift::DeclContext*, swift::IdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1323d9a)
20 0x0000000001324b30 (anonymous namespace)::TypeResolver::resolveType(swift::TypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>) (/path/to/swift/bin/swift+0x1324b30)
21 0x0000000001324a3c swift::TypeChecker::resolveType(swift::TypeRepr*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1324a3c)
22 0x0000000001323335 swift::TypeChecker::validateType(swift::TypeLoc&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1323335)
23 0x00000000012a4ad5 validateTypealiasType(swift::TypeChecker&, swift::TypeAliasDecl*) (/path/to/swift/bin/swift+0x12a4ad5)
24 0x00000000012a3828 swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12a3828)
25 0x00000000012b34af (anonymous namespace)::DeclChecker::visitTypeAliasDecl(swift::TypeAliasDecl*) (/path/to/swift/bin/swift+0x12b34af)
26 0x00000000012a19ef (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a19ef)
27 0x00000000012b3bbb (anonymous namespace)::DeclChecker::visitClassDecl(swift::ClassDecl*) (/path/to/swift/bin/swift+0x12b3bbb)
28 0x00000000012a1b0e (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a1b0e)
29 0x00000000012b4efb (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12b4efb)
30 0x00000000012a1a1f (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a1a1f)
31 0x00000000012b4efb (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12b4efb)
32 0x00000000012a1a1f (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a1a1f)
33 0x00000000012a18b3 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12a18b3)
34 0x0000000001332665 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x1332665)
35 0x0000000001055cb4 swift::CompilerInstance::parseAndTypeCheckMainFile(swift::PersistentParserState&, swift::DelayedParsingCallbacks*, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>) (/path/to/swift/bin/swift+0x1055cb4)
36 0x0000000001054d77 swift::CompilerInstance::parseAndCheckTypes(swift::CompilerInstance::ImplicitImports const&) (/path/to/swift/bin/swift+0x1054d77)
37 0x000000000105469a swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x105469a)
38 0x00000000004bdc96 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) (/path/to/swift/bin/swift+0x4bdc96)
39 0x00000000004bca59 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4bca59)
40 0x0000000000474d54 main (/path/to/swift/bin/swift+0x474d54)
41 0x00007f505bee9830 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:325:0
42 0x0000000000472609 _start (/path/to/swift/bin/swift+0x472609)
```
2017-10-09 09:56:44 +02:00
Doug Gregor
ea1396c364 [GSB] Only build potential archetypes for associated type "anchors".
Use the "override" information in associated type declarations to provide
AST-level access to the associated type "anchor", i.e., the canonical
associated type that will be used in generic signatures, mangling,
etc.

In the Generic Signature Builder, only build potential archetypes for
associated types that are anchors, which reduces the number of
potential archetypes we build when type-checking the standard library
by 14% and type-checking time for the standard library by 16%.

There's a minor regression here in some generic signatures that were
accidentally getting (correct) same-type constraints. There were
existing bugs in this area already (Huon found some of them), while
will be addressed as a follow-up.

Fies SR-5726, where we were failing to type-check due to missed
associated type constraints.
2017-10-07 21:52:40 -07:00
practicalswift
33c6c84171 [swiftc (59 vs. 5600)] Add crasher in swift::TypeBase::getContextSubstitutions
Add test case for crash triggered in `swift::TypeBase::getContextSubstitutions`.

Current number of unresolved compiler crashers: 59 (5600 resolved)

/cc @slavapestov - just wanted to let you know that this crasher caused an assertion failure for the assertion `result.second` added on 2017-03-07 by you in commit 3d4503a9 :-)

Assertion failure in [`lib/AST/Type.cpp (line 3322)`](ae41fa9dc3/lib/AST/Type.cpp (L3322)):

```
Assertion `result.second' failed.

When executing: TypeSubstitutionMap swift::TypeBase::getContextSubstitutions(const swift::DeclContext *, swift::GenericEnvironment *)
```

Assertion context:

```c++
    if (auto *outerSig = parentDC->getGenericSignatureOfContext()) {
      for (auto gp : outerSig->getGenericParams()) {
        auto result = substitutions.insert(
          {gp->getCanonicalType()->castTo<GenericTypeParamType>(),
           genericEnv->mapTypeIntoContext(gp)});
        assert(result.second);
        (void) result;
      }
    }
  }

```
Stack trace:

```
0 0x0000000003ea2314 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3ea2314)
1 0x0000000003ea2656 SignalHandler(int) (/path/to/swift/bin/swift+0x3ea2656)
2 0x00007feafa6c7390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007feaf8bec428 gsignal /build/glibc-bfm8X4/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007feaf8bee02a abort /build/glibc-bfm8X4/glibc-2.23/stdlib/abort.c:91:0
5 0x00007feaf8be4bd7 __assert_fail_base /build/glibc-bfm8X4/glibc-2.23/assert/assert.c:92:0
6 0x00007feaf8be4c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x00000000016e5304 swift::TypeBase::getContextSubstitutions(swift::DeclContext const*, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x16e5304)
8 0x00000000016e0af0 swift::TypeBase::getContextSubstitutionMap(swift::ModuleDecl*, swift::DeclContext const*, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x16e0af0)
9 0x0000000001692c22 swift::GenericSignatureBuilder::InferRequirementsWalker::walkToTypePost(swift::Type) (/path/to/swift/bin/swift+0x1692c22)
10 0x00000000016f317d swift::TypeVisitor<(anonymous namespace)::Traversal, bool>::visit(swift::Type) (/path/to/swift/bin/swift+0x16f317d)
11 0x00000000016f31a0 swift::TypeVisitor<(anonymous namespace)::Traversal, bool>::visit(swift::Type) (/path/to/swift/bin/swift+0x16f31a0)
12 0x00000000016f31a0 swift::TypeVisitor<(anonymous namespace)::Traversal, bool>::visit(swift::Type) (/path/to/swift/bin/swift+0x16f31a0)
13 0x00000000016f2114 swift::Type::walk(swift::TypeWalker&) const (/path/to/swift/bin/swift+0x16f2114)
14 0x000000000169bf91 swift::GenericSignatureBuilder::ConstraintResult llvm::function_ref<swift::GenericSignatureBuilder::ConstraintResult (swift::Type, swift::TypeRepr const*)>::callback_fn<swift::GenericSignatureBuilder::addInheritedRequirements(swift::TypeDecl*, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::RequirementSource const*, swift::ModuleDecl*)::$_23>(long, swift::Type, swift::TypeRepr const*) (/path/to/swift/bin/swift+0x169bf91)
15 0x0000000001692ac2 std::_Function_handler<void (swift::Type, swift::TypeRepr const*), visitInherited(llvm::ArrayRef<swift::TypeLoc>, llvm::function_ref<swift::GenericSignatureBuilder::ConstraintResult (swift::Type, swift::TypeRepr const*)>)::$_56>::_M_invoke(std::_Any_data const&, swift::Type&&, swift::TypeRepr const*&&) (/path/to/swift/bin/swift+0x1692ac2)
16 0x000000000168084e swift::GenericSignatureBuilder::addInheritedRequirements(swift::TypeDecl*, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::RequirementSource const*, swift::ModuleDecl*) (/path/to/swift/bin/swift+0x168084e)
17 0x0000000001680e49 swift::GenericSignatureBuilder::expandConformanceRequirement(swift::GenericSignatureBuilder::PotentialArchetype*, swift::ProtocolDecl*, swift::GenericSignatureBuilder::RequirementSource const*, bool) (/path/to/swift/bin/swift+0x1680e49)
18 0x000000000168511a swift::GenericSignatureBuilder::addTypeRequirement(llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::GenericSignatureBuilder::UnresolvedHandlingKind) (/path/to/swift/bin/swift+0x168511a)
19 0x0000000001682a5b swift::GenericSignatureBuilder::addRequirement(swift::Requirement const&, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::ModuleDecl*, swift::SubstitutionMap const*) (/path/to/swift/bin/swift+0x1682a5b)
20 0x0000000001690d82 swift::GenericSignatureBuilder::computeRequirementSignature(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x1690d82)
21 0x000000000164ce56 swift::ProtocolDecl::computeRequirementSignature() (/path/to/swift/bin/swift+0x164ce56)
22 0x00000000012d4b38 swift::TypeChecker::validateGenericTypeSignature(swift::GenericTypeDecl*) (/path/to/swift/bin/swift+0x12d4b38)
23 0x00000000012a2798 swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12a2798)
24 0x00000000012b3aa4 (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12b3aa4)
25 0x00000000012a092f (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a092f)
26 0x00000000012b2acb (anonymous namespace)::DeclChecker::visitClassDecl(swift::ClassDecl*) (/path/to/swift/bin/swift+0x12b2acb)
27 0x00000000012a0a1e (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a0a1e)
28 0x00000000012b2acb (anonymous namespace)::DeclChecker::visitClassDecl(swift::ClassDecl*) (/path/to/swift/bin/swift+0x12b2acb)
29 0x00000000012a0a1e (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a0a1e)
30 0x00000000012b211b (anonymous namespace)::DeclChecker::visitExtensionDecl(swift::ExtensionDecl*) (/path/to/swift/bin/swift+0x12b211b)
31 0x00000000012a095f (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a095f)
32 0x00000000012a07c3 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12a07c3)
33 0x0000000001311f95 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0x1311f95)
34 0x00000000013110f6 (anonymous namespace)::StmtChecker::typeCheckBody(swift::BraceStmt*&) (/path/to/swift/bin/swift+0x13110f6)
35 0x000000000131035a swift::TypeChecker::typeCheckFunctionBodyUntil(swift::FuncDecl*, swift::SourceLoc) (/path/to/swift/bin/swift+0x131035a)
36 0x0000000001310205 swift::TypeChecker::typeCheckAbstractFunctionBodyUntil(swift::AbstractFunctionDecl*, swift::SourceLoc) (/path/to/swift/bin/swift+0x1310205)
37 0x0000000001310d6d swift::TypeChecker::typeCheckAbstractFunctionBody(swift::AbstractFunctionDecl*) (/path/to/swift/bin/swift+0x1310d6d)
38 0x000000000133084c typeCheckFunctionsAndExternalDecls(swift::TypeChecker&) (/path/to/swift/bin/swift+0x133084c)
39 0x000000000133141d swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x133141d)
40 0x0000000001054ae4 swift::CompilerInstance::parseAndTypeCheckMainFile(swift::PersistentParserState&, swift::DelayedParsingCallbacks*, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>) (/path/to/swift/bin/swift+0x1054ae4)
41 0x0000000001053ba7 swift::CompilerInstance::parseAndCheckTypes(swift::CompilerInstance::ImplicitImports const&) (/path/to/swift/bin/swift+0x1053ba7)
42 0x00000000010534ca swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x10534ca)
43 0x00000000004bdb56 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) (/path/to/swift/bin/swift+0x4bdb56)
44 0x00000000004bc919 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4bc919)
45 0x0000000000474c14 main (/path/to/swift/bin/swift+0x474c14)
46 0x00007feaf8bd7830 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:325:0
47 0x00000000004724c9 _start (/path/to/swift/bin/swift+0x4724c9)
```
2017-10-05 17:55:19 +02:00
practicalswift
90bef64ccb [swiftc (58 vs. 5600)] Add crasher in swift::GenericSignatureBuilder::addRequirement
Add test case for crash triggered in `swift::GenericSignatureBuilder::addRequirement`.

Current number of unresolved compiler crashers: 58 (5600 resolved)

Stack trace:

```
0 0x0000000003ea2314 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3ea2314)
1 0x0000000003ea2656 SignalHandler(int) (/path/to/swift/bin/swift+0x3ea2656)
2 0x00007fcbc7c11390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x0000000001682dd4 swift::GenericSignatureBuilder::addRequirement(swift::RequirementRepr const*, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::SubstitutionMap const*, swift::ModuleDecl*) (/path/to/swift/bin/swift+0x1682dd4)
4 0x0000000001680f62 swift::GenericSignatureBuilder::expandConformanceRequirement(swift::GenericSignatureBuilder::PotentialArchetype*, swift::ProtocolDecl*, swift::GenericSignatureBuilder::RequirementSource const*, bool) (/path/to/swift/bin/swift+0x1680f62)
5 0x000000000168511a swift::GenericSignatureBuilder::addTypeRequirement(llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::GenericSignatureBuilder::UnresolvedHandlingKind) (/path/to/swift/bin/swift+0x168511a)
6 0x000000000169bfe3 swift::GenericSignatureBuilder::ConstraintResult llvm::function_ref<swift::GenericSignatureBuilder::ConstraintResult (swift::Type, swift::TypeRepr const*)>::callback_fn<swift::GenericSignatureBuilder::addInheritedRequirements(swift::TypeDecl*, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::RequirementSource const*, swift::ModuleDecl*)::$_23>(long, swift::Type, swift::TypeRepr const*) (/path/to/swift/bin/swift+0x169bfe3)
7 0x0000000001692ac2 std::_Function_handler<void (swift::Type, swift::TypeRepr const*), visitInherited(llvm::ArrayRef<swift::TypeLoc>, llvm::function_ref<swift::GenericSignatureBuilder::ConstraintResult (swift::Type, swift::TypeRepr const*)>)::$_56>::_M_invoke(std::_Any_data const&, swift::Type&&, swift::TypeRepr const*&&) (/path/to/swift/bin/swift+0x1692ac2)
8 0x000000000168084e swift::GenericSignatureBuilder::addInheritedRequirements(swift::TypeDecl*, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::RequirementSource const*, swift::ModuleDecl*) (/path/to/swift/bin/swift+0x168084e)
9 0x0000000001680e49 swift::GenericSignatureBuilder::expandConformanceRequirement(swift::GenericSignatureBuilder::PotentialArchetype*, swift::ProtocolDecl*, swift::GenericSignatureBuilder::RequirementSource const*, bool) (/path/to/swift/bin/swift+0x1680e49)
10 0x000000000168511a swift::GenericSignatureBuilder::addTypeRequirement(llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::GenericSignatureBuilder::UnresolvedHandlingKind) (/path/to/swift/bin/swift+0x168511a)
11 0x0000000001682a5b swift::GenericSignatureBuilder::addRequirement(swift::Requirement const&, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::ModuleDecl*, swift::SubstitutionMap const*) (/path/to/swift/bin/swift+0x1682a5b)
12 0x0000000001690d82 swift::GenericSignatureBuilder::computeRequirementSignature(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x1690d82)
13 0x000000000164ce56 swift::ProtocolDecl::computeRequirementSignature() (/path/to/swift/bin/swift+0x164ce56)
14 0x00000000012d4b38 swift::TypeChecker::validateGenericTypeSignature(swift::GenericTypeDecl*) (/path/to/swift/bin/swift+0x12d4b38)
15 0x00000000012a2798 swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12a2798)
16 0x00000000012a2289 swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12a2289)
17 0x00000000012a2289 swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12a2289)
18 0x00000000016c17eb swift::DeclContext::lookupQualified(swift::Type, swift::DeclName, swift::NLOptions, swift::LazyResolver*, llvm::SmallVectorImpl<swift::ValueDecl*>&) const (/path/to/swift/bin/swift+0x16c17eb)
19 0x00000000016bf7b4 swift::UnqualifiedLookup::UnqualifiedLookup(swift::DeclName, swift::DeclContext*, swift::LazyResolver*, bool, swift::SourceLoc, bool, bool, bool) (/path/to/swift/bin/swift+0x16bf7b4)
20 0x00000000012d6f68 swift::TypeChecker::lookupUnqualifiedType(swift::DeclContext*, swift::DeclName, swift::SourceLoc, swift::OptionSet<swift::NameLookupFlags, unsigned int>) (/path/to/swift/bin/swift+0x12d6f68)
21 0x0000000001328af6 resolveTopLevelIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, swift::ComponentIdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1328af6)
22 0x00000000013230a6 resolveIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, llvm::ArrayRef<swift::ComponentIdentTypeRepr*>, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x13230a6)
23 0x0000000001322a5a swift::TypeChecker::resolveIdentifierType(swift::DeclContext*, swift::IdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1322a5a)
24 0x00000000013237f0 (anonymous namespace)::TypeResolver::resolveType(swift::TypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>) (/path/to/swift/bin/swift+0x13237f0)
25 0x00000000013236fc swift::TypeChecker::resolveType(swift::TypeRepr*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x13236fc)
26 0x0000000001321ff5 swift::TypeChecker::validateType(swift::TypeLoc&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1321ff5)
27 0x00000000012d1060 swift::TypeChecker::validateRequirement(swift::SourceLoc, swift::RequirementRepr&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*) (/path/to/swift/bin/swift+0x12d1060)
28 0x00000000012d0ef6 swift::TypeChecker::validateRequirements(swift::SourceLoc, llvm::MutableArrayRef<swift::RequirementRepr>, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, swift::GenericSignatureBuilder*) (/path/to/swift/bin/swift+0x12d0ef6)
29 0x0000000001298496 swift::TypeChecker::validateWhereClauses(swift::ProtocolDecl*, swift::GenericTypeResolver*) (/path/to/swift/bin/swift+0x1298496)
30 0x000000000129b850 swift::TypeChecker::validateDeclForNameLookup(swift::ValueDecl*) (/path/to/swift/bin/swift+0x129b850)
31 0x00000000016c17eb swift::DeclContext::lookupQualified(swift::Type, swift::DeclName, swift::NLOptions, swift::LazyResolver*, llvm::SmallVectorImpl<swift::ValueDecl*>&) const (/path/to/swift/bin/swift+0x16c17eb)
32 0x00000000016bf7b4 swift::UnqualifiedLookup::UnqualifiedLookup(swift::DeclName, swift::DeclContext*, swift::LazyResolver*, bool, swift::SourceLoc, bool, bool, bool) (/path/to/swift/bin/swift+0x16bf7b4)
33 0x00000000012d6f68 swift::TypeChecker::lookupUnqualifiedType(swift::DeclContext*, swift::DeclName, swift::SourceLoc, swift::OptionSet<swift::NameLookupFlags, unsigned int>) (/path/to/swift/bin/swift+0x12d6f68)
34 0x0000000001328af6 resolveTopLevelIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, swift::ComponentIdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1328af6)
35 0x00000000013230a6 resolveIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, llvm::ArrayRef<swift::ComponentIdentTypeRepr*>, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x13230a6)
36 0x0000000001322a5a swift::TypeChecker::resolveIdentifierType(swift::DeclContext*, swift::IdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1322a5a)
37 0x00000000013237f0 (anonymous namespace)::TypeResolver::resolveType(swift::TypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>) (/path/to/swift/bin/swift+0x13237f0)
38 0x00000000013236fc swift::TypeChecker::resolveType(swift::TypeRepr*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x13236fc)
39 0x0000000001321ff5 swift::TypeChecker::validateType(swift::TypeLoc&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1321ff5)
40 0x00000000013e9801 swift::IterativeTypeChecker::processResolveInheritedClauseEntry(std::pair<llvm::PointerUnion<swift::TypeDecl*, swift::ExtensionDecl*>, unsigned int>, llvm::function_ref<bool (swift::TypeCheckRequest)>) (/path/to/swift/bin/swift+0x13e9801)
41 0x00000000013b27a6 swift::IterativeTypeChecker::satisfy(swift::TypeCheckRequest) (/path/to/swift/bin/swift+0x13b27a6)
42 0x00000000012985f9 swift::TypeChecker::resolveInheritanceClause(llvm::PointerUnion<swift::TypeDecl*, swift::ExtensionDecl*>) (/path/to/swift/bin/swift+0x12985f9)
43 0x0000000001680764 swift::GenericSignatureBuilder::addInheritedRequirements(swift::TypeDecl*, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::RequirementSource const*, swift::ModuleDecl*) (/path/to/swift/bin/swift+0x1680764)
44 0x0000000001680e49 swift::GenericSignatureBuilder::expandConformanceRequirement(swift::GenericSignatureBuilder::PotentialArchetype*, swift::ProtocolDecl*, swift::GenericSignatureBuilder::RequirementSource const*, bool) (/path/to/swift/bin/swift+0x1680e49)
45 0x000000000168511a swift::GenericSignatureBuilder::addTypeRequirement(llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::GenericSignatureBuilder::UnresolvedHandlingKind) (/path/to/swift/bin/swift+0x168511a)
46 0x0000000001682a5b swift::GenericSignatureBuilder::addRequirement(swift::Requirement const&, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::ModuleDecl*, swift::SubstitutionMap const*) (/path/to/swift/bin/swift+0x1682a5b)
47 0x0000000001690a1d swift::GenericSignatureBuilder::addGenericSignature(swift::GenericSignature*) (/path/to/swift/bin/swift+0x1690a1d)
48 0x000000000159f106 swift::ASTContext::getOrCreateGenericSignatureBuilder(swift::CanGenericSignature, swift::ModuleDecl*) (/path/to/swift/bin/swift+0x159f106)
49 0x00000000012d4965 swift::TypeChecker::checkGenericEnvironment(swift::GenericParamList*, swift::DeclContext*, swift::GenericSignature*, bool, swift::ExtensionDecl*, llvm::function_ref<void (swift::GenericSignatureBuilder&)>) (/path/to/swift/bin/swift+0x12d4965)
50 0x00000000012a7b74 checkExtensionGenericParams(swift::TypeChecker&, swift::ExtensionDecl*, swift::Type, swift::GenericParamList*) (/path/to/swift/bin/swift+0x12a7b74)
51 0x000000000129a90f swift::TypeChecker::validateExtension(swift::ExtensionDecl*) (/path/to/swift/bin/swift+0x129a90f)
52 0x00000000012b1eab (anonymous namespace)::DeclChecker::visitExtensionDecl(swift::ExtensionDecl*) (/path/to/swift/bin/swift+0x12b1eab)
53 0x00000000012a095f (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a095f)
54 0x00000000012a07c3 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12a07c3)
55 0x0000000001331325 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x1331325)
56 0x0000000001054ae4 swift::CompilerInstance::parseAndTypeCheckMainFile(swift::PersistentParserState&, swift::DelayedParsingCallbacks*, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>) (/path/to/swift/bin/swift+0x1054ae4)
57 0x0000000001053ba7 swift::CompilerInstance::parseAndCheckTypes(swift::CompilerInstance::ImplicitImports const&) (/path/to/swift/bin/swift+0x1053ba7)
58 0x00000000010534ca swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x10534ca)
59 0x00000000004bdb56 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) (/path/to/swift/bin/swift+0x4bdb56)
60 0x00000000004bc919 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4bc919)
61 0x0000000000474c14 main (/path/to/swift/bin/swift+0x474c14)
62 0x00007fcbc6121830 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:325:0
63 0x00000000004724c9 _start (/path/to/swift/bin/swift+0x4724c9)
```
2017-10-05 17:03:09 +02:00
practicalswift
4a0df93769 [swiftc (57 vs. 5600)] Add crasher in swift::GenericSignature::getConformanceAccessPath
Add test case for crash triggered in `swift::GenericSignature::getConformanceAccessPath`.

Current number of unresolved compiler crashers: 57 (5600 resolved)

/cc @DougGregor - just wanted to let you know that this crasher caused an assertion failure for the assertion `hasConformanceInSignature(inProtocol->getRequirementSignature(), subjectType, conformingProto) && "missing explicit conformance in requirement signature"` added on 2017-03-08 by you in commit 1f8b0f9b :-)

Assertion failure in [`lib/AST/GenericSignature.cpp (line 854)`](38bf97bacb/lib/AST/GenericSignature.cpp (L854)):

```
Assertion `hasConformanceInSignature(inProtocol->getRequirementSignature(), subjectType, conformingProto) && "missing explicit conformance in requirement signature"' failed.

When executing: auto swift::GenericSignature::getConformanceAccessPath(swift::Type, swift::ProtocolDecl *, swift::ModuleDecl &)::(anonymous class)::operator()(ArrayRef<swift::Requirement>, const RequirementSource *, swift::ProtocolDecl *, swift::Type, swift::ProtocolDecl *) const
```

Assertion context:

```c++
          ->getCanonicalTypeInContext(subjectType,
                                      *inProtocol->getParentModule());

        assert(hasConformanceInSignature(inProtocol->getRequirementSignature(),
                                         subjectType, conformingProto) &&
               "missing explicit conformance in requirement signature");

        // Record this step.
        path.path.push_back({subjectType, conformingProto});
        return;
      }
```
Stack trace:

```
0 0x0000000003ea2314 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3ea2314)
1 0x0000000003ea2656 SignalHandler(int) (/path/to/swift/bin/swift+0x3ea2656)
2 0x00007f052cd8f390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007f052b2b4428 gsignal /build/glibc-bfm8X4/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f052b2b602a abort /build/glibc-bfm8X4/glibc-2.23/stdlib/abort.c:91:0
5 0x00007f052b2acbd7 __assert_fail_base /build/glibc-bfm8X4/glibc-2.23/assert/assert.c:92:0
6 0x00007f052b2acc82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x0000000001671e89 std::_Function_handler<void (llvm::ArrayRef<swift::Requirement>, swift::GenericSignatureBuilder::RequirementSource const*, swift::ProtocolDecl*, swift::Type, swift::ProtocolDecl*), swift::GenericSignature::getConformanceAccessPath(swift::Type, swift::ProtocolDecl*, swift::ModuleDecl&)::$_11>::_M_invoke(std::_Any_data const&, llvm::ArrayRef<swift::Requirement>&&, swift::GenericSignatureBuilder::RequirementSource const*&&, swift::ProtocolDecl*&&, swift::Type&&, swift::ProtocolDecl*&&) (/path/to/swift/bin/swift+0x1671e89)
8 0x00000000016721ca std::_Function_handler<void (llvm::ArrayRef<swift::Requirement>, swift::GenericSignatureBuilder::RequirementSource const*, swift::ProtocolDecl*, swift::Type, swift::ProtocolDecl*), swift::GenericSignature::getConformanceAccessPath(swift::Type, swift::ProtocolDecl*, swift::ModuleDecl&)::$_11>::_M_invoke(std::_Any_data const&, llvm::ArrayRef<swift::Requirement>&&, swift::GenericSignatureBuilder::RequirementSource const*&&, swift::ProtocolDecl*&&, swift::Type&&, swift::ProtocolDecl*&&) (/path/to/swift/bin/swift+0x16721ca)
9 0x0000000001670b39 swift::GenericSignature::getConformanceAccessPath(swift::Type, swift::ProtocolDecl*, swift::ModuleDecl&) (/path/to/swift/bin/swift+0x1670b39)
10 0x00000000016d72f5 swift::SubstitutionMap::lookupConformance(swift::CanType, swift::ProtocolDecl*) const (/path/to/swift/bin/swift+0x16d72f5)
11 0x00000000016717ae bool llvm::function_ref<bool (swift::Type, llvm::ArrayRef<swift::Requirement>)>::callback_fn<swift::GenericSignature::getSubstitutions(swift::SubstitutionMap const&, llvm::SmallVectorImpl<swift::Substitution>&) const::$_8>(long, swift::Type, llvm::ArrayRef<swift::Requirement>) (/path/to/swift/bin/swift+0x16717ae)
12 0x000000000166e677 swift::GenericSignature::enumeratePairedRequirements(llvm::function_ref<bool (swift::Type, llvm::ArrayRef<swift::Requirement>)>) const (/path/to/swift/bin/swift+0x166e677)
13 0x000000000166fc52 swift::GenericSignature::getSubstitutions(swift::SubstitutionMap const&, llvm::SmallVectorImpl<swift::Substitution>&) const (/path/to/swift/bin/swift+0x166fc52)
14 0x00000000012eb8bb (anonymous namespace)::RequirementMatch::getWitness(swift::ASTContext&, (anonymous namespace)::RequirementEnvironment&&) const (/path/to/swift/bin/swift+0x12eb8bb)
15 0x00000000012f0556 (anonymous namespace)::ConformanceChecker::recordWitness(swift::ValueDecl*, (anonymous namespace)::RequirementMatch const&, (anonymous namespace)::RequirementEnvironment&&) (/path/to/swift/bin/swift+0x12f0556)
16 0x00000000012ee269 (anonymous namespace)::ConformanceChecker::resolveWitnessViaLookup(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12ee269)
17 0x00000000012e3eae (anonymous namespace)::MultiConformanceChecker::checkAllConformances() (/path/to/swift/bin/swift+0x12e3eae)
18 0x00000000012e542a swift::TypeChecker::checkConformancesInContext(swift::DeclContext*, swift::IterableDeclContext*) (/path/to/swift/bin/swift+0x12e542a)
19 0x00000000012b2a9d (anonymous namespace)::DeclChecker::visitClassDecl(swift::ClassDecl*) (/path/to/swift/bin/swift+0x12b2a9d)
20 0x00000000012a0a1e (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a0a1e)
21 0x00000000012a07c3 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12a07c3)
22 0x00000000013313aa swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x13313aa)
23 0x0000000001054ae4 swift::CompilerInstance::parseAndTypeCheckMainFile(swift::PersistentParserState&, swift::DelayedParsingCallbacks*, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>) (/path/to/swift/bin/swift+0x1054ae4)
24 0x0000000001053ba7 swift::CompilerInstance::parseAndCheckTypes(swift::CompilerInstance::ImplicitImports const&) (/path/to/swift/bin/swift+0x1053ba7)
25 0x00000000010534ca swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x10534ca)
26 0x00000000004bdb56 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) (/path/to/swift/bin/swift+0x4bdb56)
27 0x00000000004bc919 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4bc919)
28 0x0000000000474c14 main (/path/to/swift/bin/swift+0x474c14)
29 0x00007f052b29f830 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:325:0
30 0x00000000004724c9 _start (/path/to/swift/bin/swift+0x4724c9)
```
2017-10-05 16:33:06 +02:00
practicalswift
ce8be93248 [swiftc (56 vs. 5600)] Add crasher in swift::TypeChecker::resolveIdentifierType
Add test case for crash triggered in `swift::TypeChecker::resolveIdentifierType`.

Current number of unresolved compiler crashers: 56 (5600 resolved)

Stack trace:

```
0 0x0000000003ea2314 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3ea2314)
1 0x0000000003ea2656 SignalHandler(int) (/path/to/swift/bin/swift+0x3ea2656)
2 0x00007fa080f3e390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007fa07f463428 gsignal /build/glibc-bfm8X4/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007fa07f46502a abort /build/glibc-bfm8X4/glibc-2.23/stdlib/abort.c:91:0
5 0x0000000003e38c5d llvm::llvm_unreachable_internal(char const*, char const*, unsigned int) (/path/to/swift/bin/swift+0x3e38c5d)
6 0x00000000012d0c4a (/path/to/swift/bin/swift+0x12d0c4a)
7 0x00000000013230f2 resolveIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, llvm::ArrayRef<swift::ComponentIdentTypeRepr*>, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x13230f2)
8 0x0000000001322a5a swift::TypeChecker::resolveIdentifierType(swift::DeclContext*, swift::IdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1322a5a)
9 0x00000000013237f0 (anonymous namespace)::TypeResolver::resolveType(swift::TypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>) (/path/to/swift/bin/swift+0x13237f0)
10 0x00000000013236fc swift::TypeChecker::resolveType(swift::TypeRepr*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x13236fc)
11 0x0000000001321ff5 swift::TypeChecker::validateType(swift::TypeLoc&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1321ff5)
12 0x00000000012d1c66 checkGenericFuncSignature(swift::TypeChecker&, swift::GenericSignatureBuilder*, swift::AbstractFunctionDecl*, swift::GenericTypeResolver&) (/path/to/swift/bin/swift+0x12d1c66)
13 0x00000000012d1a33 swift::TypeChecker::validateGenericFuncSignature(swift::AbstractFunctionDecl*) (/path/to/swift/bin/swift+0x12d1a33)
14 0x00000000012b658f (anonymous namespace)::DeclChecker::visitFuncDecl(swift::FuncDecl*) (/path/to/swift/bin/swift+0x12b658f)
15 0x00000000012a094f (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a094f)
16 0x00000000012b3e0b (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12b3e0b)
17 0x00000000012a092f (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a092f)
18 0x00000000012b2acb (anonymous namespace)::DeclChecker::visitClassDecl(swift::ClassDecl*) (/path/to/swift/bin/swift+0x12b2acb)
19 0x00000000012a0a1e (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a0a1e)
20 0x00000000012b3e0b (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12b3e0b)
21 0x00000000012a092f (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a092f)
22 0x00000000012a07c3 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12a07c3)
23 0x0000000001331325 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x1331325)
24 0x0000000001054ae4 swift::CompilerInstance::parseAndTypeCheckMainFile(swift::PersistentParserState&, swift::DelayedParsingCallbacks*, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>) (/path/to/swift/bin/swift+0x1054ae4)
25 0x0000000001053ba7 swift::CompilerInstance::parseAndCheckTypes(swift::CompilerInstance::ImplicitImports const&) (/path/to/swift/bin/swift+0x1053ba7)
26 0x00000000010534ca swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x10534ca)
27 0x00000000004bdb56 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) (/path/to/swift/bin/swift+0x4bdb56)
28 0x00000000004bc919 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4bc919)
29 0x0000000000474c14 main (/path/to/swift/bin/swift+0x474c14)
30 0x00007fa07f44e830 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:325:0
31 0x00000000004724c9 _start (/path/to/swift/bin/swift+0x4724c9)
```
2017-10-05 15:22:13 +02:00
Doug Gregor
5db9b11f2f Address a resolved crasher 2017-10-01 20:18:24 -07:00
Doug Gregor
797df6e8d7 Eliminate the _*Indexable protocols.
The various _*Indexable protocols only exist to work around the lack of
recursive protocol constraints. Eliminate all of the *_Indexable protocols,
collapsing their requirements into the corresponding Collection protocol
(e.g., _MutableIndexable —> Collection).

This introduces a number of extraneous requirements into the various
Collection protocols to work around bugs in associated type
inference. Specifically, to work around the lack of "global" inference
of associated type witnesses. These hacks were implicitly present in
the *Indexable protocols; I've made marked them as ABI FIXMEs here so
we can remove them when associated type inference improves.

Fixes rdar://problem/21935030 and a number of ABI FIXMEs in the library.
2017-10-01 15:08:23 -07:00
Rintaro Ishizaki
cd3bf0341e [Parse] Fix crash case in parseStmtForeach 2017-10-01 10:36:08 +09:00
swift-ci
a8083a08eb Merge pull request #12187 from DougGregor/sr-5579 2017-09-29 12:26:01 -07:00
Doug Gregor
fa0c986c25 [Type checker] Make sure we fully validate ‘where’ clauses in protocols.
Fixes SR-5579 and an existing crash.
2017-09-29 11:23:45 -07:00
practicalswift
1a23d42621 [swiftc (60 vs. 5595)] Add crasher in swift::GenericSignatureBuilder::Constraint
Add test case for crash triggered in `swift::GenericSignatureBuilder::Constraint`.

Current number of unresolved compiler crashers: 60 (5595 resolved)

Assertion failure in `llvm/include/llvm/ADT/Optional.h (line 128)`:

```
Assertion `hasVal' failed.

When executing: T *llvm::Optional<swift::GenericSignatureBuilder::Constraint<swift::Type> >::getPointer() [T = swift::GenericSignatureBuilder::Constraint<swift::Type>]
```

Assertion context:

```c++
      hasVal = false;
    }
  }

  const T* getPointer() const { assert(hasVal); return reinterpret_cast<const T*>(storage.buffer); }
  T* getPointer() { assert(hasVal); return reinterpret_cast<T*>(storage.buffer); }
  const T& getValue() const LLVM_LVALUE_FUNCTION { assert(hasVal); return *getPointer(); }
  T& getValue() LLVM_LVALUE_FUNCTION { assert(hasVal); return *getPointer(); }

  explicit operator bool() const { return hasVal; }
  bool hasValue() const { return hasVal; }
```
Stack trace:

```
0 0x0000000003e9c484 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3e9c484)
1 0x0000000003e9c7c6 SignalHandler(int) (/path/to/swift/bin/swift+0x3e9c7c6)
2 0x00007f3fbe08c390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007f3fbc5b1428 gsignal /build/glibc-bfm8X4/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f3fbc5b302a abort /build/glibc-bfm8X4/glibc-2.23/stdlib/abort.c:91:0
5 0x00007f3fbc5a9bd7 __assert_fail_base /build/glibc-bfm8X4/glibc-2.23/assert/assert.c:92:0
6 0x00007f3fbc5a9c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x000000000169bac2 swift::GenericSignatureBuilder::Constraint<swift::Type> swift::GenericSignatureBuilder::checkConstraintList<swift::Type, swift::Type>(llvm::ArrayRef<swift::GenericTypeParamType*>, std::vector<swift::GenericSignatureBuilder::Constraint<swift::Type>, std::allocator<swift::GenericSignatureBuilder::Constraint<swift::Type> > >&, llvm::function_ref<bool (swift::GenericSignatureBuilder::Constraint<swift::Type> const&)>, llvm::function_ref<swift::GenericSignatureBuilder::ConstraintRelation (swift::GenericSignatureBuilder::Constraint<swift::Type> const&)>, llvm::Optional<swift::Diag<unsigned int, swift::Type, swift::Type, swift::Type> >, swift::Diag<swift::Type, swift::Type>, swift::Diag<unsigned int, swift::Type, swift::Type>, llvm::function_ref<swift::Type (swift::Type const&)>, bool) (/path/to/swift/bin/swift+0x169bac2)
8 0x0000000001686a69 swift::GenericSignatureBuilder::checkConcreteTypeConstraints(llvm::ArrayRef<swift::GenericTypeParamType*>, swift::GenericSignatureBuilder::PotentialArchetype*) (/path/to/swift/bin/swift+0x1686a69)
9 0x0000000001684e17 swift::GenericSignatureBuilder::finalize(swift::SourceLoc, llvm::ArrayRef<swift::GenericTypeParamType*>, bool) (/path/to/swift/bin/swift+0x1684e17)
10 0x000000000168d713 swift::GenericSignatureBuilder::computeGenericSignature(swift::SourceLoc, bool) && (/path/to/swift/bin/swift+0x168d713)
11 0x000000000168d96d swift::GenericSignatureBuilder::computeRequirementSignature(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x168d96d)
12 0x0000000001649dd6 swift::ProtocolDecl::computeRequirementSignature() (/path/to/swift/bin/swift+0x1649dd6)
13 0x00000000012d22a8 swift::TypeChecker::validateGenericTypeSignature(swift::GenericTypeDecl*) (/path/to/swift/bin/swift+0x12d22a8)
14 0x00000000012a0208 swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12a0208)
15 0x00000000012b14ef (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12b14ef)
16 0x000000000129e39f (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x129e39f)
17 0x000000000129e233 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x129e233)
18 0x000000000132e9f5 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x132e9f5)
19 0x0000000001052ed4 swift::CompilerInstance::parseAndTypeCheckMainFile(swift::PersistentParserState&, swift::DelayedParsingCallbacks*, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>) (/path/to/swift/bin/swift+0x1052ed4)
20 0x0000000001051f97 swift::CompilerInstance::parseAndCheckTypes(swift::CompilerInstance::ImplicitImports const&) (/path/to/swift/bin/swift+0x1051f97)
21 0x00000000010518ba swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x10518ba)
22 0x00000000004bdb56 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) (/path/to/swift/bin/swift+0x4bdb56)
23 0x00000000004bc919 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4bc919)
24 0x0000000000474c14 main (/path/to/swift/bin/swift+0x474c14)
25 0x00007f3fbc59c830 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:325:0
26 0x00000000004724c9 _start (/path/to/swift/bin/swift+0x4724c9)
```
2017-09-29 18:31:52 +02:00
practicalswift
d6795658e5 [swiftc (59 vs. 5595)] Add crasher in swift::GenericSignature::getCanonicalTypeInContext
Add test case for crash triggered in `swift::GenericSignature::getCanonicalTypeInContext`.

Current number of unresolved compiler crashers: 59 (5595 resolved)

/cc @DougGregor - just wanted to let you know that this crasher caused an assertion failure for the assertion `isCanonicalTypeInContext(result, builder)` added on 2017-02-02 by you in commit ded7e83a :-)

Assertion failure in [`lib/AST/GenericSignature.cpp (line 713)`](d98d7c4fe5/lib/AST/GenericSignature.cpp (L713)):

```
Assertion `isCanonicalTypeInContext(result, builder)' failed.

When executing: swift::CanType swift::GenericSignature::getCanonicalTypeInContext(swift::Type, swift::GenericSignatureBuilder &)
```

Assertion context:

```c++
    return equivClass->getAnchor(getGenericParams());
  });

  auto result = type->getCanonicalType();

  assert(isCanonicalTypeInContext(result, builder));
  return result;
}

CanType GenericSignature::getCanonicalTypeInContext(Type type,
                                                    ModuleDecl &mod) {
```
Stack trace:

```
0 0x0000000003e9c484 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3e9c484)
1 0x0000000003e9c7c6 SignalHandler(int) (/path/to/swift/bin/swift+0x3e9c7c6)
2 0x00007fb47be4e390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007fb47a373428 gsignal /build/glibc-bfm8X4/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007fb47a37502a abort /build/glibc-bfm8X4/glibc-2.23/stdlib/abort.c:91:0
5 0x00007fb47a36bbd7 __assert_fail_base /build/glibc-bfm8X4/glibc-2.23/assert/assert.c:92:0
6 0x00007fb47a36bc82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x000000000166d645 swift::GenericSignature::getCanonicalTypeInContext(swift::Type, swift::GenericSignatureBuilder&) (/path/to/swift/bin/swift+0x166d645)
8 0x000000000166d6c3 swift::GenericSignature::getCanonicalTypeInContext(swift::Type, swift::ModuleDecl&) (/path/to/swift/bin/swift+0x166d6c3)
9 0x00000000012ce6d8 swift::CompleteGenericTypeResolver::areSameType(swift::Type, swift::Type) (/path/to/swift/bin/swift+0x12ce6d8)
10 0x00000000013263cb resolveTopLevelIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, swift::ComponentIdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x13263cb)
11 0x0000000001320856 resolveIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, llvm::ArrayRef<swift::ComponentIdentTypeRepr*>, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1320856)
12 0x000000000132062f resolveIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, llvm::ArrayRef<swift::ComponentIdentTypeRepr*>, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x132062f)
13 0x00000000013201da swift::TypeChecker::resolveIdentifierType(swift::DeclContext*, swift::IdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x13201da)
14 0x0000000001320fa0 (anonymous namespace)::TypeResolver::resolveType(swift::TypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>) (/path/to/swift/bin/swift+0x1320fa0)
15 0x0000000001320eac swift::TypeChecker::resolveType(swift::TypeRepr*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1320eac)
16 0x000000000131f785 swift::TypeChecker::validateType(swift::TypeLoc&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x131f785)
17 0x00000000012cf556 checkGenericFuncSignature(swift::TypeChecker&, swift::GenericSignatureBuilder*, swift::AbstractFunctionDecl*, swift::GenericTypeResolver&) (/path/to/swift/bin/swift+0x12cf556)
18 0x00000000012cf325 swift::TypeChecker::validateGenericFuncSignature(swift::AbstractFunctionDecl*) (/path/to/swift/bin/swift+0x12cf325)
19 0x00000000012b3fa7 (anonymous namespace)::DeclChecker::visitFuncDecl(swift::FuncDecl*) (/path/to/swift/bin/swift+0x12b3fa7)
20 0x000000000129e3bf (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x129e3bf)
21 0x000000000129fdaf swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x129fdaf)
22 0x000000000129ee67 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x129ee67)
23 0x00000000012b181b (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12b181b)
24 0x000000000129e39f (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x129e39f)
25 0x000000000129e233 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x129e233)
26 0x000000000132e9f5 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x132e9f5)
27 0x0000000001052ed4 swift::CompilerInstance::parseAndTypeCheckMainFile(swift::PersistentParserState&, swift::DelayedParsingCallbacks*, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>) (/path/to/swift/bin/swift+0x1052ed4)
28 0x0000000001051f97 swift::CompilerInstance::parseAndCheckTypes(swift::CompilerInstance::ImplicitImports const&) (/path/to/swift/bin/swift+0x1051f97)
29 0x00000000010518ba swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x10518ba)
30 0x00000000004bdb56 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) (/path/to/swift/bin/swift+0x4bdb56)
31 0x00000000004bc919 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4bc919)
32 0x0000000000474c14 main (/path/to/swift/bin/swift+0x474c14)
33 0x00007fb47a35e830 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:325:0
34 0x00000000004724c9 _start (/path/to/swift/bin/swift+0x4724c9)
```
2017-09-29 17:58:01 +02:00
practicalswift
d32b32f3e2 [swiftc (58 vs. 5595)] Add crasher in swift::constraints::ConstraintSystem::getTypeOfMemberReference
Add test case for crash triggered in `swift::constraints::ConstraintSystem::getTypeOfMemberReference`.

Current number of unresolved compiler crashers: 58 (5595 resolved)

/cc @slavapestov - just wanted to let you know that this crasher caused an assertion failure for the assertion `!type->hasUnboundGenericType()` added on 2017-05-21 by you in commit fe419008 :-)

Assertion failure in [`lib/Sema/ConstraintSystem.cpp (line 472)`](64f6b561b5/lib/Sema/ConstraintSystem.cpp (L472)):

```
Assertion `!type->hasUnboundGenericType()' failed.

When executing: swift::Type swift::constraints::ConstraintSystem::openType(swift::Type, OpenedTypeMap &)
```

Assertion context:

```c++
      return type;
    });
}

Type ConstraintSystem::openType(Type type, OpenedTypeMap &replacements) {
  assert(!type->hasUnboundGenericType());

  if (!type->hasTypeParameter())
    return type;

  return type.transform([&](Type type) -> Type {
```
Stack trace:

```
0 0x0000000003e9c484 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3e9c484)
1 0x0000000003e9c7c6 SignalHandler(int) (/path/to/swift/bin/swift+0x3e9c7c6)
2 0x00007fc800eb3390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007fc7ff3d8428 gsignal /build/glibc-bfm8X4/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007fc7ff3da02a abort /build/glibc-bfm8X4/glibc-2.23/stdlib/abort.c:91:0
5 0x00007fc7ff3d0bd7 __assert_fail_base /build/glibc-bfm8X4/glibc-2.23/assert/assert.c:92:0
6 0x00007fc7ff3d0c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x000000000126c77e (/path/to/swift/bin/swift+0x126c77e)
8 0x000000000126e6f3 swift::constraints::ConstraintSystem::getTypeOfMemberReference(swift::Type, swift::ValueDecl*, swift::DeclContext*, bool, swift::FunctionRefKind, swift::constraints::ConstraintLocatorBuilder, swift::DeclRefExpr const*, llvm::DenseMap<swift::GenericTypeParamType*, swift::TypeVariableType*, llvm::DenseMapInfo<swift::GenericTypeParamType*>, llvm::detail::DenseMapPair<swift::GenericTypeParamType*, swift::TypeVariableType*> >*) (/path/to/swift/bin/swift+0x126e6f3)
9 0x000000000126f99d swift::constraints::ConstraintSystem::resolveOverload(swift::constraints::ConstraintLocator*, swift::Type, swift::constraints::OverloadChoice, swift::DeclContext*) (/path/to/swift/bin/swift+0x126f99d)
10 0x000000000122edcf (anonymous namespace)::ConstraintGenerator::addMemberRefConstraints(swift::Expr*, swift::Expr*, swift::ValueDecl*, swift::FunctionRefKind) (/path/to/swift/bin/swift+0x122edcf)
11 0x000000000122a15e (anonymous namespace)::ConstraintWalker::walkToExprPost(swift::Expr*) (/path/to/swift/bin/swift+0x122a15e)
12 0x0000000001621e8c swift::Expr::walk(swift::ASTWalker&) (/path/to/swift/bin/swift+0x1621e8c)
13 0x000000000122080f swift::constraints::ConstraintSystem::generateConstraints(swift::Expr*) (/path/to/swift/bin/swift+0x122080f)
14 0x000000000124e831 swift::constraints::ConstraintSystem::solve(swift::Expr*&, swift::Type, swift::ExprTypeCheckListener*, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::FreeTypeVariableBinding) (/path/to/swift/bin/swift+0x124e831)
15 0x0000000001282a77 swift::TypeChecker::solveForExpression(swift::Expr*&, swift::DeclContext*, swift::Type, swift::FreeTypeVariableBinding, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem&, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>) (/path/to/swift/bin/swift+0x1282a77)
16 0x000000000128683c swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/path/to/swift/bin/swift+0x128683c)
17 0x0000000001310c19 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0x1310c19)
18 0x000000000130f6b5 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0x130f6b5)
19 0x000000000130e886 (anonymous namespace)::StmtChecker::typeCheckBody(swift::BraceStmt*&) (/path/to/swift/bin/swift+0x130e886)
20 0x000000000130daea swift::TypeChecker::typeCheckFunctionBodyUntil(swift::FuncDecl*, swift::SourceLoc) (/path/to/swift/bin/swift+0x130daea)
21 0x000000000130d995 swift::TypeChecker::typeCheckAbstractFunctionBodyUntil(swift::AbstractFunctionDecl*, swift::SourceLoc) (/path/to/swift/bin/swift+0x130d995)
22 0x000000000130e4fd swift::TypeChecker::typeCheckAbstractFunctionBody(swift::AbstractFunctionDecl*) (/path/to/swift/bin/swift+0x130e4fd)
23 0x000000000132df1c typeCheckFunctionsAndExternalDecls(swift::TypeChecker&) (/path/to/swift/bin/swift+0x132df1c)
24 0x000000000132eaed swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x132eaed)
25 0x0000000001052ed4 swift::CompilerInstance::parseAndTypeCheckMainFile(swift::PersistentParserState&, swift::DelayedParsingCallbacks*, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>) (/path/to/swift/bin/swift+0x1052ed4)
26 0x0000000001051f97 swift::CompilerInstance::parseAndCheckTypes(swift::CompilerInstance::ImplicitImports const&) (/path/to/swift/bin/swift+0x1051f97)
27 0x00000000010518ba swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x10518ba)
28 0x00000000004bdb56 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) (/path/to/swift/bin/swift+0x4bdb56)
29 0x00000000004bc919 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4bc919)
30 0x0000000000474c14 main (/path/to/swift/bin/swift+0x474c14)
31 0x00007fc7ff3c3830 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:325:0
32 0x00000000004724c9 _start (/path/to/swift/bin/swift+0x4724c9)
```
2017-09-29 17:28:59 +02:00
practicalswift
32a7ec0078 [swiftc (57 vs. 5595)] Add crasher in swift::TypeBase::getDesugaredType(...)
Add test case for crash triggered in `swift::TypeBase::getDesugaredType(...)`.

Current number of unresolved compiler crashers: 57 (5595 resolved)

Stack trace:

```
0 0x0000000003e9c484 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3e9c484)
1 0x0000000003e9c7c6 SignalHandler(int) (/path/to/swift/bin/swift+0x3e9c7c6)
2 0x00007f4a27c59390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00000000016dc830 swift::TypeBase::getDesugaredType() (/path/to/swift/bin/swift+0x16dc830)
4 0x0000000001326838 resolveTypeDecl(swift::TypeChecker&, swift::TypeDecl*, swift::SourceLoc, swift::DeclContext*, swift::DeclContext*, swift::GenericIdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1326838)
5 0x0000000001326386 resolveTopLevelIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, swift::ComponentIdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1326386)
6 0x0000000001320856 resolveIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, llvm::ArrayRef<swift::ComponentIdentTypeRepr*>, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1320856)
7 0x00000000013201da swift::TypeChecker::resolveIdentifierType(swift::DeclContext*, swift::IdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x13201da)
8 0x0000000001320fa0 (anonymous namespace)::TypeResolver::resolveType(swift::TypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>) (/path/to/swift/bin/swift+0x1320fa0)
9 0x0000000001320eac swift::TypeChecker::resolveType(swift::TypeRepr*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1320eac)
10 0x000000000131f785 swift::TypeChecker::validateType(swift::TypeLoc&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x131f785)
11 0x00000000012a0158 swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12a0158)
12 0x00000000012d4cbd swift::TypeChecker::lookupMemberType(swift::DeclContext*, swift::Type, swift::Identifier, swift::OptionSet<swift::NameLookupFlags, unsigned int>) (/path/to/swift/bin/swift+0x12d4cbd)
13 0x0000000001320a7e resolveIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, llvm::ArrayRef<swift::ComponentIdentTypeRepr*>, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1320a7e)
14 0x00000000013201da swift::TypeChecker::resolveIdentifierType(swift::DeclContext*, swift::IdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x13201da)
15 0x0000000001320fa0 (anonymous namespace)::TypeResolver::resolveType(swift::TypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>) (/path/to/swift/bin/swift+0x1320fa0)
16 0x0000000001320eac swift::TypeChecker::resolveType(swift::TypeRepr*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1320eac)
17 0x000000000131f785 swift::TypeChecker::validateType(swift::TypeLoc&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x131f785)
18 0x00000000012a1445 validateTypealiasType(swift::TypeChecker&, swift::TypeAliasDecl*) (/path/to/swift/bin/swift+0x12a1445)
19 0x00000000012a02f5 swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12a02f5)
20 0x00000000012b14ef (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12b14ef)
21 0x000000000129e39f (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x129e39f)
22 0x000000000129e233 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x129e233)
23 0x000000000132e9f5 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x132e9f5)
24 0x0000000001052ed4 swift::CompilerInstance::parseAndTypeCheckMainFile(swift::PersistentParserState&, swift::DelayedParsingCallbacks*, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>) (/path/to/swift/bin/swift+0x1052ed4)
25 0x0000000001051f97 swift::CompilerInstance::parseAndCheckTypes(swift::CompilerInstance::ImplicitImports const&) (/path/to/swift/bin/swift+0x1051f97)
26 0x00000000010518ba swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x10518ba)
27 0x00000000004bdb56 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) (/path/to/swift/bin/swift+0x4bdb56)
28 0x00000000004bc919 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4bc919)
29 0x0000000000474c14 main (/path/to/swift/bin/swift+0x474c14)
30 0x00007f4a26169830 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:325:0
31 0x00000000004724c9 _start (/path/to/swift/bin/swift+0x4724c9)
```
2017-09-29 16:59:45 +02:00
practicalswift
5995d3d290 [swiftc (56 vs. 5595)] Add crasher in swift::Type::transformRec
Add test case for crash triggered in `swift::Type::transformRec`.

Current number of unresolved compiler crashers: 56 (5595 resolved)

Stack trace:

```
0 0x0000000003e9c484 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3e9c484)
1 0x0000000003e9c7c6 SignalHandler(int) (/path/to/swift/bin/swift+0x3e9c7c6)
2 0x00007f7e8df65390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00000000016753a2 swift::GenericSignatureBuilder::EquivalenceClass::getAnchor(llvm::ArrayRef<swift::GenericTypeParamType*>) (/path/to/swift/bin/swift+0x16753a2)
4 0x0000000001675ab9 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675ab9)
5 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
6 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
7 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
8 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
9 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
10 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
11 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
12 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
13 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
14 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
15 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
16 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
17 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
18 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
19 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
20 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
21 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
22 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
23 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
24 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
25 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
26 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
27 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
28 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
29 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
30 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
31 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
32 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
33 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
34 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
35 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
36 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
37 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
38 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
39 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
40 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
41 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
42 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
43 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
44 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
45 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
46 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
47 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
48 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
49 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
50 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
51 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
52 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
53 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
54 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
55 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
56 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
57 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
58 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
59 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
60 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
61 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
62 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
63 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
64 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
65 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
66 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
67 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
68 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
69 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
70 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
71 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
72 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
73 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
74 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
75 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
76 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
77 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
78 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
79 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
80 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
81 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
82 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
83 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
84 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
85 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
86 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
87 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
88 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
89 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
90 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
91 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
92 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
93 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
94 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
95 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
96 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
97 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
98 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
99 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
100 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
101 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
102 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
103 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
104 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
105 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
106 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
107 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
108 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
109 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
110 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
111 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
112 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
113 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
114 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
115 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
116 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
117 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
118 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
119 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
120 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
121 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
122 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
123 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
124 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
125 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
126 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
127 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
128 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
129 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
130 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
131 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
132 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
133 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
134 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
135 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
136 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
137 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
138 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
139 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
140 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
141 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
142 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
143 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
144 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
145 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
146 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
147 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
148 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
149 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
150 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
151 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
152 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
153 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
154 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
155 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
156 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
157 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
158 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
159 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
160 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
161 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
162 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
163 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
164 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
165 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
166 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
167 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
168 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
169 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
170 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
171 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
172 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
173 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
174 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
175 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
176 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
177 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
178 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
179 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
180 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
181 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
182 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
183 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
184 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
185 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
186 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
187 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
188 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
189 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
190 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
191 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
192 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
193 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
194 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
195 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
196 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
197 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
198 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
199 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
200 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
201 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
202 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
203 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
204 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
205 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
206 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
207 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
208 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
209 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
210 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
211 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
212 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
213 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
214 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
215 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
216 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
217 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
218 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
219 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
220 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
221 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
222 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
223 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
224 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
225 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
226 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
227 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
228 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
229 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
230 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
231 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
232 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
233 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
234 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
235 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
236 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
237 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
238 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
239 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
240 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
241 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
242 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
243 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
244 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
245 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
246 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
247 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
248 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
249 0x0000000001675e79 swift::GenericSignatureBuilder::EquivalenceClass::getTypeInContext(swift::GenericSignatureBuilder&, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x1675e79)
250 0x000000000166a4a3 swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x166a4a3)
251 0x00000000016e5fa9 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions)::$_18>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x16e5fa9)
252 0x00000000016e2446 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e2446)
253 0x00000000016e275d swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x16e275d)
254 0x00000000016e0e16 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::SubstOptions) const (/path/to/swift/bin/swift+0x16e0e16)
255 0x000000000166a5da swift::GenericEnvironment::mapTypeIntoContext(swift::Type, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>) const (/path/to/swift/bin/swift+0x166a5da)
```
2017-09-29 16:25:27 +02:00
practicalswift
1a330d7306 [swiftc (55 vs. 5595)] Add crasher in swift::ProtocolType::canonicalizeProtocols
Add test case for crash triggered in `swift::ProtocolType::canonicalizeProtocols`.

Current number of unresolved compiler crashers: 55 (5595 resolved)

Stack trace:

```
0 0x0000000003e9c484 PrintStackTraceSignalHandler(void*) (/path/to/swift/bin/swift+0x3e9c484)
1 0x0000000003e9c7c6 SignalHandler(int) (/path/to/swift/bin/swift+0x3e9c7c6)
2 0x00007fc2aa064390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00000000016db70e swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16db70e)
4 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
5 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
6 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
7 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
8 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
9 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
10 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
11 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
12 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
13 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
14 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
15 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
16 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
17 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
18 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
19 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
20 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
21 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
22 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
23 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
24 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
25 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
26 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
27 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
28 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
29 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
30 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
31 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
32 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
33 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
34 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
35 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
36 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
37 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
38 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
39 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
40 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
41 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
42 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
43 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
44 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
45 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
46 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
47 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
48 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
49 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
50 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
51 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
52 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
53 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
54 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
55 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
56 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
57 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
58 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
59 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
60 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
61 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
62 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
63 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
64 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
65 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
66 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
67 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
68 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
69 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
70 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
71 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
72 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
73 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
74 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
75 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
76 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
77 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
78 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
79 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
80 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
81 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
82 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
83 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
84 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
85 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
86 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
87 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
88 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
89 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
90 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
91 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
92 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
93 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
94 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
95 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
96 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
97 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
98 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
99 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
100 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
101 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
102 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
103 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
104 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
105 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
106 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
107 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
108 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
109 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
110 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
111 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
112 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
113 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
114 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
115 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
116 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
117 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
118 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
119 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
120 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
121 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
122 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
123 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
124 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
125 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
126 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
127 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
128 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
129 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
130 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
131 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
132 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
133 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
134 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
135 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
136 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
137 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
138 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
139 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
140 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
141 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
142 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
143 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
144 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
145 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
146 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
147 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
148 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
149 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
150 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
151 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
152 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
153 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
154 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
155 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
156 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
157 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
158 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
159 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
160 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
161 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
162 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
163 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
164 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
165 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
166 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
167 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
168 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
169 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
170 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
171 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
172 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
173 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
174 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
175 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
176 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
177 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
178 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
179 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
180 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
181 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
182 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
183 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
184 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
185 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
186 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
187 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
188 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
189 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
190 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
191 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
192 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
193 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
194 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
195 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
196 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
197 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
198 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
199 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
200 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
201 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
202 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
203 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
204 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
205 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
206 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
207 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
208 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
209 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
210 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
211 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
212 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
213 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
214 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
215 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
216 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
217 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
218 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
219 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
220 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
221 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
222 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
223 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
224 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
225 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
226 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
227 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
228 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
229 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
230 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
231 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
232 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
233 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
234 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
235 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
236 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
237 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
238 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
239 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
240 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
241 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
242 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
243 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
244 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
245 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
246 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
247 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
248 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
249 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
250 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
251 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
252 0x00000000016dc47a swift::ProtocolCompositionType::get(swift::ASTContext const&, llvm::ArrayRef<swift::Type>, bool) (/path/to/swift/bin/swift+0x16dc47a)
253 0x00000000016d7dbc swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x16d7dbc)
254 0x00000000016487d5 swift::ProtocolDecl::getInheritedProtocols() const (/path/to/swift/bin/swift+0x16487d5)
255 0x00000000016dba90 swift::ProtocolType::canonicalizeProtocols(llvm::SmallVectorImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x16dba90)
```
2017-09-29 15:27:25 +02:00
Doug Gregor
d93bed5ed1 [GSB] Move a well-formed GenericSignatureBuilder to be the canonical builder.
Once we compute a generic signature from a generic signature builder,
all queries involving that generic signature will go through a separate
(canonicalized) builder, and the original builder can no longer be used.
The canonicalization process then creates a new, effectively identical
generic signature builder. How silly.

Once we’ve computed the signature of a generic signature builder, “register”
it with the ASTContext, allowing us to move the existing generic signature
builder into place as the canonical generic signature builder. The builder
requires minimal patching but is otherwise fully usable.

Thanks to Slava Pestov for the idea!
2017-09-28 16:19:08 -07:00
Doug Gregor
54864f858c [Type checker] Replace a use of GenericSignatureBuilder::resolveArchetype().
The type checker shouldn’t know about potential archetypes. Use
GenericSignatureBuilder::resolveEquivalenceClass() and perform the lookup
into that instead.

The test case change highlights an existing problem with generic signature
minimization.
2017-09-28 14:27:42 -07:00
Doug Gregor
118eb003ed Resolve a fixed crasher 2017-09-28 14:27:09 -07:00
Doug Gregor
8f5d8aa7f9 Revert "[GSB] Centralize, clean up, and cache nested type name lookup" 2017-09-25 13:43:10 -07:00
Doug Gregor
4b43cbe26b Resolve a fixed crasher 2017-09-25 10:12:27 -07:00
Joe Shajrawi
00f44ce24a Revert "Create fewer generic signature builders" 2017-09-22 21:57:53 -07:00
Doug Gregor
eccdedaf97 Merge pull request #12062 from DougGregor/make-fewer-gsbs
Create fewer generic signature builders
2017-09-22 18:38:27 -07:00
Doug Gregor
76a532b3af [GSB] Move a well-formed GenericSignatureBuilder to be the canonical builder.
Once we compute a generic signature from a generic signature builder,
all queries involving that generic signature will go through a separate
(canonicalized) builder, and the original builder can no longer be used.
The canonicalization process then creates a new, effectively identical
generic signature builder. How silly.

Once we’ve computed the signature of a generic signature builder, “register”
it with the ASTContext, allowing us to move the existing generic signature
builder into place as the canonical generic signature builder. The builder
requires minimal patching but is otherwise fully usable.

Thanks to Slava Pestov for the idea!
2017-09-22 17:11:05 -07:00