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 {