9 q[&{}] => sub { $codified++; shift->to_code },
18 eval "sub { $$self }";
25 use base 'Dark::Side';
28 return quote_sub $$self;
32 my $darkside = Dark::Side->new('my $dummy = "join the dark side"; $_[0] * 2');
33 is($darkside->(6), 12, 'check Dark::Side coderef');
35 my $theforce = The::Force->new('my $dummy = "use the force Luke"; $_[0] * 2');
36 is($theforce->(6), 12, 'check The::Force coderef');
41 has a => (is => "rw", coerce => $darkside, isa => sub { 1 });
42 has b => (is => "rw", coerce => $theforce, isa => The::Force->new('my $z = "I am your father"'));
45 my $o = Doubleena->new(a => 11, b => 12);
46 is($o->a, 22, 'non-Sub::Quoted inlined coercion overload works');
47 is($o->b, 24, 'Sub::Quoted inlined coercion overload works');
48 my $codified_before = $codified;
50 is($codified_before, $codified, "repeated calls to accessor don't re-trigger overload");
53 my $constructor = B::Deparse->new->coderef2text(Doubleena->can('new'));
55 like($constructor, qr{use the force Luke}, 'Sub::Quoted coercion got inlined');
56 unlike($constructor, qr{join the dark side}, 'non-Sub::Quoted coercion was not inlined');
57 like($constructor, qr{I am your father}, 'Sub::Quoted isa got inlined');