1use strict;
2use warnings;
3
4package Test::Deep::RefType;
5
6use Test::Deep::Cmp;
7
8use Scalar::Util qw( reftype );
9
10sub init
11{
12	my $self = shift;
13
14	$self->{val} = shift;
15}
16
17sub descend
18{
19	my $self = shift;
20
21	my $got = shift;
22
23	my $exp = $self->{val};
24	my $reftype = reftype($got);
25
26	return Test::Deep::descend($reftype, Test::Deep::shallow($exp));
27}
28
29sub render_stack
30{
31	my $self = shift;
32	my $var = shift;
33
34	return "reftype($var)";
35}
36
37sub renderGot
38{
39	my $self = shift;
40
41	my $got = shift;
42
43	$self->SUPER::renderGot(reftype($got));
44}
45
461;
47