Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Parser rejects valid `return sort map` in Mojolicious 9.49

オープン
#1,506 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
java, perl

調査の方向性

The issue is in the parser's diagnostic logic for the return statement, likely in the file handling the commit d4ebdd9b4. Start by examining the parser's grammar for return and the diagnostic for indirect map/grep arguments. The failing code is in Mojo/Loader.pm line 37. Write a test that reproduces the error with return sort map ... and ensure the diagnostic only triggers for return map/grep ... without an intervening list operator like sort.

索引モデルが issue の本文から書いたものです。

説明

bug

Summary

PerlOnJava cannot load Mojolicious 9.49 because the parser rejects valid Perl in Mojo::Loader::find_packages:

return sort map { /^(.+)::$/ ? "${ns}::$1" : () } keys %{"${ns}::"};

The error is:

Missing comma after first argument to return

This causes WebService-Rollbar-Notifier 1.002011 to fail its load tests.

Reproduction

Archived CPAN run: 20260924-085657-82687

Target distribution: WebService-Rollbar-Notifier-1.002011

The target fails 2 of 3 tests in t/00-load.t while loading Mojo::UserAgent and WebService::Rollbar::Notifier. The failure reproduces on both the JVM and interpreter backends.

A minimal load reproducer is:

PERL5LIB=<Mojolicious-lib> ./jperl -MMojo::Loader -e 'print "loaded\\n"'
PERL5LIB=<Mojolicious-lib> ./jperl --interpreter -MMojo::Loader -e 'print "loaded\\n"'

Both report the diagnostic at Mojo/Loader.pm line 37. System Perl loads the same module successfully.

Expected behavior

Mojo::Loader should compile successfully. System Perl passes Mojolicious 9.49's complete suite (4,194 tests) and the Rollbar distribution's 5 tests.

Suspected cause

The regression appears related to the indirect return map/grep diagnostic added in commit d4ebdd9b4 (fix: diagnose indirect map arguments to return). The diagnostic logic appears to treat return sort map ... as an invalid indirect map argument, although the intervening sort makes this valid Perl.

Requested fix

Restrict the diagnostic to actual indirect return NAME map/grep ... forms while preserving valid list operators such as return sort map .... Add a focused regression test for the Mojolicious expression and retain the existing diagnostic coverage.

主要言語
Perl
スター
64
フォーク
6
平均マージ
5時間 38分
マージ済み PR(30日)
170

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

fglock/PerlOnJava のほかの issue

fglock/PerlOnJava の issue をすべて見る

似ている issue

Perl の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。