fix <rdar://problem/20457938> typed pattern is not allowed on if/let condition

Swift SVN r27110
This commit is contained in:
Chris Lattner
2015-04-08 00:28:29 +00:00
parent 652aace9a6
commit a63120f11a
5 changed files with 33 additions and 24 deletions

View File

@@ -850,9 +850,11 @@ ParserStatus Parser::parseStmtCondition(StmtCondition &Condition,
//
if (Tok.is(tok::identifier) && peekToken().is(tok::colon))
Pattern = parseSwift1IfLetPattern(IsLet, VarLoc);
else
else {
Pattern = parseMatchingPatternAsLetOrVar(IsLet, VarLoc,
/*isExprBasic*/ true);
Pattern = parseOptionalPatternTypeAnnotation(Pattern);
}
Status |= Pattern;
if (Pattern.isNull() || Pattern.hasCodeCompletion())