// RUN: %target-swift-frontend -typecheck -verify fix-string-substring-conversion %s let s = "Hello" let ss = s[s.startIndex.. Substring { return s } } // CTP_ThrowStmt // Doesn't really make sense for this fix-it - see case in diagnoseContextualConversionError: // The conversion destination of throw is always ErrorType (at the moment) // if this ever expands, this should be a specific form like () is for // return. // CTP_EnumCaseRawValue // Substrings can't be raw values because they aren't literals. // CTP_DefaultParameter do { func foo(x: Substring = s) {} } // CTP_CalleeResult do { func getString() -> String { return s } let gottenSubstring: Substring = getString() _ = gottenSubstring } // CTP_CallArgument do { func takesASubstring(_ ss: Substring) {} takesASubstring(s) } // CTP_ClosureResult do { [s].map { (x: String) -> Substring in x } } // CTP_ArrayElement do { let a: [Substring] = [ s ] _ = a } // CTP_DictionaryKey do { let d: [ Substring : Substring ] = [ s : ss ] _ = d } // CTP_DictionaryValue do { let d: [ Substring : Substring ] = [ ss : s ] _ = d } // CTP_CoerceOperand do { let s1: Substring = s as Substring _ = s1 } // CTP_AssignSource do { let s1: Substring = s _ = s1 }