Generate size arrays using IsExpr rather than Is.
This wasn't actually wrong, but everywhere else uses IsExpr for Val abbreviations.
This commit is contained in:
parent
d9e00294f9
commit
d8d6ab12cc
|
@ -164,12 +164,12 @@ declareSizesArray = applyDepthSM doStructured
|
||||||
let sizeDiff = length srcDs - length ds
|
let sizeDiff = length srcDs - length ds
|
||||||
subSrcSizeVar = A.SubscriptedVariable m (A.SubscriptFromFor m (makeConstant m sizeDiff) (makeConstant m $ length ds)) varSrcSizes
|
subSrcSizeVar = A.SubscriptedVariable m (A.SubscriptFromFor m (makeConstant m sizeDiff) (makeConstant m $ length ds)) varSrcSizes
|
||||||
sizeType = A.Array [makeDimension m $ length ds] A.Int
|
sizeType = A.Array [makeDimension m $ length ds] A.Int
|
||||||
sizeSpecType = case sliceSize of
|
sizeExpr = case sliceSize of
|
||||||
Just exp -> let subDims = [A.SubscriptedVariable m (A.Subscript m A.NoCheck $ makeConstant m n) varSrcSizes | n <- [1 .. (length srcDs - 1)]] in
|
Just exp -> let subDims = [A.SubscriptedVariable m (A.Subscript m A.NoCheck $ makeConstant m n) varSrcSizes | n <- [1 .. (length srcDs - 1)]] in
|
||||||
A.IsExpr m A.ValAbbrev sizeType $
|
|
||||||
A.Literal m sizeType $ A.ArrayLiteral m $
|
A.Literal m sizeType $ A.ArrayLiteral m $
|
||||||
[A.ArrayElemExpr exp] ++ map (A.ArrayElemExpr . A.ExprVariable m) subDims
|
[A.ArrayElemExpr exp] ++ map (A.ArrayElemExpr . A.ExprVariable m) subDims
|
||||||
Nothing -> A.Is m A.ValAbbrev sizeType subSrcSizeVar
|
Nothing -> A.ExprVariable m subSrcSizeVar
|
||||||
|
sizeSpecType = A.IsExpr m A.ValAbbrev sizeType sizeExpr
|
||||||
defineSizesName m n_sizes sizeSpecType
|
defineSizesName m n_sizes sizeSpecType
|
||||||
return $ A.Specification m n_sizes sizeSpecType
|
return $ A.Specification m n_sizes sizeSpecType
|
||||||
|
|
||||||
|
|
|
@ -257,7 +257,8 @@ qcTestDeclareSizes =
|
||||||
(foldr (A.SubscriptedVariable emptyMeta) (variable "src") subs)
|
(foldr (A.SubscriptedVariable emptyMeta) (variable "src") subs)
|
||||||
,specSizes, defSrc)
|
,specSizes, defSrc)
|
||||||
where
|
where
|
||||||
specSizes = A.Is emptyMeta A.ValAbbrev (A.Array [dimension $ length destDims] A.Int) $
|
specSizes = A.IsExpr emptyMeta A.ValAbbrev (A.Array [dimension $ length destDims] A.Int) $
|
||||||
|
A.ExprVariable m $
|
||||||
A.SubscriptedVariable emptyMeta (A.SubscriptFromFor emptyMeta
|
A.SubscriptedVariable emptyMeta (A.SubscriptFromFor emptyMeta
|
||||||
(intLiteral $ toInteger $ length srcDims - length destDims)
|
(intLiteral $ toInteger $ length srcDims - length destDims)
|
||||||
(intLiteral $ toInteger $ length destDims)
|
(intLiteral $ toInteger $ length destDims)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user