mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Update changelog following import of indirect fields. (#6728)
Signed-off-by: Florent Bruneau <florent.bruneau@intersec.com>
This commit is contained in:
committed by
Jordan Rose
parent
1eb97b634b
commit
a13c134521
33
CHANGELOG.md
33
CHANGELOG.md
@@ -20,6 +20,39 @@ CHANGELOG
|
|||||||
Swift 3.1
|
Swift 3.1
|
||||||
---------
|
---------
|
||||||
|
|
||||||
|
* Indirect fields from C structures and unions are now always imported, while
|
||||||
|
they previously weren't imported if they belonged to an union. This is done by
|
||||||
|
naming anonymous fields. For example:
|
||||||
|
|
||||||
|
```c
|
||||||
|
typedef struct foo_t {
|
||||||
|
union {
|
||||||
|
int a;
|
||||||
|
double b;
|
||||||
|
};
|
||||||
|
} foo_t;
|
||||||
|
```
|
||||||
|
|
||||||
|
Get imported as:
|
||||||
|
|
||||||
|
```swift
|
||||||
|
struct foo_t {
|
||||||
|
struct __Unnamed_union___Anonymous_field0 {
|
||||||
|
var a : Int { get set }
|
||||||
|
var b : Double { get set }
|
||||||
|
}
|
||||||
|
var __Anonymous_field0 : foo_t.__Unnamed_union___Anonymous_field0
|
||||||
|
|
||||||
|
// a and b are computed properties accessing the content of __Anonymous_field0
|
||||||
|
var a : Int { get set }
|
||||||
|
var b : Double { get set }
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Since new symbols are exposed from imported structure/unions, this may conflict
|
||||||
|
with existing code that extended C types in order to provide their own accessors
|
||||||
|
to the indirect fields.
|
||||||
|
|
||||||
* The `withoutActuallyEscaping` function from [SE-0103][] has been implemented.
|
* The `withoutActuallyEscaping` function from [SE-0103][] has been implemented.
|
||||||
To pass off a non-escaping closure to an API that formally takes an
|
To pass off a non-escaping closure to an API that formally takes an
|
||||||
`@escaping` closure, but which is used in a way that will not in fact
|
`@escaping` closure, but which is used in a way that will not in fact
|
||||||
|
|||||||
Reference in New Issue
Block a user