Skip to content

Commit c335b12

Browse files
committed
Tests for EXPORTHOW::DECLARE.
1 parent de7eb2d commit c335b12

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

S12-meta/Declare.pm

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
role Controller {
2+
}
3+
4+
my package EXPORTHOW {
5+
class DECLARE::controller is Metamodel::ClassHOW {
6+
method compose(Mu $type) {
7+
self.add_role($type, Controller);
8+
callsame;
9+
}
10+
}
11+
}

S12-meta/DeclareBad.pm

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
my package EXPORTHOW {
2+
class DECLARE::class is Metamodel::ClassHOW {
3+
}
4+
}

S12-meta/exporthow.t

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use v6;
22

33
use Test;
4-
plan 5;
4+
plan 8;
55

66
use lib '.';
77

@@ -24,3 +24,13 @@ throws_like { EVAL 'use t::spec::S12-meta::Supersede1;
2424
use t::spec::S12-meta::Supersede2;' },
2525
X::EXPORTHOW::Conflict, directive => 'SUPERSEDE', declarator => 'class';
2626

27+
{
28+
use t::spec::S12-meta::Declare;
29+
controller Home { }
30+
ok Home ~~ Controller, 'Type declared with new controller declarator got Controller role added';
31+
}
32+
33+
dies_ok { EVAL 'controller Fat { }' }, 'Imported declarators do not leak out of lexical scope';
34+
35+
throws_like { EVAL 'use t::spec::S12-meta::DeclareBad;' },
36+
X::EXPORTHOW::Conflict, directive => 'DECLARE', declarator => 'class';

0 commit comments

Comments
 (0)