CHANGELOG: Add SE-0189, which went in a while ago. (#13992)
(cherry picked from commit 0665e21afe352f08123a63022f0f360d6e354674)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2ca05d11..cd2edc7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -22,6 +22,23 @@
Swift 4.1
---------
+* [SE-0189][]
+
+ If an initializer is declared in a different module from a struct, it must
+ use `self.init(…)` or `self = …` before returning or accessing `self`.
+ Failure to do so will produce a warning in Swift 4 and an error in Swift 5.
+ This is to keep a client app from accidentally depending on a library's
+ implementation details, and matches an existing restriction for classes,
+ where cross-module initializers must be convenience initializers.
+
+ This will most commonly affect code that extends a struct imported from C.
+ However, most imported C structs are given a zeroing no-argument initializer,
+ which can be called as `self.init()` before modifying specific properties.
+
+ Swift library authors who wish to continue allowing initialization on a
+ per-member basis should explicitly declare a public memberwise initializer
+ for clients in other modules to use.
+
* [SE-0166][] / [SE-0143][]
The standard library now defines the conformances of `Optional`,