File tree Expand file tree Collapse file tree 2 files changed +13
-5
lines changed
Expand file tree Collapse file tree 2 files changed +13
-5
lines changed Original file line number Diff line number Diff line change @@ -45,8 +45,11 @@ def walk(n):
4545 def replace_node (code : str , node , replacement : str ) -> str :
4646 """Replace a tree-sitter node's text via byte offsets."""
4747 code_bytes = code .encode ("utf8" )
48- new_bytes = (code_bytes [:node .start_byte ]
49- + replacement .encode ("utf8" ) + code_bytes [node .end_byte :])
48+ new_bytes = (
49+ code_bytes [: node .start_byte ]
50+ + replacement .encode ("utf8" )
51+ + code_bytes [node .end_byte :]
52+ )
5053 return new_bytes .decode ("utf8" )
5154
5255 def _remove_matching_nodes (
@@ -64,6 +67,7 @@ def _remove_matching_nodes(
6467 def collect (n ):
6568 if n .type in node_types and self .flip ():
6669 removals .append (n )
70+ return # skip children to avoid stale byte offsets on nested removals
6771 for child in n .children :
6872 collect (child )
6973
@@ -74,7 +78,9 @@ def collect(n):
7478
7579 source_bytes = code_entity .src_code .encode ("utf8" )
7680 for node in sorted (removals , key = lambda x : x .start_byte , reverse = True ):
77- source_bytes = source_bytes [:node .start_byte ] + source_bytes [node .end_byte :]
81+ source_bytes = (
82+ source_bytes [: node .start_byte ] + source_bytes [node .end_byte :]
83+ )
7884
7985 modified_code = source_bytes .decode ("utf8" )
8086
Original file line number Diff line number Diff line change @@ -73,10 +73,12 @@ def parse_log_ruby_test(log: str) -> dict[str, str]:
7373 current_class = stripped [:- 1 ]
7474 continue
7575 # test-unit verbose: " test_name: .: (0.001234)"
76- if current_class and ".: (" in stripped or "F: (" in stripped or "E: (" in stripped :
76+ if current_class and (
77+ ".: (" in stripped or "F: (" in stripped or "E: (" in stripped
78+ ):
7779 match = re .match (r"^(\S+):\s+([.FE]):\s+\(" , stripped )
7880 if match :
79- test_name = f"{ current_class } #{ match .group (1 )} "
81+ test_name = f"{ current_class } #{ match .group (1 )} "
8082 status_char = match .group (2 )
8183 if status_char == "." :
8284 test_status_map [test_name ] = TestStatus .PASSED .value
You can’t perform that action at this time.
0 commit comments