Commit Graph

8 Commits

Author SHA1 Message Date
Allan Shortlidge
0096904caa Parse: Diagnose empty version numbers.
The compiler treats version tuples that are all zeros as empty, or the same as
not having a version. Diagnose attempts to specify all-zeroes versions in
attributes and availability queries to prevent surprising behavior.

Resolves rdar://124661151
2024-03-19 18:17:56 -07:00
Allan Shortlidge
be2d4d8ffd Revert "Revert "Sema: temporarily downgrade backdeployed_opaque_result_not_supported to a warning""
This reverts commit e3453ca32a.
2023-08-11 09:38:38 -07:00
Allan Shortlidge
e3453ca32a Revert "Sema: temporarily downgrade backdeployed_opaque_result_not_supported to a warning"
This reverts commit 0a3dadff90.
2023-07-25 21:13:31 -07:00
Xi Ge
0a3dadff90 Sema: temporarily downgrade backdeployed_opaque_result_not_supported to a warning
rdar://111334653
2023-06-26 10:05:33 -07:00
Allan Shortlidge
c8f4dabe02 Sema: Diagnose @backDeployed on functions with opaque result types.
The compiler does not yet implement support for back deploying opaque result
types.

Resolves rdar://110806234
2023-06-15 16:08:38 -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