Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
let gref = ig_g.gref.clone();
let ig = &mut **ig_g;
let gs = &mut ig.gs;
- let implicit: u32 = info.count(&ig.pcaliases)
+ let implicit: u32 = info.count(&ig.pcaliases)?
.try_into().map_err(
|_| SpE::InternalError(format!("implicit item count out of range"))
)?;
#[typetag::serde(tag="type")]
pub trait PieceSpec: Debug + Sync + Send + 'static {
+ #[throws(SpecError)]
fn count(&self, _pcaliases: &PieceAliases) -> usize { 1 }
fn load(&self, i: usize, gpc: &mut GPiece,
pcaliases: &PieceAliases, ir: &InstanceRef)
#[typetag::serde(name="LibList")]
impl PieceSpec for MultiSpec {
+ #[throws(SpecError)]
fn count(&self, _pcaliases: &PieceAliases) -> usize { self.items.len() }
#[throws(SpecError)]