Branch Coverage

/usr/local/lib/perl5/site_perl/5.26.1/x86_64-linux/XS/Framework.x/i/xs/Simple.h
Criterion Covered Total %
branch 10 32 31.2


line true false branch
21 5 0 template inline panda::enable_if_signed_integral_t _getnum (SV* sv) { return SvIV_nomg(sv); }
22 20 0 template inline panda::enable_if_unsigned_integral_t _getnum (SV* sv) { return SvUV_nomg(sv); }
28 0 template inline panda::enable_if_unsigned_integral_t _getnum (SV* sv) { return SvUV_nomg(sv); }
57 53 0 Simple (const Scalar& oth) : Scalar(oth) { _validate(); }
71 102 0 Simple (T val) { sv = detail::_newnum(val); }
204 0 Simple (T val) { sv = detail::_newnum(val); }
0 0 Simple (T val) { sv = detail::_newnum(val); }
204 0 Simple (T val) { sv = detail::_newnum(val); }
74 0 0 Simple (const panda::string_view& s) { sv = newSVpvn(s.data(), s.length()); }
143 5 0 operator T () const { return sv ? detail::_getnum(sv) : T(); }
20 0 operator T () const { return sv ? detail::_getnum(sv) : T(); }
28 0 operator T () const { return sv ? detail::_getnum(sv) : T(); }
193 0 0 if (!sv) return;
194 0 0 if (SvTYPE(sv) > SVt_PVMG || SvROK(sv)) {
0 0 if (SvTYPE(sv) > SVt_PVMG || SvROK(sv)) {
196 0 0 throw std::invalid_argument("SV is not a number or string");