diff --git a/ast/src/expressions/array_initializer_expression.rs b/ast/src/expressions/array_initializer_expression.rs
index dd701a720b..87ea73cec3 100644
--- a/ast/src/expressions/array_initializer_expression.rs
+++ b/ast/src/expressions/array_initializer_expression.rs
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with the Leo library. If not, see .
-use crate::{ast::Rule, common::SpreadOrExpression, values::PositiveNumber, SpanDef};
+use crate::{ast::Rule, expressions::Expression, values::PositiveNumber, SpanDef};
use pest::Span;
use pest_ast::FromPest;
@@ -23,7 +23,7 @@ use serde::Serialize;
#[derive(Clone, Debug, FromPest, PartialEq, Serialize)]
#[pest_ast(rule(Rule::expression_array_initializer))]
pub struct ArrayInitializerExpression<'ast> {
- pub expression: Box>,
+ pub expression: Box>,
pub count: PositiveNumber<'ast>,
#[pest_ast(outer())]
#[serde(with = "SpanDef")]
diff --git a/ast/src/leo.pest b/ast/src/leo.pest
index dc350cd0f4..507975a632 100644
--- a/ast/src/leo.pest
+++ b/ast/src/leo.pest
@@ -324,7 +324,7 @@ expression = { expression_term ~ (operation_binary ~ expression_term)* }
expression_tuple = { "(" ~ (expression ~ ("," ~ expression)*)? ~ ")" }
// Declared in expressions/array_initializer_expression.rs
-expression_array_initializer = { "[" ~ spread_or_expression ~ ";" ~ number_positive ~ "]" }
+expression_array_initializer = { "[" ~ expression ~ ";" ~ number_positive ~ "]" }
// Declared in expressions/array_inline_expression.rs
expression_array_inline = { "[" ~ NEWLINE* ~ inline_array_inner ~ NEWLINE* ~ "]"}
diff --git a/typed/src/common/spread_or_expression.rs b/typed/src/common/spread_or_expression.rs
index dd8fb3bc67..c6f817bdc4 100644
--- a/typed/src/common/spread_or_expression.rs
+++ b/typed/src/common/spread_or_expression.rs
@@ -15,7 +15,7 @@
// along with the Leo library. If not, see .
use crate::Expression;
-use leo_ast::common::SpreadOrExpression as AstSpreadOrExpression;
+use leo_ast::{common::SpreadOrExpression as AstSpreadOrExpression, expressions::Expression as AstExpression};
use serde::{Deserialize, Serialize};
use std::fmt;
@@ -38,6 +38,12 @@ impl<'ast> From> for SpreadOrExpression {
}
}
+impl<'ast> From> for SpreadOrExpression {
+ fn from(expression: AstExpression<'ast>) -> Self {
+ SpreadOrExpression::Expression(Expression::from(expression))
+ }
+}
+
impl fmt::Display for SpreadOrExpression {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {