We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
2 parents bcfa805 + 003b362 commit 5e9470aCopy full SHA for 5e9470a
include/swift/Syntax/Trivia.h.gyb
@@ -366,6 +366,7 @@ private:
366
case TriviaKind::DocBlockComment:
367
return Text.startswith("/**") && Text.endswith("*/");
368
case TriviaKind::GarbageText:
369
+ case TriviaKind::Shebang:
370
return !Text.empty();
371
% for trivia in TRIVIAS:
372
% if trivia.is_collection():
lib/Parse/Lexer.cpp
@@ -3214,7 +3214,7 @@ ParsedTrivia TriviaLexer::lexTrivia(StringRef TriviaStr) {
3214
// Hashbang '#!/path/to/swift'.
3215
advanceToEndOfLine(CurPtr, BufferEnd);
3216
size_t Length = CurPtr - TriviaStart;
3217
- Pieces.push_back(TriviaKind::GarbageText, Length);
+ Pieces.push_back(TriviaKind::Shebang, Length);
3218
continue;
3219
}
3220
break;
unittests/Parse/LexerTriviaTests.cpp
@@ -109,7 +109,7 @@ TEST_F(LexerTriviaTest, TriviaHashbang) {
109
ASSERT_EQ(LeadingTrivia, "#!/bin/swift\n");
110
ASSERT_EQ(TrailingTrivia, "");
111
ASSERT_EQ(LeadingTriviaPieces, (ParsedTrivia{{
112
- ParsedTriviaPiece(TriviaKind::GarbageText, strlen("#!/bin/swift")),
+ ParsedTriviaPiece(TriviaKind::Shebang, strlen("#!/bin/swift")),
113
ParsedTriviaPiece(TriviaKind::Newline, 1)}}));
114
ASSERT_EQ(TrailingTriviaPieces, ParsedTrivia());
115
@@ -140,7 +140,7 @@ TEST_F(LexerTriviaTest, TriviaHashbangAfterBOM) {
140
141
142
ParsedTriviaPiece(TriviaKind::GarbageText, strlen("\xEF\xBB\xBF")),
143
144
145
146
unittests/Syntax/TriviaTests.cpp
@@ -173,7 +173,7 @@ TEST(TriviaTests, Contains) {
173
.contains(TriviaKind::DocBlockComment));
174
ASSERT_TRUE(Trivia::docLineComment("///")
175
.contains(TriviaKind::DocLineComment));
176
- ASSERT_TRUE(Trivia::garbageText("#!swift").contains(TriviaKind::GarbageText));
+ ASSERT_TRUE(Trivia::shebang("#!swift").contains(TriviaKind::Shebang));
177
ASSERT_TRUE(Trivia::lineComment("//").contains(TriviaKind::LineComment));
178
ASSERT_TRUE(Trivia::newlines(1).contains(TriviaKind::Newline));
179
ASSERT_TRUE(Trivia::spaces(1).contains(TriviaKind::Space));
utils/gyb_syntax_support/Trivia.py
@@ -59,6 +59,8 @@ def is_collection(self):
59
'with \'*/\'.',
60
is_comment=True, serialization_code=11),
61
Trivia('GarbageText', 'Any skipped garbage text.', serialization_code=12),
62
+ Trivia('Shebang', 'A script command, starting with \'#!\'.',
63
+ serialization_code=13),
64
]
65
66
0 commit comments