@@ -48,6 +48,7 @@ for (OP, mn) in ((:colstart, :min), (:colstop, :max), (:rowstart, :min), (:rowst
4848 mapreduce (op -> $ OP (op, k), $ mn, P. ops)
4949 end
5050 end
51+ @eval $ OP (:: PlusOperator , :: InfiniteCardinal{0} ) = ℵ₀
5152end
5253
5354# We assume that a Vector{Operator{T}} occurs when incompatible operators are added
@@ -340,10 +341,10 @@ else
340341 promotetimes (args... ) = _promotetimes (args... )
341342end
342343@inline function _promotetimes (opsin,
343- dsp= domainspace (last (opsin)),
344- anytimesop= true )
344+ dsp= domainspace (last (opsin)),
345+ anytimesop= true )
345346
346- @assert length (opsin) > 1 " need at least 2 operators"
347+ length (opsin) > 1 || throw ( ArgumentError ( " need at least 2 operators" ))
347348 ops, bw, bbw, sbbw, ibbb, irb = __promotetimes (opsin, dsp, anytimesop)
348349 sz = _timessize (ops)
349350 isaf = sz[1 ] == 1 && isconstspace (rangespace (first (ops)))
@@ -356,14 +357,12 @@ function __promotetimes(opsin, dsp, anytimesop)
356357
357358 for k in reverse (eachindex (opsin))
358359 op = opsin[k]
359- if ! isa (op, Conversion)
360- op_dsp = promotedomainspace (op, dsp)
361- dsp = rangespace (op_dsp)
362- if anytimesop && isa (op_dsp, TimesOperator)
363- append! (ops, view (op_dsp. ops, reverse (axes (op_dsp. ops, 1 ))))
364- else
365- push! (ops, op_dsp)
366- end
360+ op_dsp = promotedomainspace (op, dsp)
361+ dsp = rangespace (op_dsp)
362+ if anytimesop && isa (op_dsp, TimesOperator)
363+ append! (ops, view (op_dsp. ops, reverse (axes (op_dsp. ops, 1 ))))
364+ else
365+ push! (ops, op_dsp)
367366 end
368367 end
369368 reverse! (ops), bandwidthssum (bandwidths, ops), bandwidthssum (blockbandwidths, ops),
@@ -433,6 +432,7 @@ for OP in (:rowstart, :rowstop)
433432 end
434433 k
435434 end
435+ @eval $ OP (:: TimesOperator , :: InfiniteCardinal{0} ) = ℵ₀
436436end
437437
438438for OP in (:colstart , :colstop )
0 commit comments