# FIXME XSify - this can be done so much more efficiently
sub is_plain_value ($) {
no strict 'refs';
- ! length ref $_[0] ? [ $_[0] ]
+ ! length ref $_[0] ? \($_[0])
: (
ref $_[0] eq 'HASH' and keys %{$_[0]} == 1
and
exists $_[0]->{-value}
- ) ? [ $_[0]->{-value} ]
+ ) ? \($_[0]->{-value})
: (
# reuse @_ for even moar speedz
defined ( $_[1] = Scalar::Util::blessed $_[0] )
)
)
)
- ) ? [ $_[0] ]
+ ) ? \($_[0])
: undef;
}
=back
-On failure returns C<undef>, on sucess returns a reference to a single
-element array containing the string-version of the supplied argument or
-C<[ undef ]> in case of an undefined initial argument.
+On failure returns C<undef>, on sucess returns a B<scalar> reference
+to the original supplied argument.
=head2 is_literal_value
=back
-On failure returns C<undef>, on sucess returns a reference to an array
-cotaining the unpacked version of the supplied literal SQL and bind values.
+On failure returns C<undef>, on sucess returns an B<array> reference
+containing the unpacked version of the supplied literal SQL and bind values.
=head1 WHERE CLAUSES
if (STRINGIFIER_CAN_RETURN_IVS and $can_cmp) {
is_deeply(
is_plain_value $num,
- [ $num ],
+ \$num,
"stringification detected on $case->{class}",
) || diag explain $case;
}
# is_deeply does not do nummify/stringify cmps properly
# but we can always compare the ice
ok(
- ( nfreeze( is_plain_value $num ) eq nfreeze( [ $num ] ) ),
+ ( nfreeze( is_plain_value $num ) eq nfreeze( \$num ) ),
"stringification without cmp capability detected on $case->{class}"
) || diag explain $case;
}
is (
- refaddr( ( is_plain_value($num)||[] )->[0] ),
+ refaddr( ${is_plain_value($num)} ),
refaddr $num,
"Same reference (blessed object) returned",
);
cmp_ok(--$num, 'eq', 23, 'test overloaded object compares correctly');
is_deeply(
is_plain_value $num,
- [ 23 ],
+ \23,
'fallback stringification detected'
);
cmp_ok(--$num, 'eq', 22, 'test overloaded object compares correctly');
is_deeply
is_plain_value { -value => [] },
- [ [] ],
+ \[],
'-value recognized'
;
for (undef, { -value => undef }) {
is_deeply
is_plain_value $_,
- [ undef ],
+ \undef,
'NULL -value recognized'
;
}