SILGen: Remaining fixes for @callee_guaranteed closures and enable it

- Fix block to func reabstraction thunks block argument handling
- Forward cast ownership
- Fix applyPartiallyAppliedSuperMethod ownership for @callee_guaranteed closures
- Avoid a copy in buildBlockToFuncThunkBody
- Update tests for callee_guaranteed closures

SR-5441
rdar://33255593
This commit is contained in:
Arnold Schwaighofer
2017-11-05 15:57:51 -08:00
parent 4096000530
commit 0971d82f70
108 changed files with 1551 additions and 1351 deletions

View File

@@ -3212,7 +3212,9 @@ DictionaryTestSuite.test("BridgedToObjC.Verbatim.KeyEnumerator.FastEnumeration.U
{ ($0 as! TestObjCKeyTy).value },
{ ($0 as! TestObjCValueTy).value })
expectAutoreleasedKeysAndValues(unopt: (3, 3))
let autoreleased = _isDebugAssertConfiguration() ?
(0, 0) : (3, 3)
expectAutoreleasedKeysAndValues(opt: autoreleased, unopt: (3, 3))
}
DictionaryTestSuite.test("BridgedToObjC.Verbatim.KeyEnumerator.FastEnumeration.UseFromObjC") {
@@ -3224,7 +3226,9 @@ DictionaryTestSuite.test("BridgedToObjC.Verbatim.KeyEnumerator.FastEnumeration.U
{ ($0 as! TestObjCKeyTy).value },
{ ($0 as! TestObjCValueTy).value })
expectAutoreleasedKeysAndValues(unopt: (3, 3))
let autoreleased = _isDebugAssertConfiguration() ?
(0, 0) : (3, 3)
expectAutoreleasedKeysAndValues(opt: autoreleased, unopt: (3, 3))
}
DictionaryTestSuite.test("BridgedToObjC.Verbatim.KeyEnumerator.FastEnumeration_Empty") {
@@ -3309,7 +3313,9 @@ DictionaryTestSuite.test("BridgedToObjC.Custom.KeyEnumerator.FastEnumeration.Use
{ ($0 as! TestObjCKeyTy).value },
{ ($0 as! TestObjCValueTy).value })
expectAutoreleasedKeysAndValues(unopt: (3, 3))
let autoreleased = _isDebugAssertConfiguration() ?
(0, 0) : (3, 3)
expectAutoreleasedKeysAndValues(opt: autoreleased, unopt: (3, 3))
}
DictionaryTestSuite.test("BridgedToObjC.Custom.KeyEnumerator.FastEnumeration.UseFromSwift.Partial") {
@@ -3335,7 +3341,9 @@ DictionaryTestSuite.test("BridgedToObjC.Custom.KeyEnumerator.FastEnumeration.Use
{ ($0 as! TestObjCKeyTy).value },
{ ($0 as! TestObjCValueTy).value })
expectAutoreleasedKeysAndValues(unopt: (3, 3))
let autoreleased = _isDebugAssertConfiguration() ?
(0, 0) : (3, 3)
expectAutoreleasedKeysAndValues(opt: autoreleased, unopt: (3, 3))
}
DictionaryTestSuite.test("BridgedToObjC.Custom.FastEnumeration.UseFromSwift") {