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
..
2022-11-08 09:32:30 -08:00
2022-09-01 06:41:44 +03:00
2022-05-05 16:58:25 -07:00
2022-05-20 19:51:23 -07:00
2022-05-10 12:56:17 -04:00
2022-04-15 20:13:00 -07:00
2022-04-15 20:13:00 -07:00
2021-10-28 14:36:36 -07:00
2022-04-15 20:13:00 -07:00
2022-11-25 18:43:40 -08:00
2022-08-04 14:19:33 -07:00
2023-01-23 17:52:37 -08:00
2023-01-23 17:52:37 -08:00
2021-09-15 12:36:17 -07:00
2022-05-09 10:08:52 -07:00
2023-01-23 18:33:25 -08:00
2022-04-15 20:13:00 -07:00
2022-04-15 20:12:59 -07:00
2022-04-15 20:12:59 -07:00
2023-02-23 10:39:42 -08:00
2022-09-01 06:41:44 +03:00
2021-05-18 13:21:31 -07:00
2021-08-27 14:50:56 -07:00
2021-05-14 13:04:44 -07:00
2022-11-15 11:08:13 -08:00
2022-04-15 20:13:00 -07:00
2023-02-15 18:13:52 -08:00
2022-04-14 15:09:36 -07:00
2022-12-21 08:52:53 +01:00
2022-04-15 20:13:00 -07:00
2022-04-15 20:13:00 -07:00
2023-01-30 21:03:07 -08:00
2022-09-01 06:41:44 +03:00
2020-12-11 13:50:51 -08:00
2022-11-08 18:35:27 -08:00
2021-08-18 16:22:26 -04:00
2021-07-19 14:14:59 -07:00
2020-10-05 11:52:05 -07:00
2021-11-09 15:58:42 -08:00
2022-04-15 20:13:00 -07:00
2021-10-28 08:16:19 -07:00
2022-04-15 20:13:00 -07:00
2023-02-16 15:23:45 -08:00
2022-01-26 13:57:57 -08:00
2022-04-15 20:12:59 -07:00
2022-05-23 19:43:51 -07:00
2022-08-16 08:36:58 -07:00
2022-12-12 14:58:19 -08:00
2022-02-19 10:32:29 -07:00
2022-04-15 20:13:00 -07:00
2022-11-15 11:08:13 -08:00
2022-10-03 14:49:11 -07:00
2021-06-11 20:04:43 -07:00
2022-04-14 15:09:36 -07:00
2022-10-03 17:22:44 -07:00
2022-04-15 20:13:00 -07:00
2022-04-15 20:13:00 -07:00
2021-05-21 14:52:10 -07:00
2023-02-15 10:06:39 -08:00
2022-06-12 20:25:16 -07:00
2022-06-12 20:25:16 -07:00
2022-04-15 20:13:00 -07:00
2021-06-16 22:20:55 -07:00
2022-04-15 20:13:00 -07:00
2022-12-19 09:50:08 -08:00
2022-04-19 21:32:33 -07:00
2022-04-15 20:13:00 -07:00
2022-04-15 20:13:00 -07:00
2021-03-23 13:41:16 -04:00
2021-03-25 15:19:30 +01:00
2021-03-18 13:03:51 -07:00
2021-03-09 19:21:14 -08:00
2023-02-09 11:49:13 -08:00
2023-02-09 22:11:23 -08:00
2022-04-15 20:13:00 -07:00
2022-04-15 20:13:00 -07:00
2021-03-12 07:42:07 -08:00
2022-12-04 08:20:34 +03:00
2022-11-04 11:10:59 -07:00
2022-04-15 20:13:00 -07:00
2021-02-05 08:25:58 -05:00
2022-04-15 20:13:00 -07:00
2022-04-15 20:13:00 -07:00
2022-04-15 20:13:00 -07:00
2022-01-20 14:48:55 -08:00
2022-09-01 06:41:44 +03:00
2022-04-15 20:13:00 -07:00
2021-10-29 22:35:57 +02:00
2022-04-06 09:46:40 -07:00
2022-06-02 18:15:31 -04:00
2022-04-15 20:13:00 -07:00
2022-04-15 20:13:00 -07:00
2023-01-11 03:11:30 -05:00
2022-11-07 18:38:06 -05:00
2022-04-15 20:13:00 -07:00
2022-04-15 20:13:00 -07:00
2022-04-15 20:12:59 -07:00
2022-04-15 20:13:00 -07:00
2022-04-15 20:13:00 -07:00
2022-08-16 18:31:13 -07:00
2022-04-18 09:12:35 -07:00
2022-04-15 20:13:00 -07:00
2022-07-06 22:16:16 -07:00
2022-04-15 20:13:00 -07:00
2023-02-22 12:53:10 -08:00
2022-04-15 20:13:00 -07:00
2022-04-15 20:12:59 -07:00
2022-04-15 20:12:59 -07:00
2022-08-31 23:55:29 -07:00
2022-04-15 20:13:00 -07:00
2022-06-30 17:25:17 -07:00
2022-04-15 20:13:00 -07:00
2022-03-05 12:00:39 -08:00
2022-04-15 20:13:00 -07:00
2022-07-14 15:04:27 -07:00
2022-04-15 20:13:00 -07:00
2022-04-15 20:13:00 -07:00
2022-04-15 20:13:00 -07:00
2022-04-15 20:13:00 -07:00
2023-01-27 11:37:47 -08:00
2022-05-31 08:24:49 -07:00
2022-05-09 14:10:07 -07:00
2022-04-15 20:13:00 -07:00
2023-01-02 21:22:04 -08:00
2021-05-18 11:04:04 -07:00
2023-01-02 21:22:04 -08:00
2022-08-11 11:02:57 -07:00
2021-06-11 20:04:43 -07:00