Просмотр исходного кода

utils: nothing to fix on method resolution, tested in python what failed in
perl and it seems to work, probably need to submit a bug report on the perl
'mro' module.

tcheukueppo 2 лет назад
Родитель
Сommit
e2c9acef12
1 измененных файлов с 4 добавлено и 5 удалено
  1. 4 5
      utils/c3-mro.pl

+ 4 - 5
utils/c3-mro.pl

@@ -130,7 +130,7 @@ sub c3_linearize_class {
 
    my ($prev_sol, $error);
    my $sub_sol    = $_[0]->{$supers->[0]};
-   my %merge_list = ($supers->[0] => 0);
+   my %merged = ($supers->[0] => 0);
 
    foreach my $c (1 .. $#$supers) {
       my $start     = 0;
@@ -141,13 +141,13 @@ sub c3_linearize_class {
 
     insertion: for (my $i = 0 ; $i < @$prev_sol ; $i++) {
          for (my $j = $start ; $j < @$to_insert ; $j++) {
-            if (exists $merge_list{$to_insert->[$j]}) {
+            if (exists $merged{$to_insert->[$j]}) {
                $error = <<~"EOE";
                Inconsistent hierarchy during C3 merge of class '$class':
                        current merge results \[
                                $class,
                EOE
-               $error .= "\n" . ' ' x 16 . "$_,\n" foreach @$supers[0 .. $merge_list{$to_insert->[$j]}];
+               $error .= "\n" . ' ' x 16 . "$_,\n" foreach @$supers[0 .. $merged{$to_insert->[$j]}];
                $error .= ' ' x 8 . "\]\n" . ' ' x 8;
                $error .= "merging failed on '$to_insert->[$j]' at .+";
                $_[0] = $error;
@@ -162,9 +162,8 @@ sub c3_linearize_class {
          push @$sub_sol, $prev_sol->[$i];
       }
 
-      $merge_list{$supers->[$c]} = $c;
+      $merged{$supers->[$c]} = $c;
    }
-
    push @{$_[0]->{$class}}, @$sub_sol;
 }