I made a pasta error. The final example should be:

package Foo { package Bar { our sub foo {} }};
package Foo::Bar { our sub foo {} };
#!> Redeclaration of routine foo (already defined in package Foo::Bar)

On Sat, Oct 10, 2015 at 11:41 PM, perl6 via RT <perl6-bugs-follo...@perl.org
> wrote:

> Greetings,
>
> This message has been automatically generated in response to the
> creation of a trouble ticket regarding:
>         "[BUG] custom declarator examples in S12 don't work (nested
> packages)",
> a summary of which appears below.
>
> There is no need to reply to this message right now.  Your ticket has been
> assigned an ID of [perl #126317].
>
> Please include the string:
>
>          [perl #126317]
>
> in the subject line of all future correspondence about this issue. To do
> so,
> you may reply to this message.
>
>                         Thank you,
>                         perl6-bugs-follo...@perl.org
>
> -------------------------------------------------------------------------
> http://design.perl6.org/S12.html#Custom_Meta-objects
>
>     my module EXPORTHOW::DECLARE { }
>     EXPORTHOW::DECLARE<controller> = ControllerHOW;
>
> This currently throws "cannot modify an immuteable
> EXPORTHOW::DECLARE". But if we fix that there is another problem:
>
> my package EXPORTHOW::DECLARE {
>     OUR::<controller> := Metamodel::ClassHOW;
> };
>
> doesn't work either. The thing that works is:
>
> my package EXPORTHOW {
>     package DECLARE {
>         OUR::<controller> := Metamodel::ClassHOW;
>    }
> }
>
> Not sure if the docs are wrong or the implementation though the
> following problem seems linked:
>
> package Foo { package Bar { our sub foo {} }};
> package Foo::Bar { our sub bar {} };
> say Foo::Bar::<&foo>.package; #-> (Bar)
> say Foo::Bar::<&bar>.package; #-> (Foo::Bar)
>
> But if you then try in a new interpreter:
>
> package Foo { package Bar { our sub foo {} }};
> package Foo::Bar { our sub bar {} };
> #!> Redeclaration of routine foo (already defined in package Foo::Bar)
>
> TL;DR rakudo is not sure which namespace nested packages belong to
>
>

Reply via email to