Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 48 lines (32 sloc) 0.771 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
use v6;

use Test;

plan 4;

=begin pod

Tests of roles with submethods

# L<S14/Roles>
# L<S12/Submethods>

=end pod


role AddBuild
{
    has $.did_build = 0;
    submethod BUILD ( $self: ) #OK not used
    {
        $!did_build = 1;
    }
}

class MyClass does AddBuild {}

my $class = MyClass.new();
ok( $class.did_build, 'Class that does role should do submethods of role' );


role WithSM {
    submethod ouch() { 'the pain' }
    submethod conf() { 'FAIL' }
}

class Parent does WithSM {
    submethod conf() { 'correct' }
}
class Child is Parent { }

is Parent.ouch(), 'the pain', 'submethod composes ok...';
is Parent.conf(), 'correct', 'submethod in class wins';
#?pugs todo
dies_ok { Child.ouch() }, 'composed submethod acts like one';

# vim: ft=perl6
Something went wrong with that request. Please try again.