Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
* Fix noir-lang#577

* cargo fmt
  • Loading branch information
jfecher authored Dec 13, 2022
1 parent dff8f39 commit 5da0559
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions crates/noirc_frontend/src/hir/resolution/resolver.rs
Original file line number Diff line number Diff line change
Expand Up @@ -904,23 +904,22 @@ impl<'a> Resolver<'a> {
let definition = self.interner.definition(id);
match definition.rhs {
Some(rhs) if definition.is_global || !definition.mutable => {
self.try_eval_array_length_id(rhs)
self.try_eval_array_length_id(rhs, span)
}
_ => Err(Some(ResolverError::InvalidArrayLengthExpr { span })),
}
}

fn try_eval_array_length_id(&self, rhs: ExprId) -> Result<u128, Option<ResolverError>> {
let span = self.interner.expr_span(&rhs);
fn try_eval_array_length_id(
&self,
rhs: ExprId,
span: Span,
) -> Result<u128, Option<ResolverError>> {
match self.interner.expression(&rhs) {
HirExpression::Literal(HirLiteral::Integer(int)) => {
int.try_into_u128().ok_or(Some(ResolverError::IntegerTooLarge { span }))
}
HirExpression::Literal(_) => Err(Some(ResolverError::InvalidArrayLengthExpr { span })),
other => unreachable!(
"Expected global to be initialized to a literal, but found {:?}",
other
),
_other => Err(Some(ResolverError::InvalidArrayLengthExpr { span })),
}
}
}
Expand Down

0 comments on commit 5da0559

Please sign in to comment.