Skip to content

Commit ebd67e7

Browse files
authored
Merge pull request #13480 from rintaro/4.1-parse-placeholder-disablesyntax
[4.1][Parse] Disable token receiver while parsing types in editor placeholder
2 parents c32fb0e + 6c74783 commit ebd67e7

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

lib/Parse/ParseExpr.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2237,6 +2237,13 @@ Expr *Parser::parseExprEditorPlaceholder(Token PlaceholderTok,
22372237

22382238
// Temporarily swap out the parser's current lexer with our new one.
22392239
llvm::SaveAndRestore<Lexer *> T(L, &LocalLex);
2240+
2241+
// Don't feed to syntax token recorder.
2242+
ConsumeTokenReceiver DisabledRec;
2243+
llvm::SaveAndRestore<ConsumeTokenReceiver *> R(TokReceiver, &DisabledRec);
2244+
SyntaxParsingContext SContext(SyntaxContext);
2245+
SContext.disable();
2246+
22402247
Tok.setKind(tok::unknown); // we might be at tok::eof now.
22412248
consumeTokenWithoutFeedingReceiver();
22422249
return parseType().getPtrOrNull();
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// RUN: %target-swift-ide-test -structure -source-filename=%s
2+
// rdar://problem/36081659
3+
4+
var str = <#T##String#>

0 commit comments

Comments
 (0)