False CORE::try/catch ambiguity warnings break Try::Tiny consumers

Open
#1,473 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
perl
Domain
compilers

Research direction

Start with the minimal use DateTime::Format::Strptime; reproducer and compare warning behavior across the JVM and interpreter backends against Perl 5.42.2. Trace where ambiguous CORE::try() and CORE::catch() warnings are emitted, then verify that the CPAN consumer loads without warnings and that the affected Test::NoWarnings checks pass.

Written by the indexing model from the issue text.

Description

area:parser area:warnings bug

Summary

PerlOnJava emits false Ambiguous call resolved as CORE::try() and CORE::catch() warnings when compiling modules that import try/catch from Try::Tiny. These warnings make otherwise passing CPAN tests fail under Test::NoWarnings.

Reproduction

The issue was observed while testing TBX::Min version 0.08 in CPAN random run 20260921-124328-13959 at PerlOnJava commit d8e4fd417.

The distribution's standard Perl suite passes all 162 tests. Under PerlOnJava, both the JVM backend and interpreter backend reproduce the warnings with the dependency set used by the run. A minimal load reproducer is:

use DateTime::Format::Strptime;

The warnings include:

Ambiguous call resolved as CORE::try(), qualify as such or use &
Ambiguous call resolved as CORE::catch(), qualify as such or use &

They originate in Try::Tiny consumers including DateTime::Format::Strptime, Module::Implementation, DateTime, and DateTime::TimeZone. PerlOnJava reports these warnings even though the code imports and calls the Try::Tiny functions; standard Perl does not report them for the same suite.

CPAN impact

TBX::Min reports 8 failed test programs out of 10 and 8 failed subtests out of 162. In each affected test program, the only failure is the Test::NoWarnings check; functional assertions pass.

The distribution contains no XS or native code, so no native reverse-dependency analysis is applicable.

Expected behavior

PerlOnJava should match standard Perl warning behavior: importing try and catch from Try::Tiny should not produce false ambiguity warnings merely because Perl has a CORE::try construct.

Environment

  • PerlOnJava backends: JVM and interpreter
  • Standard Perl oracle: Perl 5.42.2 on macOS
  • Affected dependency: DateTime::Format::Strptime 1.80
  • CPAN distribution: TBX::Min 0.08
Dominant language
Perl
Stars
64
Forks
6
Avg merge
5h 18m
Merged PRs (30d)
162

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from fglock/PerlOnJava

All issues in fglock/PerlOnJava

Similar issues

More Perl issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.