Rules / Types, classes & roles / metamodel

Metamodel::PrivateMethodContainer Reference

Metaobject that supports private methods

What it is #

Position in the hierarchy #

Routines #

Signatures are reproduced from the documentation, including their declared return types. A routine listed here is part of the type's published interface; whether Raku++ implements it is a separate question, answered by the examples below.

method add_private_method #

method add_private_method($obj, $name, $code)

Adds a private method $code with name $name.

method private_method_table #

method private_method_table($obj)

Returns a hash of name => &method_object

method private_methods #

method private_methods($obj)

Returns a list of private method names.

method private_method_names #

method private_method_names($obj)

Alias to private_methods.

method find_private_method #

method find_private_method($obj, $name)

Locates a private method. Otherwise, returns Mu if it doesn't exist.

Examples, run three ways #

Every example below comes from the official documentation, together with the output that documentation asserts. Each was then executed by Rakudo and by Raku++ when this page was built. Where the three agree, one result is shown; where they do not, all three are — because which of them is wrong is exactly the information worth having.

2 no-output

role Metamodel::PrivateMethodContainer { ... }

Not executed: the documentation states no expected output for this example.

class A {
    # the ! declares a private method
    method !double($x) {
        say 2 * $x;
    }
    method call-double($y) {
        # call with ! instead of .
        self!double($y);
    }
}

Not executed: the documentation states no expected output for this example.