Ticket #219 (closed bug: fixed)
t/tools/pmc2cutils/04-dump_pmc.t, t/tools/pmc2cutils/05-gen_c.t: Test failures
Reported by: | jkeenan | Owned by: | cotto |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | configure | Version: | |
Severity: | medium | Keywords: | |
Cc: | Language: | ||
Patch status: | Platform: |
Description
Changes made between 35932 and 35937 have started to cause failures in two of the build tools test files found in t/tools/pmc2cutils/. Please see attached file for output of prove on 04-dump_pmc.t and 05-gen_c.t.
A quick scan of the changes in this time frame suggests that the most likely suspect is this revision to lib/Parrot/Pmc2c/Parser.pm.
$ svn diff -r 35932:35937 ./lib Index: lib/Parrot/Pmc2c/Parser.pm =================================================================== --- lib/Parrot/Pmc2c/Parser.pm (revision 35932) +++ lib/Parrot/Pmc2c/Parser.pm (revision 35937) @@ -76,7 +76,7 @@ my $lineno = count_newlines($preamble) + $chewed_lines + 1; my $class_init; - ($lineno, $pmcbody) = find_attrs( $pmc, $pmcbody, $lineno, $filename); + ($lineno, $pmcbody) = find_attrs( $pmc, $pmcbody, $lineno, $filename, $pmc2cMain); ($lineno, $class_init) = find_methods($pmc, $pmcbody, $lineno, $filename); $pmc->postamble( Parrot::Pmc2c::Emitter->text( $post, $filename, $lineno ) ); @@ -90,8 +90,27 @@ } sub find_attrs { - my ($pmc, $pmcbody, $lineno, $filename) = @_; + my ($pmc, $pmcbody, $lineno, $filename, $pmc2cMain) = @_; + #prepend parent ATTRs to this PMC's ATTR list, if possible + my $got_attrs_from = ''; + foreach my $parent ( @{ $pmc->{parents} } ) { + + my $parent_dump = $pmc2cMain->read_dump( lc($parent) . '.dump' ); + + if ( $got_attrs_from ne '' && $parent_dump->{has_attribute} ) { + die "$filename is trying to extend $got_attrs_from and $parent, ". + "but both these PMCs have ATTRs."; + } + + if ( $parent_dump->{has_attribute} ) { + $got_attrs_from = $parent; + foreach my $parent_attrs ( @{ $parent_dump->{attributes} } ) { + $pmc->add_attribute($parent_attrs); + } + } + } + # backreferences here are all +1 because below the qr is wrapped in quotes my $attr_re = qr{ ^
Here's the most recent svn log on that file:
------------------------------------------------------------------------ r35934 | cotto | 2009-01-23 20:18:43 -0500 (Fri, 23 Jan 2009) | 2 lines [pmc] make ATTRs implicitly be passed down the inheritance chain
Attachments
Change History
Note: See
TracTickets for help on using
tickets.