use super::WithSelf;
use crate::{error::Result, metadata::MetadataStorage, utils::RangeExt};
use cairo_lang_sierra::{
extensions::{
bounded_int::BoundedIntConcreteType,
core::{CoreLibfunc, CoreType},
},
program_registry::ProgramRegistry,
};
use melior::{
ir::{r#type::IntegerType, Module, Type},
Context,
};
pub fn build<'ctx>(
context: &'ctx Context,
_module: &Module<'ctx>,
_registry: &ProgramRegistry<CoreType, CoreLibfunc>,
_metadata: &mut MetadataStorage,
info: WithSelf<BoundedIntConcreteType>,
) -> Result<Type<'ctx>> {
let n_bits = info.range.offset_bit_width();
Ok(IntegerType::new(context, n_bits).into())
}