[ruby/prism] Short-circuit if possible for start line and unused warning

https://github.com/ruby/prism/commit/2745c81d31
This commit is contained in:
Kevin Newton 2024-10-10 14:31:16 -04:00 committed by git
parent 7a198af7cd
commit ebbb093094

View File

@ -961,20 +961,18 @@ pm_locals_order(PRISM_ATTRIBUTE_UNUSED pm_parser_t *parser, pm_locals_t *locals,
if (local->name != PM_CONSTANT_ID_UNSET) { if (local->name != PM_CONSTANT_ID_UNSET) {
pm_constant_id_list_insert(list, (size_t) local->index, local->name); pm_constant_id_list_insert(list, (size_t) local->index, local->name);
if (warn_unused && local->reads == 0) { if (warn_unused && local->reads == 0 && ((parser->start_line >= 0) || (pm_newline_list_line(&parser->newline_list, local->location.start, parser->start_line) >= 0))) {
if (pm_newline_list_line(&parser->newline_list, local->location.start, parser->start_line) >= 0) { pm_constant_t *constant = pm_constant_pool_id_to_constant(&parser->constant_pool, local->name);
pm_constant_t *constant = pm_constant_pool_id_to_constant(&parser->constant_pool, local->name);
if (constant->length >= 1 && *constant->start != '_') { if (constant->length >= 1 && *constant->start != '_') {
PM_PARSER_WARN_FORMAT( PM_PARSER_WARN_FORMAT(
parser, parser,
local->location.start, local->location.start,
local->location.end, local->location.end,
PM_WARN_UNUSED_LOCAL_VARIABLE, PM_WARN_UNUSED_LOCAL_VARIABLE,
(int) constant->length, (int) constant->length,
(const char *) constant->start (const char *) constant->start
); );
}
} }
} }
} }