Mark Lacey
ee7bedde3f
Remove -O from a couple type checker perf tests, and add another test.
...
We don't need -O here. The new test is another known failure.
2017-04-11 23:55:57 -07:00
Doug Gregor
5dadfa8fac
Merge pull request #8707 from DougGregor/gsb-delayed-reqs
...
[GSB] Basic infrastructure for delaying and reprocessing requirements
2017-04-11 23:28:27 -07:00
Max Moiseev
fe4553eb80
Merge branch 'master' into new-integer-protocols
2017-04-11 17:07:11 -07:00
Slava Pestov
4817bd4214
Add some SourceKit crasher test cases
...
The unfixed ones were discovered by fuzzing. I have fixes for most
of them in an in-progress PR.
One that was already fixed is just a regression test I'm adding.
2017-04-11 14:26:10 -07:00
Doug Gregor
0f0a5906d7
[GSB] Put conformance requirements on the proper potential archetype.
...
We were putting conformance requirements on the representative of the
equivalence class, rather than directly on the potential archetype on
which the conformance requirement was specified. This violates the
invariant used when forming protocol-requirement sources that we never
reseat a requirement onto the representative (which would
have become a problem when implementing recursive protocol
constreaints) as well as masking a GSB idempotency issue that comes
from same-type requirements where the right-hand side was not
guaranteed to refer to the archetype anchor *within* that subcomponent.
2017-04-11 14:15:46 -07:00
Slava Pestov
011fb8117a
Sema: Fix a compiler crasher
2017-04-10 17:04:35 -07:00
Huon Wilson
cd97248909
Merge pull request #8635 from huonw/exp-scale-test
...
[scale-test] Diagnose exponential growth explicitly.
2017-04-10 16:21:56 -07:00
Pavol Vaskovic
7c103d80c6
Validate that benchmark commits contain freshly generated test harness
2017-04-11 00:47:34 +02:00
Max Moiseev
a3a3351bd8
Merge branch 'master' into new-integer-protocols
2017-04-10 15:41:13 -07:00
practicalswift
91f1da26bc
[swiftc (36 vs. 5512)] Add crasher in swift::Expr::walk(...)
...
Add test case for crash triggered in `swift::Expr::walk(...)`.
Current number of unresolved compiler crashers: 36 (5512 resolved)
Stack trace:
```
0 0x000000000395fc48 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x395fc48)
1 0x0000000003960386 SignalHandler(int) (/path/to/swift/bin/swift+0x3960386)
2 0x00007f2691f92390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007f26904b8428 gsignal /build/glibc-9tT8Do/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f26904ba02a abort /build/glibc-9tT8Do/glibc-2.23/stdlib/abort.c:91:0
5 0x00000000038fbfed llvm::llvm_unreachable_internal(char const*, char const*, unsigned int) (/path/to/swift/bin/swift+0x38fbfed)
6 0x00000000014fcfe6 (/path/to/swift/bin/swift+0x14fcfe6)
7 0x00000000013465a3 (anonymous namespace)::ExprRewriter::coerceExistential(swift::Expr*, swift::Type, swift::constraints::ConstraintLocatorBuilder) (/path/to/swift/bin/swift+0x13465a3)
8 0x000000000133d624 (anonymous namespace)::ExprRewriter::coerceToType(swift::Expr*, swift::Type, swift::constraints::ConstraintLocatorBuilder, llvm::Optional<swift::Pattern*>) (/path/to/swift/bin/swift+0x133d624)
9 0x000000000133c5c9 (anonymous namespace)::ExprRewriter::coerceToType(swift::Expr*, swift::Type, swift::constraints::ConstraintLocatorBuilder, llvm::Optional<swift::Pattern*>) (/path/to/swift/bin/swift+0x133c5c9)
10 0x0000000001356784 (anonymous namespace)::ExprRewriter::coerceCallArguments(swift::Expr*, swift::Type, llvm::PointerUnion<swift::ApplyExpr*, llvm::PointerEmbeddedInt<unsigned int, 2> >, llvm::ArrayRef<swift::Identifier>, bool, swift::constraints::ConstraintLocatorBuilder) (/path/to/swift/bin/swift+0x1356784)
11 0x00000000013420a8 (anonymous namespace)::ExprRewriter::finishApply(swift::ApplyExpr*, swift::Type, swift::constraints::ConstraintLocatorBuilder) (/path/to/swift/bin/swift+0x13420a8)
12 0x0000000001357d23 (anonymous namespace)::ExprRewriter::visitApplyExpr(swift::ApplyExpr*) (/path/to/swift/bin/swift+0x1357d23)
13 0x000000000133e9e4 (anonymous namespace)::ExprRewriter::walkToExprPost(swift::Expr*) (/path/to/swift/bin/swift+0x133e9e4)
14 0x0000000001344171 (anonymous namespace)::ExprWalker::walkToExprPost(swift::Expr*) (/path/to/swift/bin/swift+0x1344171)
15 0x00000000014608fc swift::Expr::walk(swift::ASTWalker&) (/path/to/swift/bin/swift+0x14608fc)
16 0x000000000133b83f swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::Expr*, swift::Type, bool, bool, bool) (/path/to/swift/bin/swift+0x133b83f)
17 0x00000000012a3230 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+0x12a3230)
18 0x0000000001368ee6 (anonymous namespace)::FailureDiagnosis::typeCheckChildIndependently(swift::Expr*, swift::Type, swift::ContextualTypePurpose, swift::OptionSet<TCCFlags, unsigned int>, swift::ExprTypeCheckListener*, bool) (/path/to/swift/bin/swift+0x1368ee6)
19 0x0000000001365093 swift::ASTVisitor<(anonymous namespace)::FailureDiagnosis, bool, void, void, void, void, void>::visit(swift::Expr*) (/path/to/swift/bin/swift+0x1365093)
20 0x000000000135d72a swift::constraints::ConstraintSystem::diagnoseFailureForExpr(swift::Expr*) (/path/to/swift/bin/swift+0x135d72a)
21 0x0000000001364482 swift::constraints::ConstraintSystem::salvage(llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::Expr*) (/path/to/swift/bin/swift+0x1364482)
22 0x000000000129fb78 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+0x129fb78)
23 0x00000000012a31a6 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+0x12a31a6)
24 0x0000000001321e35 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0x1321e35)
25 0x0000000001321646 swift::TypeChecker::typeCheckTopLevelCodeDecl(swift::TopLevelCodeDecl*) (/path/to/swift/bin/swift+0x1321646)
26 0x0000000001336120 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x1336120)
27 0x0000000000fa3286 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xfa3286)
28 0x00000000004a8892 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a8892)
29 0x00000000004651d7 main (/path/to/swift/bin/swift+0x4651d7)
30 0x00007f26904a3830 __libc_start_main /build/glibc-9tT8Do/glibc-2.23/csu/../csu/libc-start.c:325:0
31 0x0000000000462879 _start (/path/to/swift/bin/swift+0x462879)
```
2017-04-10 23:25:39 +02:00
Huon Wilson
3f712ad87c
[scale-test] Diagnose exponential growth explicitly.
...
This, somewhat questionably, fits the polynomial model and the
exponential model, and then chooses the one with the best R^2. However,
no matter how statistically valid this is, it works reasonably in
practice.
Slow growing things sometimes get classified as 1.0^n or 1.1^n, but
these are either spurious or not relevant, and so a similar thresholding
to the polynomial fit is used.
2017-04-10 13:22:16 -07:00
practicalswift
f9d6a3ce00
[swiftc (35 vs. 5512)] Add crasher in swift::TypeChecker::checkGenericParamList
...
Add test case for crash triggered in `swift::TypeChecker::checkGenericParamList`.
Current number of unresolved compiler crashers: 35 (5512 resolved)
/cc @DougGregor - just wanted to let you know that this crasher caused an assertion failure for the assertion `Impl->GenericParams.empty() || ((Key.Depth == Impl->GenericParams.back()->getDepth() && Key.Index == Impl->GenericParams.back()->getIndex() + 1) || (Key.Depth > Impl->GenericParams.back()->getDepth() && Key.Index == 0))` added on 2017-02-07 by you in commit 0c76a9d8 :-)
Assertion failure in [`lib/AST/GenericSignatureBuilder.cpp (line 2127)`](4463bb8287/lib/AST/GenericSignatureBuilder.cpp (L2127) ):
```
Assertion `Impl->GenericParams.empty() || ((Key.Depth == Impl->GenericParams.back()->getDepth() && Key.Index == Impl->GenericParams.back()->getIndex() + 1) || (Key.Depth > Impl->GenericParams.back()->getDepth() && Key.Index == 0))' failed.
When executing: void swift::GenericSignatureBuilder::addGenericParameter(swift::GenericTypeParamType *)
```
Assertion context:
```c++
return ResolvedType::forPotentialArchetype(pa);
}
void GenericSignatureBuilder::addGenericParameter(GenericTypeParamDecl *GenericParam) {
addGenericParameter(
GenericParam->getDeclaredInterfaceType()->castTo<GenericTypeParamType>());
}
bool GenericSignatureBuilder::addGenericParameterRequirements(
GenericTypeParamDecl *GenericParam) {
GenericParamKey Key(GenericParam);
```
Stack trace:
```
0 0x000000000395fc48 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x395fc48)
1 0x0000000003960386 SignalHandler(int) (/path/to/swift/bin/swift+0x3960386)
2 0x00007f5c3d37d390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007f5c3b8a3428 gsignal /build/glibc-9tT8Do/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f5c3b8a502a abort /build/glibc-9tT8Do/glibc-2.23/stdlib/abort.c:91:0
5 0x00007f5c3b89bbd7 __assert_fail_base /build/glibc-9tT8Do/glibc-2.23/assert/assert.c:92:0
6 0x00007f5c3b89bc82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x00000000014b3f98 (/path/to/swift/bin/swift+0x14b3f98)
8 0x00000000012e575c swift::TypeChecker::checkGenericParamList(swift::GenericSignatureBuilder*, swift::GenericParamList*, swift::GenericSignature*, swift::GenericTypeResolver*) (/path/to/swift/bin/swift+0x12e575c)
9 0x00000000012e8c38 swift::TypeChecker::checkGenericEnvironment(swift::GenericParamList*, swift::DeclContext*, swift::GenericSignature*, bool, llvm::function_ref<void (swift::GenericSignatureBuilder&)>) (/path/to/swift/bin/swift+0x12e8c38)
10 0x00000000012e9089 swift::TypeChecker::validateGenericTypeSignature(swift::GenericTypeDecl*) (/path/to/swift/bin/swift+0x12e9089)
11 0x00000000012b991e swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12b991e)
12 0x00000000012c8943 (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12c8943)
13 0x00000000012b7b57 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12b7b57)
14 0x00000000012c763b (anonymous namespace)::DeclChecker::visitExtensionDecl(swift::ExtensionDecl*) (/path/to/swift/bin/swift+0x12c763b)
15 0x00000000012b7a1b (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12b7a1b)
16 0x00000000012b7953 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12b7953)
17 0x00000000013360a5 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x13360a5)
18 0x0000000000fa3286 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xfa3286)
19 0x00000000004a8892 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a8892)
20 0x00000000004651d7 main (/path/to/swift/bin/swift+0x4651d7)
21 0x00007f5c3b88e830 __libc_start_main /build/glibc-9tT8Do/glibc-2.23/csu/../csu/libc-start.c:325:0
22 0x0000000000462879 _start (/path/to/swift/bin/swift+0x462879)
```
2017-04-10 22:17:59 +02:00
practicalswift
48f7c3d668
[swiftc (34 vs. 5512)] Add crasher in swift::AbstractTypeParamDecl::getSuperclass(...)
...
Add test case for crash triggered in `swift::AbstractTypeParamDecl::getSuperclass(...)`.
Current number of unresolved compiler crashers: 34 (5512 resolved)
/cc @slavapestov - just wanted to let you know that this crasher caused an assertion failure for the assertion `genericEnv != nullptr && "Too much circularity"` added on 2017-03-30 by you in commit a79ef97c :-)
Assertion failure in [`lib/AST/Decl.cpp (line 2320)`](bee17f7838/lib/AST/Decl.cpp (L2320) ):
```
Assertion `genericEnv != nullptr && "Too much circularity"' failed.
When executing: swift::Type swift::AbstractTypeParamDecl::getSuperclass() const
```
Assertion context:
```c++
getASTContext());
}
Type AbstractTypeParamDecl::getSuperclass() const {
auto *genericEnv = getDeclContext()->getGenericEnvironmentOfContext();
assert(genericEnv != nullptr && "Too much circularity");
auto contextTy = genericEnv->mapTypeIntoContext(getDeclaredInterfaceType());
if (auto *archetype = contextTy->getAs<ArchetypeType>())
return archetype->getSuperclass();
```
Stack trace:
```
0 0x000000000395fc48 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x395fc48)
1 0x0000000003960386 SignalHandler(int) (/path/to/swift/bin/swift+0x3960386)
2 0x00007f560e84c390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007f560cd72428 gsignal /build/glibc-9tT8Do/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f560cd7402a abort /build/glibc-9tT8Do/glibc-2.23/stdlib/abort.c:91:0
5 0x00007f560cd6abd7 __assert_fail_base /build/glibc-9tT8Do/glibc-2.23/assert/assert.c:92:0
6 0x00007f560cd6ac82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x00000000014845d6 swift::AbstractTypeParamDecl::getSuperclass() const (/path/to/swift/bin/swift+0x14845d6)
8 0x000000000130f4ac checkTypeWitness(swift::TypeChecker&, swift::DeclContext*, swift::AssociatedTypeDecl*, swift::Type) (/path/to/swift/bin/swift+0x130f4ac)
9 0x000000000130c5ce (anonymous namespace)::ConformanceChecker::resolveTypeWitnessViaLookup(swift::AssociatedTypeDecl*) (/path/to/swift/bin/swift+0x130c5ce)
10 0x00000000012fb5ed swift::TypeChecker::resolveTypeWitness(swift::NormalProtocolConformance const*, swift::AssociatedTypeDecl*) (/path/to/swift/bin/swift+0x12fb5ed)
11 0x00000000014f133f swift::NormalProtocolConformance::getTypeWitnessAndDecl(swift::AssociatedTypeDecl*, swift::LazyResolver*) const (/path/to/swift/bin/swift+0x14f133f)
12 0x00000000014f1246 swift::ProtocolConformance::getTypeWitnessAndDecl(swift::AssociatedTypeDecl*, swift::LazyResolver*) const (/path/to/swift/bin/swift+0x14f1246)
13 0x00000000014b0f7b maybeAddSameTypeRequirementForNestedType(swift::GenericSignatureBuilder::PotentialArchetype*, swift::GenericSignatureBuilder::RequirementSource const*, swift::GenericSignatureBuilder&) (/path/to/swift/bin/swift+0x14b0f7b)
14 0x00000000014b065d swift::GenericSignatureBuilder::PotentialArchetype::updateNestedTypeForConformance(llvm::PointerUnion<swift::AssociatedTypeDecl*, swift::TypeAliasDecl*>, swift::GenericSignatureBuilder::PotentialArchetype::NestedTypeUpdate) (/path/to/swift/bin/swift+0x14b065d)
15 0x00000000014b4723 swift::GenericSignatureBuilder::addConformanceRequirement(swift::GenericSignatureBuilder::PotentialArchetype*, swift::ProtocolDecl*, swift::GenericSignatureBuilder::RequirementSource const*, llvm::SmallPtrSetImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x14b4723)
16 0x00000000014b5e27 swift::GenericSignatureBuilder::addTypeRequirement(llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::Type, llvm::SmallPtrSetImpl<swift::ProtocolDecl*>*) (/path/to/swift/bin/swift+0x14b5e27)
17 0x00000000014c5958 bool llvm::function_ref<bool (swift::Type, swift::TypeRepr const*)>::callback_fn<swift::GenericSignatureBuilder::addInheritedRequirements(swift::TypeDecl*, swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type, swift::GenericSignatureBuilder::RequirementSource const*, llvm::SmallPtrSetImpl<swift::ProtocolDecl*>&)::$_11>(long, swift::Type, swift::TypeRepr const*) (/path/to/swift/bin/swift+0x14c5958)
18 0x00000000014beb9d std::_Function_handler<void (swift::Type, swift::TypeRepr const*), visitInherited(llvm::ArrayRef<swift::TypeLoc>, llvm::function_ref<bool (swift::Type, swift::TypeRepr const*)>)::$_42>::_M_invoke(std::_Any_data const&, swift::Type&&, swift::TypeRepr const*&&) (/path/to/swift/bin/swift+0x14beb9d)
19 0x00000000014b41e7 swift::GenericSignatureBuilder::addInheritedRequirements(swift::TypeDecl*, swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type, swift::GenericSignatureBuilder::RequirementSource const*, llvm::SmallPtrSetImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x14b41e7)
20 0x00000000014b4030 swift::GenericSignatureBuilder::addGenericParameterRequirements(swift::GenericTypeParamDecl*) (/path/to/swift/bin/swift+0x14b4030)
21 0x00000000012e57b6 swift::TypeChecker::checkGenericParamList(swift::GenericSignatureBuilder*, swift::GenericParamList*, swift::GenericSignature*, swift::GenericTypeResolver*) (/path/to/swift/bin/swift+0x12e57b6)
22 0x00000000012e8c62 swift::TypeChecker::checkGenericEnvironment(swift::GenericParamList*, swift::DeclContext*, swift::GenericSignature*, bool, llvm::function_ref<void (swift::GenericSignatureBuilder&)>) (/path/to/swift/bin/swift+0x12e8c62)
23 0x00000000012e9089 swift::TypeChecker::validateGenericTypeSignature(swift::GenericTypeDecl*) (/path/to/swift/bin/swift+0x12e9089)
24 0x00000000012b991e swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12b991e)
25 0x00000000012c8943 (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12c8943)
26 0x00000000012b7b57 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12b7b57)
27 0x00000000012b7953 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12b7953)
28 0x00000000013360a5 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x13360a5)
29 0x0000000000fa3286 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xfa3286)
30 0x00000000004a8892 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a8892)
31 0x00000000004651d7 main (/path/to/swift/bin/swift+0x4651d7)
32 0x00007f560cd5d830 __libc_start_main /build/glibc-9tT8Do/glibc-2.23/csu/../csu/libc-start.c:325:0
33 0x0000000000462879 _start (/path/to/swift/bin/swift+0x462879)
```
2017-04-10 09:24:58 +02:00
Pavol Vaskovic
4f3753a749
Add support for GYB in benchmarks
2017-04-08 09:13:18 +02:00
Max Moiseev
022665547b
Merge branch 'master' into new-integer-protocols
2017-04-07 14:42:53 -07:00
practicalswift
b6edf4f1af
[swiftc (33 vs. 5512)] Add crasher in swift::constraints::ConstraintSystem::resolveOverload
...
Add test case for crash triggered in `swift::constraints::ConstraintSystem::resolveOverload`.
Current number of unresolved compiler crashers: 33 (5512 resolved)
/cc @DougGregor - just wanted to let you know that this crasher caused an assertion failure for the assertion `!refType->hasTypeParameter() && "Cannot have a dependent type here"` added on 2015-07-07 by you in commit 3023a710 :-)
Assertion failure in [`lib/Sema/ConstraintSystem.cpp (line 1501)`](be430ae88c/lib/Sema/ConstraintSystem.cpp (L1501) ):
```
Assertion `!refType->hasTypeParameter() && "Cannot have a dependent type here"' failed.
When executing: void swift::constraints::ConstraintSystem::resolveOverload(swift::constraints::ConstraintLocator *, swift::Type, swift::constraints::OverloadChoice, swift::DeclContext *)
```
Assertion context:
```c++
auto tuple = choice.getBaseType()->castTo<TupleType>();
refType = tuple->getElementType(choice.getTupleIndex())->getRValueType();
}
break;
}
assert(!refType->hasTypeParameter() && "Cannot have a dependent type here");
// If we're binding to an init member, the 'throws' need to line up between
// the bound and reference types.
if (choice.isDecl()) {
auto decl = choice.getDecl();
```
Stack trace:
```
0 0x000000000395ec18 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x395ec18)
1 0x000000000395f356 SignalHandler(int) (/path/to/swift/bin/swift+0x395f356)
2 0x00007fe5f6c91390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007fe5f51b7428 gsignal /build/glibc-9tT8Do/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007fe5f51b902a abort /build/glibc-9tT8Do/glibc-2.23/stdlib/abort.c:91:0
5 0x00007fe5f51afbd7 __assert_fail_base /build/glibc-9tT8Do/glibc-2.23/assert/assert.c:92:0
6 0x00007fe5f51afc82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x000000000128cd28 swift::constraints::ConstraintSystem::resolveOverload(swift::constraints::ConstraintLocator*, swift::Type, swift::constraints::OverloadChoice, swift::DeclContext*) (/path/to/swift/bin/swift+0x128cd28)
8 0x000000000125f24d swift::constraints::ConstraintSystem::simplifyConstraint(swift::constraints::Constraint const&) (/path/to/swift/bin/swift+0x125f24d)
9 0x000000000126cccd swift::constraints::ConstraintSystem::solveSimplified(llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::FreeTypeVariableBinding) (/path/to/swift/bin/swift+0x126cccd)
10 0x0000000001264895 swift::constraints::ConstraintSystem::solveRec(llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::FreeTypeVariableBinding) (/path/to/swift/bin/swift+0x1264895)
11 0x0000000001264252 swift::constraints::ConstraintSystem::solve(llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::FreeTypeVariableBinding) (/path/to/swift/bin/swift+0x1264252)
12 0x0000000001267588 swift::constraints::ConstraintSystem::solve(swift::Expr*&, swift::Type, swift::ExprTypeCheckListener*, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::FreeTypeVariableBinding) (/path/to/swift/bin/swift+0x1267588)
13 0x000000000129f074 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+0x129f074)
14 0x00000000012a26e6 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+0x12a26e6)
15 0x00000000012a63d1 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, bool) (/path/to/swift/bin/swift+0x12a63d1)
16 0x00000000012a6596 swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int, bool) (/path/to/swift/bin/swift+0x12a6596)
17 0x00000000012bcb58 validatePatternBindingEntries(swift::TypeChecker&, swift::PatternBindingDecl*) (/path/to/swift/bin/swift+0x12bcb58)
18 0x00000000012b6fd4 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12b6fd4)
19 0x00000000012c72db (anonymous namespace)::DeclChecker::visitClassDecl(swift::ClassDecl*) (/path/to/swift/bin/swift+0x12c72db)
20 0x00000000012b6f8b (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12b6f8b)
21 0x00000000012c819b (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12c819b)
22 0x00000000012b7097 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12b7097)
23 0x00000000012c819b (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12c819b)
24 0x00000000012b7097 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12b7097)
25 0x00000000012b6e93 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12b6e93)
26 0x0000000001335945 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x1335945)
27 0x0000000000fa1dc6 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xfa1dc6)
28 0x00000000004a8892 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a8892)
29 0x00000000004651d7 main (/path/to/swift/bin/swift+0x4651d7)
30 0x00007fe5f51a2830 __libc_start_main /build/glibc-9tT8Do/glibc-2.23/csu/../csu/libc-start.c:325:0
31 0x0000000000462879 _start (/path/to/swift/bin/swift+0x462879)
```
2017-04-07 11:55:04 +02:00
practicalswift
ab175347e0
[swiftc (32 vs. 5512)] Add crasher in swift::Type::transformRec
...
Add test case for crash triggered in `swift::Type::transformRec`.
Current number of unresolved compiler crashers: 32 (5512 resolved)
/cc @jckarter - just wanted to let you know that this crasher caused an assertion failure for the assertion `(conformingReplacementType->is<SubstitutableType>() || conformingReplacementType->is<DependentMemberType>()) && "replacement requires looking up a concrete conformance"` added on 2016-12-15 by you in commit 57d9ad0a :-)
Assertion failure in [`lib/AST/Type.cpp (line 2875)`](43106a610e/lib/AST/Type.cpp (L2875) ):
```
Assertion `(conformingReplacementType->is<SubstitutableType>() || conformingReplacementType->is<DependentMemberType>()) && "replacement requires looking up a concrete conformance"' failed.
When executing: Optional<swift::ProtocolConformanceRef> swift::MakeAbstractConformanceForGenericType::operator()(swift::CanType, swift::Type, swift::ProtocolType *) const
```
Assertion context:
```c++
MakeAbstractConformanceForGenericType::operator()(CanType dependentType,
Type conformingReplacementType,
ProtocolType *conformedProtocol) const {
assert((conformingReplacementType->is<SubstitutableType>()
|| conformingReplacementType->is<DependentMemberType>())
&& "replacement requires looking up a concrete conformance");
return ProtocolConformanceRef(conformedProtocol->getDecl());
}
Optional<ProtocolConformanceRef>
LookUpConformanceInSignature::operator()(CanType dependentType,
```
Stack trace:
```
0 0x000000000395ec18 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x395ec18)
1 0x000000000395f356 SignalHandler(int) (/path/to/swift/bin/swift+0x395f356)
2 0x00007fecf3068390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007fecf158e428 gsignal /build/glibc-9tT8Do/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007fecf159002a abort /build/glibc-9tT8Do/glibc-2.23/stdlib/abort.c:91:0
5 0x00007fecf1586bd7 __assert_fail_base /build/glibc-9tT8Do/glibc-2.23/assert/assert.c:92:0
6 0x00007fecf1586c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x0000000001503af9 (/path/to/swift/bin/swift+0x1503af9)
8 0x00000000005a4d89 llvm::Optional<swift::ProtocolConformanceRef> llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>::callback_fn<swift::MakeAbstractConformanceForGenericType>(long, swift::CanType, swift::Type, swift::ProtocolType*) (/path/to/swift/bin/swift+0x5a4d89)
9 0x0000000001503f12 getMemberForBaseType(llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::Type, swift::Type, swift::AssociatedTypeDecl*, swift::Identifier, swift::OptionSet<swift::SubstFlags, unsigned int>) (/path/to/swift/bin/swift+0x1503f12)
10 0x0000000001508378 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::OptionSet<swift::SubstFlags, unsigned int>)::$_17>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x1508378)
11 0x0000000001504f09 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x1504f09)
12 0x00000000015054ad swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x15054ad)
13 0x00000000015054ad swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x15054ad)
14 0x000000000150421e swift::Type::substDependentTypesWithErrorTypes() const (/path/to/swift/bin/swift+0x150421e)
15 0x00000000014a4560 swift::GenericEnvironment::mapTypeOutOfContext(swift::GenericEnvironment*, swift::Type) (/path/to/swift/bin/swift+0x14a4560)
16 0x00000000012ef5f2 swift::TypeChecker::coercePatternToType(swift::Pattern*&, swift::DeclContext*, swift::Type, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, swift::TypeLoc) (/path/to/swift/bin/swift+0x12ef5f2)
17 0x00000000012ac374 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, bool)::BindingListener::appliedSolution(swift::constraints::Solution&, swift::Expr*) (/path/to/swift/bin/swift+0x12ac374)
18 0x00000000012a2819 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+0x12a2819)
19 0x00000000012a63d1 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, bool) (/path/to/swift/bin/swift+0x12a63d1)
20 0x00000000012a6596 swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int, bool) (/path/to/swift/bin/swift+0x12a6596)
21 0x00000000012bcb58 validatePatternBindingEntries(swift::TypeChecker&, swift::PatternBindingDecl*) (/path/to/swift/bin/swift+0x12bcb58)
22 0x00000000012b6fd4 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12b6fd4)
23 0x00000000012c6b7b (anonymous namespace)::DeclChecker::visitExtensionDecl(swift::ExtensionDecl*) (/path/to/swift/bin/swift+0x12c6b7b)
24 0x00000000012b6f5b (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12b6f5b)
25 0x00000000012c716b (anonymous namespace)::DeclChecker::visitStructDecl(swift::StructDecl*) (/path/to/swift/bin/swift+0x12c716b)
26 0x00000000012b7087 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12b7087)
27 0x00000000012c716b (anonymous namespace)::DeclChecker::visitStructDecl(swift::StructDecl*) (/path/to/swift/bin/swift+0x12c716b)
28 0x00000000012b7087 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12b7087)
29 0x00000000012c819b (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12c819b)
30 0x00000000012b7097 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12b7097)
31 0x00000000012b6e93 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12b6e93)
32 0x0000000001335945 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x1335945)
33 0x0000000000fa1dc6 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xfa1dc6)
34 0x00000000004a8892 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a8892)
35 0x00000000004651d7 main (/path/to/swift/bin/swift+0x4651d7)
36 0x00007fecf1579830 __libc_start_main /build/glibc-9tT8Do/glibc-2.23/csu/../csu/libc-start.c:325:0
37 0x0000000000462879 _start (/path/to/swift/bin/swift+0x462879)
```
2017-04-07 09:59:06 +02:00
Slava Pestov
abb0e78d43
Merge pull request #8594 from slavapestov/sometimes-the-bug-is-already-fixed
...
Add regression test for a bug that's already fixed
2017-04-06 17:15:54 -07:00
Andrew Trick
1c2165d7fb
Don't enable validation testing of Data.SubSequence. It hasn't been fixed yet.
2017-04-06 17:12:18 -07:00
Andrew Trick
8668f9bd72
Add init(rebasing:) to UnsafeBufferPointer.
...
This is required for consistency with UnsafeRawBufferPointer.
2017-04-06 17:12:18 -07:00
Andrew Trick
30f2cce1b6
Do not run recursive O(n^2) collection slice testing on large collections.
...
Now, even with collection unit testing wired up, the validation tests
take the same amount of time to execute.
2017-04-06 17:12:18 -07:00
Andrew Trick
3782925a29
Give UnsafeRawBufferPointer a distinct slice type.
...
SubSequence = RandomAccessSlice<Self>
2017-04-06 17:12:18 -07:00
Andrew Trick
42e43f7ea0
Add sliceability tests for Unsafe(Raw)BufferPointer.
...
Improve the generic sliceability tests to verify that SubSequence indices are
compatible with their parents indices.
2017-04-06 17:12:18 -07:00
Andrew Trick
da0c4db530
Fix and enable testing stdlib Collection instances.
...
Top-level entry points fully testing a collection instance:
check${Traversal}Collection
One level of recursion into all slices of the collection instance
O(n^2). (Not combinatorial).
Previously, checkCollection() did nothing. So much of the testing infrastructure was inactive. Now it runs all forward collection tests.
Fixes a bug in subscriptRangeTests.
The UnsafeRawBufferPointer and Data collection testing is disabled and
will be fixed in the following commit.
2017-04-06 17:12:18 -07:00
Slava Pestov
51d7723640
Add regression test for a bug that's already fixed
2017-04-06 15:56:41 -07:00
Andrew Trick
849421799a
Revert "SE-0138: Proposed amendment to SE-0138: Normalize UnsafeRawBufferPointer Slices ( #8222 )"
...
This reverts commit 1d32586d28 .
2017-04-06 10:38:52 -07:00
Max Moiseev
8fe28b4e32
Merge branch 'master' into new-integer-protocols
2017-04-06 10:22:37 -07:00
Andrew Trick
1d32586d28
SE-0138: Proposed amendment to SE-0138: Normalize UnsafeRawBufferPointer Slices ( #8222 )
...
* Add sliceability tests for Unsafe(Raw)BufferPointer.
Improve the generic sliceability tests to verify that SubSequence indices are
compatible with their parents indices.
* Fix and enable testing stdlib Collection instances.
Top-level entry points fully testing a collection instance:
check${Traversal}Collection
One level of recursion into all slices of the collection instance
O(n^2). (Not combinatorial).
Previously, checkCollection() did nothing. So much of the testing infrastructure was inactive. Now it runs all forward collection tests.
Fixes a bug in subscriptRangeTests.
The UnsafeRawBufferPointer and Data collection testing is disabled and
will be fixed in the following commit.
* Give UnsafeRawBufferPointer a distinct slice type.
SubSequence = RandomAccessSlice<Self>
* Fix raw buffer pointer tests after changing the API
* Add UnsafeRawBuffer(rebasing:) initializers.
Allows converting a raw slice into a zero-based raw buffer,
which is a common operation on flat memory.
Add and update UnsafeRawBufferPointer unit tests.
* Do not run recursive O(n^2) collection slice testing on large collections.
Now, even with collection unit testing wired up, the validation tests
take the same amount of time to execute.
* Add init(rebasing:) to UnsafeBufferPointer.
This is required for consistency with UnsafeRawBufferPointer.
* Update CHANGELOG.md for SE-0138 amendment: UnsafeRawBufferPointer slice type.
2017-04-06 10:08:09 -07:00
Doug Gregor
44c2f849d6
[Type checker] Continue validating requirements after an error.
...
We want to validate both type in same-type or conformance constraints,
even when the first type is ill-formed, so we don't leave null types
around for later phases to crash on.
Fixes rdar://problem/31093854.
2017-04-05 14:05:59 -07:00
Max Moiseev
52882c47b4
Merge branch 'master' into new-integer-protocols
2017-04-05 11:26:13 -07:00
Doug Gregor
5c89eb84f0
[AST] Drop substitutions from type witnesses.
...
Nobody is using the actual substitutions, but we sure did a lot of
work to cope with them.
2017-04-05 11:21:38 -07:00
practicalswift
b6d7e5659d
[swiftc (32 vs. 5511)] Add crasher in swift::TypeChecker::substMemberTypeWithBase
...
Add test case for crash triggered in `swift::TypeChecker::substMemberTypeWithBase`.
Current number of unresolved compiler crashers: 32 (5511 resolved)
/cc @slavapestov - just wanted to let you know that this crasher caused an assertion failure for the assertion `(!Parent || Parent->is<NominalType>() || Parent->is<BoundGenericType>() || Parent->is<UnboundGenericType>()) && "parent must be a nominal type"` added on 2016-11-03 by you in commit 5780a9f52 :-)
Assertion failure in [`lib/AST/ASTContext.cpp (line 2695)`](6f8adcc56a/lib/AST/ASTContext.cpp (L2695) ):
```
Assertion `(!Parent || Parent->is<NominalType>() || Parent->is<BoundGenericType>() || Parent->is<UnboundGenericType>()) && "parent must be a nominal type"' failed.
When executing: static swift::NominalType *swift::NominalType::get(swift::NominalTypeDecl *, swift::Type, const swift::ASTContext &)
```
Assertion context:
```c++
assert((isa<ProtocolDecl>(D) || !D->getGenericParams()) &&
"must be a non-generic type decl");
assert((!Parent || Parent->is<NominalType>() ||
Parent->is<BoundGenericType>() ||
Parent->is<UnboundGenericType>()) &&
"parent must be a nominal type");
switch (D->getKind()) {
case DeclKind::Enum:
return EnumType::get(cast<EnumDecl>(D), Parent, C);
case DeclKind::Struct:
```
Stack trace:
```
0 0x0000000003970728 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x3970728)
1 0x0000000003970e66 SignalHandler(int) (/path/to/swift/bin/swift+0x3970e66)
2 0x00007ff1b6c75390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007ff1b519b428 gsignal /build/glibc-9tT8Do/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007ff1b519d02a abort /build/glibc-9tT8Do/glibc-2.23/stdlib/abort.c:91:0
5 0x00007ff1b5193bd7 __assert_fail_base /build/glibc-9tT8Do/glibc-2.23/assert/assert.c:92:0
6 0x00007ff1b5193c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x00000000013e588e (/path/to/swift/bin/swift+0x13e588e)
8 0x0000000001323ba3 swift::TypeChecker::substMemberTypeWithBase(swift::ModuleDecl*, swift::TypeDecl*, swift::Type) (/path/to/swift/bin/swift+0x1323ba3)
9 0x00000000012e776d swift::TypeChecker::lookupMemberType(swift::DeclContext*, swift::Type, swift::Identifier, swift::OptionSet<swift::NameLookupFlags, unsigned int>) (/path/to/swift/bin/swift+0x12e776d)
10 0x000000000132564c 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+0x132564c)
11 0x0000000001324e43 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+0x1324e43)
12 0x0000000001325f57 (anonymous namespace)::TypeResolver::resolveType(swift::TypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>) (/path/to/swift/bin/swift+0x1325f57)
13 0x0000000001325e5c 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+0x1325e5c)
14 0x000000000132455a 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+0x132455a)
15 0x00000000012ad137 swift::TypeChecker::checkInheritanceClause(swift::Decl*, swift::GenericTypeResolver*) (/path/to/swift/bin/swift+0x12ad137)
16 0x00000000012b5371 swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12b5371)
17 0x00000000012c3d1c (anonymous namespace)::DeclChecker::visitClassDecl(swift::ClassDecl*) (/path/to/swift/bin/swift+0x12c3d1c)
18 0x00000000012b398b (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12b398b)
19 0x00000000012c4e1b (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12c4e1b)
20 0x00000000012b3a97 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12b3a97)
21 0x00000000012b3893 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12b3893)
22 0x00000000013329c5 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x13329c5)
23 0x0000000000fa1066 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xfa1066)
24 0x00000000004a873f swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a873f)
25 0x00000000004650b7 main (/path/to/swift/bin/swift+0x4650b7)
26 0x00007ff1b5186830 __libc_start_main /build/glibc-9tT8Do/glibc-2.23/csu/../csu/libc-start.c:325:0
27 0x0000000000462759 _start (/path/to/swift/bin/swift+0x462759)
```
2017-04-05 09:36:57 +02:00
practicalswift
758ce47e49
[swiftc (31 vs. 5511)] Add crasher in swift::TypeAliasDecl::setUnderlyingType(...)
...
Add test case for crash triggered in `swift::TypeAliasDecl::setUnderlyingType(...)`.
Current number of unresolved compiler crashers: 31 (5511 resolved)
/cc @slavapestov - just wanted to let you know that this crasher caused an assertion failure for the assertion `!type->hasArchetype() && "not fully substituted"` added on 2016-08-24 by you in commit 1c1ab0b8 :-)
Assertion failure in [`lib/AST/GenericEnvironment.cpp (line 183)`](8e137a6371/lib/AST/GenericEnvironment.cpp (L183) ):
```
Assertion `!type->hasArchetype() && "not fully substituted"' failed.
When executing: swift::Type swift::GenericEnvironment::mapTypeOutOfContext(swift::Type) const
```
Assertion context:
```c++
Type GenericEnvironment::mapTypeOutOfContext(Type type) const {
type = type.subst(QueryArchetypeToInterfaceSubstitutions(this),
MakeAbstractConformanceForGenericType(),
SubstFlags::AllowLoweredTypes);
assert(!type->hasArchetype() && "not fully substituted");
return type;
}
Type GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(
SubstitutableType *type) const {
```
Stack trace:
```
0 0x0000000003970728 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x3970728)
1 0x0000000003970e66 SignalHandler(int) (/path/to/swift/bin/swift+0x3970e66)
2 0x00007fe3e8b77390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007fe3e709d428 gsignal /build/glibc-9tT8Do/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007fe3e709f02a abort /build/glibc-9tT8Do/glibc-2.23/stdlib/abort.c:91:0
5 0x00007fe3e7095bd7 __assert_fail_base /build/glibc-9tT8Do/glibc-2.23/assert/assert.c:92:0
6 0x00007fe3e7095c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x00000000014a2563 (/path/to/swift/bin/swift+0x14a2563)
8 0x00000000014818b5 swift::TypeAliasDecl::setUnderlyingType(swift::Type) (/path/to/swift/bin/swift+0x14818b5)
9 0x00000000012ffd1e (anonymous namespace)::ConformanceChecker::recordTypeWitness(swift::AssociatedTypeDecl*, swift::Type, swift::TypeDecl*, bool) (/path/to/swift/bin/swift+0x12ffd1e)
10 0x00000000012faaa4 (anonymous namespace)::ConformanceChecker::resolveTypeWitnesses() (/path/to/swift/bin/swift+0x12faaa4)
11 0x00000000012f32d4 (anonymous namespace)::MultiConformanceChecker::checkAllConformances() (/path/to/swift/bin/swift+0x12f32d4)
12 0x00000000012f41da swift::TypeChecker::checkConformancesInContext(swift::DeclContext*, swift::IterableDeclContext*) (/path/to/swift/bin/swift+0x12f41da)
13 0x00000000012c3c87 (anonymous namespace)::DeclChecker::visitStructDecl(swift::StructDecl*) (/path/to/swift/bin/swift+0x12c3c87)
14 0x00000000012b3a87 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12b3a87)
15 0x00000000012c4e1b (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12c4e1b)
16 0x00000000012b3a97 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12b3a97)
17 0x00000000012b3893 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12b3893)
18 0x000000000131e6a6 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0x131e6a6)
19 0x000000000131dd5b swift::TypeChecker::typeCheckClosureBody(swift::ClosureExpr*) (/path/to/swift/bin/swift+0x131dd5b)
20 0x000000000133847c swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::Expr*, swift::Type, bool, bool, bool) (/path/to/swift/bin/swift+0x133847c)
21 0x000000000129f2e0 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+0x129f2e0)
22 0x000000000131e705 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0x131e705)
23 0x000000000131df16 swift::TypeChecker::typeCheckTopLevelCodeDecl(swift::TopLevelCodeDecl*) (/path/to/swift/bin/swift+0x131df16)
24 0x0000000001332a40 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x1332a40)
25 0x0000000000fa1066 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xfa1066)
26 0x00000000004a873f swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a873f)
27 0x00000000004650b7 main (/path/to/swift/bin/swift+0x4650b7)
28 0x00007fe3e7088830 __libc_start_main /build/glibc-9tT8Do/glibc-2.23/csu/../csu/libc-start.c:325:0
29 0x0000000000462759 _start (/path/to/swift/bin/swift+0x462759)
```
2017-04-05 08:23:39 +02:00
practicalswift
8e137a6371
Merge pull request #8537 from practicalswift/swiftc-28731-genericenv-nullptr-too-much-circularity
...
[swiftc (30 vs. 5511)] Add crasher in swift::AbstractTypeParamDecl::getConformingProtocols(...)
2017-04-05 08:21:34 +02:00
Roman Levenstein
75c8274fd9
Fix tests
2017-04-04 13:10:43 -07:00
practicalswift
308690670d
[swiftc (30 vs. 5511)] Add crasher in swift::AbstractTypeParamDecl::getConformingProtocols(...)
...
Add test case for crash triggered in `swift::AbstractTypeParamDecl::getConformingProtocols(...)`.
Current number of unresolved compiler crashers: 30 (5511 resolved)
/cc @slavapestov - just wanted to let you know that this crasher caused an assertion failure for the assertion `genericEnv != nullptr && "Too much circularity"` added on 2017-03-30 by you in commit a79ef97c :-)
Assertion failure in [`lib/AST/Decl.cpp (line 2333)`](3e28874bd0/lib/AST/Decl.cpp (L2333) ):
```
Assertion `genericEnv != nullptr && "Too much circularity"' failed.
When executing: ArrayRef<swift::ProtocolDecl *> swift::AbstractTypeParamDecl::getConformingProtocols() const
```
Assertion context:
```c++
}
ArrayRef<ProtocolDecl *>
AbstractTypeParamDecl::getConformingProtocols() const {
auto *genericEnv = getDeclContext()->getGenericEnvironmentOfContext();
assert(genericEnv != nullptr && "Too much circularity");
auto contextTy = genericEnv->mapTypeIntoContext(getDeclaredInterfaceType());
if (auto *archetype = contextTy->getAs<ArchetypeType>())
return archetype->getConformsTo();
```
Stack trace:
```
0 0x000000000396d118 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x396d118)
1 0x000000000396d856 SignalHandler(int) (/path/to/swift/bin/swift+0x396d856)
2 0x00007fd943758390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007fd941c7e428 gsignal /build/glibc-9tT8Do/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007fd941c8002a abort /build/glibc-9tT8Do/glibc-2.23/stdlib/abort.c:91:0
5 0x00007fd941c76bd7 __assert_fail_base /build/glibc-9tT8Do/glibc-2.23/assert/assert.c:92:0
6 0x00007fd941c76c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x000000000147fc69 swift::AbstractTypeParamDecl::getConformingProtocols() const (/path/to/swift/bin/swift+0x147fc69)
8 0x00000000012ff4fa (anonymous namespace)::ConformanceChecker::recordTypeWitness(swift::AssociatedTypeDecl*, swift::Type, swift::TypeDecl*, bool) (/path/to/swift/bin/swift+0x12ff4fa)
9 0x00000000012fa1d6 (anonymous namespace)::ConformanceChecker::resolveTypeWitnesses() (/path/to/swift/bin/swift+0x12fa1d6)
10 0x00000000012f6de6 swift::TypeChecker::resolveTypeWitness(swift::NormalProtocolConformance const*, swift::AssociatedTypeDecl*) (/path/to/swift/bin/swift+0x12f6de6)
11 0x00000000014ed58f swift::NormalProtocolConformance::getTypeWitnessSubstAndDecl(swift::AssociatedTypeDecl*, swift::LazyResolver*) const (/path/to/swift/bin/swift+0x14ed58f)
12 0x00000000014ed496 swift::ProtocolConformance::getTypeWitnessSubstAndDecl(swift::AssociatedTypeDecl*, swift::LazyResolver*) const (/path/to/swift/bin/swift+0x14ed496)
13 0x00000000014ed096 swift::ProtocolConformance::getTypeWitness(swift::AssociatedTypeDecl*, swift::LazyResolver*) const (/path/to/swift/bin/swift+0x14ed096)
14 0x00000000014ad15b maybeAddSameTypeRequirementForNestedType(swift::GenericSignatureBuilder::PotentialArchetype*, swift::GenericSignatureBuilder::RequirementSource const*, swift::GenericSignatureBuilder&) (/path/to/swift/bin/swift+0x14ad15b)
15 0x00000000014ac1da swift::GenericSignatureBuilder::PotentialArchetype::updateNestedTypeForConformance(llvm::PointerUnion<swift::AssociatedTypeDecl*, swift::TypeAliasDecl*>, swift::GenericSignatureBuilder::PotentialArchetype::NestedTypeUpdate) (/path/to/swift/bin/swift+0x14ac1da)
16 0x00000000014b03a3 swift::GenericSignatureBuilder::addConformanceRequirement(swift::GenericSignatureBuilder::PotentialArchetype*, swift::ProtocolDecl*, swift::GenericSignatureBuilder::RequirementSource const*, llvm::SmallPtrSetImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x14b03a3)
17 0x00000000014c1180 bool llvm::function_ref<bool (swift::Type, swift::TypeRepr const*)>::callback_fn<swift::GenericSignatureBuilder::addInheritedRequirements(swift::TypeDecl*, swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type, swift::GenericSignatureBuilder::RequirementSource const*, llvm::SmallPtrSetImpl<swift::ProtocolDecl*>&)::$_10>(long, swift::Type, swift::TypeRepr const*) (/path/to/swift/bin/swift+0x14c1180)
18 0x00000000014ba34d std::_Function_handler<void (swift::Type, swift::TypeRepr const*), visitInherited(llvm::ArrayRef<swift::TypeLoc>, llvm::function_ref<bool (swift::Type, swift::TypeRepr const*)>)::$_41>::_M_invoke(std::_Any_data const&, swift::Type&&, swift::TypeRepr const*&&) (/path/to/swift/bin/swift+0x14ba34d)
19 0x00000000014afed7 swift::GenericSignatureBuilder::addInheritedRequirements(swift::TypeDecl*, swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type, swift::GenericSignatureBuilder::RequirementSource const*, llvm::SmallPtrSetImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0x14afed7)
20 0x00000000014afd20 swift::GenericSignatureBuilder::addGenericParameterRequirements(swift::GenericTypeParamDecl*) (/path/to/swift/bin/swift+0x14afd20)
21 0x00000000012e0f65 swift::TypeChecker::checkGenericParamList(swift::GenericSignatureBuilder*, swift::GenericParamList*, swift::GenericSignature*, swift::GenericTypeResolver*) (/path/to/swift/bin/swift+0x12e0f65)
22 0x00000000012e3e02 swift::TypeChecker::checkGenericEnvironment(swift::GenericParamList*, swift::DeclContext*, swift::GenericSignature*, bool, llvm::function_ref<void (swift::GenericSignatureBuilder&)>) (/path/to/swift/bin/swift+0x12e3e02)
23 0x00000000012e4229 swift::TypeChecker::validateGenericTypeSignature(swift::GenericTypeDecl*) (/path/to/swift/bin/swift+0x12e4229)
24 0x00000000012b4ebe swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12b4ebe)
25 0x00000000012c416e (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12c416e)
26 0x00000000012b30f7 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12b30f7)
27 0x00000000012b2ef3 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12b2ef3)
28 0x0000000001332015 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x1332015)
29 0x0000000000fa0ab6 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xfa0ab6)
30 0x00000000004a8254 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a8254)
31 0x00000000004650b7 main (/path/to/swift/bin/swift+0x4650b7)
32 0x00007fd941c69830 __libc_start_main /build/glibc-9tT8Do/glibc-2.23/csu/../csu/libc-start.c:325:0
33 0x0000000000462759 _start (/path/to/swift/bin/swift+0x462759)
```
2017-04-04 21:14:51 +02:00
Max Moiseev
42095bfbaa
Merge branch 'master' into new-integer-protocols
2017-04-04 11:00:47 -07:00
Slava Pestov
9db6b10059
AST: Targeted fix for conformance lookup issue
...
When substituting a type like T.A.B where A and B are
associated types and the conformance requirement on T.A
is implied by conformance requirements on T, we would
crash.
The problem is that we have no way of representing an
abstract conformance with nested concrete types.
This patch adds a workaround that we can live with until
ConformanceAccessPaths are plumbed through all the way.
Fixes <rdar://problem/30737546> and
<https://bugs.swift.org/browse/SR-3500 >.
Possibly fixes <rdar://problem/31334245>.
2017-04-03 15:35:10 -07:00
Max Moiseev
10f0c9e89a
Merge branch 'master' into new-integer-protocols
2017-04-03 11:49:56 -07:00
practicalswift
af480178ed
[swiftc (29 vs. 5511)] Add crasher in swift::GenericSignature::getCanonicalTypeInContext
...
Add test case for crash triggered in `swift::GenericSignature::getCanonicalTypeInContext`.
Current number of unresolved compiler crashers: 29 (5511 resolved)
Stack trace:
```
0 0x0000000003968d08 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x3968d08)
1 0x0000000003969446 SignalHandler(int) (/path/to/swift/bin/swift+0x3969446)
2 0x00007fe241b44390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007fe24006a428 gsignal /build/glibc-9tT8Do/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007fe24006c02a abort /build/glibc-9tT8Do/glibc-2.23/stdlib/abort.c:91:0
5 0x00000000039050dd llvm::llvm_unreachable_internal(char const*, char const*, unsigned int) (/path/to/swift/bin/swift+0x39050dd)
6 0x00000000013d8832 (/path/to/swift/bin/swift+0x13d8832)
7 0x00000000014a0d75 swift::GenericSignature::getCanonicalTypeInContext(swift::Type, swift::ModuleDecl&) (/path/to/swift/bin/swift+0x14a0d75)
8 0x00000000014f6652 swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x14f6652)
9 0x0000000001479099 swift::ValueDecl::getOverloadSignature() const (/path/to/swift/bin/swift+0x1479099)
10 0x00000000012b0206 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12b0206)
11 0x00000000012bf3bb (anonymous namespace)::DeclChecker::visitExtensionDecl(swift::ExtensionDecl*) (/path/to/swift/bin/swift+0x12bf3bb)
12 0x00000000012af81b (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12af81b)
13 0x00000000012af753 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12af753)
14 0x000000000132e6b5 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x132e6b5)
15 0x0000000000f9d636 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xf9d636)
16 0x00000000004a8254 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a8254)
17 0x00000000004650b7 main (/path/to/swift/bin/swift+0x4650b7)
18 0x00007fe240055830 __libc_start_main /build/glibc-9tT8Do/glibc-2.23/csu/../csu/libc-start.c:325:0
19 0x0000000000462759 _start (/path/to/swift/bin/swift+0x462759)
```
2017-04-02 02:45:28 +02:00
Norio Nomura
af8ce9c1b5
Enable SourceKit tests if build SourceKit
2017-04-02 09:16:45 +09:00
practicalswift
5eb91812ef
[swiftc (28 vs. 5511)] Add crasher in swift::TypeChecker::resolveTypeInContext
...
Add test case for crash triggered in `swift::TypeChecker::resolveTypeInContext`.
Current number of unresolved compiler crashers: 28 (5511 resolved)
/cc @slavapestov - just wanted to let you know that this crasher caused an assertion failure for the assertion `archetype && "Bad generic context nesting?"` added on 2015-12-14 by you in commit 429fd7cc :-)
Assertion failure in [`lib/Sema/TypeCheckGeneric.cpp (line 56)`](22fdc8977a/lib/Sema/TypeCheckGeneric.cpp (L56) ):
```
Assertion `archetype && "Bad generic context nesting?"' failed.
When executing: virtual swift::Type swift::DependentGenericTypeResolver::resolveSelfAssociatedType(swift::Type, swift::AssociatedTypeDecl *)
```
Assertion context:
```c++
}
Type DependentGenericTypeResolver::resolveSelfAssociatedType(
Type selfTy, AssociatedTypeDecl *assocType) {
auto archetype = Builder.resolveArchetype(selfTy);
assert(archetype && "Bad generic context nesting?");
return archetype
->getNestedType(assocType, Builder)
->getDependentType(GenericParams, /*allowUnresolved=*/true);
}
```
Stack trace:
```
0 0x0000000003964678 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x3964678)
1 0x0000000003964db6 SignalHandler(int) (/path/to/swift/bin/swift+0x3964db6)
2 0x00007fc055a5e390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007fc053f84428 gsignal /build/glibc-9tT8Do/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007fc053f8602a abort /build/glibc-9tT8Do/glibc-2.23/stdlib/abort.c:91:0
5 0x00007fc053f7cbd7 __assert_fail_base /build/glibc-9tT8Do/glibc-2.23/assert/assert.c:92:0
6 0x00007fc053f7cc82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x00000000012d9492 (/path/to/swift/bin/swift+0x12d9492)
8 0x000000000131bd18 swift::TypeChecker::resolveTypeInContext(swift::TypeDecl*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*) (/path/to/swift/bin/swift+0x131bd18)
9 0x0000000001323838 resolveTypeDecl(swift::TypeChecker&, swift::TypeDecl*, swift::SourceLoc, swift::DeclContext*, swift::GenericIdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1323838)
10 0x000000000132335f 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+0x132335f)
11 0x000000000131d9fe 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+0x131d9fe)
12 0x000000000131d423 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+0x131d423)
13 0x000000000131e537 (anonymous namespace)::TypeResolver::resolveType(swift::TypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>) (/path/to/swift/bin/swift+0x131e537)
14 0x000000000131e43c 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+0x131e43c)
15 0x000000000131cb3a 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+0x131cb3a)
16 0x00000000012daf32 checkGenericFuncSignature(swift::TypeChecker&, swift::GenericSignatureBuilder*, swift::AbstractFunctionDecl*, swift::GenericTypeResolver&) (/path/to/swift/bin/swift+0x12daf32)
17 0x00000000012daa55 swift::TypeChecker::validateGenericFuncSignature(swift::AbstractFunctionDecl*) (/path/to/swift/bin/swift+0x12daa55)
18 0x00000000012bfeb6 (anonymous namespace)::DeclChecker::visitFuncDecl(swift::FuncDecl*) (/path/to/swift/bin/swift+0x12bfeb6)
19 0x00000000012ad077 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12ad077)
20 0x00000000012bdaab (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12bdaab)
21 0x00000000012ad057 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12ad057)
22 0x00000000012bc34b (anonymous namespace)::DeclChecker::visitExtensionDecl(swift::ExtensionDecl*) (/path/to/swift/bin/swift+0x12bc34b)
23 0x00000000012acf1b (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12acf1b)
24 0x00000000012bc93b (anonymous namespace)::DeclChecker::visitStructDecl(swift::StructDecl*) (/path/to/swift/bin/swift+0x12bc93b)
25 0x00000000012ad047 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12ad047)
26 0x00000000012bdaab (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12bdaab)
27 0x00000000012ad057 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12ad057)
28 0x00000000012bdaab (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0x12bdaab)
29 0x00000000012ad057 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12ad057)
30 0x00000000012ace53 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12ace53)
31 0x000000000132af85 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x132af85)
32 0x0000000000f9b146 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xf9b146)
33 0x00000000004a8234 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a8234)
34 0x00000000004650b7 main (/path/to/swift/bin/swift+0x4650b7)
35 0x00007fc053f6f830 __libc_start_main /build/glibc-9tT8Do/glibc-2.23/csu/../csu/libc-start.c:325:0
36 0x0000000000462759 _start (/path/to/swift/bin/swift+0x462759)
```
2017-04-02 01:39:42 +02:00
Philippe Hausler
ef7026a23e
Merge pull request #8283 from phausler/characterset_perf
...
[Foundation] Rework the backing storage for CharacterSet to be more performant and bridge correctly to objective-c and CF
2017-03-31 15:49:32 -07:00
Philippe Hausler
6c26b80e6e
[Foundation] Rework the backing storage for CharacterSet to be more performant and bridge correctly to objective-c and CF
...
Some cases of using isSuperset can cause crashes, this was caused by improper subclassing callouts; this pr resolves those failures (and provides unit tests for that case)
The cases where the bridge was traversed too much now only causes a single bridge out call (without needing to reallocate or thrash retain/release)
String.components(separatedBy: CharacterSet) should be considerably faster now not only for more apporpriate bridging calls but also no longer needing to bridge arrays back and forth.
Resolves the following issues:
rdar://problem/17281998
rdar://problem/26611771
rdar://problem/29738989
2017-03-31 11:06:38 -07:00
Max Moiseev
3cbcd716f5
Merge branch 'master' into new-integer-protocols
2017-03-31 10:03:20 -07:00
practicalswift
418c0f444a
[swiftc (27 vs. 5511)] Add crasher in swift::TypeChecker::validateDecl(...)
...
Add test case for crash triggered in `swift::TypeChecker::validateDecl(...)`.
Current number of unresolved compiler crashers: 27 (5511 resolved)
/cc Huon Wilson - just wanted to let you know that this crasher caused an assertion failure for the assertion `D->isBeingValidated() || D->hasValidSignature()` added on 2017-02-21 by you in commit 84e0a109 :-)
Assertion failure in [`lib/Sema/TypeCheckDecl.cpp (line 6983)`](6e27be1b6b/lib/Sema/TypeCheckDecl.cpp (L6983) ):
```
Assertion `D->isBeingValidated() || D->hasValidSignature()' failed.
When executing: void swift::TypeChecker::validateDecl(swift::ValueDecl *)
```
Assertion context:
```c++
// up to the caller, who must call hasValidSignature() to
// check that validateDecl() returned a fully-formed decl.
if (D->hasValidationStarted()) {
// If this isn't reentrant (i.e. D has already been validated), the
// signature better be valid.
assert(D->isBeingValidated() || D->hasValidSignature());
return;
}
PrettyStackTraceDecl StackTrace("validating", D);
```
Stack trace:
```
0 0x0000000003962c58 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x3962c58)
1 0x0000000003963396 SignalHandler(int) (/path/to/swift/bin/swift+0x3963396)
2 0x00007f90f65de390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007f90f4b04428 gsignal /build/glibc-9tT8Do/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f90f4b0602a abort /build/glibc-9tT8Do/glibc-2.23/stdlib/abort.c:91:0
5 0x00007f90f4afcbd7 __assert_fail_base /build/glibc-9tT8Do/glibc-2.23/assert/assert.c:92:0
6 0x00007f90f4afcc82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x00000000012add1e swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12add1e)
8 0x0000000001322cba resolveTypeDecl(swift::TypeChecker&, swift::TypeDecl*, swift::SourceLoc, swift::DeclContext*, swift::GenericIdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1322cba)
9 0x000000000132281f 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+0x132281f)
10 0x000000000131cebe 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+0x131cebe)
11 0x000000000131c8e3 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+0x131c8e3)
12 0x000000000131d9f7 (anonymous namespace)::TypeResolver::resolveType(swift::TypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>) (/path/to/swift/bin/swift+0x131d9f7)
13 0x000000000131d8fc 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+0x131d8fc)
14 0x000000000131bffa 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+0x131bffa)
15 0x00000000012a5d47 swift::TypeChecker::checkInheritanceClause(swift::Decl*, swift::GenericTypeResolver*) (/path/to/swift/bin/swift+0x12a5d47)
16 0x00000000012addf1 swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12addf1)
17 0x0000000001391f36 swift::IterativeTypeChecker::satisfy(swift::TypeCheckRequest) (/path/to/swift/bin/swift+0x1391f36)
18 0x0000000001391ffb swift::IterativeTypeChecker::satisfy(swift::TypeCheckRequest) (/path/to/swift/bin/swift+0x1391ffb)
19 0x0000000001391ffb swift::IterativeTypeChecker::satisfy(swift::TypeCheckRequest) (/path/to/swift/bin/swift+0x1391ffb)
20 0x00000000012ae650 swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12ae650)
21 0x00000000012bb8bf (anonymous namespace)::DeclChecker::visitTypeAliasDecl(swift::TypeAliasDecl*) (/path/to/swift/bin/swift+0x12bb8bf)
22 0x00000000012ac3eb (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12ac3eb)
23 0x00000000012ac313 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12ac313)
24 0x000000000132a445 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x132a445)
25 0x0000000000f9a7a6 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xf9a7a6)
26 0x00000000004a8234 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a8234)
27 0x00000000004650b7 main (/path/to/swift/bin/swift+0x4650b7)
28 0x00007f90f4aef830 __libc_start_main /build/glibc-9tT8Do/glibc-2.23/csu/../csu/libc-start.c:325:0
29 0x0000000000462759 _start (/path/to/swift/bin/swift+0x462759)
```
2017-03-31 11:04:52 +02:00
practicalswift
a729c9de54
[swiftc (26 vs. 5511)] Add crasher in swift::LValueType::get(...)
...
Add test case for crash triggered in `swift::LValueType::get(...)`.
Current number of unresolved compiler crashers: 26 (5511 resolved)
/cc @DougGregor - just wanted to let you know that this crasher caused an assertion failure for the assertion `!objectTy->hasError() && "cannot have ErrorType wrapped inside LValueType"` added on 2016-10-06 by you in commit 50341da32 :-)
Assertion failure in [`lib/AST/ASTContext.cpp (line 3303)`](2f0f49e028/lib/AST/ASTContext.cpp (L3303) ):
```
Assertion `!objectTy->hasError() && "cannot have ErrorType wrapped inside LValueType"' failed.
When executing: static swift::LValueType *swift::LValueType::get(swift::Type)
```
Assertion context:
```c++
ID.AddPointer(Parent.getPointer());
}
LValueType *LValueType::get(Type objectTy) {
assert(!objectTy->hasError() &&
"cannot have ErrorType wrapped inside LValueType");
assert(!objectTy->is<LValueType>() && !objectTy->is<InOutType>() &&
"cannot have 'inout' or @lvalue wrapped inside an @lvalue");
auto properties = objectTy->getRecursiveProperties()
| RecursiveTypeProperties::IsLValue;
```
Stack trace:
```
0 0x0000000003962c58 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x3962c58)
1 0x0000000003963396 SignalHandler(int) (/path/to/swift/bin/swift+0x3963396)
2 0x00007f4e8e2fd390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007f4e8c823428 gsignal /build/glibc-9tT8Do/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f4e8c82502a abort /build/glibc-9tT8Do/glibc-2.23/stdlib/abort.c:91:0
5 0x00007f4e8c81bbd7 __assert_fail_base /build/glibc-9tT8Do/glibc-2.23/assert/assert.c:92:0
6 0x00007f4e8c81bc82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x00000000013de964 swift::LValueType::get(swift::Type) (/path/to/swift/bin/swift+0x13de964)
8 0x00000000012d5a50 swift::TypeChecker::getUnopenedTypeOfReference(swift::ValueDecl*, swift::Type, swift::DeclContext*, swift::DeclRefExpr const*, bool) (/path/to/swift/bin/swift+0x12d5a50)
9 0x000000000127eb96 swift::constraints::ConstraintSystem::getTypeOfReference(swift::ValueDecl*, bool, bool, swift::FunctionRefKind, swift::constraints::ConstraintLocatorBuilder, swift::DeclRefExpr const*) (/path/to/swift/bin/swift+0x127eb96)
10 0x00000000012813db swift::constraints::ConstraintSystem::resolveOverload(swift::constraints::ConstraintLocator*, swift::Type, swift::constraints::OverloadChoice, swift::DeclContext*) (/path/to/swift/bin/swift+0x12813db)
11 0x000000000123849e swift::ASTVisitor<(anonymous namespace)::ConstraintGenerator, swift::Type, void, void, void, void, void>::visit(swift::Expr*) (/path/to/swift/bin/swift+0x123849e)
12 0x000000000123d9b8 (anonymous namespace)::ConstraintWalker::walkToExprPost(swift::Expr*) (/path/to/swift/bin/swift+0x123d9b8)
13 0x000000000145469b swift::ASTVisitor<(anonymous namespace)::Traversal, swift::Expr*, swift::Stmt*, bool, swift::Pattern*, bool, void>::visit(swift::Expr*) (/path/to/swift/bin/swift+0x145469b)
14 0x0000000001453be8 swift::ASTVisitor<(anonymous namespace)::Traversal, swift::Expr*, swift::Stmt*, bool, swift::Pattern*, bool, void>::visit(swift::Expr*) (/path/to/swift/bin/swift+0x1453be8)
15 0x0000000001452e1b swift::Expr::walk(swift::ASTWalker&) (/path/to/swift/bin/swift+0x1452e1b)
16 0x0000000001234b81 swift::constraints::ConstraintSystem::generateConstraints(swift::Expr*) (/path/to/swift/bin/swift+0x1234b81)
17 0x000000000125cbf6 swift::constraints::ConstraintSystem::solve(swift::Expr*&, swift::Type, swift::ExprTypeCheckListener*, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::FreeTypeVariableBinding) (/path/to/swift/bin/swift+0x125cbf6)
18 0x00000000012947a4 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+0x12947a4)
19 0x0000000001297e16 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+0x1297e16)
20 0x000000000129bb01 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, bool) (/path/to/swift/bin/swift+0x129bb01)
21 0x000000000129bcc6 swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int, bool) (/path/to/swift/bin/swift+0x129bcc6)
22 0x00000000012b2028 validatePatternBindingEntries(swift::TypeChecker&, swift::PatternBindingDecl*) (/path/to/swift/bin/swift+0x12b2028)
23 0x00000000012ac454 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12ac454)
24 0x00000000012bb80b (anonymous namespace)::DeclChecker::visitExtensionDecl(swift::ExtensionDecl*) (/path/to/swift/bin/swift+0x12bb80b)
25 0x00000000012ac3db (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12ac3db)
26 0x00000000012ac313 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12ac313)
27 0x0000000001316146 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0x1316146)
28 0x00000000013157fb swift::TypeChecker::typeCheckClosureBody(swift::ClosureExpr*) (/path/to/swift/bin/swift+0x13157fb)
29 0x000000000132fefc swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::Expr*, swift::Type, bool, bool, bool) (/path/to/swift/bin/swift+0x132fefc)
30 0x0000000001297ea0 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+0x1297ea0)
31 0x000000000129bb01 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, bool) (/path/to/swift/bin/swift+0x129bb01)
32 0x000000000129bcc6 swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int, bool) (/path/to/swift/bin/swift+0x129bcc6)
33 0x00000000012ac4c6 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12ac4c6)
34 0x00000000012ac313 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12ac313)
35 0x0000000001316146 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0x1316146)
36 0x000000000131445d swift::TypeChecker::typeCheckFunctionBodyUntil(swift::FuncDecl*, swift::SourceLoc) (/path/to/swift/bin/swift+0x131445d)
37 0x00000000013142cd swift::TypeChecker::typeCheckAbstractFunctionBodyUntil(swift::AbstractFunctionDecl*, swift::SourceLoc) (/path/to/swift/bin/swift+0x13142cd)
38 0x0000000001314ff1 swift::TypeChecker::typeCheckAbstractFunctionBody(swift::AbstractFunctionDecl*) (/path/to/swift/bin/swift+0x1314ff1)
39 0x0000000001329768 typeCheckFunctionsAndExternalDecls(swift::TypeChecker&) (/path/to/swift/bin/swift+0x1329768)
40 0x000000000132a548 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x132a548)
41 0x0000000000f9a7a6 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xf9a7a6)
42 0x00000000004a8234 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a8234)
43 0x00000000004650b7 main (/path/to/swift/bin/swift+0x4650b7)
44 0x00007f4e8c80e830 __libc_start_main /build/glibc-9tT8Do/glibc-2.23/csu/../csu/libc-start.c:325:0
45 0x0000000000462759 _start (/path/to/swift/bin/swift+0x462759)
```
2017-03-31 09:51:54 +02:00
Slava Pestov
8201eaaa60
SIL: Change rule regarding shared_external linkage
...
The existence of a shared_external function in itself is not
an error; it just means we deserialized a witness table or
vtable but did not need to deserialize a thunk.
However, a direct reference to such a function is an error,
because we should have deserialized the body in that case.
This fixes a crasher, but the SIL crashers are kind of silly
because the SIL parser does not try at all not to crash on
invalid input.
2017-03-30 00:45:20 -07:00
Slava Pestov
8fe8b89b0f
SIL: Terminology change: [fragile] => [serialized]
...
Also, add a third [serializable] state for functions whose bodies we
*can* serialize, but only do so if they're referenced from another
serialized function.
This will be used for bodies synthesized for imported definitions,
such as init(rawValue:), etc, and various thunks, but for now this
change is NFC.
2017-03-29 16:47:28 -07:00
practicalswift
949bfbc73f
[swiftc (25 vs. 5511)] Add crasher in swift::TypeBase::getContextSubstitutions
...
Add test case for crash triggered in `swift::TypeBase::getContextSubstitutions`.
Current number of unresolved compiler crashers: 25 (5511 resolved)
Stack trace:
```
0 0x000000000395df08 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x395df08)
1 0x000000000395e646 SignalHandler(int) (/path/to/swift/bin/swift+0x395e646)
2 0x00007f43e1b53390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007f43e0079428 gsignal /build/glibc-9tT8Do/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f43e007b02a abort /build/glibc-9tT8Do/glibc-2.23/stdlib/abort.c:91:0
5 0x00000000038fa2dd llvm::llvm_unreachable_internal(char const*, char const*, unsigned int) (/path/to/swift/bin/swift+0x38fa2dd)
6 0x00000000014f5458 swift::TypeBase::getContextSubstitutions(swift::DeclContext const*, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x14f5458)
7 0x00000000014f0f00 swift::TypeBase::getContextSubstitutionMap(swift::ModuleDecl*, swift::DeclContext const*, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x14f0f00)
8 0x00000000013158eb swift::TypeChecker::substMemberTypeWithBase(swift::ModuleDecl*, swift::TypeDecl*, swift::Type) (/path/to/swift/bin/swift+0x13158eb)
9 0x00000000012d961d swift::TypeChecker::lookupMemberType(swift::DeclContext*, swift::Type, swift::Identifier, swift::OptionSet<swift::NameLookupFlags, unsigned int>) (/path/to/swift/bin/swift+0x12d961d)
10 0x00000000013174bc 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+0x13174bc)
11 0x0000000001316cb3 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+0x1316cb3)
12 0x0000000001317dc7 (anonymous namespace)::TypeResolver::resolveType(swift::TypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>) (/path/to/swift/bin/swift+0x1317dc7)
13 0x0000000001317ccc 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+0x1317ccc)
14 0x00000000013163ca 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+0x13163ca)
15 0x00000000012dc85a swift::TypeChecker::typeCheckPattern(swift::Pattern*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>) (/path/to/swift/bin/swift+0x12dc85a)
16 0x00000000012ac2fc validatePatternBindingEntries(swift::TypeChecker&, swift::PatternBindingDecl*) (/path/to/swift/bin/swift+0x12ac2fc)
17 0x00000000012a6824 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a6824)
18 0x00000000012a66e3 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12a66e3)
19 0x0000000001310516 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0x1310516)
20 0x000000000130fd86 swift::TypeChecker::typeCheckTopLevelCodeDecl(swift::TopLevelCodeDecl*) (/path/to/swift/bin/swift+0x130fd86)
21 0x0000000001324890 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x1324890)
22 0x0000000000f950f6 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xf950f6)
23 0x00000000004a7d6b swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a7d6b)
24 0x00000000004650b7 main (/path/to/swift/bin/swift+0x4650b7)
25 0x00007f43e0064830 __libc_start_main /build/glibc-9tT8Do/glibc-2.23/csu/../csu/libc-start.c:325:0
26 0x0000000000462759 _start (/path/to/swift/bin/swift+0x462759)
```
2017-03-29 17:30:13 +02:00