Skip to content

Commit 690717f

Browse files
committed
Fix location of fowarding Super with a block
1 parent 401b917 commit 690717f

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

parser/prism/Translator.cc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2265,8 +2265,12 @@ unique_ptr<parser::Node> Translator::translate(pm_node_t *node, bool preserveCon
22652265
case PM_FORWARDING_SUPER_NODE: { // `super` with no `(...)`
22662266
auto forwardingSuperNode = down_cast<pm_forwarding_super_node>(node);
22672267

2268+
// There's no `keyword_loc` field, so we make it ourselves from the start location.
2269+
constexpr auto len = std::size("super") - 1;
2270+
auto keywordLoc = translateLoc(node->location.start, node->location.start + len);
2271+
22682272
auto expr = MK::ZSuper(location, maybeTypedSuper());
2269-
auto translatedNode = make_node_with_expr<parser::ZSuper>(move(expr), location);
2273+
auto translatedNode = make_node_with_expr<parser::ZSuper>(move(expr), keywordLoc);
22702274

22712275
auto blockArgumentNode = forwardingSuperNode->block;
22722276

test/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,6 @@ prism_location_test_suite(
176176
"prism_regression/numbered_params.rb",
177177
"prism_regression/numbered_reference_read.rb",
178178
"prism_regression/rescue.rb",
179-
"prism_regression/super.rb",
180179
"prism_regression/xstring.rb",
181180
],
182181
),

0 commit comments

Comments
 (0)