Skip to content

Commit e7ee939

Browse files
committed
locator
1 parent ad54004 commit e7ee939

File tree

5 files changed

+925
-18
lines changed

5 files changed

+925
-18
lines changed

ast/asdl_rs.py

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1069,17 +1069,28 @@ def visitSum(self, sum, name, depth):
10691069
self.emit_located_impl(variant_info)
10701070

10711071
if not info.no_cfg(self.type_info):
1072-
self.emit('#[cfg(feature = "all-nodes-with-ranges")]', 0)
1072+
cfg = '#[cfg(feature = "all-nodes-with-ranges")]'
1073+
else:
1074+
cfg = ''
10731075

10741076
self.emit(
10751077
f"""
1078+
{cfg}
10761079
impl Located for {info.full_type_name} {{
10771080
fn range(&self) -> SourceRange {{
10781081
match self {{
10791082
{sum_match_arms}
10801083
}}
10811084
}}
10821085
}}
1086+
{cfg}
1087+
impl LocatedMut for {info.full_type_name} {{
1088+
fn range_mut(&mut self) -> &mut SourceRange {{
1089+
match self {{
1090+
{sum_match_arms.replace('range()', 'range_mut()')}
1091+
}}
1092+
}}
1093+
}}
10831094
""".lstrip(),
10841095
0,
10851096
)
@@ -1101,15 +1112,24 @@ def emit_type_alias(self, info):
11011112

11021113
def emit_located_impl(self, info):
11031114
if not info.no_cfg(self.type_info):
1104-
self.emit('#[cfg(feature = "all-nodes-with-ranges")]', 0)
1115+
cfg = '#[cfg(feature = "all-nodes-with-ranges")]'
1116+
else:
1117+
cfg = ''
11051118

11061119
self.emit(
11071120
f"""
1121+
{cfg}
11081122
impl Located for {info.full_type_name} {{
11091123
fn range(&self) -> SourceRange {{
11101124
self.range
11111125
}}
11121126
}}
1127+
{cfg}
1128+
impl LocatedMut for {info.full_type_name} {{
1129+
fn range_mut(&mut self) -> &mut SourceRange {{
1130+
&mut self.range
1131+
}}
1132+
}}
11131133
""",
11141134
0,
11151135
)

0 commit comments

Comments
 (0)