diff --git a/stdlib/public/core/String.swift b/stdlib/public/core/String.swift index 0b7c39241b302..b10ec2cad9c0e 100644 --- a/stdlib/public/core/String.swift +++ b/stdlib/public/core/String.swift @@ -1046,6 +1046,11 @@ extension String { public var uppercaseString: String { Builtin.unreachable() } + + @available(*, unavailable, renamed: "init(describing:)") + public init(_: T) { + Builtin.unreachable() + } } extension Sequence where Iterator.Element == String { diff --git a/test/1_stdlib/StringDiagnostics_without_Foundation.swift b/test/1_stdlib/StringDiagnostics_without_Foundation.swift index 71f224aacac67..2f5cd93c759e0 100644 --- a/test/1_stdlib/StringDiagnostics_without_Foundation.swift +++ b/test/1_stdlib/StringDiagnostics_without_Foundation.swift @@ -23,3 +23,9 @@ func testStringCollectionTypes(s: String) { acceptsBidirectionalCollection(s.characters) acceptsRandomAccessCollection(s.characters) // expected-error{{argument type 'String.CharacterView' does not conform to expected type 'RandomAccessCollection'}} } + +struct NotLosslessStringConvertible {} + +func testStringInitT() { + _ = String(NotLosslessStringConvertible()) // expected-error{{'init' has been renamed to 'init(describing:)}} +}