# Miscellaneous tests for XS lvalue functions
use warnings;
use strict;
use Test::More tests => 4;
use XS::APItest 'lv_temp_object';
{
my $w;
local $SIG{__WARN__} = sub { $w = shift };
# [perl #31946]
lv_temp_object() = 75;
like $w, qr/Useless assignment to a temporary at/,
'warning when assigning to temp returned from XS lv sub';
undef $w;
(lv_temp_object()) = 75;
like $w, qr/Useless assignment to a temporary at/,
'warning when list-assigning to temp returned from XS lv sub';
$w = undef;
{
package XS::APItest::TempObj;
use overload '.=' => sub { $::assigned = $_[1] };
}
lv_temp_object() .= 63;
is $::assigned, 63, 'overloaded .= on temp obj returned from lv sub';
is $w, undef, 'no warning from overloaded .= on temp obj';
}