1# Miscellaneous tests for XS lvalue functions 2 3use warnings; 4use strict; 5 6use Test::More tests => 4; 7 8use XS::APItest 'lv_temp_object'; 9 10 11{ 12 my $w; 13 local $SIG{__WARN__} = sub { $w = shift }; 14 15 # [perl #31946] 16 lv_temp_object() = 75; 17 like $w, qr/Useless assignment to a temporary at/, 18 'warning when assigning to temp returned from XS lv sub'; 19 undef $w; 20 (lv_temp_object()) = 75; 21 like $w, qr/Useless assignment to a temporary at/, 22 'warning when list-assigning to temp returned from XS lv sub'; 23 24 $w = undef; 25 { 26 package XS::APItest::TempObj; 27 use overload '.=' => sub { $::assigned = $_[1] }; 28 } 29 lv_temp_object() .= 63; 30 is $::assigned, 63, 'overloaded .= on temp obj returned from lv sub'; 31 is $w, undef, 'no warning from overloaded .= on temp obj'; 32} 33