@@ -311,7 +311,7 @@ public class NSString : NSObject, NSCopying, NSMutableCopying, NSSecureCoding, N
311311 }
312312
313313 public required init ( stringLiteral value: StaticString ) {
314- _storage = String ( value)
314+ _storage = String ( describing : value)
315315 }
316316
317317 internal var _fastCStringContents : UnsafePointer < Int8 > ? {
@@ -366,7 +366,7 @@ extension NSString {
366366
367367 public func substring( from: Int ) -> String {
368368 if self . dynamicType == NSString . self || self . dynamicType == NSMutableString . self {
369- return String ( _storage. utf16. suffix ( from: _storage. utf16. startIndex. advanced ( by: from) ) )
369+ return String ( _storage. utf16. suffix ( from: _storage. utf16. startIndex. advanced ( by: from) ) ) !
370370 } else {
371371 return substring ( with: NSMakeRange ( from, length - from) )
372372 }
@@ -375,7 +375,7 @@ extension NSString {
375375 public func substring( to: Int ) -> String {
376376 if self . dynamicType == NSString . self || self . dynamicType == NSMutableString . self {
377377 return String ( _storage. utf16. prefix ( upTo: _storage. utf16. startIndex
378- . advanced ( by: to) ) )
378+ . advanced ( by: to) ) ) !
379379 } else {
380380 return substring ( with: NSMakeRange ( 0 , to) )
381381 }
@@ -386,11 +386,11 @@ extension NSString {
386386 let start = _storage. utf16. startIndex
387387 let min = start. advanced ( by: range. location)
388388 let max = start. advanced ( by: range. location + range. length)
389- return String ( _storage. utf16 [ min..< max] )
389+ return String ( _storage. utf16 [ min..< max] ) !
390390 } else {
391391 let buff = UnsafeMutablePointer< unichar> . allocate( capacity: range. length)
392392 getCharacters ( buff, range: range)
393- let result = String ( buff)
393+ let result = String ( describing : buff)
394394 buff. deinitialize ( )
395395 buff. deallocate ( capacity: range. length)
396396 return result
0 commit comments