Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"inconsistent bind result" when multi-dispatch method proto uses a typed parameter #2582

Open
vrurg opened this issue Jan 5, 2019 · 0 comments

Comments

Projects
None yet
1 participant
@vrurg
Copy link
Member

commented Jan 5, 2019

The Problem

Using a typed parameter in a routine signature causes Internal error: inconsistent bind result
error if the type is re-exported by a module using sub EXPORT from another module.

Steps to Reproduce

To reproduce the bug three files are needed. First, RR.pm6 where the type is declared:

 class RR is export {
     has $.value is rw;
 }

Next, RRE.pm6 where it is re-exported:

 sub EXPORT {
     use RR;
     return %(
         RR => RR,
     );
 }

And, finally, the actual code where the error happens is (assuming that all three files are located in the same directory):

 #!/usr/bin/env perl6
 use lib '.';
 use RRE;
 sub foo ( RR $r ) { note "foo" }
 foo( RR.new );

The bug was introduced in moar 2018.08. Quick check against 2018.06 and 2017.10 displays normal behavior of the script.

Expected Behavior

The script must output string foo.

Environment

  • Operating system: macOS, Linux
  • Compiler version (perl6 -v): from moar 2018.08 to moar 2018.12.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.