mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Terminology change: 'garbage' -> 'unexpected'
There are no "garbage" characters in Swift code. They are just "unexpected."
This commit is contained in:
@@ -365,7 +365,7 @@ private:
|
||||
return Text.startswith("///");
|
||||
case TriviaKind::DocBlockComment:
|
||||
return Text.startswith("/**") && Text.endswith("*/");
|
||||
case TriviaKind::GarbageText:
|
||||
case TriviaKind::UnexpectedText:
|
||||
case TriviaKind::Shebang:
|
||||
return !Text.empty();
|
||||
% for trivia in TRIVIAS:
|
||||
|
||||
@@ -3222,7 +3222,7 @@ ParsedTrivia TriviaLexer::lexTrivia(StringRef TriviaStr) {
|
||||
if (tryAdvanceToEndOfConflictMarker(CurPtr, BufferEnd)) {
|
||||
// Conflict marker.
|
||||
size_t Length = CurPtr - TriviaStart;
|
||||
Pieces.push_back(TriviaKind::GarbageText, Length);
|
||||
Pieces.push_back(TriviaKind::UnexpectedText, Length);
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
@@ -3231,13 +3231,13 @@ ParsedTrivia TriviaLexer::lexTrivia(StringRef TriviaStr) {
|
||||
// BOM marker.
|
||||
CurPtr = CurPtr + 2;
|
||||
size_t Length = CurPtr - TriviaStart;
|
||||
Pieces.push_back(TriviaKind::GarbageText, Length);
|
||||
Pieces.push_back(TriviaKind::UnexpectedText, Length);
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
case 0: {
|
||||
size_t Length = CurPtr - TriviaStart;
|
||||
Pieces.push_back(TriviaKind::GarbageText, Length);
|
||||
Pieces.push_back(TriviaKind::UnexpectedText, Length);
|
||||
continue;
|
||||
}
|
||||
default:
|
||||
@@ -3267,7 +3267,7 @@ ParsedTrivia TriviaLexer::lexTrivia(StringRef TriviaStr) {
|
||||
}
|
||||
|
||||
size_t Length = CurPtr - TriviaStart;
|
||||
Pieces.push_back(TriviaKind::GarbageText, Length);
|
||||
Pieces.push_back(TriviaKind::UnexpectedText, Length);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -1247,7 +1247,7 @@ Parser::parseExprPostfixSuffix(ParserResult<Expr> Result, bool isExprBasic,
|
||||
// }
|
||||
// In this case, we want to consume the trailing closure because
|
||||
// otherwise it will get parsed as a get-set clause on a variable
|
||||
// declared by `baseExpr.<complete>` which is complete garbage.
|
||||
// declared by `baseExpr.<complete>` which is clearly wrong.
|
||||
bool hasBindOptional = false;
|
||||
parseExprPostfixSuffix(makeParserResult(CCExpr), isExprBasic,
|
||||
periodHasKeyPathBehavior, hasBindOptional);
|
||||
@@ -1702,11 +1702,11 @@ ParserResult<Expr> Parser::parseExprPrimary(Diag<> ID, bool isExprBasic) {
|
||||
if (SyntaxContext->isEnabled()) {
|
||||
ParsedPatternSyntax PatternNode =
|
||||
ParsedSyntaxRecorder::makeIdentifierPattern(
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Identifier=*/SyntaxContext->popToken(), *SyntaxContext);
|
||||
ParsedExprSyntax ExprNode =
|
||||
ParsedSyntaxRecorder::makeUnresolvedPatternExpr(
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Pattern=*/std::move(PatternNode), *SyntaxContext);
|
||||
SyntaxContext->addSyntax(std::move(ExprNode));
|
||||
}
|
||||
|
||||
@@ -822,10 +822,10 @@ ParserResult<IfConfigDecl> Parser::parseIfConfig(
|
||||
// to disambiguate whether a postfix expression is the condition of
|
||||
// #elseif or a postfix expression of the #else body.
|
||||
// To do this, push three empty syntax nodes onto the stack.
|
||||
// - First one for garbage nodes between the #else keyword and the
|
||||
// - First one for unexpected nodes between the #else keyword and the
|
||||
// condition
|
||||
// - One for the condition itself (whcih doesn't exist)
|
||||
// - And finally one for the garbage nodes between the condition and
|
||||
// - And finally one for the unexpected nodes between the condition and
|
||||
// the elements
|
||||
SyntaxContext->addRawSyntax(ParsedRawSyntaxNode());
|
||||
SyntaxContext->addRawSyntax(ParsedRawSyntaxNode());
|
||||
|
||||
@@ -916,9 +916,9 @@ Parser::parseTypeSimpleOrComposition(Diag<> MessageID, ParseTypeReason reason) {
|
||||
if (SyntaxContext->isEnabled()) {
|
||||
if (auto synType = SyntaxContext->popIf<ParsedTypeSyntax>()) {
|
||||
auto LastNode = ParsedSyntaxRecorder::makeCompositionTypeElement(
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Type=*/std::move(*synType),
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Ampersand=*/None, *SyntaxContext);
|
||||
SyntaxContext->addSyntax(std::move(LastNode));
|
||||
}
|
||||
|
||||
@@ -173,21 +173,21 @@ ParsedSyntaxRecorder::makeTupleTypeElement(ParsedTypeSyntax Type,
|
||||
llvm::Optional<ParsedTokenSyntax> TrailingComma,
|
||||
SyntaxParsingContext &SPCtx) {
|
||||
return makeTupleTypeElement(
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*InOut=*/None,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Name=*/None,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*SecondName=*/None,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Colon=*/None,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
std::move(Type),
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Ellipsis=*/None,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Initializer=*/None,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
std::move(TrailingComma),
|
||||
SPCtx
|
||||
);
|
||||
|
||||
@@ -65,8 +65,8 @@ SyntaxFactory::countChildren(SyntaxKind Kind){
|
||||
% for node in SYNTAX_NODES:
|
||||
% if not node.is_syntax_collection():
|
||||
case SyntaxKind::${node.syntax_kind}:
|
||||
% child_count = len(node.non_garbage_children)
|
||||
% non_optional_child_count = sum(0 if child.is_optional else 1 for child in node.non_garbage_children)
|
||||
% child_count = len(node.non_unexpected_children)
|
||||
% non_optional_child_count = sum(0 if child.is_optional else 1 for child in node.non_unexpected_children)
|
||||
return {${non_optional_child_count}, ${child_count}};
|
||||
% end
|
||||
% end
|
||||
@@ -244,11 +244,11 @@ SyntaxFactory::makeBlank${node.syntax_kind}() {
|
||||
|
||||
TupleTypeSyntax SyntaxFactory::makeVoidTupleType() {
|
||||
return makeTupleType(
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*LeftParen=*/makeLeftParenToken({}, {}),
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Elements=*/makeBlankTupleTypeElementList(),
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*RightParen=*/makeRightParenToken({}, {})
|
||||
);
|
||||
}
|
||||
@@ -259,21 +259,21 @@ SyntaxFactory::makeTupleTypeElement(llvm::Optional<TokenSyntax> Label,
|
||||
TypeSyntax Type,
|
||||
llvm::Optional<TokenSyntax> TrailingComma) {
|
||||
return makeTupleTypeElement(
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*InOut=*/None,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Name=*/Label,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*SecondName=*/None,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Colon=*/Colon,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Type=*/Type,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Ellipsis=*/None,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Intitializer=*/None,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*TrailingComma=*/TrailingComma
|
||||
);
|
||||
}
|
||||
@@ -282,21 +282,21 @@ TupleTypeElementSyntax
|
||||
SyntaxFactory::makeTupleTypeElement(TypeSyntax Type,
|
||||
llvm::Optional<TokenSyntax> TrailingComma) {
|
||||
return makeTupleTypeElement(
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*InOut=*/None,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Name=*/None,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*SecondName=*/None,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Colon=*/None,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Type=*/Type,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Ellipsis=*/None,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Initializer=*/None,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*TrailingComma=*/TrailingComma
|
||||
);
|
||||
}
|
||||
@@ -305,15 +305,15 @@ GenericParameterSyntax
|
||||
SyntaxFactory::makeGenericParameter(TokenSyntax Name,
|
||||
llvm::Optional<TokenSyntax> TrailingComma) {
|
||||
return makeGenericParameter(
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Attributes=*/None,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Name=*/Name,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Colon=*/None,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*InheritedType=*/None,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*TrailingComma=*/TrailingComma
|
||||
);
|
||||
}
|
||||
@@ -327,9 +327,9 @@ TypeSyntax SyntaxFactory::makeTypeIdentifier(StringRef TypeName,
|
||||
TrailingTrivia
|
||||
);
|
||||
return makeSimpleTypeIdentifier(
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*Name=*/identifier,
|
||||
/*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None,
|
||||
/*GenerigArgumentClause=*/None
|
||||
);
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ static func foo() {} // expected-error{{static methods may only be declared on a
|
||||
// Below this line are such octets that should be skipped by the lexer.
|
||||
// They may not be rendered correctly by your text editor, if at all.
|
||||
|
||||
// Begin magic UTF-8 garbage
|
||||
// Begin magic UTF-8 values
|
||||
// 0xC0
|
||||
<EFBFBD> // expected-error {{invalid UTF-8 found in source file}}
|
||||
// 0xC1
|
||||
@@ -31,7 +31,7 @@ static func foo() {} // expected-error{{static methods may only be declared on a
|
||||
<EFBFBD> // expected-error {{invalid UTF-8 found in source file}}
|
||||
// 0xFD
|
||||
<EFBFBD> // expected-error {{invalid UTF-8 found in source file}}
|
||||
// End magic UTF-8 garbage
|
||||
// End magic UTF-8 values
|
||||
|
||||
// Make sure we don't stop processing the whole file.
|
||||
static func bar() {} // expected-error{{static methods may only be declared on a type}} {{1-8=}}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
# [0xC2] is utf8 2 byte character start byte.
|
||||
# 0xC2 without second byte is invalid UTF-8 sequence.
|
||||
# It becomes garbage text trivia.
|
||||
# It becomes unexpected text trivia.
|
||||
# Marker(1) is replaced to this sequence.
|
||||
s/Z1/<EFBFBD>/g
|
||||
|
||||
@@ -26,7 +26,7 @@ s/Z4/”/g
|
||||
|
||||
# [0xE1, 0x9A, 0x80] in UTF-8 is U+1680.
|
||||
# This character is invalid for swift source.
|
||||
# It becomes garbage trivia.
|
||||
# It becomes unexpected trivia.
|
||||
# Marker(5) is replaced to this sequence.
|
||||
s/Z5/ /g
|
||||
|
||||
|
||||
@@ -15,30 +15,30 @@ let cZ=Z3
|
||||
// CHECK-LABEL: 4:7
|
||||
// CHECK-NEXT:(Token equal
|
||||
// CHECK-NEXT: (text="=")
|
||||
// CHECK-NEXT: (trivia garbageText \302\240))
|
||||
// CHECK-NEXT: (trivia unexpectedText \302\240))
|
||||
|
||||
// CHECK-LABEL: 4:10
|
||||
// CHECK-NEXT:(Token integer_literal
|
||||
// CHECK-NEXT: (text="3")
|
||||
// CHECK-NEXT: (trivia garbageText \302\240)
|
||||
// CHECK-NEXT: (trivia unexpectedText \302\240)
|
||||
// CHECK-NEXT: (trivia space 1))
|
||||
|
||||
// CHECK-LABEL: 5:5
|
||||
// CHECK-NEXT:(Token identifier
|
||||
// CHECK-NEXT: (text="b")
|
||||
// CHECK-NEXT: (trivia garbageText \302\240))
|
||||
// CHECK-NEXT: (trivia unexpectedText \302\240))
|
||||
|
||||
// CHECK-LABEL: 5:10
|
||||
// CHECK-NEXT:(Token integer_literal
|
||||
// CHECK-NEXT: (text="3")
|
||||
// CHECK-NEXT: (trivia garbageText \302\240)
|
||||
// CHECK-NEXT: (trivia unexpectedText \302\240)
|
||||
|
||||
// CHECK-LABEL: 6:5
|
||||
// CHECK-NEXT:(Token identifier
|
||||
// CHECK-NEXT: (text="c")
|
||||
// CHECK-NEXT: (trivia garbageText \302\240))
|
||||
// CHECK-NEXT: (trivia unexpectedText \302\240))
|
||||
|
||||
// CHECK-LABEL: 6:8
|
||||
// CHECK-NEXT:(Token equal
|
||||
// CHECK-NEXT: (text="=")
|
||||
// CHECK-NEXT: (trivia garbageText \302\240))
|
||||
// CHECK-NEXT: (trivia unexpectedText \302\240))
|
||||
|
||||
@@ -12,12 +12,12 @@ func b() {}
|
||||
// CHECK-NEXT:(Token equal
|
||||
// CHECK-NEXT: (text="=")
|
||||
// CHECK-NEXT: (trivia space 1)
|
||||
// CHECK-NEXT: (trivia garbageText \000))
|
||||
// CHECK-NEXT: (trivia unexpectedText \000))
|
||||
|
||||
// CHECK-LABEL: 4:10
|
||||
// CHECK-NEXT:(Token integer_literal
|
||||
// CHECK-NEXT: (text="3")
|
||||
// CHECK-NEXT: (trivia garbageText \000)
|
||||
// CHECK-NEXT: (trivia unexpectedText \000)
|
||||
// CHECK-NEXT: (trivia space 1))
|
||||
|
||||
// CHECK-LABEL: 5:1
|
||||
|
||||
@@ -44,11 +44,11 @@ jjj
|
||||
// CHECK-LABEL: 14:3
|
||||
// CHECK-NEXT: (Token identifier
|
||||
// CHECK-NEXT: (trivia newline 1)
|
||||
// CHECK-NEXT: (trivia garbageText \302)
|
||||
// CHECK-NEXT: (trivia unexpectedText \302)
|
||||
// CHECK-NEXT: (trivia space 1)
|
||||
// CHECK-NEXT: (text="bbb")
|
||||
// CHECK-NEXT: (trivia space 1)
|
||||
// CHECK-NEXT: (trivia garbageText \302))
|
||||
// CHECK-NEXT: (trivia unexpectedText \302))
|
||||
|
||||
// Checks around ccc
|
||||
// CHECK-LABEL: 16:5
|
||||
@@ -82,8 +82,8 @@ jjj
|
||||
// CHECK-LABEL: 27:5
|
||||
// CHECK-NEXT: (Token identifier
|
||||
// CHECK-NEXT: (trivia newline 1)
|
||||
// CHECK-NEXT: (trivia garbageText \341\232\200)
|
||||
// CHECK-NEXT: (trivia unexpectedText \341\232\200)
|
||||
// CHECK-NEXT: (trivia space 1)
|
||||
// CHECK-NEXT: (text="iii")
|
||||
// CHECK-NEXT: (trivia space 1)
|
||||
// CHECK-NEXT: (trivia garbageText \341\232\200))
|
||||
// CHECK-NEXT: (trivia unexpectedText \341\232\200))
|
||||
|
||||
@@ -422,7 +422,7 @@ TEST_F(LexerTest, BOMNoCommentTrivia) {
|
||||
ParsedTrivia LeadingTriviaPieces = TriviaLexer::lexTrivia(LeadingTrivia);
|
||||
ParsedTrivia TrailingTriviaPieces = TriviaLexer::lexTrivia(TrailingTrivia);
|
||||
ASSERT_EQ((ParsedTrivia{{
|
||||
ParsedTriviaPiece(TriviaKind::GarbageText, strlen("\xEF\xBB\xBF")),
|
||||
ParsedTriviaPiece(TriviaKind::UnexpectedText, strlen("\xEF\xBB\xBF")),
|
||||
ParsedTriviaPiece(TriviaKind::LineComment, strlen("// comment")),
|
||||
ParsedTriviaPiece(TriviaKind::Newline, 1)
|
||||
}}), LeadingTriviaPieces);
|
||||
@@ -472,7 +472,7 @@ TEST_F(LexerTest, BOMAttachCommentTrivia) {
|
||||
ParsedTrivia LeadingTriviaPieces = TriviaLexer::lexTrivia(LeadingTrivia);
|
||||
ParsedTrivia TrailingTriviaPieces = TriviaLexer::lexTrivia(TrailingTrivia);
|
||||
ASSERT_EQ((ParsedTrivia{{
|
||||
ParsedTriviaPiece(TriviaKind::GarbageText, strlen("\xEF\xBB\xBF")),
|
||||
ParsedTriviaPiece(TriviaKind::UnexpectedText, strlen("\xEF\xBB\xBF")),
|
||||
ParsedTriviaPiece(TriviaKind::LineComment, strlen("// comment")),
|
||||
ParsedTriviaPiece(TriviaKind::Newline, 1)
|
||||
}}), LeadingTriviaPieces);
|
||||
|
||||
@@ -139,7 +139,7 @@ TEST_F(LexerTriviaTest, TriviaHashbangAfterBOM) {
|
||||
ASSERT_EQ(LeadingTrivia, "\xEF\xBB\xBF" "#!/bin/swift\n");
|
||||
ASSERT_EQ(TrailingTrivia, "");
|
||||
ASSERT_EQ(LeadingTriviaPieces, (ParsedTrivia{{
|
||||
ParsedTriviaPiece(TriviaKind::GarbageText, strlen("\xEF\xBB\xBF")),
|
||||
ParsedTriviaPiece(TriviaKind::UnexpectedText, strlen("\xEF\xBB\xBF")),
|
||||
ParsedTriviaPiece(TriviaKind::Shebang, strlen("#!/bin/swift")),
|
||||
ParsedTriviaPiece(TriviaKind::Newline, 1)}}));
|
||||
ASSERT_EQ(TrailingTriviaPieces, ParsedTrivia());
|
||||
@@ -190,7 +190,7 @@ TEST_F(LexerTriviaTest, TriviaConflictMarker) {
|
||||
ASSERT_EQ(TrailingTrivia, "");
|
||||
ASSERT_EQ(LeadingTriviaPieces, (ParsedTrivia{{
|
||||
ParsedTriviaPiece(TriviaKind::Newline, 1),
|
||||
ParsedTriviaPiece(TriviaKind::GarbageText, expectedTrivia.size()),
|
||||
ParsedTriviaPiece(TriviaKind::UnexpectedText, expectedTrivia.size()),
|
||||
ParsedTriviaPiece(TriviaKind::Newline, 1)}}));
|
||||
ASSERT_EQ(TrailingTriviaPieces, ParsedTrivia());
|
||||
}
|
||||
|
||||
@@ -19,10 +19,10 @@ DeclModifierSyntax getCannedDeclModifier(const RC<SyntaxArena> &Arena) {
|
||||
auto Set = Factory.makeIdentifier("set", "", "");
|
||||
auto RParen = Factory.makeRightParenToken("", "");
|
||||
auto DeclModifierDetail = Factory.makeDeclModifierDetail(
|
||||
/*GarbageNodes=*/None, LParen, /*GarbageNodes=*/None, Set,
|
||||
/*GarbageNodes=*/None, RParen);
|
||||
return Factory.makeDeclModifier(/*GarbageNodes=*/None, Private,
|
||||
/*GarbageNodes=*/None, DeclModifierDetail);
|
||||
/*UnexpectedNodes=*/None, LParen, /*UnexpectedNodes=*/None, Set,
|
||||
/*UnexpectedNodes=*/None, RParen);
|
||||
return Factory.makeDeclModifier(/*UnexpectedNodes=*/None, Private,
|
||||
/*UnexpectedNodes=*/None, DeclModifierDetail);
|
||||
}
|
||||
|
||||
TEST(DeclSyntaxTests, DeclModifierMakeAPIs) {
|
||||
@@ -50,11 +50,11 @@ TEST(DeclSyntaxTests, DeclModifierGetAPIs) {
|
||||
auto Set = Factory.makeIdentifier("set", "", "");
|
||||
auto RParen = Factory.makeRightParenToken("", "");
|
||||
auto DeclModifierDetail = Factory.makeDeclModifierDetail(
|
||||
/*GarbageNodes=*/None, LParen, /*GarbageNodes=*/None, Set,
|
||||
/*GarbageNodes=*/None, RParen);
|
||||
/*UnexpectedNodes=*/None, LParen, /*UnexpectedNodes=*/None, Set,
|
||||
/*UnexpectedNodes=*/None, RParen);
|
||||
auto Mod =
|
||||
Factory.makeDeclModifier(/*GarbageNodes=*/None, Private,
|
||||
/*GarbageNodes=*/None, DeclModifierDetail);
|
||||
Factory.makeDeclModifier(/*UnexpectedNodes=*/None, Private,
|
||||
/*UnexpectedNodes=*/None, DeclModifierDetail);
|
||||
|
||||
ASSERT_EQ(Private.getRaw(), Mod.getName().getRaw());
|
||||
ASSERT_EQ(LParen.getRaw(), Mod.getDetail()->getLeftParen().getRaw());
|
||||
@@ -74,9 +74,9 @@ TEST(DeclSyntaxTests, DeclModifierWithAPIs) {
|
||||
llvm::raw_svector_ostream OS(Scratch);
|
||||
Factory.makeBlankDeclModifier()
|
||||
.withName(Private)
|
||||
.withDetail(Factory.makeDeclModifierDetail(/*GarbageNodes=*/None, LParen,
|
||||
/*GarbageNodes=*/None, Set,
|
||||
/*GarbageNodes=*/None, RParen))
|
||||
.withDetail(Factory.makeDeclModifierDetail(/*UnexpectedNodes=*/None, LParen,
|
||||
/*UnexpectedNodes=*/None, Set,
|
||||
/*UnexpectedNodes=*/None, RParen))
|
||||
.print(OS);
|
||||
ASSERT_EQ(OS.str().str(), "private(set)");
|
||||
}
|
||||
@@ -99,9 +99,9 @@ TEST(DeclSyntaxTests, TypealiasMakeAPIs) {
|
||||
auto Subsequence = Factory.makeIdentifier("MyCollection", "", "");
|
||||
auto ElementName = Factory.makeIdentifier("Element", "", "");
|
||||
auto ElementParam = Factory.makeGenericParameter(
|
||||
/*GarbageNodes=*/None, /*Attributes=*/None, /*GarbageNodes=*/None,
|
||||
/*Name=*/ElementName, /*GarbageNodes=*/None, /*Colon=*/None,
|
||||
/*GarbageNodes=*/None, /*InheritedType=*/None, /*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None, /*Attributes=*/None, /*UnexpectedNodes=*/None,
|
||||
/*Name=*/ElementName, /*UnexpectedNodes=*/None, /*Colon=*/None,
|
||||
/*UnexpectedNodes=*/None, /*InheritedType=*/None, /*UnexpectedNodes=*/None,
|
||||
/*TrailingComma=*/None);
|
||||
auto LeftAngle = Factory.makeLeftAngleToken("", "");
|
||||
auto RightAngle = Factory.makeRightAngleToken("", " ");
|
||||
@@ -113,8 +113,8 @@ TEST(DeclSyntaxTests, TypealiasMakeAPIs) {
|
||||
auto Assignment = Factory.makeEqualToken("", " ");
|
||||
auto ElementType = Factory.makeTypeIdentifier("Element", "", "");
|
||||
auto ElementArg = Factory.makeGenericArgument(
|
||||
/*GarbageNodes=*/None, /*ArgumentType=*/ElementType,
|
||||
/*GarbageNodes=*/None, /*TrailingComma=*/None);
|
||||
/*UnexpectedNodes=*/None, /*ArgumentType=*/ElementType,
|
||||
/*UnexpectedNodes=*/None, /*TrailingComma=*/None);
|
||||
|
||||
auto GenericArgs =
|
||||
GenericArgumentClauseSyntaxBuilder(Arena)
|
||||
@@ -125,19 +125,19 @@ TEST(DeclSyntaxTests, TypealiasMakeAPIs) {
|
||||
|
||||
auto Array = Factory.makeIdentifier("Array", "", "");
|
||||
auto Array_Int = Factory.makeSimpleTypeIdentifier(
|
||||
/*GarbageNodes=*/None, /*Name=*/Array, /*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None, /*Name=*/Array, /*UnexpectedNodes=*/None,
|
||||
/*GenericArgumentClause=*/GenericArgs);
|
||||
auto TypeInit = Factory.makeTypeInitializerClause(
|
||||
/*GarbageNodes=*/None, /*Equal=*/Assignment, /*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None, /*Equal=*/Assignment, /*UnexpectedNodes=*/None,
|
||||
/*Value=*/Array_Int);
|
||||
Factory
|
||||
.makeTypealiasDecl(
|
||||
/*GarbageNodes=*/None, /*Attributes=*/None, /*GarbageNodes=*/None,
|
||||
/*Modifiers=*/None, /*GarbageNodes=*/None,
|
||||
/*TypealiasKeyword=*/Typealias, /*GarbageNodes=*/None,
|
||||
/*Identifier=*/Subsequence, /*GarbageNodes=*/None,
|
||||
/*GenericParameterClause=*/GenericParams, /*GarbageNodes=*/None,
|
||||
/*Initializer=*/TypeInit, /*GarbageNodes=*/None,
|
||||
/*UnexpectedNodes=*/None, /*Attributes=*/None, /*UnexpectedNodes=*/None,
|
||||
/*Modifiers=*/None, /*UnexpectedNodes=*/None,
|
||||
/*TypealiasKeyword=*/Typealias, /*UnexpectedNodes=*/None,
|
||||
/*Identifier=*/Subsequence, /*UnexpectedNodes=*/None,
|
||||
/*GenericParameterClause=*/GenericParams, /*UnexpectedNodes=*/None,
|
||||
/*Initializer=*/TypeInit, /*UnexpectedNodes=*/None,
|
||||
/*GenericWhereClause=*/None)
|
||||
.print(OS);
|
||||
ASSERT_EQ(OS.str().str(),
|
||||
@@ -152,9 +152,9 @@ TEST(DeclSyntaxTests, TypealiasWithAPIs) {
|
||||
auto MyCollection = Factory.makeIdentifier("MyCollection", "", "");
|
||||
auto ElementName = Factory.makeIdentifier("Element", "", "");
|
||||
auto ElementParam = Factory.makeGenericParameter(
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, ElementName,
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, ElementName,
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, None);
|
||||
auto LeftAngle = Factory.makeLeftAngleToken("", "");
|
||||
auto RightAngle = Factory.makeRightAngleToken("", " ");
|
||||
auto GenericParams = GenericParameterClauseSyntaxBuilder(Arena)
|
||||
@@ -166,7 +166,7 @@ TEST(DeclSyntaxTests, TypealiasWithAPIs) {
|
||||
|
||||
auto ElementType = Factory.makeTypeIdentifier("Element", "", "");
|
||||
auto ElementArg = Factory.makeGenericArgument(
|
||||
/*GarbageNodes=*/None, ElementType, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, ElementType, /*UnexpectedNodes=*/None, None);
|
||||
auto GenericArgs =
|
||||
GenericArgumentClauseSyntaxBuilder(Arena)
|
||||
.useLeftAngleBracket(LeftAngle)
|
||||
@@ -176,9 +176,9 @@ TEST(DeclSyntaxTests, TypealiasWithAPIs) {
|
||||
|
||||
auto Array = Factory.makeIdentifier("Array", "", "");
|
||||
auto Array_Int = Factory.makeSimpleTypeIdentifier(
|
||||
/*GarbageNodes=*/None, Array, /*GarbageNodes=*/None, GenericArgs);
|
||||
/*UnexpectedNodes=*/None, Array, /*UnexpectedNodes=*/None, GenericArgs);
|
||||
auto Type_Init = Factory.makeTypeInitializerClause(
|
||||
/*GarbageNodes=*/None, Equal, /*GarbageNodes=*/None, Array_Int);
|
||||
/*UnexpectedNodes=*/None, Equal, /*UnexpectedNodes=*/None, Array_Int);
|
||||
{
|
||||
SmallString<1> Scratch;
|
||||
llvm::raw_svector_ostream OS(Scratch);
|
||||
@@ -214,7 +214,7 @@ TEST(DeclSyntaxTests, TypealiasBuilderAPIs) {
|
||||
|
||||
auto ElementType = Factory.makeTypeIdentifier("Element", "", "");
|
||||
auto ElementArg = Factory.makeGenericArgument(
|
||||
/*GarbageNodes=*/None, ElementType, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, ElementType, /*UnexpectedNodes=*/None, None);
|
||||
|
||||
auto GenericArgs =
|
||||
GenericArgumentClauseSyntaxBuilder(Arena)
|
||||
@@ -225,9 +225,9 @@ TEST(DeclSyntaxTests, TypealiasBuilderAPIs) {
|
||||
|
||||
auto Array = Factory.makeIdentifier("Array", "", "");
|
||||
auto Array_Int = Factory.makeSimpleTypeIdentifier(
|
||||
/*GarbageNodes=*/None, Array, /*GarbageNodes=*/None, GenericArgs);
|
||||
/*UnexpectedNodes=*/None, Array, /*UnexpectedNodes=*/None, GenericArgs);
|
||||
auto Type_Init = Factory.makeTypeInitializerClause(
|
||||
/*GarbageNodes=*/None, Equal, /*GarbageNodes=*/None, Array_Int);
|
||||
/*UnexpectedNodes=*/None, Equal, /*UnexpectedNodes=*/None, Array_Int);
|
||||
TypealiasDeclSyntaxBuilder(Arena)
|
||||
.useTypealiasKeyword(Typealias)
|
||||
.useIdentifier(MyCollection)
|
||||
@@ -253,18 +253,18 @@ FunctionParameterSyntax getCannedFunctionParameter(const RC<SyntaxArena> &Arena)
|
||||
auto Sign = Factory.makePrefixOperator("-", "", "");
|
||||
auto OneDigits = Factory.makeIntegerLiteral("1", "", "");
|
||||
auto OneLiteral =
|
||||
Factory.makeIntegerLiteralExpr(/*GarbageNodes=*/None, OneDigits);
|
||||
auto One = Factory.makePrefixOperatorExpr(/*GarbageNodes=*/None, Sign,
|
||||
/*GarbageNodes=*/None, OneLiteral);
|
||||
auto DefaultArg = Factory.makeInitializerClause(/*GarbageNodes=*/None, Equal,
|
||||
/*GarbageNodes=*/None, One);
|
||||
Factory.makeIntegerLiteralExpr(/*UnexpectedNodes=*/None, OneDigits);
|
||||
auto One = Factory.makePrefixOperatorExpr(/*UnexpectedNodes=*/None, Sign,
|
||||
/*UnexpectedNodes=*/None, OneLiteral);
|
||||
auto DefaultArg = Factory.makeInitializerClause(/*UnexpectedNodes=*/None, Equal,
|
||||
/*UnexpectedNodes=*/None, One);
|
||||
auto Comma = Factory.makeCommaToken("", " ");
|
||||
|
||||
return Factory.makeFunctionParameter(
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, ExternalName,
|
||||
/*GarbageNodes=*/None, LocalName, /*GarbageNodes=*/None, Colon,
|
||||
/*GarbageNodes=*/None, Int, /*GarbageNodes=*/None, NoEllipsis,
|
||||
/*GarbageNodes=*/None, DefaultArg, /*GarbageNodes=*/None, Comma);
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, ExternalName,
|
||||
/*UnexpectedNodes=*/None, LocalName, /*UnexpectedNodes=*/None, Colon,
|
||||
/*UnexpectedNodes=*/None, Int, /*UnexpectedNodes=*/None, NoEllipsis,
|
||||
/*UnexpectedNodes=*/None, DefaultArg, /*UnexpectedNodes=*/None, Comma);
|
||||
}
|
||||
|
||||
TEST(DeclSyntaxTests, FunctionParameterMakeAPIs) {
|
||||
@@ -297,18 +297,18 @@ TEST(DeclSyntaxTests, FunctionParameterGetAPIs) {
|
||||
auto Sign = Factory.makePrefixOperator("-", "", "");
|
||||
auto OneDigits = Factory.makeIntegerLiteral("1", "", "");
|
||||
auto OneLiteral =
|
||||
Factory.makeIntegerLiteralExpr(/*GarbageNodes=*/None, OneDigits);
|
||||
auto One = Factory.makePrefixOperatorExpr(/*GarbageNodes=*/None, Sign,
|
||||
/*GarbageNodes=*/None, OneLiteral);
|
||||
auto DefaultArg = Factory.makeInitializerClause(/*GarbageNodes=*/None, Equal,
|
||||
/*GarbageNodes=*/None, One);
|
||||
Factory.makeIntegerLiteralExpr(/*UnexpectedNodes=*/None, OneDigits);
|
||||
auto One = Factory.makePrefixOperatorExpr(/*UnexpectedNodes=*/None, Sign,
|
||||
/*UnexpectedNodes=*/None, OneLiteral);
|
||||
auto DefaultArg = Factory.makeInitializerClause(/*UnexpectedNodes=*/None, Equal,
|
||||
/*UnexpectedNodes=*/None, One);
|
||||
auto Comma = Factory.makeCommaToken("", "");
|
||||
|
||||
auto Param = Factory.makeFunctionParameter(
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, ExternalName,
|
||||
/*GarbageNodes=*/None, LocalName, /*GarbageNodes=*/None, Colon,
|
||||
/*GarbageNodes=*/None, Int, /*GarbageNodes=*/None, NoEllipsis,
|
||||
/*GarbageNodes=*/None, DefaultArg, /*GarbageNodes=*/None, Comma);
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, ExternalName,
|
||||
/*UnexpectedNodes=*/None, LocalName, /*UnexpectedNodes=*/None, Colon,
|
||||
/*UnexpectedNodes=*/None, Int, /*UnexpectedNodes=*/None, NoEllipsis,
|
||||
/*UnexpectedNodes=*/None, DefaultArg, /*UnexpectedNodes=*/None, Comma);
|
||||
|
||||
ASSERT_EQ(ExternalName.getRaw(), Param.getFirstName()->getRaw());
|
||||
ASSERT_EQ(LocalName.getRaw(), Param.getSecondName()->getRaw());
|
||||
@@ -346,9 +346,9 @@ TEST(DeclSyntaxTests, FunctionParameterWithAPIs) {
|
||||
|
||||
auto NoSign = TokenSyntax::missingToken(tok::oper_prefix, "", Arena);
|
||||
auto OneDigits = Factory.makeIntegerLiteral("1", "", "");
|
||||
auto One = Factory.makeIntegerLiteralExpr(/*GarbageNodes=*/None, OneDigits);
|
||||
auto DefaultArg = Factory.makeInitializerClause(/*GarbageNodes=*/None, Equal,
|
||||
/*GarbageNodes=*/None, One);
|
||||
auto One = Factory.makeIntegerLiteralExpr(/*UnexpectedNodes=*/None, OneDigits);
|
||||
auto DefaultArg = Factory.makeInitializerClause(/*UnexpectedNodes=*/None, Equal,
|
||||
/*UnexpectedNodes=*/None, One);
|
||||
auto Comma = Factory.makeCommaToken("", "");
|
||||
|
||||
{
|
||||
@@ -435,18 +435,18 @@ FunctionSignatureSyntax getCannedFunctionSignature(const RC<SyntaxArena> &Arena)
|
||||
.appending(Param)
|
||||
.castTo<FunctionParameterListSyntax>();
|
||||
auto RParen = Factory.makeRightParenToken("", " ");
|
||||
auto Parameter = Factory.makeParameterClause(/*GarbageNodes=*/None, LParen,
|
||||
/*GarbageNodes=*/None, List,
|
||||
/*GarbageNodes=*/None, RParen);
|
||||
auto Parameter = Factory.makeParameterClause(/*UnexpectedNodes=*/None, LParen,
|
||||
/*UnexpectedNodes=*/None, List,
|
||||
/*UnexpectedNodes=*/None, RParen);
|
||||
auto Throws = Factory.makeThrowsKeyword("", " ");
|
||||
auto Arrow = Factory.makeArrowToken("", " ");
|
||||
auto Int = Factory.makeTypeIdentifier("Int", "", " ");
|
||||
auto Return = Factory.makeReturnClause(/*GarbageNodes=*/None, Arrow,
|
||||
/*GarbageNodes=*/None, Int);
|
||||
auto Return = Factory.makeReturnClause(/*UnexpectedNodes=*/None, Arrow,
|
||||
/*UnexpectedNodes=*/None, Int);
|
||||
|
||||
return Factory.makeFunctionSignature(
|
||||
/*GarbageNodes=*/None, Parameter, /*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, Throws, /*GarbageNodes=*/None, Return);
|
||||
/*UnexpectedNodes=*/None, Parameter, /*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, Throws, /*UnexpectedNodes=*/None, Return);
|
||||
}
|
||||
|
||||
TEST(DeclSyntaxTests, FunctionSignatureMakeAPIs) {
|
||||
@@ -485,14 +485,14 @@ TEST(DeclSyntaxTests, FunctionSignatureGetAPIs) {
|
||||
|
||||
auto Int = Factory.makeTypeIdentifier("Int", "", "");
|
||||
|
||||
auto ParamClause = Factory.makeParameterClause(/*GarbageNodes=*/None, LParen,
|
||||
/*GarbageNodes=*/None, List,
|
||||
/*GarbageNodes=*/None, RParen);
|
||||
auto ReturnClause = Factory.makeReturnClause(/*GarbageNodes=*/None, Arrow,
|
||||
/*GarbageNodes=*/None, Int);
|
||||
auto ParamClause = Factory.makeParameterClause(/*UnexpectedNodes=*/None, LParen,
|
||||
/*UnexpectedNodes=*/None, List,
|
||||
/*UnexpectedNodes=*/None, RParen);
|
||||
auto ReturnClause = Factory.makeReturnClause(/*UnexpectedNodes=*/None, Arrow,
|
||||
/*UnexpectedNodes=*/None, Int);
|
||||
auto Sig = Factory.makeFunctionSignature(
|
||||
/*GarbageNodes=*/None, ParamClause, /*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, Throws, /*GarbageNodes=*/None, ReturnClause);
|
||||
/*UnexpectedNodes=*/None, ParamClause, /*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, Throws, /*UnexpectedNodes=*/None, ReturnClause);
|
||||
|
||||
ASSERT_EQ(LParen.getRaw(), Sig.getInput().getLeftParen().getRaw());
|
||||
|
||||
@@ -540,11 +540,11 @@ TEST(DeclSyntaxTests, FunctionSignatureWithAPIs) {
|
||||
auto Arrow = Factory.makeArrowToken("", " ");
|
||||
auto Int = Factory.makeTypeIdentifier("Int", "", "");
|
||||
|
||||
auto Parameter = Factory.makeParameterClause(/*GarbageNodes=*/None, LParen,
|
||||
/*GarbageNodes=*/None, List,
|
||||
/*GarbageNodes=*/None, RParen);
|
||||
auto Return = Factory.makeReturnClause(/*GarbageNodes=*/None, Arrow,
|
||||
/*GarbageNodes=*/None, Int);
|
||||
auto Parameter = Factory.makeParameterClause(/*UnexpectedNodes=*/None, LParen,
|
||||
/*UnexpectedNodes=*/None, List,
|
||||
/*UnexpectedNodes=*/None, RParen);
|
||||
auto Return = Factory.makeReturnClause(/*UnexpectedNodes=*/None, Arrow,
|
||||
/*UnexpectedNodes=*/None, Int);
|
||||
SmallString<48> Scratch;
|
||||
llvm::raw_svector_ostream OS(Scratch);
|
||||
Factory.makeBlankFunctionSignature()
|
||||
@@ -567,19 +567,19 @@ ModifierListSyntax getCannedModifiers(const RC<SyntaxArena> &Arena) {
|
||||
auto NoArgument = TokenSyntax::missingToken(tok::identifier, "", Arena);
|
||||
auto NoRParen = TokenSyntax::missingToken(tok::r_paren, ")", Arena);
|
||||
auto PublicDeclModifierDetail = Factory.makeDeclModifierDetail(
|
||||
/*GarbageNodes=*/None, NoLParen, /*GarbageNodes=*/None, NoArgument,
|
||||
/*GarbageNodes=*/None, NoRParen);
|
||||
/*UnexpectedNodes=*/None, NoLParen, /*UnexpectedNodes=*/None, NoArgument,
|
||||
/*UnexpectedNodes=*/None, NoRParen);
|
||||
auto Public = Factory.makeDeclModifier(
|
||||
/*GarbageNodes=*/None, PublicID,
|
||||
/*GarbageNodes=*/None, PublicDeclModifierDetail);
|
||||
/*UnexpectedNodes=*/None, PublicID,
|
||||
/*UnexpectedNodes=*/None, PublicDeclModifierDetail);
|
||||
|
||||
auto StaticKW = Factory.makeStaticKeyword("", " ");
|
||||
auto StaticDeclModifierDetail = Factory.makeDeclModifierDetail(
|
||||
/*GarbageNodes=*/None, NoLParen, /*GarbageNodes=*/None, NoArgument,
|
||||
/*GarbageNodes=*/None, NoRParen);
|
||||
/*UnexpectedNodes=*/None, NoLParen, /*UnexpectedNodes=*/None, NoArgument,
|
||||
/*UnexpectedNodes=*/None, NoRParen);
|
||||
auto Static =
|
||||
Factory.makeDeclModifier(/*GarbageNodes=*/None, StaticKW,
|
||||
/*GarbageNodes=*/None, StaticDeclModifierDetail);
|
||||
Factory.makeDeclModifier(/*UnexpectedNodes=*/None, StaticKW,
|
||||
/*UnexpectedNodes=*/None, StaticDeclModifierDetail);
|
||||
|
||||
return Factory.makeBlankModifierList().appending(Public).appending(Static);
|
||||
}
|
||||
@@ -609,22 +609,22 @@ CodeBlockSyntax getCannedBody(const RC<SyntaxArena> &Arena) {
|
||||
SyntaxFactory Factory(Arena);
|
||||
auto NoSign = TokenSyntax::missingToken(tok::oper_prefix, "-", Arena);
|
||||
auto OneDigits = Factory.makeIntegerLiteral("1", "", "");
|
||||
auto One = Factory.makeIntegerLiteralExpr(/*GarbageNodes=*/None, OneDigits);
|
||||
auto One = Factory.makeIntegerLiteralExpr(/*UnexpectedNodes=*/None, OneDigits);
|
||||
auto ReturnKW = Factory.makeReturnKeyword("\n ", "");
|
||||
auto Return = Factory.makeReturnStmt(/*GarbageNodes=*/None, ReturnKW,
|
||||
/*GarbageNodes=*/None, One);
|
||||
auto ReturnItem = Factory.makeCodeBlockItem(/*GarbageNodes=*/None, Return,
|
||||
/*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, None);
|
||||
auto Return = Factory.makeReturnStmt(/*UnexpectedNodes=*/None, ReturnKW,
|
||||
/*UnexpectedNodes=*/None, One);
|
||||
auto ReturnItem = Factory.makeCodeBlockItem(/*UnexpectedNodes=*/None, Return,
|
||||
/*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, None);
|
||||
|
||||
auto Stmts = Factory.makeCodeBlockItemList({ReturnItem});
|
||||
|
||||
auto LBrace = Factory.makeLeftBraceToken("", "");
|
||||
auto RBrace = Factory.makeRightBraceToken("\n", "");
|
||||
|
||||
return Factory.makeCodeBlock(/*GarbageNodes=*/None, LBrace,
|
||||
/*GarbageNodes=*/None, Stmts,
|
||||
/*GarbageNodes=*/None, RBrace);
|
||||
return Factory.makeCodeBlock(/*UnexpectedNodes=*/None, LBrace,
|
||||
/*UnexpectedNodes=*/None, Stmts,
|
||||
/*UnexpectedNodes=*/None, RBrace);
|
||||
}
|
||||
|
||||
GenericWhereClauseSyntax getCannedWhereClause(const RC<SyntaxArena> &Arena) {
|
||||
@@ -634,10 +634,10 @@ GenericWhereClauseSyntax getCannedWhereClause(const RC<SyntaxArena> &Arena) {
|
||||
auto EqualEqual = Factory.makeEqualityOperator("", " ");
|
||||
auto Int = Factory.makeTypeIdentifier("Int", "", " ");
|
||||
auto SameType = Factory.makeSameTypeRequirement(
|
||||
/*GarbageNodes=*/None, T, /*GarbageNodes=*/None, EqualEqual,
|
||||
/*GarbageNodes=*/None, Int);
|
||||
auto Req = Factory.makeGenericRequirement(/*GarbageNodes=*/None, SameType,
|
||||
/*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, T, /*UnexpectedNodes=*/None, EqualEqual,
|
||||
/*UnexpectedNodes=*/None, Int);
|
||||
auto Req = Factory.makeGenericRequirement(/*UnexpectedNodes=*/None, SameType,
|
||||
/*UnexpectedNodes=*/None, None);
|
||||
|
||||
auto Requirements = Factory.makeBlankGenericRequirementList().appending(Req);
|
||||
|
||||
@@ -658,10 +658,10 @@ FunctionDeclSyntax getCannedFunctionDecl(const RC<SyntaxArena> &Arena) {
|
||||
auto Body = getCannedBody(Arena);
|
||||
|
||||
return Factory.makeFunctionDecl(
|
||||
/*GarbageNodes=*/None, NoAttributes, /*GarbageNodes=*/None, Modifiers,
|
||||
/*GarbageNodes=*/None, FuncKW, /*GarbageNodes=*/None, Foo,
|
||||
/*GarbageNodes=*/None, GenericParams, /*GarbageNodes=*/None, Signature,
|
||||
/*GarbageNodes=*/None, GenericWhere, /*GarbageNodes=*/None, Body);
|
||||
/*UnexpectedNodes=*/None, NoAttributes, /*UnexpectedNodes=*/None, Modifiers,
|
||||
/*UnexpectedNodes=*/None, FuncKW, /*UnexpectedNodes=*/None, Foo,
|
||||
/*UnexpectedNodes=*/None, GenericParams, /*UnexpectedNodes=*/None, Signature,
|
||||
/*UnexpectedNodes=*/None, GenericWhere, /*UnexpectedNodes=*/None, Body);
|
||||
}
|
||||
|
||||
TEST(DeclSyntaxTests, FunctionDeclMakeAPIs) {
|
||||
@@ -729,7 +729,7 @@ TEST(DeclSyntaxTests, ProtocolMakeAPIs) {
|
||||
auto MyCollection = Factory.makeIdentifier("MyCollection", "", "");
|
||||
auto ElementName = Factory.makeIdentifier("Element", "", "");
|
||||
auto ElementParam = Factory.makePrimaryAssociatedType(
|
||||
/*GarbageNodes=*/None, ElementName, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, ElementName, /*UnexpectedNodes=*/None, None);
|
||||
auto LeftAngle = Factory.makeLeftAngleToken("", "");
|
||||
auto RightAngle = Factory.makeRightAngleToken("", " ");
|
||||
auto PrimaryAssocs = PrimaryAssociatedTypeClauseSyntaxBuilder(Arena)
|
||||
@@ -745,12 +745,12 @@ TEST(DeclSyntaxTests, ProtocolMakeAPIs) {
|
||||
.useRightBrace(RightBrace)
|
||||
.build();
|
||||
Factory
|
||||
.makeProtocolDecl(/*GarbageNodes=*/None, None, /*GarbageNodes=*/None,
|
||||
None, /*GarbageNodes=*/None, Protocol,
|
||||
/*GarbageNodes=*/None, MyCollection,
|
||||
/*GarbageNodes=*/None, PrimaryAssocs,
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None,
|
||||
None, /*GarbageNodes=*/None, Members)
|
||||
.makeProtocolDecl(/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None,
|
||||
None, /*UnexpectedNodes=*/None, Protocol,
|
||||
/*UnexpectedNodes=*/None, MyCollection,
|
||||
/*UnexpectedNodes=*/None, PrimaryAssocs,
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None,
|
||||
None, /*UnexpectedNodes=*/None, Members)
|
||||
.print(OS);
|
||||
ASSERT_EQ(OS.str().str(),
|
||||
"protocol MyCollection<Element> {}");
|
||||
|
||||
@@ -15,9 +15,9 @@ TEST(ExprSyntaxTests, IntegerLiteralExprMakeAPIs) {
|
||||
auto LiteralToken = Factory.makeIntegerLiteral("100", "", "");
|
||||
auto Sign = Factory.makePrefixOperator("-", "", "");
|
||||
auto IntegerLiteral =
|
||||
Factory.makeIntegerLiteralExpr(/*GarbageNodes=*/None, LiteralToken);
|
||||
Factory.makeIntegerLiteralExpr(/*UnexpectedNodes=*/None, LiteralToken);
|
||||
auto Literal = Factory.makePrefixOperatorExpr(
|
||||
/*GarbageNodes=*/None, Sign, /*GarbageNodes=*/None, IntegerLiteral);
|
||||
/*UnexpectedNodes=*/None, Sign, /*UnexpectedNodes=*/None, IntegerLiteral);
|
||||
|
||||
llvm::SmallString<10> Scratch;
|
||||
llvm::raw_svector_ostream OS(Scratch);
|
||||
@@ -29,7 +29,7 @@ TEST(ExprSyntaxTests, IntegerLiteralExprMakeAPIs) {
|
||||
auto LiteralToken = Factory.makeIntegerLiteral("1_000", "", "");
|
||||
auto NoSign = TokenSyntax::missingToken(tok::oper_prefix, "", Arena);
|
||||
auto Literal =
|
||||
Factory.makeIntegerLiteralExpr(/*GarbageNodes=*/None, LiteralToken);
|
||||
Factory.makeIntegerLiteralExpr(/*UnexpectedNodes=*/None, LiteralToken);
|
||||
|
||||
llvm::SmallString<10> Scratch;
|
||||
llvm::raw_svector_ostream OS(Scratch);
|
||||
@@ -39,7 +39,7 @@ TEST(ExprSyntaxTests, IntegerLiteralExprMakeAPIs) {
|
||||
{
|
||||
auto IntLiteral = Factory.makeIntegerLiteral("0", "", " ");
|
||||
auto IntLiteralExpr =
|
||||
Factory.makeIntegerLiteralExpr(/*GarbageNodes=*/None, IntLiteral);
|
||||
Factory.makeIntegerLiteralExpr(/*UnexpectedNodes=*/None, IntLiteral);
|
||||
auto Literal = Factory.makeBlankPrefixOperatorExpr()
|
||||
.withOperatorToken(TokenSyntax::missingToken(
|
||||
tok::oper_prefix, "", Arena))
|
||||
@@ -54,9 +54,9 @@ TEST(ExprSyntaxTests, IntegerLiteralExprMakeAPIs) {
|
||||
auto LiteralToken = Factory.makeIntegerLiteral("1_000_000_000_000", "", "");
|
||||
auto PlusSign = Factory.makePrefixOperator("+", "", "");
|
||||
auto IntLiteralExpr =
|
||||
Factory.makeIntegerLiteralExpr(/*GarbageNodes=*/None, LiteralToken);
|
||||
Factory.makeIntegerLiteralExpr(/*UnexpectedNodes=*/None, LiteralToken);
|
||||
auto OneThousand = Factory.makePrefixOperatorExpr(
|
||||
/*GarbageNodes=*/None, PlusSign, /*GarbageNodes=*/None, IntLiteralExpr);
|
||||
/*UnexpectedNodes=*/None, PlusSign, /*UnexpectedNodes=*/None, IntLiteralExpr);
|
||||
|
||||
llvm::SmallString<10> Scratch;
|
||||
llvm::raw_svector_ostream OS(Scratch);
|
||||
@@ -74,9 +74,9 @@ TEST(ExprSyntaxTests, SymbolicReferenceExprGetAPIs) {
|
||||
auto Array = Factory.makeIdentifier("Array", "", "");
|
||||
auto Int = Factory.makeIdentifier("Int", "", "");
|
||||
auto IntType = Factory.makeSimpleTypeIdentifier(
|
||||
/*GarbageNodes=*/None, Int, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, Int, /*UnexpectedNodes=*/None, None);
|
||||
auto GenericArg = Factory.makeGenericArgument(
|
||||
/*GarbageNodes=*/None, IntType, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, IntType, /*UnexpectedNodes=*/None, None);
|
||||
GenericArgumentClauseSyntaxBuilder ArgBuilder(Arena);
|
||||
ArgBuilder.useLeftAngleBracket(Factory.makeLeftAngleToken("", ""))
|
||||
.useRightAngleBracket(Factory.makeRightAngleToken("", ""))
|
||||
@@ -85,7 +85,7 @@ TEST(ExprSyntaxTests, SymbolicReferenceExprGetAPIs) {
|
||||
auto GenericArgs = ArgBuilder.build();
|
||||
|
||||
auto Ref = Factory.makeSymbolicReferenceExpr(
|
||||
/*GarbageNodes=*/None, Array, /*GarbageNodes=*/None, GenericArgs);
|
||||
/*UnexpectedNodes=*/None, Array, /*UnexpectedNodes=*/None, GenericArgs);
|
||||
|
||||
ASSERT_EQ(Ref.getIdentifier().getRaw(), Array.getRaw());
|
||||
|
||||
@@ -107,10 +107,10 @@ TEST(ExprSyntaxTests, SymbolicReferenceExprMakeAPIs) {
|
||||
SyntaxFactory Factory(Arena);
|
||||
auto Array = Factory.makeIdentifier("Array", "", "");
|
||||
auto Int = Factory.makeIdentifier("Int", "", "");
|
||||
auto IntType = Factory.makeSimpleTypeIdentifier(/*GarbageNodes=*/None, Int,
|
||||
/*GarbageNodes=*/None, None);
|
||||
auto GenericArg = Factory.makeGenericArgument(/*GarbageNodes=*/None, IntType,
|
||||
/*GarbageNodes=*/None, None);
|
||||
auto IntType = Factory.makeSimpleTypeIdentifier(/*UnexpectedNodes=*/None, Int,
|
||||
/*UnexpectedNodes=*/None, None);
|
||||
auto GenericArg = Factory.makeGenericArgument(/*UnexpectedNodes=*/None, IntType,
|
||||
/*UnexpectedNodes=*/None, None);
|
||||
GenericArgumentClauseSyntaxBuilder ArgBuilder(Arena);
|
||||
ArgBuilder.useLeftAngleBracket(Factory.makeLeftAngleToken("", ""))
|
||||
.useRightAngleBracket(Factory.makeRightAngleToken("", ""))
|
||||
@@ -131,8 +131,8 @@ TEST(ExprSyntaxTests, SymbolicReferenceExprMakeAPIs) {
|
||||
auto BlankArgs = Factory.makeBlankGenericArgumentClause();
|
||||
|
||||
Factory
|
||||
.makeSymbolicReferenceExpr(/*GarbageNodes=*/None, Foo,
|
||||
/*GarbageNodes=*/None, BlankArgs)
|
||||
.makeSymbolicReferenceExpr(/*UnexpectedNodes=*/None, Foo,
|
||||
/*UnexpectedNodes=*/None, BlankArgs)
|
||||
.print(OS);
|
||||
EXPECT_EQ(OS.str().str(), "foo");
|
||||
}
|
||||
@@ -141,8 +141,8 @@ TEST(ExprSyntaxTests, SymbolicReferenceExprMakeAPIs) {
|
||||
llvm::SmallString<48> Scratch;
|
||||
llvm::raw_svector_ostream OS(Scratch);
|
||||
Factory
|
||||
.makeSymbolicReferenceExpr(/*GarbageNodes=*/None, Array,
|
||||
/*GarbageNodes=*/None, GenericArgs)
|
||||
.makeSymbolicReferenceExpr(/*UnexpectedNodes=*/None, Array,
|
||||
/*UnexpectedNodes=*/None, GenericArgs)
|
||||
.print(OS);
|
||||
ASSERT_EQ(OS.str().str(), "Array<Int>");
|
||||
}
|
||||
@@ -153,10 +153,10 @@ TEST(ExprSyntaxTests, SymbolicReferenceExprWithAPIs) {
|
||||
SyntaxFactory Factory(Arena);
|
||||
auto Array = Factory.makeIdentifier("Array", "", "");
|
||||
auto Int = Factory.makeIdentifier("Int", "", "");
|
||||
auto IntType = Factory.makeSimpleTypeIdentifier(/*GarbageNodes=*/None, Int,
|
||||
/*GarbageNodes=*/None, None);
|
||||
auto GenericArg = Factory.makeGenericArgument(/*GarbageNodes=*/None, IntType,
|
||||
/*GarbageNodes=*/None, None);
|
||||
auto IntType = Factory.makeSimpleTypeIdentifier(/*UnexpectedNodes=*/None, Int,
|
||||
/*UnexpectedNodes=*/None, None);
|
||||
auto GenericArg = Factory.makeGenericArgument(/*UnexpectedNodes=*/None, IntType,
|
||||
/*UnexpectedNodes=*/None, None);
|
||||
GenericArgumentClauseSyntaxBuilder ArgBuilder(Arena);
|
||||
ArgBuilder.useLeftAngleBracket(Factory.makeLeftAngleToken("", ""))
|
||||
.useRightAngleBracket(Factory.makeRightAngleToken("", ""))
|
||||
@@ -197,13 +197,13 @@ TEST(ExprSyntaxTests, TupleExprElementGetAPIs) {
|
||||
auto Foo = Factory.makeIdentifier("foo", "", "");
|
||||
auto Colon = Factory.makeColonToken("", " ");
|
||||
auto SymbolicRef = Factory.makeSymbolicReferenceExpr(
|
||||
/*GarbageNodes=*/None, Foo, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, Foo, /*UnexpectedNodes=*/None, None);
|
||||
auto Comma = Factory.makeCommaToken("", " ");
|
||||
|
||||
{
|
||||
auto Arg = Factory.makeTupleExprElement(
|
||||
/*GarbageNodes=*/None, X, /*GarbageNodes=*/None, Colon,
|
||||
/*GarbageNodes=*/None, SymbolicRef, /*GarbageNodes=*/None, Comma);
|
||||
/*UnexpectedNodes=*/None, X, /*UnexpectedNodes=*/None, Colon,
|
||||
/*UnexpectedNodes=*/None, SymbolicRef, /*UnexpectedNodes=*/None, Comma);
|
||||
|
||||
ASSERT_EQ(X.getRaw(), Arg.getLabel()->getRaw());
|
||||
ASSERT_EQ(Colon.getRaw(), Arg.getColon()->getRaw());
|
||||
@@ -227,7 +227,7 @@ TEST(ExprSyntaxTests, TupleExprElementMakeAPIs) {
|
||||
auto Foo = Factory.makeIdentifier("foo", "", "");
|
||||
auto Colon = Factory.makeColonToken("", " ");
|
||||
auto SymbolicRef = Factory.makeSymbolicReferenceExpr(
|
||||
/*GarbageNodes=*/None, Foo, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, Foo, /*UnexpectedNodes=*/None, None);
|
||||
auto Comma = Factory.makeCommaToken("", " ");
|
||||
|
||||
{
|
||||
@@ -248,9 +248,9 @@ TEST(ExprSyntaxTests, TupleExprElementMakeAPIs) {
|
||||
llvm::SmallString<48> Scratch;
|
||||
llvm::raw_svector_ostream OS(Scratch);
|
||||
Factory
|
||||
.makeTupleExprElement(/*GarbageNodes=*/None, X, /*GarbageNodes=*/None,
|
||||
Colon, /*GarbageNodes=*/None, SymbolicRef,
|
||||
/*GarbageNodes=*/None, Comma)
|
||||
.makeTupleExprElement(/*UnexpectedNodes=*/None, X, /*UnexpectedNodes=*/None,
|
||||
Colon, /*UnexpectedNodes=*/None, SymbolicRef,
|
||||
/*UnexpectedNodes=*/None, Comma)
|
||||
.print(OS);
|
||||
ASSERT_EQ(OS.str().str(), "x: foo, ");
|
||||
}
|
||||
@@ -263,7 +263,7 @@ TEST(ExprSyntaxTests, TupleExprElementWithAPIs) {
|
||||
auto Foo = Factory.makeIdentifier("foo", "", "");
|
||||
auto Colon = Factory.makeColonToken("", " ");
|
||||
auto SymbolicRef = Factory.makeSymbolicReferenceExpr(
|
||||
/*GarbageNodes=*/None, Foo, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, Foo, /*UnexpectedNodes=*/None, None);
|
||||
auto Comma = Factory.makeCommaToken("", " ");
|
||||
|
||||
{
|
||||
@@ -290,13 +290,13 @@ TupleExprElementListSyntax getFullArgumentList(const RC<SyntaxArena> &Arena) {
|
||||
auto Foo = Factory.makeIdentifier("foo", "", "");
|
||||
auto Colon = Factory.makeColonToken("", " ");
|
||||
auto SymbolicRef = Factory.makeSymbolicReferenceExpr(
|
||||
/*GarbageNodes=*/None, Foo, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, Foo, /*UnexpectedNodes=*/None, None);
|
||||
auto Comma = Factory.makeCommaToken("", " ");
|
||||
auto NoComma = TokenSyntax::missingToken(tok::comma, ",", Arena);
|
||||
|
||||
auto Arg = Factory.makeTupleExprElement(
|
||||
/*GarbageNodes=*/None, X, /*GarbageNodes=*/None, Colon,
|
||||
/*GarbageNodes=*/None, SymbolicRef, /*GarbageNodes=*/None, Comma);
|
||||
/*UnexpectedNodes=*/None, X, /*UnexpectedNodes=*/None, Colon,
|
||||
/*UnexpectedNodes=*/None, SymbolicRef, /*UnexpectedNodes=*/None, Comma);
|
||||
|
||||
return Factory.makeBlankTupleExprElementList()
|
||||
.appending(Arg)
|
||||
@@ -312,24 +312,24 @@ getLabellessArgumentList(const RC<SyntaxArena> &Arena) {
|
||||
auto OneDigits = Factory.makeIntegerLiteral("1", "", "");
|
||||
auto TwoDigits = Factory.makeIntegerLiteral("2", "", "");
|
||||
auto ThreeDigits = Factory.makeIntegerLiteral("3", "", "");
|
||||
auto One = Factory.makeIntegerLiteralExpr(/*GarbageNodes=*/None, OneDigits);
|
||||
auto One = Factory.makeIntegerLiteralExpr(/*UnexpectedNodes=*/None, OneDigits);
|
||||
auto NoLabel = TokenSyntax::missingToken(tok::identifier, "", Arena);
|
||||
auto NoColon = TokenSyntax::missingToken(tok::colon, ":", Arena);
|
||||
auto Comma = Factory.makeCommaToken("", " ");
|
||||
auto NoComma = TokenSyntax::missingToken(tok::comma, ",", Arena);
|
||||
auto Two = Factory.makeIntegerLiteralExpr(/*GarbageNodes=*/None, TwoDigits);
|
||||
auto Two = Factory.makeIntegerLiteralExpr(/*UnexpectedNodes=*/None, TwoDigits);
|
||||
auto Three =
|
||||
Factory.makeIntegerLiteralExpr(/*GarbageNodes=*/None, ThreeDigits);
|
||||
Factory.makeIntegerLiteralExpr(/*UnexpectedNodes=*/None, ThreeDigits);
|
||||
|
||||
auto OneArg = Factory.makeTupleExprElement(
|
||||
/*GarbageNodes=*/None, NoLabel, /*GarbageNodes=*/None, NoColon,
|
||||
/*GarbageNodes=*/None, One, /*GarbageNodes=*/None, Comma);
|
||||
/*UnexpectedNodes=*/None, NoLabel, /*UnexpectedNodes=*/None, NoColon,
|
||||
/*UnexpectedNodes=*/None, One, /*UnexpectedNodes=*/None, Comma);
|
||||
auto TwoArg = Factory.makeTupleExprElement(
|
||||
/*GarbageNodes=*/None, NoLabel, /*GarbageNodes=*/None, NoColon,
|
||||
/*GarbageNodes=*/None, Two, /*GarbageNodes=*/None, Comma);
|
||||
/*UnexpectedNodes=*/None, NoLabel, /*UnexpectedNodes=*/None, NoColon,
|
||||
/*UnexpectedNodes=*/None, Two, /*UnexpectedNodes=*/None, Comma);
|
||||
auto ThreeArg = Factory.makeTupleExprElement(
|
||||
/*GarbageNodes=*/None, NoLabel, /*GarbageNodes=*/None, NoColon,
|
||||
/*GarbageNodes=*/None, Three, /*GarbageNodes=*/None, NoComma);
|
||||
/*UnexpectedNodes=*/None, NoLabel, /*UnexpectedNodes=*/None, NoColon,
|
||||
/*UnexpectedNodes=*/None, Three, /*UnexpectedNodes=*/None, NoComma);
|
||||
|
||||
return Factory.makeBlankTupleExprElementList()
|
||||
.appending(OneArg)
|
||||
@@ -348,13 +348,13 @@ TEST(ExprSyntaxTests, TupleExprElementListGetAPIs) {
|
||||
auto Foo = Factory.makeIdentifier("foo", "", "");
|
||||
auto Colon = Factory.makeColonToken("", " ");
|
||||
auto SymbolicRef = Factory.makeSymbolicReferenceExpr(
|
||||
/*GarbageNodes=*/None, Foo, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, Foo, /*UnexpectedNodes=*/None, None);
|
||||
auto Comma = Factory.makeCommaToken("", " ");
|
||||
auto NoComma = TokenSyntax::missingToken(tok::comma, ",", Arena);
|
||||
|
||||
auto Arg = Factory.makeTupleExprElement(
|
||||
/*GarbageNodes=*/None, X, /*GarbageNodes=*/None, Colon,
|
||||
/*GarbageNodes=*/None, SymbolicRef, /*GarbageNodes=*/None, Comma);
|
||||
/*UnexpectedNodes=*/None, X, /*UnexpectedNodes=*/None, Colon,
|
||||
/*UnexpectedNodes=*/None, SymbolicRef, /*UnexpectedNodes=*/None, Comma);
|
||||
|
||||
auto ArgList = Factory.makeBlankTupleExprElementList()
|
||||
.appending(Arg)
|
||||
@@ -411,13 +411,13 @@ TEST(ExprSyntaxTests, TupleExprElementListMakeAPIs) {
|
||||
auto Foo = Factory.makeIdentifier("foo", "", "");
|
||||
auto Colon = Factory.makeColonToken("", " ");
|
||||
auto SymbolicRef = Factory.makeSymbolicReferenceExpr(
|
||||
/*GarbageNodes=*/None, Foo, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, Foo, /*UnexpectedNodes=*/None, None);
|
||||
auto Comma = Factory.makeCommaToken("", " ");
|
||||
auto NoComma = TokenSyntax::missingToken(tok::comma, ",", Arena);
|
||||
|
||||
auto Arg = Factory.makeTupleExprElement(
|
||||
/*GarbageNodes=*/None, X, /*GarbageNodes=*/None, Colon,
|
||||
/*GarbageNodes=*/None, SymbolicRef, /*GarbageNodes=*/None, Comma);
|
||||
/*UnexpectedNodes=*/None, X, /*UnexpectedNodes=*/None, Colon,
|
||||
/*UnexpectedNodes=*/None, SymbolicRef, /*UnexpectedNodes=*/None, Comma);
|
||||
|
||||
std::vector<TupleExprElementSyntax> Args {
|
||||
Arg, Arg.withLabel(Y), Arg.withLabel(Z).withTrailingComma(NoComma)
|
||||
@@ -451,16 +451,16 @@ TEST(ExprSyntaxTests, FunctionCallExprGetAPIs) {
|
||||
SyntaxFactory Factory(Arena);
|
||||
auto Foo = Factory.makeIdentifier("foo", "", "");
|
||||
auto SymbolicRef = Factory.makeSymbolicReferenceExpr(
|
||||
/*GarbageNodes=*/None, Foo, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, Foo, /*UnexpectedNodes=*/None, None);
|
||||
auto LeftParen = Factory.makeLeftParenToken("", "");
|
||||
auto ArgList = getFullArgumentList(Arena);
|
||||
auto RightParen = Factory.makeRightParenToken("", "");
|
||||
|
||||
auto Call = Factory.makeFunctionCallExpr(
|
||||
/*GarbageNodes=*/None, SymbolicRef, /*GarbageNodes=*/None, LeftParen,
|
||||
/*GarbageNodes=*/None, ArgList,
|
||||
/*GarbageNodes=*/None, RightParen, /*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, SymbolicRef, /*UnexpectedNodes=*/None, LeftParen,
|
||||
/*UnexpectedNodes=*/None, ArgList,
|
||||
/*UnexpectedNodes=*/None, RightParen, /*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, None);
|
||||
|
||||
{
|
||||
auto GottenExpression1 = Call.getCalledExpression();
|
||||
@@ -491,17 +491,17 @@ TEST(ExprSyntaxTests, FunctionCallExprMakeAPIs) {
|
||||
SyntaxFactory Factory(Arena);
|
||||
auto Foo = Factory.makeIdentifier("foo", "", "");
|
||||
auto SymbolicRef = Factory.makeSymbolicReferenceExpr(
|
||||
/*GarbageNodes=*/None, Foo, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, Foo, /*UnexpectedNodes=*/None, None);
|
||||
auto LeftParen = Factory.makeLeftParenToken("", "");
|
||||
auto ArgList = getFullArgumentList(Arena);
|
||||
auto RightParen = Factory.makeRightParenToken("", "");
|
||||
|
||||
{
|
||||
auto Call = Factory.makeFunctionCallExpr(
|
||||
/*GarbageNodes=*/None, SymbolicRef, /*GarbageNodes=*/None, LeftParen,
|
||||
/*GarbageNodes=*/None, ArgList,
|
||||
/*GarbageNodes=*/None, RightParen, /*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, SymbolicRef, /*UnexpectedNodes=*/None, LeftParen,
|
||||
/*UnexpectedNodes=*/None, ArgList,
|
||||
/*UnexpectedNodes=*/None, RightParen, /*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, None);
|
||||
llvm::SmallString<64> Scratch;
|
||||
llvm::raw_svector_ostream OS(Scratch);
|
||||
Call.print(OS);
|
||||
@@ -521,7 +521,7 @@ TEST(ExprSyntaxTests, FunctionCallExprWithAPIs) {
|
||||
SyntaxFactory Factory(Arena);
|
||||
auto Foo = Factory.makeIdentifier("foo", "", "");
|
||||
auto SymbolicRef = Factory.makeSymbolicReferenceExpr(
|
||||
/*GarbageNodes=*/None, Foo, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, Foo, /*UnexpectedNodes=*/None, None);
|
||||
auto LeftParen = Factory.makeLeftParenToken("", "");
|
||||
auto ArgList = getFullArgumentList(Arena);
|
||||
auto RightParen = Factory.makeRightParenToken("", "");
|
||||
@@ -577,14 +577,14 @@ TEST(ExprSyntaxTests, FunctionCallExprBuilderAPIs) {
|
||||
auto OneDigits = Factory.makeIntegerLiteral("1", "", "");
|
||||
auto TwoDigits = Factory.makeIntegerLiteral("2", "", "");
|
||||
auto ThreeDigits = Factory.makeIntegerLiteral("3", "", "");
|
||||
auto One = Factory.makeIntegerLiteralExpr(/*GarbageNodes=*/None, OneDigits);
|
||||
auto One = Factory.makeIntegerLiteralExpr(/*UnexpectedNodes=*/None, OneDigits);
|
||||
auto NoLabel = TokenSyntax::missingToken(tok::identifier, "", Arena);
|
||||
auto NoColon = TokenSyntax::missingToken(tok::colon, ":", Arena);
|
||||
auto Comma = Factory.makeCommaToken("", " ");
|
||||
auto NoComma = TokenSyntax::missingToken(tok::comma, ",", Arena);
|
||||
auto Foo = Factory.makeIdentifier("foo", "", "");
|
||||
auto SymbolicRef = Factory.makeSymbolicReferenceExpr(
|
||||
/*GarbageNodes=*/None, Foo, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, Foo, /*UnexpectedNodes=*/None, None);
|
||||
|
||||
{
|
||||
llvm::SmallString<64> Scratch;
|
||||
@@ -595,8 +595,8 @@ TEST(ExprSyntaxTests, FunctionCallExprBuilderAPIs) {
|
||||
}
|
||||
|
||||
auto OneArg = Factory.makeTupleExprElement(
|
||||
/*GarbageNodes=*/None, NoLabel, /*GarbageNodes=*/None, NoColon,
|
||||
/*GarbageNodes=*/None, One, /*GarbageNodes=*/None, Comma);
|
||||
/*UnexpectedNodes=*/None, NoLabel, /*UnexpectedNodes=*/None, NoColon,
|
||||
/*UnexpectedNodes=*/None, One, /*UnexpectedNodes=*/None, Comma);
|
||||
{
|
||||
llvm::SmallString<64> Scratch;
|
||||
llvm::raw_svector_ostream OS(Scratch);
|
||||
|
||||
@@ -47,7 +47,7 @@ TEST(StmtSyntaxTests, FallthroughStmtMakeAPIs) {
|
||||
llvm::SmallString<48> Scratch;
|
||||
llvm::raw_svector_ostream OS(Scratch);
|
||||
|
||||
Factory.makeFallthroughStmt(/*GarbageNodes=*/None, FallthroughKW).print(OS);
|
||||
Factory.makeFallthroughStmt(/*UnexpectedNodes=*/None, FallthroughKW).print(OS);
|
||||
ASSERT_EQ(OS.str().str(), "fallthrough");
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ TEST(StmtSyntaxTests, FallthroughStmtMakeAPIs) {
|
||||
|
||||
auto NewFallthroughKW = FallthroughKW.withLeadingTrivia(" ");
|
||||
|
||||
Factory.makeFallthroughStmt(/*GarbageNodes=*/None, NewFallthroughKW)
|
||||
Factory.makeFallthroughStmt(/*UnexpectedNodes=*/None, NewFallthroughKW)
|
||||
.print(OS);
|
||||
ASSERT_EQ(OS.str().str(), " fallthrough");
|
||||
}
|
||||
@@ -69,7 +69,7 @@ TEST(StmtSyntaxTests, FallthroughStmtMakeAPIs) {
|
||||
auto NewFallthroughKW =
|
||||
FallthroughKW.withLeadingTrivia(" ").withTrailingTrivia(" ");
|
||||
|
||||
Factory.makeFallthroughStmt(/*GarbageNodes=*/None, NewFallthroughKW)
|
||||
Factory.makeFallthroughStmt(/*UnexpectedNodes=*/None, NewFallthroughKW)
|
||||
.print(OS);
|
||||
ASSERT_EQ(OS.str().str(), " fallthrough ");
|
||||
}
|
||||
@@ -90,8 +90,8 @@ TEST(StmtSyntaxTests, BreakStmtGetAPIs) {
|
||||
SyntaxFactory Factory(Arena);
|
||||
auto BreakKW = Factory.makeBreakKeyword("", " ");
|
||||
auto Label = Factory.makeIdentifier("sometimesYouNeedTo", "", "");
|
||||
auto Break = Factory.makeBreakStmt(/*GarbageNodes=*/None, BreakKW,
|
||||
/*GarbageNodes=*/None, Label);
|
||||
auto Break = Factory.makeBreakStmt(/*UnexpectedNodes=*/None, BreakKW,
|
||||
/*UnexpectedNodes=*/None, Label);
|
||||
|
||||
/// These should be directly shared through reference-counting.
|
||||
ASSERT_EQ(BreakKW.getRaw(), Break.getBreakKeyword().getRaw());
|
||||
@@ -143,8 +143,8 @@ TEST(StmtSyntaxTests, BreakStmtMakeAPIs) {
|
||||
llvm::raw_svector_ostream OS(Scratch);
|
||||
auto BreakKW = Factory.makeBreakKeyword("", " ");
|
||||
auto Label = Factory.makeIdentifier("theBuild", "", "");
|
||||
auto Break = Factory.makeBreakStmt(/*GarbageNodes=*/None, BreakKW,
|
||||
/*GarbageNodes=*/None, Label);
|
||||
auto Break = Factory.makeBreakStmt(/*UnexpectedNodes=*/None, BreakKW,
|
||||
/*UnexpectedNodes=*/None, Label);
|
||||
Break.print(OS);
|
||||
ASSERT_EQ(OS.str().str(), "break theBuild"); // don't you dare
|
||||
}
|
||||
@@ -163,8 +163,8 @@ TEST(StmtSyntaxTests, ContinueStmtGetAPIs) {
|
||||
SyntaxFactory Factory(Arena);
|
||||
auto ContinueKW = Factory.makeContinueKeyword("", " ");
|
||||
auto Label = Factory.makeIdentifier("always", "", "");
|
||||
auto Continue = Factory.makeContinueStmt(/*GarbageNodes=*/None, ContinueKW,
|
||||
/*GarbageNodes=*/None, Label);
|
||||
auto Continue = Factory.makeContinueStmt(/*UnexpectedNodes=*/None, ContinueKW,
|
||||
/*UnexpectedNodes=*/None, Label);
|
||||
|
||||
/// These should be directly shared through reference-counting.
|
||||
ASSERT_EQ(ContinueKW.getRaw(), Continue.getContinueKeyword().getRaw());
|
||||
@@ -215,8 +215,8 @@ TEST(StmtSyntaxTests, ContinueStmtMakeAPIs) {
|
||||
llvm::raw_svector_ostream OS(Scratch);
|
||||
auto ContinueKW = Factory.makeContinueKeyword("", " ");
|
||||
auto Label = Factory.makeIdentifier("toLead", "", "");
|
||||
auto Continue = Factory.makeContinueStmt(/*GarbageNodes=*/None, ContinueKW,
|
||||
/*GarbageNodes=*/None, Label);
|
||||
auto Continue = Factory.makeContinueStmt(/*UnexpectedNodes=*/None, ContinueKW,
|
||||
/*UnexpectedNodes=*/None, Label);
|
||||
Continue.print(OS);
|
||||
ASSERT_EQ(OS.str().str(), "continue toLead"); // by example
|
||||
}
|
||||
@@ -237,9 +237,9 @@ TEST(StmtSyntaxTests, ReturnStmtMakeAPIs) {
|
||||
auto Minus = Factory.makePrefixOperator("-", "", "");
|
||||
auto OneDigits = Factory.makeIntegerLiteral("1", "", "");
|
||||
auto OneLiteral =
|
||||
Factory.makeIntegerLiteralExpr(/*GarbageNodes=*/None, OneDigits);
|
||||
Factory.makeIntegerLiteralExpr(/*UnexpectedNodes=*/None, OneDigits);
|
||||
auto MinusOne = Factory.makePrefixOperatorExpr(
|
||||
/*GarbageNodes=*/None, Minus, /*GarbageNodes=*/None, OneLiteral);
|
||||
/*UnexpectedNodes=*/None, Minus, /*UnexpectedNodes=*/None, OneLiteral);
|
||||
|
||||
{
|
||||
llvm::SmallString<48> Scratch;
|
||||
@@ -252,7 +252,7 @@ TEST(StmtSyntaxTests, ReturnStmtMakeAPIs) {
|
||||
llvm::SmallString<48> Scratch;
|
||||
llvm::raw_svector_ostream OS(Scratch);
|
||||
Factory
|
||||
.makeReturnStmt(/*GarbageNodes=*/None, ReturnKW, /*GarbageNodes=*/None,
|
||||
.makeReturnStmt(/*UnexpectedNodes=*/None, ReturnKW, /*UnexpectedNodes=*/None,
|
||||
MinusOne)
|
||||
.print(OS);
|
||||
ASSERT_EQ(OS.str().str(), "return -1");
|
||||
@@ -266,11 +266,11 @@ TEST(StmtSyntaxTests, ReturnStmtGetAPIs) {
|
||||
auto Minus = Factory.makePrefixOperator("-", "", "");
|
||||
auto OneDigits = Factory.makeIntegerLiteral("1", "", "");
|
||||
auto OneLiteral =
|
||||
Factory.makeIntegerLiteralExpr(/*GarbageNodes=*/None, OneDigits);
|
||||
Factory.makeIntegerLiteralExpr(/*UnexpectedNodes=*/None, OneDigits);
|
||||
auto MinusOne = Factory.makePrefixOperatorExpr(
|
||||
/*GarbageNodes=*/None, Minus, /*GarbageNodes=*/None, OneLiteral);
|
||||
auto Return = Factory.makeReturnStmt(/*GarbageNodes=*/None, ReturnKW,
|
||||
/*GarbageNodes=*/None, MinusOne);
|
||||
/*UnexpectedNodes=*/None, Minus, /*UnexpectedNodes=*/None, OneLiteral);
|
||||
auto Return = Factory.makeReturnStmt(/*UnexpectedNodes=*/None, ReturnKW,
|
||||
/*UnexpectedNodes=*/None, MinusOne);
|
||||
|
||||
ASSERT_EQ(ReturnKW.getRaw(), Return.getReturnKeyword().getRaw());
|
||||
auto GottenExpression = Return.getExpression().getValue();
|
||||
@@ -285,9 +285,9 @@ TEST(StmtSyntaxTests, ReturnStmtWithAPIs) {
|
||||
auto Minus = Factory.makePrefixOperator("-", "", "");
|
||||
auto OneDigits = Factory.makeIntegerLiteral("1", "", "");
|
||||
auto OneLiteral =
|
||||
Factory.makeIntegerLiteralExpr(/*GarbageNodes=*/None, OneDigits);
|
||||
Factory.makeIntegerLiteralExpr(/*UnexpectedNodes=*/None, OneDigits);
|
||||
auto MinusOne = Factory.makePrefixOperatorExpr(
|
||||
/*GarbageNodes=*/None, Minus, /*GarbageNodes=*/None, OneLiteral);
|
||||
/*UnexpectedNodes=*/None, Minus, /*UnexpectedNodes=*/None, OneLiteral);
|
||||
|
||||
{
|
||||
llvm::SmallString<48> Scratch;
|
||||
|
||||
@@ -14,12 +14,12 @@ TupleExprElementSyntax getCannedArgument(const RC<SyntaxArena> &Arena) {
|
||||
auto Foo = Factory.makeIdentifier("foo", "", "");
|
||||
auto Colon = Factory.makeColonToken("", " ");
|
||||
auto SymbolicRef = Factory.makeSymbolicReferenceExpr(
|
||||
/*GarbageNodes=*/None, Foo, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, Foo, /*UnexpectedNodes=*/None, None);
|
||||
auto Comma = Factory.makeCommaToken("", " ");
|
||||
|
||||
return Factory.makeTupleExprElement(
|
||||
/*GarbageNodes=*/None, X, /*GarbageNodes=*/None, Colon,
|
||||
/*GarbageNodes=*/None, SymbolicRef, /*GarbageNodes=*/None, Comma);
|
||||
/*UnexpectedNodes=*/None, X, /*UnexpectedNodes=*/None, Colon,
|
||||
/*UnexpectedNodes=*/None, SymbolicRef, /*UnexpectedNodes=*/None, Comma);
|
||||
}
|
||||
|
||||
TEST(SyntaxCollectionTests, empty) {
|
||||
|
||||
@@ -52,7 +52,7 @@ TEST(TriviaTests, Empty) {
|
||||
ASSERT_DEATH({
|
||||
llvm::SmallString<1> Scratch;
|
||||
llvm::raw_svector_ostream OS(Scratch);
|
||||
Trivia::garbageText("").print(OS);
|
||||
Trivia::unexpectedText("").print(OS);
|
||||
ASSERT_EQ(OS.str().str(), "");
|
||||
}, "");
|
||||
#endif
|
||||
@@ -163,7 +163,7 @@ TEST(TriviaTests, Contains) {
|
||||
ASSERT_FALSE(Trivia().contains(TriviaKind::DocBlockComment));
|
||||
ASSERT_FALSE(Trivia().contains(TriviaKind::DocLineComment));
|
||||
ASSERT_FALSE(Trivia().contains(TriviaKind::Formfeed));
|
||||
ASSERT_FALSE(Trivia().contains(TriviaKind::GarbageText));
|
||||
ASSERT_FALSE(Trivia().contains(TriviaKind::UnexpectedText));
|
||||
ASSERT_FALSE(Trivia().contains(TriviaKind::LineComment));
|
||||
ASSERT_FALSE(Trivia().contains(TriviaKind::Newline));
|
||||
ASSERT_FALSE(Trivia().contains(TriviaKind::Space));
|
||||
|
||||
@@ -101,11 +101,11 @@ TEST(TypeSyntaxTests, TypeAttributeMakeAPIs) {
|
||||
llvm::raw_svector_ostream OS { Scratch };
|
||||
auto cID = Factory.makeIdentifier("c", "", "");
|
||||
Factory
|
||||
.makeAttribute(/*GarbageNodes=*/None, At, /*GarbageNodes=*/None,
|
||||
conventionID, /*GarbageNodes=*/None, LeftParen,
|
||||
/*GarbageNodes=*/None, cID, /*GarbageNodes=*/None,
|
||||
.makeAttribute(/*UnexpectedNodes=*/None, At, /*UnexpectedNodes=*/None,
|
||||
conventionID, /*UnexpectedNodes=*/None, LeftParen,
|
||||
/*UnexpectedNodes=*/None, cID, /*UnexpectedNodes=*/None,
|
||||
RightParen,
|
||||
/*GarbageNodes=*/None, None)
|
||||
/*UnexpectedNodes=*/None, None)
|
||||
.print(OS);
|
||||
ASSERT_EQ(OS.str().str(), "@convention(c)");
|
||||
}
|
||||
@@ -115,11 +115,11 @@ TEST(TypeSyntaxTests, TypeAttributeMakeAPIs) {
|
||||
llvm::raw_svector_ostream OS { Scratch };
|
||||
auto swiftID = Factory.makeIdentifier("swift", "", "");
|
||||
Factory
|
||||
.makeAttribute(/*GarbageNodes=*/None, At, /*GarbageNodes=*/None,
|
||||
conventionID, /*GarbageNodes=*/None, LeftParen,
|
||||
/*GarbageNodes=*/None, swiftID, /*GarbageNodes=*/None,
|
||||
.makeAttribute(/*UnexpectedNodes=*/None, At, /*UnexpectedNodes=*/None,
|
||||
conventionID, /*UnexpectedNodes=*/None, LeftParen,
|
||||
/*UnexpectedNodes=*/None, swiftID, /*UnexpectedNodes=*/None,
|
||||
RightParen,
|
||||
/*GarbageNodes=*/None, None)
|
||||
/*UnexpectedNodes=*/None, None)
|
||||
.print(OS);
|
||||
ASSERT_EQ(OS.str().str(), "@convention(swift)");
|
||||
}
|
||||
@@ -129,11 +129,11 @@ TEST(TypeSyntaxTests, TypeAttributeMakeAPIs) {
|
||||
llvm::raw_svector_ostream OS { Scratch };
|
||||
auto blockID = Factory.makeIdentifier("block", "", "");
|
||||
Factory
|
||||
.makeAttribute(/*GarbageNodes=*/None, At, /*GarbageNodes=*/None,
|
||||
conventionID, /*GarbageNodes=*/None, LeftParen,
|
||||
/*GarbageNodes=*/None, blockID, /*GarbageNodes=*/None,
|
||||
.makeAttribute(/*UnexpectedNodes=*/None, At, /*UnexpectedNodes=*/None,
|
||||
conventionID, /*UnexpectedNodes=*/None, LeftParen,
|
||||
/*UnexpectedNodes=*/None, blockID, /*UnexpectedNodes=*/None,
|
||||
RightParen,
|
||||
/*GarbageNodes=*/None, None)
|
||||
/*UnexpectedNodes=*/None, None)
|
||||
.print(OS);
|
||||
ASSERT_EQ(OS.str().str(), "@convention(block)");
|
||||
}
|
||||
@@ -214,12 +214,12 @@ TEST(TypeSyntaxTests, TupleBuilderAPIs) {
|
||||
auto NoComma = TokenSyntax::missingToken(tok::comma, ",", Arena);
|
||||
auto IntId = Factory.makeIdentifier("Int", "", "");
|
||||
auto IntType = Factory.makeSimpleTypeIdentifier(
|
||||
/*GarbageNodes=*/None, IntId, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, IntId, /*UnexpectedNodes=*/None, None);
|
||||
auto Int = Factory.makeTupleTypeElement(IntType, NoComma);
|
||||
auto IntWithComma = Factory.makeTupleTypeElement(IntType, Comma);
|
||||
auto StringId = Factory.makeIdentifier("String", "", "");
|
||||
auto StringType = Factory.makeSimpleTypeIdentifier(
|
||||
/*GarbageNodes=*/None, StringId, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, StringId, /*UnexpectedNodes=*/None, None);
|
||||
auto String = Factory.makeTupleTypeElement(StringType, Comma);
|
||||
Builder.addElement(IntWithComma);
|
||||
Builder.addElement(String);
|
||||
@@ -284,9 +284,9 @@ TEST(TypeSyntaxTests, TupleMakeAPIs) {
|
||||
Factory.makeTupleTypeElement(Int, None)});
|
||||
auto RightParen = Factory.makeRightParenToken("", "");
|
||||
auto TupleType =
|
||||
Factory.makeTupleType(/*GarbageNodes=*/None, LeftParen,
|
||||
/*GarbageNodes=*/None, TupleElementList,
|
||||
/*GarbageNodes=*/None, RightParen);
|
||||
Factory.makeTupleType(/*UnexpectedNodes=*/None, LeftParen,
|
||||
/*UnexpectedNodes=*/None, TupleElementList,
|
||||
/*UnexpectedNodes=*/None, RightParen);
|
||||
TupleType.print(OS);
|
||||
ASSERT_EQ(OS.str().str(),
|
||||
"(Int, Bool, Int, Bool, Int)");
|
||||
@@ -322,7 +322,7 @@ TEST(TypeSyntaxTests, OptionalTypeMakeAPIs) {
|
||||
auto Int = Factory.makeTypeIdentifier("Int", "", "");
|
||||
auto Question = Factory.makePostfixQuestionMarkToken("", "");
|
||||
auto OptionalInt = Factory.makeOptionalType(
|
||||
/*GarbageNodes=*/None, Int, /*GarbageNodes=*/None, Question);
|
||||
/*UnexpectedNodes=*/None, Int, /*UnexpectedNodes=*/None, Question);
|
||||
OptionalInt.print(OS);
|
||||
ASSERT_EQ(OS.str(), "Int?");
|
||||
}
|
||||
@@ -352,7 +352,7 @@ TEST(TypeSyntaxTests, ImplicitlyUnwrappedOptionalTypeMakeAPIs) {
|
||||
auto Int = Factory.makeTypeIdentifier("Int", "", "");
|
||||
auto Bang = Factory.makeExclamationMarkToken("", "");
|
||||
auto IntBang = Factory.makeImplicitlyUnwrappedOptionalType(
|
||||
/*GarbageNodes=*/None, Int, /*GarbageNodes=*/None, Bang);
|
||||
/*UnexpectedNodes=*/None, Int, /*UnexpectedNodes=*/None, Bang);
|
||||
IntBang.print(OS);
|
||||
ASSERT_EQ(OS.str(), "Int!");
|
||||
}
|
||||
@@ -383,8 +383,8 @@ TEST(TypeSyntaxTests, MetatypeTypeMakeAPIs) {
|
||||
auto Dot = Factory.makePeriodToken("", "");
|
||||
auto Type = Factory.makeTypeToken("", "");
|
||||
Factory
|
||||
.makeMetatypeType(/*GarbageNodes=*/None, Int, /*GarbageNodes=*/None,
|
||||
Dot, /*GarbageNodes=*/None, Type)
|
||||
.makeMetatypeType(/*UnexpectedNodes=*/None, Int, /*UnexpectedNodes=*/None,
|
||||
Dot, /*UnexpectedNodes=*/None, Type)
|
||||
.print(OS);
|
||||
ASSERT_EQ(OS.str(), "T.Type");
|
||||
}
|
||||
@@ -459,8 +459,8 @@ TEST(TypeSyntaxTests, ArrayTypeMakeAPIs) {
|
||||
auto RightSquare = Factory.makeRightSquareBracketToken("", "");
|
||||
auto Void = Factory.makeVoidTupleType();
|
||||
Factory
|
||||
.makeArrayType(/*GarbageNodes=*/None, LeftSquare, /*GarbageNodes=*/None,
|
||||
Void, /*GarbageNodes=*/None, RightSquare)
|
||||
.makeArrayType(/*UnexpectedNodes=*/None, LeftSquare, /*UnexpectedNodes=*/None,
|
||||
Void, /*UnexpectedNodes=*/None, RightSquare)
|
||||
.print(OS);
|
||||
ASSERT_EQ(OS.str(), "[()]");
|
||||
}
|
||||
@@ -502,10 +502,10 @@ TEST(TypeSyntaxTests, DictionaryTypeMakeAPIs) {
|
||||
auto Value = Factory.makeTypeIdentifier("Int", "", "");
|
||||
auto Colon = Factory.makeColonToken("", " ");
|
||||
Factory
|
||||
.makeDictionaryType(/*GarbageNodes=*/None, LeftSquare,
|
||||
/*GarbageNodes=*/None, Key, /*GarbageNodes=*/None,
|
||||
Colon, /*GarbageNodes=*/None, Value,
|
||||
/*GarbageNodes=*/None, RightSquare)
|
||||
.makeDictionaryType(/*UnexpectedNodes=*/None, LeftSquare,
|
||||
/*UnexpectedNodes=*/None, Key, /*UnexpectedNodes=*/None,
|
||||
Colon, /*UnexpectedNodes=*/None, Value,
|
||||
/*UnexpectedNodes=*/None, RightSquare)
|
||||
.print(OS);
|
||||
ASSERT_EQ(OS.str(), "[String : Int]");
|
||||
}
|
||||
@@ -544,10 +544,10 @@ TEST(TypeSyntaxTests, FunctionTypeMakeAPIs) {
|
||||
auto TypeList = Factory.makeTupleTypeElementList({xArg, yArg});
|
||||
Factory
|
||||
.makeFunctionType(
|
||||
/*GarbageNodes=*/None, LeftParen, /*GarbageNodes=*/None, TypeList,
|
||||
/*GarbageNodes=*/None, RightParen, /*GarbageNodes=*/None, Async,
|
||||
/*GarbageNodes=*/None, Throws, /*GarbageNodes=*/None, Arrow,
|
||||
/*GarbageNodes=*/None, Int)
|
||||
/*UnexpectedNodes=*/None, LeftParen, /*UnexpectedNodes=*/None, TypeList,
|
||||
/*UnexpectedNodes=*/None, RightParen, /*UnexpectedNodes=*/None, Async,
|
||||
/*UnexpectedNodes=*/None, Throws, /*UnexpectedNodes=*/None, Arrow,
|
||||
/*UnexpectedNodes=*/None, Int)
|
||||
.print(OS);
|
||||
ASSERT_EQ(OS.str().str(), "(x: Int, y: Int) async throws -> Int");
|
||||
}
|
||||
@@ -571,10 +571,10 @@ TEST(TypeSyntaxTests, FunctionTypeMakeAPIs) {
|
||||
auto TypeList = Factory.makeTupleTypeElementList({xArg, yArg});
|
||||
Factory
|
||||
.makeFunctionType(
|
||||
/*GarbageNodes=*/None, LeftParen, /*GarbageNodes=*/None, TypeList,
|
||||
/*GarbageNodes=*/None, RightParen, /*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, Throws, /*GarbageNodes=*/None, Arrow,
|
||||
/*GarbageNodes=*/None, Int)
|
||||
/*UnexpectedNodes=*/None, LeftParen, /*UnexpectedNodes=*/None, TypeList,
|
||||
/*UnexpectedNodes=*/None, RightParen, /*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, Throws, /*UnexpectedNodes=*/None, Arrow,
|
||||
/*UnexpectedNodes=*/None, Int)
|
||||
.print(OS);
|
||||
ASSERT_EQ(OS.str().str(), "(x: Int, y: Int) throws -> Int");
|
||||
}
|
||||
@@ -585,10 +585,10 @@ TEST(TypeSyntaxTests, FunctionTypeMakeAPIs) {
|
||||
{IntArg.withTrailingComma(Comma), IntArg});
|
||||
Factory
|
||||
.makeFunctionType(
|
||||
/*GarbageNodes=*/None, LeftParen, /*GarbageNodes=*/None, TypeList,
|
||||
/*GarbageNodes=*/None, RightParen, /*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, Rethrows,
|
||||
/*GarbageNodes=*/None, Arrow, /*GarbageNodes=*/None, Int)
|
||||
/*UnexpectedNodes=*/None, LeftParen, /*UnexpectedNodes=*/None, TypeList,
|
||||
/*UnexpectedNodes=*/None, RightParen, /*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, Rethrows,
|
||||
/*UnexpectedNodes=*/None, Arrow, /*UnexpectedNodes=*/None, Int)
|
||||
.print(OS);
|
||||
ASSERT_EQ(OS.str().str(), "(Int, Int) rethrows -> Int");
|
||||
}
|
||||
@@ -601,10 +601,10 @@ TEST(TypeSyntaxTests, FunctionTypeMakeAPIs) {
|
||||
auto ThrowsTok = TokenSyntax::missingToken(tok::kw_throws, "throws", Arena);
|
||||
Factory
|
||||
.makeFunctionType(
|
||||
/*GarbageNodes=*/None, LeftParen, /*GarbageNodes=*/None, TypeList,
|
||||
/*GarbageNodes=*/None, RightParen, /*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, ThrowsTok, /*GarbageNodes=*/None, Arrow,
|
||||
/*GarbageNodes=*/None, Void)
|
||||
/*UnexpectedNodes=*/None, LeftParen, /*UnexpectedNodes=*/None, TypeList,
|
||||
/*UnexpectedNodes=*/None, RightParen, /*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, ThrowsTok, /*UnexpectedNodes=*/None, Arrow,
|
||||
/*UnexpectedNodes=*/None, Void)
|
||||
.print(OS);
|
||||
ASSERT_EQ(OS.str().str(), "() -> ()");
|
||||
}
|
||||
@@ -618,10 +618,10 @@ TEST(TypeSyntaxTests, FunctionTypeWithAPIs) {
|
||||
auto RightParen = Factory.makeRightParenToken("", " ");
|
||||
auto Int = Factory.makeTypeIdentifier("Int", "", "");
|
||||
auto IntArg = Factory.makeTupleTypeElement(
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, Int, /*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, Int, /*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, None);
|
||||
auto Throws = Factory.makeThrowsKeyword("", " ");
|
||||
auto Rethrows = Factory.makeRethrowsKeyword("", " ");
|
||||
auto Arrow = Factory.makeArrowToken("", " ");
|
||||
@@ -633,15 +633,15 @@ TEST(TypeSyntaxTests, FunctionTypeWithAPIs) {
|
||||
auto y = Factory.makeIdentifier("y", "", "");
|
||||
auto Colon = Factory.makeColonToken("", " ");
|
||||
auto xArg = Factory.makeTupleTypeElement(
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, x,
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, Colon,
|
||||
/*GarbageNodes=*/None, Int, /*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, Comma);
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, x,
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, Colon,
|
||||
/*UnexpectedNodes=*/None, Int, /*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, Comma);
|
||||
auto yArg = Factory.makeTupleTypeElement(
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, y,
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, Colon,
|
||||
/*GarbageNodes=*/None, Int, /*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, y,
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, Colon,
|
||||
/*UnexpectedNodes=*/None, Int, /*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, None);
|
||||
|
||||
Factory.makeBlankFunctionType()
|
||||
.withLeftParen(LeftParen)
|
||||
@@ -705,15 +705,15 @@ TEST(TypeSyntaxTests, FunctionTypeBuilderAPIs) {
|
||||
auto y = Factory.makeIdentifier("y", "", "");
|
||||
auto Colon = Factory.makeColonToken("", " ");
|
||||
auto xArg = Factory.makeTupleTypeElement(
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, x,
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, Colon,
|
||||
/*GarbageNodes=*/None, Int, /*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, Comma);
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, x,
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, Colon,
|
||||
/*UnexpectedNodes=*/None, Int, /*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, Comma);
|
||||
auto yArg = Factory.makeTupleTypeElement(
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, y,
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, Colon,
|
||||
/*GarbageNodes=*/None, Int, /*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, y,
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, Colon,
|
||||
/*UnexpectedNodes=*/None, Int, /*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, None);
|
||||
|
||||
Builder.useLeftParen(LeftParen)
|
||||
.useRightParen(RightParen)
|
||||
@@ -732,11 +732,11 @@ TEST(TypeSyntaxTests, FunctionTypeBuilderAPIs) {
|
||||
llvm::raw_svector_ostream OS(Scratch);
|
||||
FunctionTypeSyntaxBuilder Builder(Arena);
|
||||
auto IntArg = Factory.makeTupleTypeElement(
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, Int,
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, Int,
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, None);
|
||||
Builder.useLeftParen(LeftParen)
|
||||
.useRightParen(RightParen)
|
||||
.addArgument(IntArg.withTrailingComma(Comma))
|
||||
|
||||
@@ -15,17 +15,17 @@ SymbolicReferenceExprSyntax getCannedSymbolicRef(const RC<SyntaxArena> &Arena) {
|
||||
// First, make a symbolic reference to an 'Array<Int>'
|
||||
auto Array = Factory.makeIdentifier("Array", {}, {});
|
||||
auto Int = Factory.makeIdentifier("Int", {}, {});
|
||||
auto IntType = Factory.makeSimpleTypeIdentifier(/*GarbageNodes=*/None, Int,
|
||||
/*GarbageNodes=*/None, None);
|
||||
auto IntArg = Factory.makeGenericArgument(/*GarbageNodes=*/None, IntType,
|
||||
/*GarbageNodes=*/None, None);
|
||||
auto IntType = Factory.makeSimpleTypeIdentifier(/*UnexpectedNodes=*/None, Int,
|
||||
/*UnexpectedNodes=*/None, None);
|
||||
auto IntArg = Factory.makeGenericArgument(/*UnexpectedNodes=*/None, IntType,
|
||||
/*UnexpectedNodes=*/None, None);
|
||||
GenericArgumentClauseSyntaxBuilder ArgBuilder(Arena);
|
||||
ArgBuilder.useLeftAngleBracket(Factory.makeLeftAngleToken({}, {}))
|
||||
.useRightAngleBracket(Factory.makeRightAngleToken({}, {}))
|
||||
.addArgument(IntArg);
|
||||
|
||||
return Factory.makeSymbolicReferenceExpr(
|
||||
/*GarbageNodes=*/None, Array, /*GarbageNodes=*/None, ArgBuilder.build());
|
||||
/*UnexpectedNodes=*/None, Array, /*UnexpectedNodes=*/None, ArgBuilder.build());
|
||||
}
|
||||
|
||||
FunctionCallExprSyntax getCannedFunctionCall(const RC<SyntaxArena> &Arena) {
|
||||
@@ -38,21 +38,21 @@ FunctionCallExprSyntax getCannedFunctionCall(const RC<SyntaxArena> &Arena) {
|
||||
auto OneDigits = Factory.makeIntegerLiteral("1", {}, {});
|
||||
auto NoSign = TokenSyntax::missingToken(tok::oper_prefix, "", Arena);
|
||||
auto OneLiteral =
|
||||
Factory.makeIntegerLiteralExpr(/*GarbageNodes=*/None, OneDigits);
|
||||
auto One = Factory.makePrefixOperatorExpr(/*GarbageNodes=*/None, NoSign,
|
||||
/*GarbageNodes=*/None, OneLiteral);
|
||||
Factory.makeIntegerLiteralExpr(/*UnexpectedNodes=*/None, OneDigits);
|
||||
auto One = Factory.makePrefixOperatorExpr(/*UnexpectedNodes=*/None, NoSign,
|
||||
/*UnexpectedNodes=*/None, OneLiteral);
|
||||
auto NoComma = TokenSyntax::missingToken(tok::comma, ",", Arena);
|
||||
|
||||
auto Arg = Factory.makeTupleExprElement(
|
||||
/*GarbageNodes=*/None, Label, /*GarbageNodes=*/None, Colon,
|
||||
/*GarbageNodes=*/None, One, /*GarbageNodes=*/None, NoComma);
|
||||
/*UnexpectedNodes=*/None, Label, /*UnexpectedNodes=*/None, Colon,
|
||||
/*UnexpectedNodes=*/None, One, /*UnexpectedNodes=*/None, NoComma);
|
||||
auto Args = Factory.makeTupleExprElementList({Arg});
|
||||
|
||||
return Factory.makeFunctionCallExpr(
|
||||
/*GarbageNodes=*/None, getCannedSymbolicRef(Arena), /*GarbageNodes=*/None,
|
||||
LParen, /*GarbageNodes=*/None, Args,
|
||||
/*GarbageNodes=*/None, RParen, /*GarbageNodes=*/None, None,
|
||||
/*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, getCannedSymbolicRef(Arena), /*UnexpectedNodes=*/None,
|
||||
LParen, /*UnexpectedNodes=*/None, Args,
|
||||
/*UnexpectedNodes=*/None, RParen, /*UnexpectedNodes=*/None, None,
|
||||
/*UnexpectedNodes=*/None, None);
|
||||
}
|
||||
|
||||
TEST(UnknownSyntaxTests, UnknownSyntaxMakeAPIs) {
|
||||
@@ -157,9 +157,9 @@ TEST(UnknownSyntaxTests, EmbedUnknownExpr) {
|
||||
SmallString<48> KnownScratch;
|
||||
llvm::raw_svector_ostream KnownOS(KnownScratch);
|
||||
auto CallWithKnownExpr = Factory.makeFunctionCallExpr(
|
||||
/*GarbageNodes=*/None, SymbolicRef, /*GarbageNodes=*/None, LParen,
|
||||
/*GarbageNodes=*/None, EmptyArgs, /*GarbageNodes=*/None, RParen,
|
||||
/*GarbageNodes=*/None, None, /*GarbageNodes=*/None, None);
|
||||
/*UnexpectedNodes=*/None, SymbolicRef, /*UnexpectedNodes=*/None, LParen,
|
||||
/*UnexpectedNodes=*/None, EmptyArgs, /*UnexpectedNodes=*/None, RParen,
|
||||
/*UnexpectedNodes=*/None, None, /*UnexpectedNodes=*/None, None);
|
||||
CallWithKnownExpr.print(KnownOS);
|
||||
|
||||
// Let's make a function call expression where the called expression is
|
||||
|
||||
@@ -84,5 +84,5 @@ class Child(object):
|
||||
return self.token_choices[0]
|
||||
return None
|
||||
|
||||
def is_garbage_nodes(self):
|
||||
return self.syntax_kind == 'GarbageNodes'
|
||||
def is_unexpected_nodes(self):
|
||||
return self.syntax_kind == 'UnexpectedNodes'
|
||||
|
||||
@@ -63,7 +63,7 @@ COMMON_NODES = [
|
||||
requires_leading_newline=True),
|
||||
]),
|
||||
|
||||
Node('GarbageNodes', kind='SyntaxCollection', element='Syntax',
|
||||
Node('UnexpectedNodes', kind='SyntaxCollection', element='Syntax',
|
||||
description='''
|
||||
A collection of syntax nodes that occurred in the source code but
|
||||
could not be used to form a valid syntax tree.
|
||||
|
||||
@@ -24,27 +24,27 @@ class Node(object):
|
||||
|
||||
self.traits = traits or []
|
||||
self.children = []
|
||||
# Add implicitly generated GarbageNodes children in between any two
|
||||
# Add implicitly generated UnexpectedNodes children in between any two
|
||||
# defined children
|
||||
if kind != 'SyntaxCollection':
|
||||
for i in range(2 * len(children)):
|
||||
if i % 2 == 0:
|
||||
if i == 0:
|
||||
name = 'GarbageBefore' + children[0].name
|
||||
name = 'UnexpectedBefore' + children[0].name
|
||||
else:
|
||||
name = 'GarbageBetween%sAnd%s' % \
|
||||
name = 'UnexpectedBetween%sAnd%s' % \
|
||||
(children[int(i / 2) - 1].name, children[int(i / 2)].name)
|
||||
self.children.append(Child(
|
||||
name,
|
||||
kind='GarbageNodes',
|
||||
kind='UnexpectedNodes',
|
||||
collection_element_name=name,
|
||||
is_optional=True
|
||||
))
|
||||
else:
|
||||
self.children.append(children[int((i - 1) / 2)])
|
||||
|
||||
self.non_garbage_children = \
|
||||
[child for child in children if not child.is_garbage_nodes()]
|
||||
self.non_unexpected_children = \
|
||||
[child for child in children if not child.is_unexpected_nodes()]
|
||||
|
||||
self.base_kind = kind
|
||||
if self.base_kind == 'SyntaxCollection':
|
||||
|
||||
@@ -267,7 +267,7 @@ SYNTAX_NODE_SERIALIZATION_CODES = {
|
||||
'MissingStmt': 263,
|
||||
'MissingType': 264,
|
||||
'MissingPattern': 265,
|
||||
'GarbageNodes' : 266,
|
||||
'UnexpectedNodes' : 266,
|
||||
'LabeledStmt': 267,
|
||||
'InfixOperatorExpr': 268,
|
||||
'MoveExpr': 269,
|
||||
|
||||
@@ -58,7 +58,8 @@ TRIVIAS = [
|
||||
'A documentation block comment, starting with \'/**\' and ending '
|
||||
'with \'*/\'.',
|
||||
is_comment=True, serialization_code=11),
|
||||
Trivia('GarbageText', 'Any skipped garbage text.', serialization_code=12),
|
||||
Trivia('UnexpectedText', 'Any skipped unexpected text.',
|
||||
serialization_code=12),
|
||||
Trivia('Shebang', 'A script command, starting with \'#!\'.',
|
||||
serialization_code=13),
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user