diff --git a/prism/prism.c b/prism/prism.c index 99aa7982a3..00485b68ad 100644 --- a/prism/prism.c +++ b/prism/prism.c @@ -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) { pm_constant_id_list_insert(list, (size_t) local->index, local->name); - if (warn_unused && local->reads == 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); + if (warn_unused && local->reads == 0 && ((parser->start_line >= 0) || (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); - if (constant->length >= 1 && *constant->start != '_') { - PM_PARSER_WARN_FORMAT( - parser, - local->location.start, - local->location.end, - PM_WARN_UNUSED_LOCAL_VARIABLE, - (int) constant->length, - (const char *) constant->start - ); - } + if (constant->length >= 1 && *constant->start != '_') { + PM_PARSER_WARN_FORMAT( + parser, + local->location.start, + local->location.end, + PM_WARN_UNUSED_LOCAL_VARIABLE, + (int) constant->length, + (const char *) constant->start + ); } } }