gleam-lang/gleam · error
bit array segment size to be a valid u32
Error message
bit array segment size to be a valid u32
What it means
Error "bit array segment size to be a valid u32" thrown in gleam-lang/gleam.
Source
Thrown at compiler-core/src/javascript.rs:1641
///
pub(crate) const SAFE_INT_SEGMENT_MAX_SIZE: usize = 48;
/// Evaluates the value of an Int segment in a bit array into its corresponding bytes. This avoids
/// needing to do the evaluation at runtime when all inputs are known at compile-time.
///
pub(crate) fn bit_array_segment_int_value_to_bytes(
mut value: BigInt,
size: BigInt,
endianness: Endianness,
) -> Vec<u8> {
// Clamp negative sizes to zero
let size = size.max(BigInt::ZERO);
// Convert size to u32. This is safe because this function isn't called with a size greater
// than `SAFE_INT_SEGMENT_MAX_SIZE`.
let size = size
.to_u32()
.expect("bit array segment size to be a valid u32");
// Convert negative number to two's complement representation
if value < BigInt::ZERO {
let value_modulus = BigInt::from(2).pow(size);
value = &value_modulus + (value % &value_modulus);
}
// Convert value to the desired number of bytes
let mut bytes = vec![0u8; size as usize / 8];
for byte in bytes.iter_mut() {
*byte = (&value % BigInt::from(256))
.to_u8()
.expect("modulo result to be a valid u32");
value /= BigInt::from(256);
}
if endianness.is_big() {
bytes.reverse();View on GitHub (pinned to 7e623aa83d)
When it happens
Trigger: Thrown at compiler-core/src/javascript.rs:1641 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of gleam-lang/gleam@7e623aa83d (2026-08-17).
Data as JSON: /api/errors/7a610342e0a674fc.
Report an issue: GitHub.