@@ -3425,7 +3425,7 @@ function (mwb::MulWorkerBuffer{T})(terms) where {T}
34253425 elseif ntrivialdict
34263426 num = Const {T} (num_coeff[])
34273427 else
3428- num = Mul {T} (num_coeff[], num_dict; type = safe_eltype (type):: TypeT )
3428+ num = Mul {T} (num_coeff[], num_dict; type = safe_eltype (type):: TypeT ):: BasicSymbolic{T}
34293429 @match num begin
34303430 BSImpl. AddMul (; dict) && if dict === num_dict end => begin
34313431 mwb. num_dict = ACDict {T} ()
@@ -3438,7 +3438,7 @@ function (mwb::MulWorkerBuffer{T})(terms) where {T}
34383438 elseif dtrivialdict
34393439 den = Const {T} (den_coeff[])
34403440 else
3441- den = Mul {T} (den_coeff[], den_dict; type = safe_eltype (type):: TypeT )
3441+ den = Mul {T} (den_coeff[], den_dict; type = safe_eltype (type):: TypeT ):: BasicSymbolic{T}
34423442 @match den begin
34433443 BSImpl. AddMul (; dict) && if dict === den_dict end => begin
34443444 mwb. den_dict = ACDict {T} ()
@@ -3452,7 +3452,7 @@ function (mwb::MulWorkerBuffer{T})(terms) where {T}
34523452 elseif dtrivial
34533453 result = num
34543454 else
3455- result = Div {T} (num, den, false ; type = safe_eltype (type):: TypeT )
3455+ result = Div {T} (num, den, false ; type = safe_eltype (type):: TypeT ):: BasicSymbolic{T}
34563456 end
34573457
34583458 isempty (arrterms) && return result
@@ -3841,7 +3841,7 @@ function ^(a::BasicSymbolic{T}, b::Union{AbstractArray{<:Number}, Number, BasicS
38413841 if _isone (coeff)
38423842 return Term {T} (^ , ArgsT {T} ((rest, Const {T} (b))); type, shape = newshape)
38433843 end
3844- return (coeff ^ b * rest ^ b)
3844+ return (( coeff ^ b) :: BasicSymbolic{T} * ( rest ^ b) :: BasicSymbolic{T} )
38453845 end
38463846 _ => return Term {T} (^ , ArgsT {T} ((a, Const {T} (b))); type, shape = newshape)
38473847 end
0 commit comments