@@ -304,10 +304,14 @@ impl<'module> Generator<'module> {
304
304
[ Opt :: Bits { .. } , Opt :: Size { value : size, .. } ]
305
305
| [ Opt :: Size { value : size, .. } , Opt :: Bits { .. } ] => match & * * size {
306
306
TypedExpr :: Int { value : size, .. } => {
307
- Ok ( docvec ! [ value, ".slice(0, " , size, ")" ] )
307
+ self . tracker . bit_array_slice_used = true ;
308
+ Ok ( docvec ! [ "bitArraySlice(" , value, ", 0, " , size, ")" ] )
308
309
}
309
310
310
- TypedExpr :: Var { name, .. } => Ok ( docvec ! [ value, ".slice(0, " , name, ")" ] ) ,
311
+ TypedExpr :: Var { name, .. } => {
312
+ self . tracker . bit_array_slice_used = true ;
313
+ Ok ( docvec ! [ "bitArraySlice(" , value, ", 0, " , name, ")" ] )
314
+ }
311
315
312
316
_ => Err ( Error :: Unsupported {
313
317
feature : "This bit array segment option" . into ( ) ,
@@ -1321,7 +1325,7 @@ pub(crate) fn guard_constant_expression<'a>(
1321
1325
Constant :: Var { name, .. } => Ok ( assignments
1322
1326
. iter ( )
1323
1327
. find ( |assignment| assignment. name == name)
1324
- . map ( |assignment| assignment. subject . clone ( ) . append ( assignment . path . clone ( ) ) )
1328
+ . map ( |assignment| assignment. subject . clone ( ) )
1325
1329
. unwrap_or_else ( || maybe_escape_identifier_doc ( name) ) ) ,
1326
1330
1327
1331
expression => constant_expression ( Context :: Function , tracker, expression) ,
@@ -1540,7 +1544,8 @@ fn bit_array<'a>(
1540
1544
[ Opt :: Bits { .. } , Opt :: Size { value : size, .. } ]
1541
1545
| [ Opt :: Size { value : size, .. } , Opt :: Bits { .. } ] => match & * * size {
1542
1546
Constant :: Int { value : size, .. } => {
1543
- Ok ( docvec ! [ value, ".slice(0, " , size, ")" ] )
1547
+ tracker. bit_array_slice_used = true ;
1548
+ Ok ( docvec ! [ "bitArraySlice(" , value, ", 0, " , size, ")" ] )
1544
1549
}
1545
1550
1546
1551
_ => Err ( Error :: Unsupported {
0 commit comments