summaryrefslogtreecommitdiff
path: root/src/Language/Fiddle/Compiler/ConsistencyCheck.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Language/Fiddle/Compiler/ConsistencyCheck.hs')
-rw-r--r--src/Language/Fiddle/Compiler/ConsistencyCheck.hs8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/Language/Fiddle/Compiler/ConsistencyCheck.hs b/src/Language/Fiddle/Compiler/ConsistencyCheck.hs
index f85d9d4..c4924da 100644
--- a/src/Language/Fiddle/Compiler/ConsistencyCheck.hs
+++ b/src/Language/Fiddle/Compiler/ConsistencyCheck.hs
@@ -299,9 +299,11 @@ advanceDecl offset = \case
(size,)
<$> (DefinedBits qmeta' mod ident <$> advanceStage () typ <*> pure annot)
- BitsSubStructure subBody subName ann -> do
- (sz, body') <- advanceRegisterBody offset subBody
- return (sz, BitsSubStructure body' subName ann)
+ BitsSubStructure qmeta modifier subBody subName ann -> do
+ (size, body') <- advanceRegisterBody offset subBody
+ let span = Present (FieldSpan offset size)
+ qmeta' = fmap (\q -> q {bitsSpan = span}) qmeta
+ return (size, BitsSubStructure qmeta' modifier body' subName ann)
bitsTypeSize :: RegisterBitsTypeRef S F A -> M (N Bits)
bitsTypeSize (RegisterBitsArray tr nExpr _) = do