Skip to content

Commit 5bcd224

Browse files
committed
[Syntax] Completely remove 'backtick' trivia kind
Make hash generation to take trivias into account.
1 parent 8edea31 commit 5bcd224

File tree

2 files changed

+13
-11
lines changed

2 files changed

+13
-11
lines changed

utils/gyb_syntax_support/Trivia.py

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,21 @@
44

55
class Trivia(object):
66
def __init__(self, name, comment, serialization_code, characters=[],
7-
swift_characters=[], is_new_line=False, is_comment=False,
8-
deprecated=None):
7+
swift_characters=[], is_new_line=False, is_comment=False):
98
self.name = name
109
self.comment = comment
1110
self.serialization_code = serialization_code
12-
self.characters = characters
11+
self.characters = tuple(characters)
1312
self.lower_name = lowercase_first_word(name)
1413
self.is_new_line = is_new_line
1514
self.is_comment = is_comment
16-
self.deprecated = deprecated
1715

1816
# Swift sometimes doesn't support escaped characters like \f or \v;
1917
# we should allow specifying alternatives explicitly.
20-
self.swift_characters = swift_characters if swift_characters else\
21-
characters
18+
if swift_characters:
19+
self.swift_characters = tuple(swift_characters)
20+
else:
21+
self.swift_characters = characters
2222
assert len(self.swift_characters) == len(self.characters)
2323

2424
def characters_len(self):
@@ -45,11 +45,6 @@ def is_collection(self):
4545
Trivia('CarriageReturnLineFeed',
4646
'A newline consists of contiguous \'\\r\' and \'\\n\' characters.',
4747
characters=['\\r', '\\n'], is_new_line=True, serialization_code=6),
48-
# TODO: Romove 'Backtick' when all known clients are migrated.
49-
Trivia('Backtick',
50-
'A backtick \'`\' character, used to escape identifiers.',
51-
characters=['`'], serialization_code=7,
52-
deprecated="backticks are now part of the token text"),
5348
Trivia('LineComment', 'A developer line comment, starting with \'//\'',
5449
is_comment=True, serialization_code=8),
5550
Trivia('BlockComment',

utils/gyb_syntax_support/__init__.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from PatternNodes import PATTERN_NODES # noqa: I201
1414
from StmtNodes import STMT_NODES # noqa: I201
1515
import Token
16+
from Trivia import TRIVIAS # noqa: I201
1617
from TypeNodes import TYPE_NODES # noqa: I201
1718

1819

@@ -161,10 +162,16 @@ def hash_token_syntax(token):
161162
return hash((token.name, token.serialization_code))
162163

163164

165+
def hash_trivia(trivia):
166+
return hash((trivia.name, trivia.serialization_code, trivia.characters))
167+
168+
164169
def calculate_node_hash():
165170
result = 0
166171
for node in SYNTAX_NODES:
167172
result = hash((result, hash_syntax_node(node)))
168173
for token in SYNTAX_TOKENS:
169174
result = hash((result, hash_token_syntax(token)))
175+
for trivia in TRIVIAS:
176+
result = hash((result, hash_trivia(trivia)))
170177
return result

0 commit comments

Comments
 (0)