]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/Bug.pm
include affects in package loading
[debbugs.git] / Debbugs / Bug.pm
index 256084eccdc26ef41b9416e72e8d02a22550987b..bff73c7aaaabfb1affd033836655b3023b75439d 100644 (file)
@@ -369,11 +369,23 @@ sub is_merged {
     return $self->mergedwith->count > 0;
 }
 
+has _mergedwith_array =>
+    (is => 'ro',
+     isa => 'ArrayRef[Int]',
+     builder => '_build_mergedwith_array',
+     lazy => 1,
+    );
+
+sub _build_mergedwith_array {
+    my $self = shift;
+    return [sort {$a <=> $b}
+            $self->_split_if_defined('mergedwith')];
+}
+
 sub _build_mergedwith {
     my $self = shift;
     return $self->bug_collection->
-       limit(sort {$a <=> $b}
-             $self->_split_if_defined('mergedwith'));
+       limit(@{$self->_mergedwith_array//[]});
 }
 sub _build_pending {
     return $_[0]->status->{pending} // '';
@@ -578,7 +590,7 @@ sub filter {
        return 1 if $self->matches($param{exclude});
     }
     if (exists $param{repeat_merged} and not $param{repeat_merged}) {
-       my @merged = sort {$a<=>$b} $self->bug, map {$_->bug} $self->mergedwith->members;
+       my @merged = sort {$a<=>$b} $self->bug, @{$self->_mergedwith_array // []};
        return 1 if first {sub {defined $_}}
             @{$param{seen_merged}}{@merged};
        @{$param{seen_merged}}{@merged} = (1) x @merged;
@@ -651,6 +663,10 @@ sub related_packages_and_versions {
     if (length($self->status->{package}//'')) {
        @packages = split /,/,$self->status->{package}//'';
     }
+    if (length($self->status->{affects}//'')) {
+       push @packages,
+            split /,/,$self->status->{affects}//'';
+    }
     my @versions =
         (@{$self->status->{found_versions}//[]},
          @{$self->status->{fixed_versions}//[]});
@@ -664,8 +680,12 @@ sub related_packages_and_versions {
         }
     }
     for my $pkg (@packages) {
-        push @return,
-            [$pkg,@unqualified_versions];
+        if (@unqualified_versions) {
+            push @return,
+                [$pkg,@unqualified_versions];
+        } else {
+           push @return,$pkg;
+        }
     }
     return @return;
 }