Commit Graph

5 Commits

Author SHA1 Message Date
John McCall
dae036ae85 Correctly forward the implicit nonisolated(nonsending) parameter in
SILGen thunks.

Also, I discovered that we don't apply nonisolated(nonsending) to
function types in the new mode. That's one for a different patch.

Fixes rdar://154401813
2025-07-02 01:54:42 -04:00
Allan Shortlidge
8502c89234 SIL: Print thunk kind attribute for @backDeployed thunks.
As promised in the FIXME, update the SIL printer and parser to handle the new
thunk kind for `@backDeployed` thunks.

Follow up to https://github.com/swiftlang/swift/pull/76135.
2024-08-29 17:26:06 -07:00
Allan Shortlidge
f1a8740ba5 AST: Only treat @backDeployed functions as fragile on platforms with an active attribute.
Previously, typechecking and SILGen would treat a function body as fragile as long as the declaration had a `@backDeployed` attribute, regardless of the platform specified by the attribute. This was overly conservative since back deployed functions are only emitted into the client on specific platforms. Now a `@backDeployed` function can reference non-`public` declarations on the platforms it is resilient on:

```
@backDeployed(before: iOS 15)
public func foo() {
  #if os(iOS)
  // Fragile; this code may be emitted into the client.
  #else
  // Resilient; this code won't ever be exposed to clients.
  #endif
}
```

Resolves rdar://105298520
2023-02-23 10:39:42 -08:00
Allan Shortlidge
022abe4d3b NFC: Update tests to use accepted spelling for @backDeployed. 2023-02-01 22:04:33 -08:00
Allan Shortlidge
df1750d8b7 NFC: Rename files containing tests for the @backDeployed attribute to match the approved spelling. 2023-02-01 22:04:33 -08:00