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 37 lines (25 sloc) 0.792 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
use v6;
use Test;

plan 5;

# L<S14/Traits/>

my @var_names;
multi trait_mod:<is>($a, :$noted!) {
    push @var_names, $a.VAR.name;
}

role doc { has $.doc is rw }
multi trait_mod:<is>($a, $arg, :$doc!) {
    $a.container.VAR does doc.new(doc => $arg);
}


my $a is noted;
my %b is noted;
my @c is noted;

@var_names .= sort;
is +@var_names, 3, 'have correct number of names noted from trait applied by name';
is @var_names, ['$a','%b','@c'], 'trait recorded correct information';


my $dog is doc('barks');
my @birds is doc('tweet');
my %cows is doc('moooo');

is $dog.VAR.doc, 'barks', 'trait applied to scalar variable correctly';
is @birds.doc, 'tweet', 'trait applied to array variable correctly';
is %cows.doc, 'moooo', 'trait applied to hash variable correctly';

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