Mark Lacey
5307a79b82
Add known type checker crashers.
...
Add minimized tests for:
rdar://problem/27261929
rdar://problem/27329076
2016-08-16 16:35:58 -07:00
Robert Widmann
e6c313bce3
Merge pull request #3600 from russbishop/se0045
...
[SR-1516][stdlib] Implement SE-0045 prefix(while:) and drop(while:)
2016-08-16 16:26:21 -07:00
practicalswift
ccf44d8f98
[swiftc (49 vs. 5156)] Add crasher in swift::SILModule::constructSIL(...)
...
Add test case for crash triggered in `swift::SILModule::constructSIL(...)`.
Current number of unresolved compiler crashers: 49 (5156 resolved)
Assertion failure in [`lib/SILGen/SILGenApply.cpp (line 1114)`](https://github.com/apple/swift/blob/master/lib/SILGen/SILGenApply.cpp#L1114 ):
```
Assertion `vd->isLet() && "Direct reference to vardecl that isn't a let?"' failed.
When executing: void (anonymous namespace)::SILGenApply::visitDeclRefExpr(swift::DeclRefExpr *)
```
Assertion context:
```
// If this is a direct reference to a vardecl, it must be a let constant
// (which doesn't need to be loaded). Just emit its value directly.
if (auto *vd = dyn_cast<VarDecl>(e->getDecl())) {
(void)vd;
assert(vd->isLet() && "Direct reference to vardecl that isn't a let?");
visitExpr(e);
return;
}
SILDeclRef constant(e->getDecl(),
```
Stack trace:
```
swift: /path/to/swift/lib/SILGen/SILGenApply.cpp:1114: void (anonymous namespace)::SILGenApply::visitDeclRefExpr(swift::DeclRefExpr *): Assertion `vd->isLet() && "Direct reference to vardecl that isn't a let?"' failed.
37 swift 0x000000000093f4c2 swift::SILModule::constructSIL(swift::ModuleDecl*, swift::SILOptions&, swift::FileUnit*, llvm::Optional<unsigned int>, bool, bool) + 498
38 swift 0x000000000093fa36 swift::performSILGeneration(swift::FileUnit&, swift::SILOptions&, llvm::Optional<unsigned int>, bool) + 118
40 swift 0x00000000007db487 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2887
41 swift 0x00000000007a72b8 main + 2872
Stack dump:
0. Program arguments: /path/to/swift/bin/swift -frontend -c -primary-file validation-test/compiler_crashers/28396-swift-lowering-silgenfunction-emitclosurevalue.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -module-name main -o /tmp/28396-swift-lowering-silgenfunction-emitclosurevalue-c63b87.o
1. While emitting SIL for 'a' at validation-test/compiler_crashers/28396-swift-lowering-silgenfunction-emitclosurevalue.swift:10:1
2. While emitting SIL for getter for b at validation-test/compiler_crashers/28396-swift-lowering-silgenfunction-emitclosurevalue.swift:10:22
3. While silgen closureexpr SIL function @_TFFF4main1aFT_T_gL_1bFT_T_U_FT_T_ for expression at [validation-test/compiler_crashers/28396-swift-lowering-silgenfunction-emitclosurevalue.swift:10:29 - line:10:33] RangeText="{b()}"
<unknown>:0: error: unable to execute command: Aborted
<unknown>:0: error: compile command failed due to signal (use -v to see invocation)
```
2016-08-16 12:00:49 +02:00
Slava Pestov
56e2e1327a
Targeted fix for pulling in Hashable conformance for Set and Dictionary when a nil literal is bridged
...
When bridging values via the ObjectiveCBridgeable protocol,
SILGen has to look up conformances directly, behind the
type checker's back.
To make sure the ObjectiveCBridgeable conformance is forced,
Sema calls useObjectiveCBridgeableConformances() in the right
places.
However, another conformance we may also need when bridging
is the Hashable conformance for a Set or Dictionary's key type.
Make sure we force these too, because otherwise when bridging
a nil literal nothing needs them in Sema.
Fixes <rdar://problem/27470505>.
2016-08-15 14:29:59 -07:00
Russ Bishop
f0e6c306e4
[stdlib][SE-45] Add prefix(while:) and drop(while:) to Sequence
...
Includes lazy implementation courtesy of Nate Cook
2016-08-15 14:13:27 -07:00
Jordan Rose
af1a8154a3
Guard against racy access to NSError.setUserInfoValueProvider. ( #4280 )
...
This API is documented in its headers to only allow being called once
for a particular domain, so we have to make sure our check for an
existing provider is synchronized with the setting.
rdar://problem/27541751
2016-08-15 13:34:30 -07:00
Robert Widmann
43fb605c7e
Merge pull request #4253 from practicalswift/swiftc-28395-swift-expr-propagatelvalueaccesskind
...
[swiftc (48 vs. 5156)] Add crasher in swift::Expr::propagateLValueAccessKind(...)
2016-08-15 13:18:39 -07:00
Mark Lacey
2ea5486c29
Add known type checker crashers.
...
Add minimized tests for:
rdar://problem/27464577
rdar://problem/27575060
rdar://problem/27680407
rdar://problem/27787341
rdar://problem/27815848
As these (and other tests added here) are fixed, we can move them into a
new type_checker_crashers_fixed directory.
2016-08-13 12:57:20 -07:00
Dave Abrahams
e6dec58cc5
Merge pull request #4041 from xwu/memory-layout-of-value
...
[stdlib] Implement SE-0136 (Restore MemoryLayout.*(ofValue:))
2016-08-12 11:09:17 -07:00
practicalswift
40db42f36f
[swiftc (48 vs. 5156)] Add crasher in swift::Expr::propagateLValueAccessKind(...)
...
Add test case for crash triggered in `swift::Expr::propagateLValueAccessKind(...)`.
Current number of unresolved compiler crashers: 48 (5156 resolved)
Stack trace:
```
6 swift 0x00000000032eaf5d llvm::llvm_unreachable_internal(char const*, char const*, unsigned int) + 461
8 swift 0x0000000001113fc7 swift::Expr::propagateLValueAccessKind(swift::AccessKind, bool) + 23
12 swift 0x000000000109a27c swift::Expr::walk(swift::ASTWalker&) + 108
13 swift 0x0000000000f6d412 swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::Expr*, swift::Type, bool, bool, bool) + 514
14 swift 0x0000000000ec44da swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) + 778
17 swift 0x0000000000f8c17d swift::constraints::ConstraintSystem::diagnoseFailureForExpr(swift::Expr*) + 7021
18 swift 0x0000000000f90a3e swift::constraints::ConstraintSystem::salvage(llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::Expr*) + 4078
19 swift 0x0000000000ebd469 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>) + 857
20 swift 0x0000000000ec443d swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) + 621
21 swift 0x0000000000ec55f0 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*) + 352
22 swift 0x0000000000ec6335 swift::TypeChecker::typeCheckStmtCondition(llvm::MutableArrayRef<swift::StmtConditionElement>&, swift::DeclContext*, swift::Diag<>) + 373
26 swift 0x0000000000f409a4 swift::TypeChecker::typeCheckClosureBody(swift::ClosureExpr*) + 244
27 swift 0x0000000000f6d57c swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::Expr*, swift::Type, bool, bool, bool) + 876
28 swift 0x0000000000ec44da swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) + 778
30 swift 0x0000000000f40ae6 swift::TypeChecker::typeCheckTopLevelCodeDecl(swift::TopLevelCodeDecl*) + 134
31 swift 0x0000000000efb40d swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) + 1133
32 swift 0x0000000000c7b5b9 swift::CompilerInstance::performSema() + 3289
34 swift 0x00000000007db487 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2887
35 swift 0x00000000007a72b8 main + 2872
Stack dump:
0. Program arguments: /path/to/swift/bin/swift -frontend -c -primary-file validation-test/compiler_crashers/28395-swift-expr-propagatelvalueaccesskind.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -module-name main -o /tmp/28395-swift-expr-propagatelvalueaccesskind-943db0.o
1. While type-checking expression at [validation-test/compiler_crashers/28395-swift-expr-propagatelvalueaccesskind.swift:9:1 - line:9:24] RangeText="{guard let b=.h.h=.n?(){"
2. While type-checking expression at [validation-test/compiler_crashers/28395-swift-expr-propagatelvalueaccesskind.swift:9:14 - line:9:23] RangeText=".h.h=.n?()"
3. While type-checking expression at [validation-test/compiler_crashers/28395-swift-expr-propagatelvalueaccesskind.swift:9:14 - line:9:23] RangeText=".h.h=.n?()"
<unknown>:0: error: unable to execute command: Aborted
<unknown>:0: error: compile command failed due to signal (use -v to see invocation)
```
2016-08-12 10:59:50 +02:00
Argyrios Kyrtzidis
126602d7dd
[test] Update 'validation-test/stdlib/CollectionDiagnostics.swift'
2016-08-11 14:04:51 -07:00
Dmitri Gribenko
5af088ff24
Merge pull request #4226 from practicalswift/swiftc-28394-swift-typechecker-checkconformance
...
[swiftc (47 vs. 5156)] Add crasher in swift::TypeChecker::checkConformance(...)
2016-08-11 10:11:38 -07:00
practicalswift
8b5f8d1aed
[swiftc (47 vs. 5156)] Add crasher in swift::TypeChecker::checkConformance(...)
...
Add test case for crash triggered in `swift::TypeChecker::checkConformance(...)`.
Current number of unresolved compiler crashers: 47 (5156 resolved)
Assertion failure in [`lib/Sema/TypeCheckProtocol.cpp (line 1598)`](https://github.com/apple/swift/blob/master/lib/Sema/TypeCheckProtocol.cpp#L1598 ):
```
Assertion `isa<SubscriptDecl>(VD) && "Unhandled requirement kind"' failed.
When executing: diag::RequirementKind getRequirementKind(swift::ValueDecl *)
```
Assertion context:
```
if (isa<ConstructorDecl>(VD))
return diag::RequirementKind::Constructor;
if (isa<FuncDecl>(VD))
return diag::RequirementKind::Func;
if (isa<VarDecl>(VD))
return diag::RequirementKind::Var;
assert(isa<SubscriptDecl>(VD) && "Unhandled requirement kind");
return diag::RequirementKind::Subscript;
```
Stack trace:
```
swift: /path/to/swift/lib/Sema/TypeCheckProtocol.cpp:1598: diag::RequirementKind getRequirementKind(swift::ValueDecl *): Assertion `isa<SubscriptDecl>(VD) && "Unhandled requirement kind"' failed.
11 swift 0x0000000000f1f666 swift::TypeChecker::checkConformance(swift::NormalProtocolConformance*) + 1686
12 swift 0x0000000000f1fda7 swift::TypeChecker::checkConformancesInContext(swift::DeclContext*, swift::IterableDeclContext*) + 471
15 swift 0x0000000000ed7466 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) + 150
16 swift 0x0000000000efb42a swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) + 1162
17 swift 0x0000000000c7b5b9 swift::CompilerInstance::performSema() + 3289
19 swift 0x00000000007db487 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2887
20 swift 0x00000000007a72b8 main + 2872
Stack dump:
0. Program arguments: /path/to/swift/bin/swift -frontend -c -primary-file validation-test/compiler_crashers/28394-swift-typechecker-checkconformance.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -module-name main -o /tmp/28394-swift-typechecker-checkconformance-09c483.o
1. While type-checking 'd' at validation-test/compiler_crashers/28394-swift-typechecker-checkconformance.swift:10:1
<unknown>:0: error: unable to execute command: Aborted
<unknown>:0: error: compile command failed due to signal (use -v to see invocation)
```
2016-08-11 13:22:20 +02:00
Dmitri Gribenko
d175b3b66d
Migrate FileCheck to %FileCheck in tests
2016-08-10 23:52:02 -07:00
Dmitri Gribenko
0f60d04183
Merge pull request #4188 from practicalswift/swiftc-28393-swift-type-transform
...
[swiftc (46 vs. 5156)] Add crasher in swift::Type::transform(...)
2016-08-10 18:20:04 -07:00
Slava Pestov
0004bc480a
IRGen: Differentiate between Swift.Bool and ObjCBool
...
SIL already does this where necessary, except with foreign throwing
functions; this patch changes Sema and the ClangImporter to give
them an ObjCBool foreign error result type explicitly.
This fixes a problem where calls to functions taking and returning
the C99 _Bool type were miscompiled on Mac OS X x86-64, because
IRGen was conflating the Objective-C BOOL type (which is a signed
char on some platforms) and C99 _Bool (which lowers as the LLVM
i1 type).
Fixes <rdar://problem/26506458> and <rdar://problem/27365520>.
2016-08-10 10:34:24 -07:00
Ted Kremenek
420088fbc4
Merge pull request #3356 from ultramiraculous/failable-float-to-int
...
SE-0080 (3/5) - Failable initializers for Float->Int
2016-08-10 08:36:33 -07:00
practicalswift
53ef34c8a9
[swiftc (46 vs. 5156)] Add crasher in swift::Type::transform(...)
...
Add test case for crash triggered in `swift::Type::transform(...)`.
Current number of unresolved compiler crashers: 46 (5156 resolved)
Assertion failure in `llvm/include/llvm/Support/Casting.h (line 95)`:
```
Assertion `Val && "isa<> used on a null pointer"' failed.
When executing: static bool llvm::isa_impl_cl<swift::SILFunctionType, const swift::TypeBase *>::doit(const From *) [To = swift::SILFunctionType, From = const swift::TypeBase *]
```
Assertion context:
```
}
};
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:
```
swift: /path/to/llvm/include/llvm/Support/Casting.h:95: static bool llvm::isa_impl_cl<swift::SILFunctionType, const swift::TypeBase *>::doit(const From *) [To = swift::SILFunctionType, From = const swift::TypeBase *]: Assertion `Val && "isa<> used on a null pointer"' failed.
9 swift 0x000000000115ba63 swift::Type::transform(llvm::function_ref<swift::Type (swift::Type)>) const + 35
10 swift 0x0000000001154db4 swift::Type::subst(swift::ModuleDecl*, llvm::DenseMap<swift::TypeBase*, swift::Type, llvm::DenseMapInfo<swift::TypeBase*>, llvm::detail::DenseMapPair<swift::TypeBase*, swift::Type> >&, swift::OptionSet<swift::SubstFlags, unsigned int>) const + 68
13 swift 0x0000000000f21cce swift::TypeChecker::resolveTypeWitness(swift::NormalProtocolConformance const*, swift::AssociatedTypeDecl*) + 254
14 swift 0x000000000114c436 swift::NormalProtocolConformance::getTypeWitnessSubstAndDecl(swift::AssociatedTypeDecl*, swift::LazyResolver*) const + 150
15 swift 0x000000000114c378 swift::ProtocolConformance::getTypeWitnessSubstAndDecl(swift::AssociatedTypeDecl*, swift::LazyResolver*) const + 40
17 swift 0x0000000000f15254 swift::TypeChecker::lookupUnqualified(swift::DeclContext*, swift::DeclName, swift::SourceLoc, swift::OptionSet<swift::NameLookupFlags, unsigned int>) + 420
18 swift 0x0000000000ebba04 swift::TypeChecker::resolveDeclRefExpr(swift::UnresolvedDeclRefExpr*, swift::DeclContext*) + 116
20 swift 0x000000000109a22b swift::Expr::walk(swift::ASTWalker&) + 27
21 swift 0x0000000000ebd1f0 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>) + 224
22 swift 0x0000000000ec443d swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) + 621
23 swift 0x0000000000ec55f0 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*) + 352
24 swift 0x0000000000ec580b swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int) + 267
29 swift 0x0000000000ed7466 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) + 150
30 swift 0x0000000000efb3a2 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) + 1026
31 swift 0x0000000000c7b5b9 swift::CompilerInstance::performSema() + 3289
33 swift 0x00000000007db487 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2887
34 swift 0x00000000007a72b8 main + 2872
Stack dump:
0. Program arguments: /path/to/swift/bin/swift -frontend -c -primary-file validation-test/compiler_crashers/28393-swift-type-transform.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -module-name main -o /tmp/28393-swift-type-transform-10c33b.o
1. While type-checking 'S' at validation-test/compiler_crashers/28393-swift-type-transform.swift:10:1
2. While type-checking expression at [validation-test/compiler_crashers/28393-swift-type-transform.swift:10:16 - line:10:16] RangeText="b"
<unknown>:0: error: unable to execute command: Aborted
<unknown>:0: error: compile command failed due to signal (use -v to see invocation)
```
2016-08-10 12:51:56 +02:00
Chris Williams
a8e3a17090
Fix FixedPointConversion tests spacing
2016-08-09 17:09:00 -07:00
Dmitri Gribenko
bafe7ccc64
Merge pull request #4124 from apple/stdlib-AnyHashable-fixes
...
stdlib and runtime: a bunch of fixes for AnyHashable and id-as-Any
2016-08-09 11:16:06 -07:00
Dmitri Gribenko
f1ec334fe5
stdlib: make AnyHashable(SwiftValue) unbox the value
...
Previously AnyHashable would consider SwiftValue to be a subclass of
NSObject (which it is in practice) and return false when trying to
compare an AnyHashable of a SwiftValue box to an AnyHashable of the
unboxed value.
2016-08-09 01:38:53 -07:00
Dmitri Gribenko
b162f60070
runtime: make _SwiftNativeNSError use the Hashable conformance, if available
...
If the Swift error wrapped in a _SwiftNativeNSError box conforms to
Hashable, the box now uses the Swift's conformance to Hashable.
Part of rdar://problem/27574348.
2016-08-09 00:49:20 -07:00
Dmitri Gribenko
08c772fdac
StdlibUnittest: add an allowBrokenTransitivity flag to checkEquatable()
...
This will be used for testing Swift errors bridged to NSErrors.
2016-08-09 00:49:20 -07:00
Dmitri Gribenko
bfadfe37e4
stdlib: add (XFAIL'ed) tests for errors and NSErrors in AnyHashable
2016-08-09 00:49:20 -07:00
Dmitri Gribenko
3db584dc45
stdlib: AnyHashable: add a fixme
2016-08-09 00:49:20 -07:00
Dmitri Gribenko
091bd19610
stdlib: add tests for AnyHashable.base, and make test names uniform
2016-08-09 00:49:20 -07:00
practicalswift
ed461ceb09
[swiftc (45 vs. 5156)] Add crasher in swift::DependentGenericTypeResolver::resolveSelfAssociatedType(...)
...
Add test case for crash triggered in `swift::DependentGenericTypeResolver::resolveSelfAssociatedType(...)`.
Current number of unresolved compiler crashers: 45 (5156 resolved)
Assertion failure in [`lib/Sema/TypeCheckGeneric.cpp (line 47)`](https://github.com/apple/swift/blob/master/lib/Sema/TypeCheckGeneric.cpp#L47 ):
```
Assertion `archetype && "Bad generic context nesting?"' failed.
When executing: virtual swift::Type swift::DependentGenericTypeResolver::resolveSelfAssociatedType(swift::Type, swift::DeclContext *, swift::AssociatedTypeDecl *)
```
Assertion context:
```
Type DependentGenericTypeResolver::resolveSelfAssociatedType(
Type selfTy,
DeclContext *DC,
AssociatedTypeDecl *assocType) {
auto archetype = Builder.resolveArchetype(selfTy);
assert(archetype && "Bad generic context nesting?");
return archetype->getRepresentative()
->getNestedType(assocType->getName(), Builder)
->getDependentType(Builder, true);
}
```
Stack trace:
```
swift: /path/to/swift/lib/Sema/TypeCheckGeneric.cpp:47: virtual swift::Type swift::DependentGenericTypeResolver::resolveSelfAssociatedType(swift::Type, swift::DeclContext *, swift::AssociatedTypeDecl *): Assertion `archetype && "Bad generic context nesting?"' failed.
8 swift 0x0000000000f102ad swift::DependentGenericTypeResolver::resolveSelfAssociatedType(swift::Type, swift::DeclContext*, swift::AssociatedTypeDecl*) + 125
9 swift 0x0000000000f457c4 swift::TypeChecker::resolveTypeInContext(swift::TypeDecl*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 1956
13 swift 0x0000000000f46a7e swift::TypeChecker::resolveIdentifierType(swift::DeclContext*, swift::IdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 158
15 swift 0x0000000000f479c4 swift::TypeChecker::resolveType(swift::TypeRepr*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 164
16 swift 0x0000000000f46970 swift::TypeChecker::validateType(swift::TypeLoc&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 192
18 swift 0x0000000000f1105e swift::TypeChecker::validateGenericFuncSignature(swift::AbstractFunctionDecl*) + 94
21 swift 0x0000000000ed12b1 swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) + 945
25 swift 0x0000000000ed7466 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) + 150
28 swift 0x0000000000f409a4 swift::TypeChecker::typeCheckClosureBody(swift::ClosureExpr*) + 244
29 swift 0x0000000000f6d57c swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::Expr*, swift::Type, bool, bool, bool) + 876
30 swift 0x0000000000ec44da swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) + 778
31 swift 0x0000000000ec55f0 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*) + 352
32 swift 0x0000000000ec580b swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int) + 267
43 swift 0x0000000000ed7466 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) + 150
46 swift 0x0000000000f409a4 swift::TypeChecker::typeCheckClosureBody(swift::ClosureExpr*) + 244
47 swift 0x0000000000f6d57c swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::Expr*, swift::Type, bool, bool, bool) + 876
48 swift 0x0000000000ec44da swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) + 778
50 swift 0x0000000000f40ae6 swift::TypeChecker::typeCheckTopLevelCodeDecl(swift::TopLevelCodeDecl*) + 134
51 swift 0x0000000000efb40d swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) + 1133
52 swift 0x0000000000c7b5b9 swift::CompilerInstance::performSema() + 3289
54 swift 0x00000000007db487 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2887
55 swift 0x00000000007a72b8 main + 2872
Stack dump:
0. Program arguments: /path/to/swift/bin/swift -frontend -c -primary-file validation-test/compiler_crashers/28392-swift-dependentgenerictyperesolver-resolveselfassociatedtype.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -module-name main -o /tmp/28392-swift-dependentgenerictyperesolver-resolveselfassociatedtype-0402cf.o
1. While type-checking expression at [validation-test/compiler_crashers/28392-swift-dependentgenerictyperesolver-resolveselfassociatedtype.swift:10:1 - line:21:1] RangeText="{
2. While type-checking 'A' at validation-test/compiler_crashers/28392-swift-dependentgenerictyperesolver-resolveselfassociatedtype.swift:11:1
3. While type-checking expression at [validation-test/compiler_crashers/28392-swift-dependentgenerictyperesolver-resolveselfassociatedtype.swift:17:7 - line:21:1] RangeText="{
4. While type-checking 'h' at validation-test/compiler_crashers/28392-swift-dependentgenerictyperesolver-resolveselfassociatedtype.swift:18:1
5. While type-checking 'a' at validation-test/compiler_crashers/28392-swift-dependentgenerictyperesolver-resolveselfassociatedtype.swift:20:1
6. While resolving type e at [validation-test/compiler_crashers/28392-swift-dependentgenerictyperesolver-resolveselfassociatedtype.swift:20:8 - line:20:8] RangeText="e"
<unknown>:0: error: unable to execute command: Aborted
<unknown>:0: error: compile command failed due to signal (use -v to see invocation)
```
2016-08-09 09:10:39 +02:00
Ted Kremenek
e5c8092cc1
Merge pull request #4134 from apple/simplify-tests
...
Simplify Foundation tests that compare types
2016-08-08 23:47:59 -07:00
Dave Abrahams
b23af7ce3b
Merge pull request #4091 from apple/deprecate-indexable
...
Deprecate the Indexable protocols
2016-08-08 21:01:39 -07:00
Dmitri Gribenko
1425a9201d
Foundation tests: simplify some tests using the new expectEqual() assertions
2016-08-08 17:56:08 -07:00
Dmitri Gribenko
fd627ff015
StdlibUnittest: add expectEqual(_: Any.Type, _: Any.Type)
2016-08-08 17:56:05 -07:00
Dmitri Gribenko
e3a32a7044
stdlib tests: coding style fixes
2016-08-08 17:49:42 -07:00
Dave Abrahams
8a73f0b98e
[stdlib] Change Indexable deprecation messages
...
It's important to let people know that, in contrast with existing
practice in other frameworks, we really are going to remove the
deprecated API, and soon.
2016-08-08 13:44:41 -07:00
practicalswift
44f2a749f9
[swiftc (44 vs. 5156)] Add crasher in swift::TypeChecker::validateDecl(...)
...
Add test case for crash triggered in `swift::TypeChecker::validateDecl(...)`.
Current number of unresolved compiler crashers: 44 (5156 resolved)
Assertion failure in [`lib/Sema/TypeCheckDecl.cpp (line 4724)`](https://github.com/apple/swift/blob/master/lib/Sema/TypeCheckDecl.cpp#L4724 ):
```
Assertion `!FD->getType()->hasTypeParameter()' failed.
When executing: void (anonymous namespace)::DeclChecker::visitFuncDecl(swift::FuncDecl *)
```
Assertion context:
```
if (FD->isInvalid())
return;
// This type check should have created a non-dependent type.
assert(!FD->getType()->hasTypeParameter());
validateAttributes(TC, FD);
// Member functions need some special validation logic.
if (FD->getDeclContext()->isTypeContext()) {
```
Stack trace:
```
swift: /path/to/swift/lib/Sema/TypeCheckDecl.cpp:4724: void (anonymous namespace)::DeclChecker::visitFuncDecl(swift::FuncDecl *): Assertion `!FD->getType()->hasTypeParameter()' failed.
10 swift 0x0000000000ed1301 swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) + 945
12 swift 0x0000000000ed1c92 swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) + 3394
13 swift 0x0000000001142d7b swift::DeclContext::lookupQualified(swift::Type, swift::DeclName, swift::NLOptions, swift::LazyResolver*, llvm::SmallVectorImpl<swift::ValueDecl*>&) const + 2667
14 swift 0x00000000011416e0 swift::UnqualifiedLookup::UnqualifiedLookup(swift::DeclName, swift::DeclContext*, swift::LazyResolver*, bool, swift::SourceLoc, bool, bool) + 2864
15 swift 0x0000000000f151bb swift::TypeChecker::lookupUnqualified(swift::DeclContext*, swift::DeclName, swift::SourceLoc, swift::OptionSet<swift::NameLookupFlags, unsigned int>) + 187
18 swift 0x0000000000f46a9e swift::TypeChecker::resolveIdentifierType(swift::DeclContext*, swift::IdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 158
20 swift 0x0000000000f479e4 swift::TypeChecker::resolveType(swift::TypeRepr*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 164
21 swift 0x0000000000f46990 swift::TypeChecker::validateType(swift::TypeLoc&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 192
23 swift 0x0000000000f18305 swift::TypeChecker::typeCheckParameterList(swift::ParameterList*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*) + 117
25 swift 0x0000000000f110ae swift::TypeChecker::validateGenericFuncSignature(swift::AbstractFunctionDecl*) + 94
32 swift 0x0000000000ed74b6 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) + 150
33 swift 0x0000000000efb3f2 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) + 1026
34 swift 0x0000000000c7b5c9 swift::CompilerInstance::performSema() + 3289
36 swift 0x00000000007db4f7 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2887
37 swift 0x00000000007a7328 main + 2872
Stack dump:
0. Program arguments: /path/to/swift/bin/swift -frontend -c -primary-file validation-test/compiler_crashers/28391-swift-typechecker-validatedecl.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -module-name main -o /tmp/28391-swift-typechecker-validatedecl-1d567d.o
1. While type-checking 'c' at validation-test/compiler_crashers/28391-swift-typechecker-validatedecl.swift:10:1
2. While resolving type f at [validation-test/compiler_crashers/28391-swift-typechecker-validatedecl.swift:10:39 - line:10:39] RangeText="f"
3. While type-checking 'f' at validation-test/compiler_crashers/28391-swift-typechecker-validatedecl.swift:10:41
4. While type-checking 'f' at validation-test/compiler_crashers/28391-swift-typechecker-validatedecl.swift:10:32
<unknown>:0: error: unable to execute command: Aborted
<unknown>:0: error: compile command failed due to signal (use -v to see invocation)
```
2016-08-08 22:16:14 +02:00
Xiaodi Wu
f9435b9ce8
[stdlib] Restore MemoryLayout.*(ofValue:)
2016-08-08 10:46:37 -05:00
practicalswift
c5572f6e44
[swiftc (43 vs. 5156)] Add crasher in swift::Expr::walk(...)
...
Add test case for crash triggered in `swift::Expr::walk(...)`.
Current number of unresolved compiler crashers: 43 (5156 resolved)
Assertion failure in [`include/swift/AST/Stmt.h (line 170)`](https://github.com/apple/swift/blob/master/include/swift/AST/Stmt.h#L170 ):
```
Assertion `Result && "ReturnStmt doesn't have a result"' failed.
When executing: swift::Expr *swift::ReturnStmt::getResult() const
```
Assertion context:
```
SourceLoc getStartLoc() const;
SourceLoc getEndLoc() const;
bool hasResult() const { return Result != 0; }
Expr *getResult() const {
assert(Result && "ReturnStmt doesn't have a result");
return Result;
}
void setResult(Expr *e) { Result = e; }
static bool classof(const Stmt *S) { return S->getKind() == StmtKind::Return;}
```
Stack trace:
```
swift: /path/to/swift/include/swift/AST/Stmt.h:170: swift::Expr *swift::ReturnStmt::getResult() const: Assertion `Result && "ReturnStmt doesn't have a result"' failed.
12 swift 0x000000000109a52b swift::Expr::walk(swift::ASTWalker&) + 75
13 swift 0x0000000001114d38 swift::Expr::forEachChildExpr(std::function<swift::Expr* (swift::Expr*)> const&) + 40
15 swift 0x0000000000f8c19d swift::constraints::ConstraintSystem::diagnoseFailureForExpr(swift::Expr*) + 7021
16 swift 0x0000000000f90a5e swift::constraints::ConstraintSystem::salvage(llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::Expr*) + 4078
17 swift 0x0000000000ebd4b9 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>) + 857
18 swift 0x0000000000ec448d swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) + 621
21 swift 0x0000000000f8c19d swift::constraints::ConstraintSystem::diagnoseFailureForExpr(swift::Expr*) + 7021
22 swift 0x0000000000f90a5e swift::constraints::ConstraintSystem::salvage(llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::Expr*) + 4078
23 swift 0x0000000000ebd4b9 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>) + 857
24 swift 0x0000000000ec448d swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) + 621
26 swift 0x0000000000f40b06 swift::TypeChecker::typeCheckTopLevelCodeDecl(swift::TopLevelCodeDecl*) + 134
27 swift 0x0000000000efb45d swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) + 1133
28 swift 0x0000000000c7b5c9 swift::CompilerInstance::performSema() + 3289
30 swift 0x00000000007db4f7 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2887
31 swift 0x00000000007a7328 main + 2872
Stack dump:
0. Program arguments: /path/to/swift/bin/swift -frontend -c -primary-file validation-test/compiler_crashers/28390-swift-expr-walk.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -module-name main -o /tmp/28390-swift-expr-walk-405a1f.o
1. While type-checking expression at [validation-test/compiler_crashers/28390-swift-expr-walk.swift:10:1 - line:11:7] RangeText=".h={return
2. While type-checking expression at [validation-test/compiler_crashers/28390-swift-expr-walk.swift:10:1 - line:11:7] RangeText=".h={return
<unknown>:0: error: unable to execute command: Aborted
<unknown>:0: error: compile command failed due to signal (use -v to see invocation)
```
2016-08-08 14:00:15 +02:00
practicalswift
50c1119247
Merge pull request #4096 from practicalswift/swiftc-28389-swift-lookupvisibledecls
...
[swiftc (42 vs. 5156)] Add crasher in swift::lookupVisibleDecls(...)
2016-08-08 13:58:01 +02:00
practicalswift
27352a3a1f
[swiftc (42 vs. 5156)] Add crasher in swift::lookupVisibleDecls(...)
...
Add test case for crash triggered in `swift::lookupVisibleDecls(...)`.
Current number of unresolved compiler crashers: 42 (5156 resolved)
Assertion failure in [`lib/AST/LookupVisibleDecls.cpp (line 566)`](https://github.com/apple/swift/blob/master/lib/AST/LookupVisibleDecls.cpp#L566 ):
```
Assertion `BaseTy.getPointer() != CurClass->getSuperclass().getPointer() && "type is its own superclass"' failed.
When executing: void lookupVisibleMemberDeclsImpl(swift::Type, swift::VisibleDeclConsumer &, const swift::DeclContext *, (anonymous namespace)::LookupState, swift::DeclVisibilityKind, swift::LazyResolver *, VisitedSet &)
```
Assertion context:
```
// If we have a class type, look into its superclass.
ClassDecl *CurClass = dyn_cast<ClassDecl>(CurNominal);
if (CurClass && CurClass->hasSuperclass()) {
assert(BaseTy.getPointer() != CurClass->getSuperclass().getPointer() &&
"type is its own superclass");
BaseTy = CurClass->getSuperclass();
Reason = getReasonForSuper(Reason);
bool InheritsSuperclassInitializers =
CurClass->inheritsSuperclassInitializers(TypeResolver);
```
Stack trace:
```
swift: /path/to/swift/lib/AST/LookupVisibleDecls.cpp:566: void lookupVisibleMemberDeclsImpl(swift::Type, swift::VisibleDeclConsumer &, const swift::DeclContext *, (anonymous namespace)::LookupState, swift::DeclVisibilityKind, swift::LazyResolver *, VisitedSet &): Assertion `BaseTy.getPointer() != CurClass->getSuperclass().getPointer() && "type is its own superclass"' failed.
10 swift 0x0000000001121734 swift::lookupVisibleDecls(swift::VisibleDeclConsumer&, swift::DeclContext const*, swift::LazyResolver*, bool, swift::SourceLoc) + 1188
11 swift 0x0000000000f16672 swift::TypeChecker::performTypoCorrection(swift::DeclContext*, swift::DeclRefKind, swift::Type, swift::DeclName, swift::SourceLoc, swift::OptionSet<swift::NameLookupFlags, unsigned int>, swift::LookupResult&, unsigned int) + 290
12 swift 0x0000000000ebc9ba swift::TypeChecker::resolveDeclRefExpr(swift::UnresolvedDeclRefExpr*, swift::DeclContext*) + 4058
14 swift 0x000000000109a4fb swift::Expr::walk(swift::ASTWalker&) + 27
15 swift 0x0000000000ebd240 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>) + 224
16 swift 0x0000000000ec448d swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) + 621
17 swift 0x0000000000ec5640 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*) + 352
18 swift 0x0000000000ec585b swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int) + 267
20 swift 0x0000000000ed1e5b swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) + 3851
25 swift 0x0000000000f1665b swift::TypeChecker::performTypoCorrection(swift::DeclContext*, swift::DeclRefKind, swift::Type, swift::DeclName, swift::SourceLoc, swift::OptionSet<swift::NameLookupFlags, unsigned int>, swift::LookupResult&, unsigned int) + 267
27 swift 0x0000000000f8af6c swift::constraints::ConstraintSystem::diagnoseFailureForExpr(swift::Expr*) + 2364
28 swift 0x0000000000f90a5e swift::constraints::ConstraintSystem::salvage(llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::Expr*) + 4078
29 swift 0x0000000000ebd4b9 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>) + 857
30 swift 0x0000000000ec448d swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) + 621
31 swift 0x0000000000ec5640 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*) + 352
32 swift 0x0000000000ec585b swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int) + 267
37 swift 0x0000000000ed74b6 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) + 150
38 swift 0x0000000000efb3f2 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) + 1026
39 swift 0x0000000000c7b5c9 swift::CompilerInstance::performSema() + 3289
41 swift 0x00000000007db4f7 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2887
42 swift 0x00000000007a7328 main + 2872
Stack dump:
0. Program arguments: /path/to/swift/bin/swift -frontend -c -primary-file validation-test/compiler_crashers/28389-swift-lookupvisibledecls.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -module-name main -o /tmp/28389-swift-lookupvisibledecls-e9a1a8.o
1. While type-checking 'B' at validation-test/compiler_crashers/28389-swift-lookupvisibledecls.swift:10:1
2. While type-checking expression at [validation-test/compiler_crashers/28389-swift-lookupvisibledecls.swift:10:16 - line:10:18] RangeText="A.b"
3. While type-checking expression at [validation-test/compiler_crashers/28389-swift-lookupvisibledecls.swift:10:36 - line:10:36] RangeText="V"
<unknown>:0: error: unable to execute command: Aborted
<unknown>:0: error: compile command failed due to signal (use -v to see invocation)
```
2016-08-08 09:47:53 +02:00
Dmitri Gribenko
1d6b08ba97
stdlib: share the Unicode dataset across different test files
2016-08-07 23:29:24 -07:00
Dave Abrahams
168047d0f0
Deprecate the Indexable protocols
...
Using them is always a mistake; the user should choose the corresponding
Collection protocol instead.
2016-08-07 22:20:27 -07:00
Dmitri Gribenko
13a9908f8d
Merge pull request #4079 from practicalswift/swiftc-28388-swift-typebase-getcanonicaltype
...
[swiftc (41 vs. 5156)] Add crasher in swift::TypeBase::getCanonicalType(...)
2016-08-07 17:56:36 -07:00
Dmitri Gribenko
987acd375d
stdlib: make tests rely on Array implementation details less
2016-08-07 14:20:36 -07:00
Dmitri Gribenko
f45565ca6c
StdlibUnittest: add a new overload of expectEqual()
2016-08-07 13:46:31 -07:00
Dmitri Gribenko
4f7794587e
Merge pull request #4073 from apple/SR-1988
...
stdlib: fix incorrect distance measurement between UTF-16 indices
2016-08-07 12:55:21 -07:00
Dmitri Gribenko
88de90a92d
stdlib: fix incorrect distance measurement between UTF-16 indices
...
String.UTF16View.Index.distance(to:) was returning a negated result.
Fixes SR-1988.
2016-08-07 13:40:34 -06:00
practicalswift
67fb4d9d43
[swiftc (41 vs. 5156)] Add crasher in swift::TypeBase::getCanonicalType(...)
...
Add test case for crash triggered in `swift::TypeBase::getCanonicalType(...)`.
Current number of unresolved compiler crashers: 41 (5156 resolved)
Stack trace:
```
4 swift 0x0000000001152aa4 swift::TypeBase::getCanonicalType() + 20
5 swift 0x00000000011314bf swift::ModuleDecl::lookupConformance(swift::Type, swift::ProtocolDecl*, swift::LazyResolver*) + 1215
6 swift 0x0000000000f1e3ca swift::TypeChecker::conformsToProtocol(swift::Type, swift::ProtocolDecl*, swift::DeclContext*, swift::OptionSet<swift::ConformanceCheckFlags, unsigned int>, swift::ProtocolConformance**, swift::SourceLoc) + 106
9 swift 0x0000000000f219be swift::TypeChecker::resolveTypeWitness(swift::NormalProtocolConformance const*, swift::AssociatedTypeDecl*) + 254
10 swift 0x000000000114c126 swift::NormalProtocolConformance::getTypeWitnessSubstAndDecl(swift::AssociatedTypeDecl*, swift::LazyResolver*) const + 150
11 swift 0x000000000114c068 swift::ProtocolConformance::getTypeWitnessSubstAndDecl(swift::AssociatedTypeDecl*, swift::LazyResolver*) const + 40
13 swift 0x0000000000f14f64 swift::TypeChecker::lookupUnqualified(swift::DeclContext*, swift::DeclName, swift::SourceLoc, swift::OptionSet<swift::NameLookupFlags, unsigned int>) + 404
14 swift 0x0000000000ebb724 swift::TypeChecker::resolveDeclRefExpr(swift::UnresolvedDeclRefExpr*, swift::DeclContext*) + 116
17 swift 0x0000000001099f4b swift::Expr::walk(swift::ASTWalker&) + 75
18 swift 0x0000000000ebcf10 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>) + 224
19 swift 0x0000000000ec415d swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) + 621
20 swift 0x0000000000ec5310 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*) + 352
21 swift 0x0000000000ec552b swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int) + 267
30 swift 0x0000000000ed7186 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) + 150
31 swift 0x0000000000efb0c2 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) + 1026
32 swift 0x0000000000c7b5b9 swift::CompilerInstance::performSema() + 3289
34 swift 0x00000000007db4e7 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2887
35 swift 0x00000000007a72d8 main + 2872
Stack dump:
0. Program arguments: /path/to/swift/bin/swift -frontend -c -primary-file validation-test/compiler_crashers/28388-swift-typebase-getcanonicaltype.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -module-name main -o /tmp/28388-swift-typebase-getcanonicaltype-da6437.o
1. While type-checking 'A' at validation-test/compiler_crashers/28388-swift-typebase-getcanonicaltype.swift:9:1
2. While type-checking expression at [validation-test/compiler_crashers/28388-swift-typebase-getcanonicaltype.swift:9:55 - line:9:57] RangeText="f=1"
<unknown>:0: error: unable to execute command: Segmentation fault
<unknown>:0: error: compile command failed due to signal (use -v to see invocation)
```
2016-08-07 21:37:49 +02:00
practicalswift
d0de6210e9
[swiftc (40 vs. 5156)] Add crasher in swift::TypeBase::gatherAllSubstitutions(...)
...
Add test case for crash triggered in `swift::TypeBase::gatherAllSubstitutions(...)`.
Current number of unresolved compiler crashers: 40 (5156 resolved)
Stack trace:
```
6 swift 0x00000000032eac4d llvm::llvm_unreachable_internal(char const*, char const*, unsigned int) + 461
7 swift 0x0000000001130f7e swift::TypeBase::gatherAllSubstitutions(swift::ModuleDecl*, swift::LazyResolver*, swift::DeclContext*) + 4398
8 swift 0x0000000001131647 swift::ModuleDecl::lookupConformance(swift::Type, swift::ProtocolDecl*, swift::LazyResolver*) + 1607
9 swift 0x0000000000f1e3ca swift::TypeChecker::conformsToProtocol(swift::Type, swift::ProtocolDecl*, swift::DeclContext*, swift::OptionSet<swift::ConformanceCheckFlags, unsigned int>, swift::ProtocolConformance**, swift::SourceLoc) + 106
12 swift 0x0000000000f219be swift::TypeChecker::resolveTypeWitness(swift::NormalProtocolConformance const*, swift::AssociatedTypeDecl*) + 254
13 swift 0x000000000114c126 swift::NormalProtocolConformance::getTypeWitnessSubstAndDecl(swift::AssociatedTypeDecl*, swift::LazyResolver*) const + 150
14 swift 0x000000000114c068 swift::ProtocolConformance::getTypeWitnessSubstAndDecl(swift::AssociatedTypeDecl*, swift::LazyResolver*) const + 40
15 swift 0x000000000114c356 swift::SpecializedProtocolConformance::getTypeWitnessSubstAndDecl(swift::AssociatedTypeDecl*, swift::LazyResolver*) const + 230
16 swift 0x000000000114c052 swift::ProtocolConformance::getTypeWitnessSubstAndDecl(swift::AssociatedTypeDecl*, swift::LazyResolver*) const + 18
17 swift 0x000000000114c836 swift::ProtocolConformance::getTypeWitness(swift::AssociatedTypeDecl*, swift::LazyResolver*) const + 6
18 swift 0x0000000000f45655 swift::TypeChecker::resolveTypeInContext(swift::TypeDecl*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 2373
22 swift 0x0000000000f4676e swift::TypeChecker::resolveIdentifierType(swift::DeclContext*, swift::IdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 158
24 swift 0x0000000000f476b4 swift::TypeChecker::resolveType(swift::TypeRepr*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 164
25 swift 0x0000000000f46660 swift::TypeChecker::validateType(swift::TypeLoc&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 192
27 swift 0x0000000000f10d7e swift::TypeChecker::validateGenericFuncSignature(swift::AbstractFunctionDecl*) + 94
30 swift 0x0000000000ed0fd1 swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) + 945
36 swift 0x0000000000ed7186 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) + 150
37 swift 0x0000000000efb0c2 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) + 1026
38 swift 0x0000000000c7b5b9 swift::CompilerInstance::performSema() + 3289
40 swift 0x00000000007db4e7 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2887
41 swift 0x00000000007a72d8 main + 2872
Stack dump:
0. Program arguments: /path/to/swift/bin/swift -frontend -c -primary-file validation-test/compiler_crashers/28387-swift-typebase-gatherallsubstitutions.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -module-name main -o /tmp/28387-swift-typebase-gatherallsubstitutions-896572.o
1. While type-checking 'a' at validation-test/compiler_crashers/28387-swift-typebase-gatherallsubstitutions.swift:9:1
2. While type-checking 'c' at validation-test/compiler_crashers/28387-swift-typebase-gatherallsubstitutions.swift:13:1
3. While resolving type d at [validation-test/compiler_crashers/28387-swift-typebase-gatherallsubstitutions.swift:13:8 - line:13:8] RangeText="d"
<unknown>:0: error: unable to execute command: Aborted
<unknown>:0: error: compile command failed due to signal (use -v to see invocation)
```
2016-08-07 20:27:59 +02:00
practicalswift
3cfb2c9d32
[swiftc (39 vs. 5156)] Add crasher in swift::TypeBase::getDesugaredType(...)
...
Add test case for crash triggered in `swift::TypeBase::getDesugaredType(...)`.
Current number of unresolved compiler crashers: 39 (5156 resolved)
Stack trace:
```
4 swift 0x0000000001157360 swift::TypeBase::getDesugaredType() + 32
6 swift 0x0000000000edc01e swift::TypeChecker::addImplicitConstructors(swift::NominalTypeDecl*) + 654
7 swift 0x0000000000ecfa1e swift::TypeChecker::checkInheritanceClause(swift::Decl*, swift::GenericTypeResolver*) + 5998
8 swift 0x0000000000ed0d97 swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) + 375
12 swift 0x0000000000f4676e swift::TypeChecker::resolveIdentifierType(swift::DeclContext*, swift::IdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 158
14 swift 0x0000000000f476b4 swift::TypeChecker::resolveType(swift::TypeRepr*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 164
15 swift 0x0000000000f46660 swift::TypeChecker::validateType(swift::TypeLoc&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 192
16 swift 0x0000000000ecf74a swift::TypeChecker::checkInheritanceClause(swift::Decl*, swift::GenericTypeResolver*) + 5274
17 swift 0x0000000000ed0d97 swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) + 375
21 swift 0x0000000000f4676e swift::TypeChecker::resolveIdentifierType(swift::DeclContext*, swift::IdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 158
23 swift 0x0000000000f476b4 swift::TypeChecker::resolveType(swift::TypeRepr*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 164
24 swift 0x0000000000f46660 swift::TypeChecker::validateType(swift::TypeLoc&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) + 192
25 swift 0x0000000000f18f01 swift::TypeChecker::typeCheckPattern(swift::Pattern*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*) + 945
28 swift 0x0000000000ed7186 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) + 150
31 swift 0x0000000000f3f7bd swift::TypeChecker::typeCheckConstructorBodyUntil(swift::ConstructorDecl*, swift::SourceLoc) + 845
32 swift 0x0000000000f3f1c2 swift::TypeChecker::typeCheckAbstractFunctionBodyUntil(swift::AbstractFunctionDecl*, swift::SourceLoc) + 34
33 swift 0x0000000000f3fd93 swift::TypeChecker::typeCheckAbstractFunctionBody(swift::AbstractFunctionDecl*) + 179
35 swift 0x0000000000efb1c1 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) + 1281
36 swift 0x0000000000c7b5b9 swift::CompilerInstance::performSema() + 3289
38 swift 0x00000000007db4e7 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2887
39 swift 0x00000000007a72d8 main + 2872
Stack dump:
0. Program arguments: /path/to/swift/bin/swift -frontend -c -primary-file validation-test/compiler_crashers/28386-swift-typebase-getdesugaredtype.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -module-name main -o /tmp/28386-swift-typebase-getdesugaredtype-c6011a.o
1. While type-checking 'init' at validation-test/compiler_crashers/28386-swift-typebase-getdesugaredtype.swift:9:10
2. While type-checking declaration 0x6733b58 at validation-test/compiler_crashers/28386-swift-typebase-getdesugaredtype.swift:9:17
3. While resolving type A at [validation-test/compiler_crashers/28386-swift-typebase-getdesugaredtype.swift:9:21 - line:9:21] RangeText="A"
4. While resolving type B at [validation-test/compiler_crashers/28386-swift-typebase-getdesugaredtype.swift:11:9 - line:11:9] RangeText="B"
<unknown>:0: error: unable to execute command: Segmentation fault
<unknown>:0: error: compile command failed due to signal (use -v to see invocation)
```
2016-08-07 19:23:05 +02:00
practicalswift
c9cdc8b0e8
[swiftc (38 vs. 5156)] Add crasher in swift::constraints::ConstraintGraph::addConstraint(...)
...
Add test case for crash triggered in `swift::constraints::ConstraintGraph::addConstraint(...)`.
Current number of unresolved compiler crashers: 38 (5156 resolved)
Assertion failure in [`lib/Sema/ConstraintGraph.cpp (line 50)`](https://github.com/apple/swift/blob/master/lib/Sema/ConstraintGraph.cpp#L50 ):
```
Assertion `impl.getGraphIndex() < TypeVariables.size() && "Out-of-bounds index"' failed.
When executing: std::pair<ConstraintGraphNode &, unsigned int> swift::constraints::ConstraintGraph::lookupNode(swift::TypeVariableType *)
```
Assertion context:
```
std::pair<ConstraintGraphNode &, unsigned>
ConstraintGraph::lookupNode(TypeVariableType *typeVar) {
// 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() };
}
```
Stack trace:
```
swift: /path/to/swift/lib/Sema/ConstraintGraph.cpp:50: std::pair<ConstraintGraphNode &, unsigned int> swift::constraints::ConstraintGraph::lookupNode(swift::TypeVariableType *): Assertion `impl.getGraphIndex() < TypeVariables.size() && "Out-of-bounds index"' failed.
9 swift 0x000000000100b20f swift::constraints::ConstraintGraph::addConstraint(swift::constraints::Constraint*) + 127
10 swift 0x0000000000f62b62 swift::constraints::ConstraintSystem::addConstraint(swift::constraints::Constraint*, bool, bool) + 258
11 swift 0x0000000000fc8085 swift::constraints::ConstraintSystem::matchTypes(swift::Type, swift::Type, swift::constraints::TypeMatchKind, unsigned int, swift::constraints::ConstraintLocatorBuilder) + 1685
12 swift 0x0000000000fcc186 swift::constraints::ConstraintSystem::matchTupleToScalarTypes(swift::TupleType*, swift::Type, swift::constraints::TypeMatchKind, unsigned int, swift::constraints::ConstraintLocatorBuilder) + 182
13 swift 0x0000000000fcd2c2 swift::constraints::ConstraintSystem::simplifyRestrictedConstraint(swift::constraints::ConversionRestrictionKind, swift::Type, swift::Type, swift::constraints::TypeMatchKind, unsigned int, swift::constraints::ConstraintLocatorBuilder) + 978
14 swift 0x0000000000fca954 swift::constraints::ConstraintSystem::matchTypes(swift::Type, swift::Type, swift::constraints::TypeMatchKind, unsigned int, swift::constraints::ConstraintLocatorBuilder) + 12132
15 swift 0x0000000000fd4866 swift::constraints::ConstraintSystem::simplifyConstraint(swift::constraints::Constraint const&) + 630
16 swift 0x0000000000f62a77 swift::constraints::ConstraintSystem::addConstraint(swift::constraints::Constraint*, bool, bool) + 23
17 swift 0x0000000000ec690a swift::TypeChecker::typesSatisfyConstraint(swift::Type, swift::Type, swift::constraints::ConstraintKind, swift::DeclContext*) + 138
18 swift 0x0000000000ec6a5f swift::TypeChecker::typeCheckCheckedCast(swift::Type, swift::Type, swift::DeclContext*, swift::SourceLoc, swift::SourceRange, swift::SourceRange, std::function<bool (swift::Type)>, bool) + 79
20 swift 0x0000000000f8a352 swift::constraints::ConstraintSystem::diagnoseFailureForExpr(swift::Expr*) + 114
21 swift 0x0000000000f9070e swift::constraints::ConstraintSystem::salvage(llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::Expr*) + 4078
22 swift 0x0000000000ebd169 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>) + 857
23 swift 0x0000000000ec413d swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) + 621
26 swift 0x0000000000f8a340 swift::constraints::ConstraintSystem::diagnoseFailureForExpr(swift::Expr*) + 96
27 swift 0x0000000000f9070e swift::constraints::ConstraintSystem::salvage(llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::Expr*) + 4078
28 swift 0x0000000000ebd169 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>) + 857
29 swift 0x0000000000ec413d swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) + 621
33 swift 0x0000000000f8a340 swift::constraints::ConstraintSystem::diagnoseFailureForExpr(swift::Expr*) + 96
34 swift 0x0000000000f9070e swift::constraints::ConstraintSystem::salvage(llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::Expr*) + 4078
35 swift 0x0000000000ebd169 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>) + 857
36 swift 0x0000000000ec413d swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) + 621
38 swift 0x0000000000f407b6 swift::TypeChecker::typeCheckTopLevelCodeDecl(swift::TopLevelCodeDecl*) + 134
39 swift 0x0000000000efb10d swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) + 1133
40 swift 0x0000000000c7b599 swift::CompilerInstance::performSema() + 3289
42 swift 0x00000000007db4c7 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2887
43 swift 0x00000000007a72b8 main + 2872
Stack dump:
0. Program arguments: /path/to/swift/bin/swift -frontend -c -primary-file validation-test/compiler_crashers/28385-swift-constraints-constraintgraph-addconstraint.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -module-name main -o /tmp/28385-swift-constraints-constraintgraph-addconstraint-8d8da3.o
1. While type-checking expression at [validation-test/compiler_crashers/28385-swift-constraints-constraintgraph-addconstraint.swift:10:1 - line:10:17] RangeText="assert((n:String{"
2. While type-checking expression at [validation-test/compiler_crashers/28385-swift-constraints-constraintgraph-addconstraint.swift:10:7 - line:10:17] RangeText="((n:String{"
3. While type-checking expression at [validation-test/compiler_crashers/28385-swift-constraints-constraintgraph-addconstraint.swift:10:8 - line:10:17] RangeText="(n:String{"
<unknown>:0: error: unable to execute command: Aborted
<unknown>:0: error: compile command failed due to signal (use -v to see invocation)
```
2016-08-06 12:27:06 +02:00
Slava Pestov
47898c5962
These tests no longer require asserts to be enabled
...
Review feedback from @jrose-apple.
2016-08-05 16:26:01 -07:00