mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[6.2][StrictMemorySafety] Check the safety of return types of calls
Explanation: There were some scenarios where we could call an unsafe function without marking the expression as unsafe. These affect mostly cases where the function's result is passed to another function or returned. This PR makes sure we always flag functions with unsafe return types, even if their result is not stored anywhere for later use. Issues: rdar://157237301 Original PRs: #83520 Risk: Low, worst case scenario the user has to add redundant unsafe keywords in strict memory safe mode. Testing: Added a compiler test. Reviewers: @DougGregor
This commit is contained in:
committed by
Gabor Horvath
parent
fe4880072e
commit
99f9c318ca
@@ -190,13 +190,13 @@ internal final class _ContiguousArrayStorage<
|
||||
@objc(objectAtIndexedSubscript:)
|
||||
@_effects(readonly)
|
||||
final override internal func objectAtSubscript(_ index: Int) -> Unmanaged<AnyObject> {
|
||||
return _objectAt(index)
|
||||
return unsafe _objectAt(index)
|
||||
}
|
||||
|
||||
@objc(objectAtIndex:)
|
||||
@_effects(readonly)
|
||||
final override internal func objectAt(_ index: Int) -> Unmanaged<AnyObject> {
|
||||
return _objectAt(index)
|
||||
return unsafe _objectAt(index)
|
||||
}
|
||||
|
||||
@objc internal override final var count: Int {
|
||||
|
||||
Reference in New Issue
Block a user