This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
718507a402c24da7825a98967ac1b00d5ea92e79
[perl5.git] / ext / XS-APItest / t / lvalue.t
1 # Miscellaneous tests for XS lvalue functions
2
3 use warnings;
4 use strict;
5
6 use Test::More tests => 3;
7
8 use 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
20     $w = undef;
21     {
22         package XS::APItest::TempObj;
23         use overload '.=' => sub { $::assigned = $_[1] };
24     }
25     lv_temp_object() .= 63;
26     is $::assigned, 63, 'overloaded .= on temp obj returned from lv sub';
27     is $w, undef, 'no warning from overloaded .= on temp obj';
28 }