File tree Expand file tree Collapse file tree 1 file changed +9
-5
lines changed Expand file tree Collapse file tree 1 file changed +9
-5
lines changed Original file line number Diff line number Diff line change @@ -727,7 +727,9 @@ def eval(term_values)
727727 if @type == :term
728728 ext_ret = @children [ 0 ]
729729 term_value = term_values . find { |tv | tv . name == ext_ret . name }
730- @children [ 0 ] . satisfied_by? ( term_value )
730+ unless term_value . nil?
731+ @children [ 0 ] . satisfied_by? ( term_value )
732+ end
731733 elsif @type == :if
732734 cond_ext_ret = @children [ 0 ]
733735 if cond_ext_ret . eval ( term_values )
@@ -921,15 +923,17 @@ def dnf(logic_tree)
921923 end
922924
923925 def combos_for ( extension_versions )
924- ncombos = extension_versions . reduce ( 1 ) { |prod , vers | prod * vers . size }
926+ ncombos = extension_versions . reduce ( 1 ) { |prod , vers | prod * ( vers . size + 1 ) }
925927 combos = [ ]
926928 ncombos . times do |i |
927929 combos << [ ]
928930 extension_versions . size . times do |j |
929- m = extension_versions [ j ] . size
930- d = j . zero? ? 1 : extension_versions [ j ..0 ] . reduce ( 1 ) { |prod , vers | prod * vers . size }
931+ m = ( extension_versions [ j ] . size + 1 )
932+ d = j . zero? ? 1 : extension_versions [ j ..0 ] . reduce ( 1 ) { |prod , vers | prod * ( vers . size + 1 ) }
931933
932- combos . last << extension_versions [ j ] [ ( i / d ) % m ]
934+ if ( i / d ) % m < extension_versions [ j ] . size
935+ combos . last << extension_versions [ j ] [ ( i / d ) % m ]
936+ end
933937 end
934938 end
935939 # get rid of any combos that can't happen because of extension conflicts
You can’t perform that action at this time.
0 commit comments