diff --git a/lib/Parse/ParseExpr.cpp b/lib/Parse/ParseExpr.cpp index af43c59064b21..24bfaa931ee3c 100644 --- a/lib/Parse/ParseExpr.cpp +++ b/lib/Parse/ParseExpr.cpp @@ -439,7 +439,7 @@ ParserResult Parser::parseExprSequenceElement(Diag<> message, if (Tok.isContextualKeyword("unsafe") && !(peekToken().isAtStartOfLine() || peekToken().isAny(tok::r_paren, tok::r_brace, tok::r_square, - tok::equal, tok::colon, tok::comma) || + tok::equal, tok::colon, tok::comma, tok::eof) || (isExprBasic && peekToken().is(tok::l_brace)) || peekToken().is(tok::period) || (peekToken().isAny(tok::l_paren, tok::l_square) && diff --git a/test/Unsafe/safe.swift b/test/Unsafe/safe.swift index e2e80ccd00c8f..90271a9bca1b6 100644 --- a/test/Unsafe/safe.swift +++ b/test/Unsafe/safe.swift @@ -207,6 +207,8 @@ func moreUnsafeFunc(unsafe: [Int]) { // expected-warning@-1{{no unsafe operations occur within 'unsafe' expression}} _ = unsafe[1] + + _ = "\(unsafe)" } func yetMoreUnsafeFunc(unsafe: () -> Void) {