Ticket #665: big_nasty_error_message.patch

File big_nasty_error_message.patch, 0.9 KB (added by Infinoid, 13 years ago)

Emit a big nasty error message when the names don't match.

  • lib/Parrot/Pmc2c/Parser.pm

    diff --git a/lib/Parrot/Pmc2c/Parser.pm b/lib/Parrot/Pmc2c/Parser.pm
    index dfe8500..b8eb62c 100644
    a b  
    1515use Parrot::Pmc2c::Emitter (); 
    1616use Parrot::Pmc2c::UtilFunctions qw(count_newlines filename slurp); 
    1717use Text::Balanced 'extract_bracketed'; 
     18use File::Basename qw(basename); 
    1819 
    1920=head1 NAME 
    2021 
     
    6566    my ( $preamble, $pmcname, $flags, $parents, $pmcbody, $post, $chewed_lines ) = 
    6667        parse_top_level($code); 
    6768 
     69    my $filebase = basename($filename); 
     70    $filebase =~ s/\.pmc$//; 
     71    die("PMC filename $filebase.pmc does not match pmclass name $pmcname!\n") 
     72        unless lc($filebase) eq lc($pmcname); 
    6873    my $pmc = Parrot::Pmc2c::PMC->create($pmcname); 
    6974    $pmc->preamble( Parrot::Pmc2c::Emitter->text( $preamble, $filename, 1 ) ); 
    7075    $pmc->name($pmcname);