mirror of
https://github.com/ProvableHQ/leo.git
synced 2024-11-22 05:00:59 +03:00
Improve handling of guards while flattening.
Specifically three changes are made: 1. Cache Anded together chains of conditionals for early returns. This prevents quadratic code being generated in the face of a chain of ifs like ``` if a { return 0u32; } else if b { return 1u32 } else if ... ``` 2. Take into account early returns for asserts, and cache the when reconstructing the assert, as with caching them for early returns. Fixes #28386, #28387
This commit is contained in:
parent
76b8654438
commit
5e7591fec9
@ -14,9 +14,17 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
use crate::Flattener;
|
||||
use crate::{Flattener, ReturnGuard};
|
||||
|
||||
use leo_ast::{Function, ProgramReconstructor, ProgramScope, Statement, StatementReconstructor};
|
||||
use leo_ast::{
|
||||
Expression,
|
||||
Function,
|
||||
ProgramReconstructor,
|
||||
ProgramScope,
|
||||
ReturnStatement,
|
||||
Statement,
|
||||
StatementReconstructor,
|
||||
};
|
||||
|
||||
impl ProgramReconstructor for Flattener<'_> {
|
||||
/// Flattens a program scope.
|
||||
@ -47,11 +55,19 @@ impl ProgramReconstructor for Flattener<'_> {
|
||||
// Flatten the function body.
|
||||
let mut block = self.reconstruct_block(function.block).0;
|
||||
|
||||
// Get all of the guards and return expression.
|
||||
let returns = self.clear_early_returns();
|
||||
|
||||
// Fold the return statements into the block.
|
||||
self.fold_returns(&mut block, returns);
|
||||
let returns = std::mem::take(&mut self.returns);
|
||||
let expression_returns: Vec<(Option<Expression>, ReturnStatement)> = returns
|
||||
.into_iter()
|
||||
.map(|(guard, statement)| match guard {
|
||||
ReturnGuard::None => (None, statement),
|
||||
ReturnGuard::Unconstructed(plain) | ReturnGuard::Constructed { plain, .. } => {
|
||||
(Some(Expression::Identifier(plain)), statement)
|
||||
}
|
||||
})
|
||||
.collect();
|
||||
|
||||
self.fold_returns(&mut block, expression_returns);
|
||||
|
||||
Function {
|
||||
annotations: function.annotations,
|
||||
|
@ -14,7 +14,7 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
use crate::Flattener;
|
||||
use crate::{Flattener, Guard, ReturnGuard};
|
||||
|
||||
use leo_ast::{
|
||||
AssertStatement,
|
||||
@ -28,6 +28,7 @@ use leo_ast::{
|
||||
DefinitionStatement,
|
||||
Expression,
|
||||
ExpressionReconstructor,
|
||||
Identifier,
|
||||
IterationStatement,
|
||||
Node,
|
||||
ReturnStatement,
|
||||
@ -93,77 +94,98 @@ impl StatementReconstructor for Flattener<'_> {
|
||||
},
|
||||
};
|
||||
|
||||
// Add the appropriate guards.
|
||||
match self.construct_guard() {
|
||||
// If the condition stack is empty, we can return the flattened assert statement.
|
||||
None => (Statement::Assert(assert), statements),
|
||||
// Otherwise, we need to join the guard with the expression in the flattened assert statement.
|
||||
// Note given the guard and the expression, we construct the logical formula `guard => expression`,
|
||||
// which is equivalent to `!guard || expression`.
|
||||
Some(guard) => (
|
||||
Statement::Assert(AssertStatement {
|
||||
span: input.span,
|
||||
id: input.id,
|
||||
variant: AssertVariant::Assert(Expression::Binary(BinaryExpression {
|
||||
op: BinaryOperation::Or,
|
||||
span: Default::default(),
|
||||
id: {
|
||||
// Create a new node ID for the binary expression.
|
||||
let id = self.node_builder.next_id();
|
||||
// Update the type table with the type of the binary expression.
|
||||
self.type_table.insert(id, Type::Boolean);
|
||||
id
|
||||
},
|
||||
// Take the logical negation of the guard.
|
||||
left: Box::new(Expression::Unary(UnaryExpression {
|
||||
op: UnaryOperation::Not,
|
||||
receiver: Box::new(guard),
|
||||
span: Default::default(),
|
||||
id: {
|
||||
// Create a new node ID for the unary expression.
|
||||
let id = self.node_builder.next_id();
|
||||
// Update the type table with the type of the unary expression.
|
||||
self.type_table.insert(id, Type::Boolean);
|
||||
id
|
||||
},
|
||||
})),
|
||||
right: Box::new(match assert.variant {
|
||||
// If the assert statement is an `assert`, use the expression as is.
|
||||
AssertVariant::Assert(expression) => expression,
|
||||
// If the assert statement is an `assert_eq`, construct a new equality expression.
|
||||
AssertVariant::AssertEq(left, right) => Expression::Binary(BinaryExpression {
|
||||
left: Box::new(left),
|
||||
op: BinaryOperation::Eq,
|
||||
right: Box::new(right),
|
||||
span: Default::default(),
|
||||
id: {
|
||||
// Create a new node ID for the unary expression.
|
||||
let id = self.node_builder.next_id();
|
||||
// Update the type table with the type of the unary expression.
|
||||
self.type_table.insert(id, Type::Boolean);
|
||||
id
|
||||
},
|
||||
}),
|
||||
// If the assert statement is an `assert_ne`, construct a new inequality expression.
|
||||
AssertVariant::AssertNeq(left, right) => Expression::Binary(BinaryExpression {
|
||||
left: Box::new(left),
|
||||
op: BinaryOperation::Neq,
|
||||
right: Box::new(right),
|
||||
span: Default::default(),
|
||||
id: {
|
||||
// Create a new node ID for the unary expression.
|
||||
let id = self.node_builder.next_id();
|
||||
// Update the type table with the type of the unary expression.
|
||||
self.type_table.insert(id, Type::Boolean);
|
||||
id
|
||||
},
|
||||
}),
|
||||
}),
|
||||
})),
|
||||
}),
|
||||
statements,
|
||||
),
|
||||
let mut guards: Vec<Expression> = Vec::new();
|
||||
|
||||
if let Some((guard, guard_statements)) = self.construct_guard() {
|
||||
statements.extend(guard_statements);
|
||||
|
||||
// The not_guard is true if we didn't follow the condition chain
|
||||
// that led to this assertion.
|
||||
let not_guard = Expression::Unary(UnaryExpression {
|
||||
op: UnaryOperation::Not,
|
||||
receiver: Box::new(Expression::Identifier(guard)),
|
||||
span: Default::default(),
|
||||
id: {
|
||||
// Create a new node ID for the unary expression.
|
||||
let id = self.node_builder.next_id();
|
||||
// Update the type table with the type of the unary expression.
|
||||
self.type_table.insert(id, Type::Boolean);
|
||||
id
|
||||
},
|
||||
});
|
||||
let (identifier, statement) = self.unique_simple_assign_statement(not_guard);
|
||||
statements.push(statement);
|
||||
guards.push(Expression::Identifier(identifier));
|
||||
}
|
||||
|
||||
// We also need to guard against early returns.
|
||||
if let Some((guard, guard_statements)) = self.construct_early_return_guard() {
|
||||
guards.push(Expression::Identifier(guard));
|
||||
statements.extend(guard_statements);
|
||||
}
|
||||
|
||||
if guards.is_empty() {
|
||||
return (Statement::Assert(assert), statements);
|
||||
}
|
||||
|
||||
let is_eq = matches!(assert.variant, AssertVariant::AssertEq(..));
|
||||
|
||||
// We need to `or` the asserted expression with the guards,
|
||||
// so extract an appropriate expression.
|
||||
let mut expression = match assert.variant {
|
||||
// If the assert statement is an `assert`, use the expression as is.
|
||||
AssertVariant::Assert(expression) => expression,
|
||||
|
||||
// For `assert_eq` or `assert_neq`, construct a new expression.
|
||||
AssertVariant::AssertEq(left, right) | AssertVariant::AssertNeq(left, right) => {
|
||||
let binary = Expression::Binary(BinaryExpression {
|
||||
left: Box::new(left),
|
||||
op: if is_eq { BinaryOperation::Eq } else { BinaryOperation::Neq },
|
||||
right: Box::new(right),
|
||||
span: Default::default(),
|
||||
id: {
|
||||
// Create a new node ID.
|
||||
let id = self.node_builder.next_id();
|
||||
// Update the type table.
|
||||
self.type_table.insert(id, Type::Boolean);
|
||||
id
|
||||
},
|
||||
});
|
||||
let (identifier, statement) = self.unique_simple_assign_statement(binary);
|
||||
statements.push(statement);
|
||||
Expression::Identifier(identifier)
|
||||
}
|
||||
};
|
||||
|
||||
// The assertion will be that the original assert statement is true or one of the guards is true
|
||||
// (ie, we either didn't follow the condition chain that led to this assert, or else we took an
|
||||
// early return).
|
||||
for guard in guards.into_iter() {
|
||||
let binary = Expression::Binary(BinaryExpression {
|
||||
op: BinaryOperation::Or,
|
||||
span: Default::default(),
|
||||
id: {
|
||||
// Create a new node ID.
|
||||
let id = self.node_builder.next_id();
|
||||
// Update the type table.
|
||||
self.type_table.insert(id, Type::Boolean);
|
||||
id
|
||||
},
|
||||
left: Box::new(expression),
|
||||
right: Box::new(guard),
|
||||
});
|
||||
let (identifier, statement) = self.unique_simple_assign_statement(binary);
|
||||
statements.push(statement);
|
||||
expression = Expression::Identifier(identifier);
|
||||
}
|
||||
|
||||
let assert_statement = Statement::Assert(AssertStatement {
|
||||
span: input.span,
|
||||
id: input.id,
|
||||
variant: AssertVariant::Assert(expression),
|
||||
});
|
||||
|
||||
(assert_statement, statements)
|
||||
}
|
||||
|
||||
/// Flattens an assign statement, if necessary.
|
||||
@ -250,8 +272,21 @@ impl StatementReconstructor for Flattener<'_> {
|
||||
);
|
||||
}
|
||||
|
||||
// Assign the condition to a variable, as it may be used multiple times.
|
||||
let place = Identifier {
|
||||
name: self.assigner.unique_symbol("condition", "$"),
|
||||
span: Default::default(),
|
||||
id: {
|
||||
let id = self.node_builder.next_id();
|
||||
self.type_table.insert(id, Type::Boolean);
|
||||
id
|
||||
},
|
||||
};
|
||||
|
||||
statements.push(self.simple_assign_statement(place, conditional.condition.clone()));
|
||||
|
||||
// Add condition to the condition stack.
|
||||
self.condition_stack.push(conditional.condition.clone());
|
||||
self.condition_stack.push(Guard::Unconstructed(place));
|
||||
|
||||
// Reconstruct the then-block and accumulate it constituent statements.
|
||||
statements.extend(self.reconstruct_block(conditional.then).0.statements);
|
||||
@ -261,13 +296,24 @@ impl StatementReconstructor for Flattener<'_> {
|
||||
|
||||
// Consume the otherwise-block and flatten its constituent statements into the current block.
|
||||
if let Some(statement) = conditional.otherwise {
|
||||
// Add the negated condition to the condition stack.
|
||||
self.condition_stack.push(Expression::Unary(UnaryExpression {
|
||||
// Apply Not to the condition, assign it, and put it on the condition stack.
|
||||
let not_condition = Expression::Unary(UnaryExpression {
|
||||
op: UnaryOperation::Not,
|
||||
receiver: Box::new(conditional.condition.clone()),
|
||||
span: conditional.condition.span(),
|
||||
id: conditional.condition.id(),
|
||||
}));
|
||||
});
|
||||
let not_place = Identifier {
|
||||
name: self.assigner.unique_symbol("condition", "$"),
|
||||
span: Default::default(),
|
||||
id: {
|
||||
let id = self.node_builder.next_id();
|
||||
self.type_table.insert(id, Type::Boolean);
|
||||
id
|
||||
},
|
||||
};
|
||||
statements.push(self.simple_assign_statement(not_place, not_condition));
|
||||
self.condition_stack.push(Guard::Unconstructed(not_place));
|
||||
|
||||
// Reconstruct the otherwise-block and accumulate it constituent statements.
|
||||
match *statement {
|
||||
@ -302,15 +348,17 @@ impl StatementReconstructor for Flattener<'_> {
|
||||
return (Statement::Return(input), Default::default());
|
||||
}
|
||||
// Construct the associated guard.
|
||||
let guard = self.construct_guard();
|
||||
let (guard_identifier, statements) = self.construct_guard().unzip();
|
||||
|
||||
let return_guard = guard_identifier.map_or(ReturnGuard::None, ReturnGuard::Unconstructed);
|
||||
|
||||
match input.expression {
|
||||
Expression::Unit(_) | Expression::Identifier(_) | Expression::Access(_) => {
|
||||
self.returns.push((guard, input))
|
||||
self.returns.push((return_guard, input))
|
||||
}
|
||||
_ => unreachable!("SSA guarantees that the expression is always an identifier or unit expression."),
|
||||
};
|
||||
|
||||
(Statement::dummy(Default::default(), self.node_builder.next_id()), Default::default())
|
||||
(Statement::dummy(Default::default(), self.node_builder.next_id()), statements.unwrap_or_default())
|
||||
}
|
||||
}
|
||||
|
@ -49,6 +49,50 @@ use leo_ast::{
|
||||
};
|
||||
use leo_span::Symbol;
|
||||
|
||||
/// An expression representing a conditional to reach the current
|
||||
/// point in the AST.
|
||||
#[derive(Clone, Copy)]
|
||||
pub enum Guard {
|
||||
/// An Unconstructed guard is one representing a single conditional
|
||||
/// on the stack of conditions.
|
||||
Unconstructed(Identifier),
|
||||
|
||||
/// A Constructed guard is one which as been `And`ed with all previous
|
||||
/// conditions on the stack.
|
||||
///
|
||||
/// We cache this so that we don't have to evaluate the same chain
|
||||
/// of conditions repeatedly.
|
||||
Constructed(Identifier),
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy)]
|
||||
pub enum ReturnGuard {
|
||||
/// There were no conditionals on the path to this return statement.
|
||||
None,
|
||||
|
||||
/// There was a chain of conditionals on the path to this return statement,
|
||||
/// and they are true iff this Identifier is true.
|
||||
Unconstructed(Identifier),
|
||||
|
||||
/// There was a chain of conditionals on the path to this return statement.`
|
||||
Constructed {
|
||||
/// True iff the conditionals on the path to this return statement are true.
|
||||
plain: Identifier,
|
||||
|
||||
/// True iff any of the guards to return statements so far encountered
|
||||
/// are true. We cache this to guard asserts against early returns.
|
||||
any_return: Identifier,
|
||||
},
|
||||
}
|
||||
|
||||
impl Guard {
|
||||
fn identifier(self) -> Identifier {
|
||||
match self {
|
||||
Guard::Constructed(id) | Guard::Unconstructed(id) => id,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub struct Flattener<'a> {
|
||||
/// The symbol table associated with the program.
|
||||
pub(crate) symbol_table: &'a SymbolTable,
|
||||
@ -58,13 +102,16 @@ pub struct Flattener<'a> {
|
||||
pub(crate) node_builder: &'a NodeBuilder,
|
||||
/// A struct used to construct (unique) assignment statements.
|
||||
pub(crate) assigner: &'a Assigner,
|
||||
|
||||
/// A stack of condition `Expression`s visited up to the current point in the AST.
|
||||
pub(crate) condition_stack: Vec<Expression>,
|
||||
pub(crate) condition_stack: Vec<Guard>,
|
||||
|
||||
/// A list containing tuples of guards and expressions associated `ReturnStatement`s.
|
||||
/// A guard is an expression that evaluates to true on the execution path of the `ReturnStatement`.
|
||||
/// Note that returns are inserted in the order they are encountered during a pre-order traversal of the AST.
|
||||
/// Note that type checking guarantees that there is at most one return in a basic block.
|
||||
pub(crate) returns: Vec<(Option<Expression>, ReturnStatement)>,
|
||||
pub(crate) returns: Vec<(ReturnGuard, ReturnStatement)>,
|
||||
|
||||
/// The program name.
|
||||
pub(crate) program: Option<Symbol>,
|
||||
/// Whether the function is an async function.
|
||||
@ -90,35 +137,146 @@ impl<'a> Flattener<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
/// Clears the state associated with `ReturnStatements`, returning the ones that were previously stored.
|
||||
pub(crate) fn clear_early_returns(&mut self) -> Vec<(Option<Expression>, ReturnStatement)> {
|
||||
core::mem::take(&mut self.returns)
|
||||
/// Construct an early return guard.
|
||||
///
|
||||
/// That is, an Identifier assigned to a boolean that is true iff some early return was taken.
|
||||
pub(crate) fn construct_early_return_guard(&mut self) -> Option<(Identifier, Vec<Statement>)> {
|
||||
if self.returns.is_empty() {
|
||||
return None;
|
||||
}
|
||||
|
||||
if self.returns.iter().any(|g| matches!(g.0, ReturnGuard::None)) {
|
||||
// There was a return with no conditions, so we should simple return True.
|
||||
let place = Identifier {
|
||||
name: self.assigner.unique_symbol("true", "$"),
|
||||
span: Default::default(),
|
||||
id: self.node_builder.next_id(),
|
||||
};
|
||||
let statement = self.simple_assign_statement(
|
||||
place,
|
||||
Expression::Literal(Literal::Boolean(true, Default::default(), self.node_builder.next_id())),
|
||||
);
|
||||
return Some((place, vec![statement]));
|
||||
}
|
||||
|
||||
// All guards up to a certain point in the stack should be constructed.
|
||||
// Find the first unconstructed one.
|
||||
let start_i = (0..self.returns.len())
|
||||
.rev()
|
||||
.take_while(|&i| matches!(self.returns[i].0, ReturnGuard::Unconstructed(_)))
|
||||
.last()
|
||||
.unwrap_or(self.returns.len());
|
||||
|
||||
let mut statements = Vec::with_capacity(self.returns.len() - start_i);
|
||||
|
||||
for i in start_i..self.returns.len() {
|
||||
let ReturnGuard::Unconstructed(identifier) = self.returns[i].0 else {
|
||||
unreachable!("We assured above that all guards after the index are Unconstructed.");
|
||||
};
|
||||
if i == 0 {
|
||||
self.returns[i].0 = ReturnGuard::Constructed { plain: identifier, any_return: identifier };
|
||||
continue;
|
||||
}
|
||||
|
||||
let ReturnGuard::Constructed { any_return: previous_identifier, .. } = self.returns[i - 1].0 else {
|
||||
unreachable!("We're always at an index where previous guards were Constructed.");
|
||||
};
|
||||
|
||||
let identifier_expression = Expression::Identifier(identifier);
|
||||
let previous_expression = Expression::Identifier(previous_identifier);
|
||||
|
||||
// Construct an Or of the two expressions.
|
||||
let binary = Expression::Binary(BinaryExpression {
|
||||
op: BinaryOperation::Or,
|
||||
left: Box::new(previous_expression),
|
||||
right: Box::new(identifier_expression),
|
||||
span: Default::default(),
|
||||
id: {
|
||||
let id = self.node_builder.next_id();
|
||||
self.type_table.insert(id, Type::Boolean);
|
||||
id
|
||||
},
|
||||
});
|
||||
|
||||
// Assign that Or to a new Identifier.
|
||||
let place = Identifier {
|
||||
name: self.assigner.unique_symbol("guard", "$"),
|
||||
span: Default::default(),
|
||||
id: self.node_builder.next_id(),
|
||||
};
|
||||
statements.push(self.simple_assign_statement(place, binary));
|
||||
|
||||
// Make that assigned Identifier the constructed guard.
|
||||
self.returns[i].0 = ReturnGuard::Constructed { plain: identifier, any_return: place };
|
||||
}
|
||||
|
||||
let ReturnGuard::Constructed { any_return, .. } = self.returns.last().unwrap().0 else {
|
||||
unreachable!("Above we made all guards Constructed.");
|
||||
};
|
||||
|
||||
Some((any_return, statements))
|
||||
}
|
||||
|
||||
/// Constructs a guard from the current state of the condition stack.
|
||||
pub(crate) fn construct_guard(&mut self) -> Option<Expression> {
|
||||
match self.condition_stack.is_empty() {
|
||||
true => None,
|
||||
false => {
|
||||
let (first, rest) = self.condition_stack.split_first().unwrap();
|
||||
Some(rest.iter().cloned().fold(first.clone(), |acc, condition| {
|
||||
// Construct the binary expression.
|
||||
Expression::Binary(BinaryExpression {
|
||||
op: BinaryOperation::And,
|
||||
left: Box::new(acc),
|
||||
right: Box::new(condition),
|
||||
span: Default::default(),
|
||||
id: {
|
||||
// Create a new node ID for the binary expression.
|
||||
let id = self.node_builder.next_id();
|
||||
// Set the type of the node ID.
|
||||
self.type_table.insert(id, Type::Boolean);
|
||||
id
|
||||
},
|
||||
})
|
||||
}))
|
||||
}
|
||||
/// Construct a guard from the current state of the condition stack.
|
||||
///
|
||||
/// That is, a boolean expression which is true iff we've followed the branches
|
||||
/// that led to the current point in the Leo code.
|
||||
pub(crate) fn construct_guard(&mut self) -> Option<(Identifier, Vec<Statement>)> {
|
||||
if self.condition_stack.is_empty() {
|
||||
return None;
|
||||
}
|
||||
|
||||
// All guards up to a certain point in the stack should be constructed.
|
||||
// Find the first unconstructed one. Start the search at the end so we
|
||||
// don't repeatedly traverse the whole stack with repeated calls to this
|
||||
// function.
|
||||
let start_i = (0..self.condition_stack.len())
|
||||
.rev()
|
||||
.take_while(|&i| matches!(self.condition_stack[i], Guard::Unconstructed(_)))
|
||||
.last()
|
||||
.unwrap_or(self.condition_stack.len());
|
||||
|
||||
let mut statements = Vec::with_capacity(self.condition_stack.len() - start_i);
|
||||
|
||||
for i in start_i..self.condition_stack.len() {
|
||||
let identifier = self.condition_stack[i].identifier();
|
||||
if i == 0 {
|
||||
self.condition_stack[0] = Guard::Constructed(identifier);
|
||||
continue;
|
||||
}
|
||||
|
||||
let previous = self.condition_stack[i - 1].identifier();
|
||||
let identifier_expression = Expression::Identifier(identifier);
|
||||
let previous_expression = Expression::Identifier(previous);
|
||||
|
||||
// Construct an And of the two expressions.
|
||||
let binary = Expression::Binary(BinaryExpression {
|
||||
op: BinaryOperation::And,
|
||||
left: Box::new(previous_expression),
|
||||
right: Box::new(identifier_expression),
|
||||
span: Default::default(),
|
||||
id: {
|
||||
// Create a new node ID for the binary expression.
|
||||
let id = self.node_builder.next_id();
|
||||
// Set the type of the node ID.
|
||||
self.type_table.insert(id, Type::Boolean);
|
||||
id
|
||||
},
|
||||
});
|
||||
|
||||
// Assign that And to a new Identifier.
|
||||
let place = Identifier {
|
||||
name: self.assigner.unique_symbol("guard", "$"),
|
||||
span: Default::default(),
|
||||
id: self.node_builder.next_id(),
|
||||
};
|
||||
statements.push(self.simple_assign_statement(place, binary));
|
||||
|
||||
// Make that assigned Identifier the constructed guard.
|
||||
self.condition_stack[i] = Guard::Constructed(place);
|
||||
}
|
||||
|
||||
Some((self.condition_stack.last().unwrap().identifier(), statements))
|
||||
}
|
||||
|
||||
/// Fold guards and expressions into a single expression.
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 55ccd130c0fb8317c3ccd6eeafdd9630fdab2447c4368c0f6870ce0f81a60e82
|
||||
unrolled_ast: 55ccd130c0fb8317c3ccd6eeafdd9630fdab2447c4368c0f6870ce0f81a60e82
|
||||
ssa_ast: ec3c124600b30e1bbe9c2745037f4a841ad4d12e9b4ce41f446faa1d7b34be6c
|
||||
flattened_ast: 6ac2d505d4bdb8575e80cea4cb619f5fb22558049d8c122ec5f237a6f6cf20ad
|
||||
destructured_ast: 3b63dde26bf7deafc85a6445ad350d02afa0e23edeb22f605f0e24b4925846bb
|
||||
inlined_ast: 3b63dde26bf7deafc85a6445ad350d02afa0e23edeb22f605f0e24b4925846bb
|
||||
dce_ast: 3b63dde26bf7deafc85a6445ad350d02afa0e23edeb22f605f0e24b4925846bb
|
||||
flattened_ast: a47513dc4d7f5aadd738b38b152d16e73e4d41b4d3329b9b2ccab72dfc7c8528
|
||||
destructured_ast: 67b5a3b7d55cf41ff4af1069e3a6a2d4b2e5b4adeccfc145e24db5018111499b
|
||||
inlined_ast: 67b5a3b7d55cf41ff4af1069e3a6a2d4b2e5b4adeccfc145e24db5018111499b
|
||||
dce_ast: 3c317e1a5194206c1a6a41ffb463da578330bf0040ecae4e9cdccbc1c16c9d22
|
||||
bytecode: da1b0a83a17b801368b0a583b158d88d9d807a33000c8e89e82da123c8041aea
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
18
tests/expectations/compiler/assert/early_return.out
Normal file
18
tests/expectations/compiler/assert/early_return.out
Normal file
@ -0,0 +1,18 @@
|
||||
---
|
||||
namespace: Compile
|
||||
expectation: Pass
|
||||
outputs:
|
||||
- - compile:
|
||||
- initial_symbol_table: e965a8af9217457a872227ba3bf36a713ab10cbddfbea556d187ef82d54656d6
|
||||
type_checked_symbol_table: d94342d0ceac96b56ea536f27be02101a259cc6059843d75ed0eba6813cd36c2
|
||||
unrolled_symbol_table: d94342d0ceac96b56ea536f27be02101a259cc6059843d75ed0eba6813cd36c2
|
||||
initial_ast: e7a9420a403419844c2b328330be1264ec8a0ff518ed881f84970fe71845c6b6
|
||||
unrolled_ast: e7a9420a403419844c2b328330be1264ec8a0ff518ed881f84970fe71845c6b6
|
||||
ssa_ast: 13d8fdfd7a4e3f8a225e74f3520204957edbef4ae041cfbc0144084e347b7086
|
||||
flattened_ast: e4b2496a10ba914ae051f0bf01c7da7336ae581da2f66a4434fe47b600272235
|
||||
destructured_ast: 194243154841f88aead74d3c31339189104e4a675c0e2c8f44b33783905a5171
|
||||
inlined_ast: 194243154841f88aead74d3c31339189104e4a675c0e2c8f44b33783905a5171
|
||||
dce_ast: 194243154841f88aead74d3c31339189104e4a675c0e2c8f44b33783905a5171
|
||||
bytecode: 9eb1cb369a0b26adb4c56b497cb21915e34d7aad8c72224713d9a2d912d18907
|
||||
errors: ""
|
||||
warnings: ""
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: ba67a500726316de1c9fc21a11c793b2af8c1d356b129aa0e4daca8e97685ef6
|
||||
unrolled_ast: ba67a500726316de1c9fc21a11c793b2af8c1d356b129aa0e4daca8e97685ef6
|
||||
ssa_ast: d0458d630038e53c60b016d68897fbb8f7cbaacdcf55ae82a7b57499f2a14a8c
|
||||
flattened_ast: ec3e1d4aa7dbc4761eb4bd30e1e44705888b55b549dcdfc9b680dcb0c2353e5d
|
||||
destructured_ast: 6ebb454d42a584471202278aa170bb7a16a72ac1cc2d8da4045e081abe047b7b
|
||||
inlined_ast: 6ebb454d42a584471202278aa170bb7a16a72ac1cc2d8da4045e081abe047b7b
|
||||
dce_ast: 6ebb454d42a584471202278aa170bb7a16a72ac1cc2d8da4045e081abe047b7b
|
||||
bytecode: 3ff716b96c532801f4fa5310f4eedf8f96fe15bd7db3bf087e7b64a161153945
|
||||
flattened_ast: 3367b1ecfa78339cfc5ef51db8b63de8bd8c8d56e136dbc4ef66735bc7196c23
|
||||
destructured_ast: e903da526e4b32d88dfd87b3216523e6015340e945612d4683f23d3904e3e887
|
||||
inlined_ast: e903da526e4b32d88dfd87b3216523e6015340e945612d4683f23d3904e3e887
|
||||
dce_ast: e903da526e4b32d88dfd87b3216523e6015340e945612d4683f23d3904e3e887
|
||||
bytecode: 6c1429f518559f2ed199b19fff8774614cde60ca6f8a4b28f3ca55f1d96bfbed
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -1,5 +0,0 @@
|
||||
---
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
outputs:
|
||||
- "Error [EPAR0370034]: global definition of `HELLO` shadows previous definition of `HELLO`\n --> compiler-test:5:5\n |\n 5 | const HELLO: u8 = 0u8;\n | ^^^^^^^^^^^^^^^^^^^^^"
|
@ -1,15 +0,0 @@
|
||||
---
|
||||
namespace: Compile
|
||||
expectation: Pass
|
||||
outputs:
|
||||
- - initial_symbol_table: c6a4e40ae8f466c3ff6bf5d356d6ba89684438f88015e8ea23ff43eadb662b49
|
||||
type_checked_symbol_table: 1f2f455b3509dd7c93fa6799a0f3f01843aaab11efbc772223dcb5de29ae93f9
|
||||
unrolled_symbol_table: ff911ea4ffadc4a3ac5e7f81af922dfb248befd39a4e178c0b7ba795b30f8080
|
||||
initial_ast: 9b2120a39d6e04dfbaf16a794a6d2e0dc9fd67256210572d85a959c593c6b07c
|
||||
unrolled_ast: 5b36cdd4106acc7a27c70f02f0e2562ba97f86523e06ae2d384b3617f6362460
|
||||
ssa_ast: ae7908bc7fa1b46f457c1bba57871e3a46f2826d1c508c17f4e6cdf21b483307
|
||||
flattened_ast: 1c45e7b12455209eb5a0c8d4f344ad74a592e0a4dafc5e70b5a40a8c70efad24
|
||||
inlined_ast: 1c45e7b12455209eb5a0c8d4f344ad74a592e0a4dafc5e70b5a40a8c70efad24
|
||||
dce_ast: 8bebed7b5a44ab7f63d2c178dd9544cd85f3e062e98f5366097f52aafd05043a
|
||||
bytecode: a5ef8b434b2a8b1939f1d042fd5706c996e0f1905bf2395a0f140cff779ce48a
|
||||
warnings: ""
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 6deebcd133753c70df38755447443e16cc528daee1b9832cd43abdb154276cba
|
||||
unrolled_ast: 480ca5e4a2b87dd0ef24c8eaa333c527b18e2f99aac30dbc10b07041cf1afef1
|
||||
ssa_ast: 6d2a5eea33565e9e6173cbd1ed3ab91e7aa1cad1868d6af5f6542ecabb0837a7
|
||||
flattened_ast: 63bec4c7a76657334050b28319b5e5ad76c2e712092680f06cb358ea968a45b2
|
||||
destructured_ast: 1285f38557972e881ec58ee8460f0a2cd36360182c3818ba60401af85252e724
|
||||
inlined_ast: 1285f38557972e881ec58ee8460f0a2cd36360182c3818ba60401af85252e724
|
||||
dce_ast: 1285f38557972e881ec58ee8460f0a2cd36360182c3818ba60401af85252e724
|
||||
flattened_ast: 9e8950b9c0afceabfb1a408fd75bf37c0c02544fbc34bdba964445f9e0ad86c4
|
||||
destructured_ast: cc73034601bb08edfc50cbd2561e65ef0a7a9f81ff91d40017ede94796a950a2
|
||||
inlined_ast: cc73034601bb08edfc50cbd2561e65ef0a7a9f81ff91d40017ede94796a950a2
|
||||
dce_ast: fafdebf410274a50ca44c9cc9e139686fe2701ea2f6e5715c8a586198fc6d4ec
|
||||
bytecode: d9595550f8a3d55b350b4f46059fb01bf63308aa4b4416594c2eb20231f6483a
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -1,5 +0,0 @@
|
||||
---
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
outputs:
|
||||
- "Error [EAST0372009]: variable `HELLO` shadowed by\n --> compiler-test:9:23\n |\n 9 | const HELLO:u8 = 9u8;\n | ^^^^^\nError [EAST0372009]: variable `HELLO` shadowed by\n --> compiler-test:12:23\n |\n 12 | const HELLO:u8 = 19u8;\n | ^^^^^\n"
|
@ -1,15 +0,0 @@
|
||||
---
|
||||
namespace: Compile
|
||||
expectation: Pass
|
||||
outputs:
|
||||
- - initial_symbol_table: d698a6988e2f4caf3321c2a5b0c0228721f13930b072f738e97747b7d3ade0de
|
||||
type_checked_symbol_table: 88168597bb3de8d73a3ada9b63c026594d716c75f2deb4b7d20abd2758d6b4d3
|
||||
unrolled_symbol_table: 88168597bb3de8d73a3ada9b63c026594d716c75f2deb4b7d20abd2758d6b4d3
|
||||
initial_ast: 7d6f5a65fc409b01b94eaf7ec537d16e8f946ee50e26ec6655ed15fb5a6b3d0b
|
||||
unrolled_ast: db2c439efef6103d9d7ed707a44ca1a0c9cb1c08a21304ef32355b1ab27de6f4
|
||||
ssa_ast: db2c439efef6103d9d7ed707a44ca1a0c9cb1c08a21304ef32355b1ab27de6f4
|
||||
flattened_ast: 44a9ec566f0b84c8cdf133cc2ee9ae4f9dd55d86cf35e7697bf8d8082d5857f6
|
||||
inlined_ast: 44a9ec566f0b84c8cdf133cc2ee9ae4f9dd55d86cf35e7697bf8d8082d5857f6
|
||||
dce_ast: 44a9ec566f0b84c8cdf133cc2ee9ae4f9dd55d86cf35e7697bf8d8082d5857f6
|
||||
bytecode: 91d9f12af3f91ba9332bdf7303424e4369e14db4b713c13f43afc72a55cfcd4a
|
||||
warnings: ""
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 2939c07bf811d0a110e3f4d41ce08332be4a6938213330fcda20502369155023
|
||||
unrolled_ast: 2939c07bf811d0a110e3f4d41ce08332be4a6938213330fcda20502369155023
|
||||
ssa_ast: 5b011875455c2efbb3c222c91b40f049ca074e3b21685e27bfff6ecf50359ecf
|
||||
flattened_ast: fb3c25714b87e8bcd5226eac3475c33910673b00612ebe1a92f392badd89b351
|
||||
destructured_ast: 0a9ddab7802cb678e0cda1fb4ba49b84e5d63488390ee48b212efbdc248681a8
|
||||
inlined_ast: 0a9ddab7802cb678e0cda1fb4ba49b84e5d63488390ee48b212efbdc248681a8
|
||||
dce_ast: 0a9ddab7802cb678e0cda1fb4ba49b84e5d63488390ee48b212efbdc248681a8
|
||||
flattened_ast: 71235c2f490ba2f1d7cabccec771d68078a8313fa2ecbdb3a17e88410132bde4
|
||||
destructured_ast: 236729b9a950bec2251d0ea55cc078f41437cdbd16beb05fa2910fbe6f671182
|
||||
inlined_ast: 236729b9a950bec2251d0ea55cc078f41437cdbd16beb05fa2910fbe6f671182
|
||||
dce_ast: 7477da18c60adbb27b8213fae81aea20b3a4efaf8e42369c468eb8cc1c8b5932
|
||||
bytecode: ae52309998de7e291d82e92418fdbf583b182ce12e710e844550132d8743380e
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 75dcf9468ef37d52c5e5ec868637ba8d33c6476d76bce004c9c6ac4ec905e3ba
|
||||
unrolled_ast: 112fcc76097784bf2a7d01e5588b7ee7a1ccfa74eea5f0f16c2a91efcbea13fd
|
||||
ssa_ast: 566b51d62d9ccd2c7d180c63640e9b6aad68d9f3f380c350985417bd820305bc
|
||||
flattened_ast: 7b9c7175ab2ada5cbe19f9a5e444a6dd791578eb46a1520c58bc8ca2b70fc208
|
||||
destructured_ast: dc4920e8781576372a2c085288c1fb6da6428583bd14768dbe130e071c64308f
|
||||
inlined_ast: 8409a26873b6c09c4b9288342ab6adb1d9765cffe1f20563fb1e7712c3e3d270
|
||||
dce_ast: 8409a26873b6c09c4b9288342ab6adb1d9765cffe1f20563fb1e7712c3e3d270
|
||||
flattened_ast: 826db74250d660f581a5b868dfd69c093472c194cd174c7a2b3df7d062b820be
|
||||
destructured_ast: 0724b0d8e232c379b198d1d00453e70ba260eab0477d934f85d0543dd0d8caf6
|
||||
inlined_ast: 35356c074003b4bf9673a83428041bf5fbc04d8ea0ca06250362834dfdc6693b
|
||||
dce_ast: 3d405275856db1a0f883660bbbc9e0cff7210228856ad27d250ee560d166d545
|
||||
bytecode: 0667a154749e9675b6d20ccc3d01e17a19b6f770629aef1640a1e14d375a6e5c
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 842ee5a0eccd43fb573d43ebc4e48954fccfdc53654b4b668ada246b2bec547c
|
||||
unrolled_ast: 842ee5a0eccd43fb573d43ebc4e48954fccfdc53654b4b668ada246b2bec547c
|
||||
ssa_ast: 6fb2f6a9338c3803b53aebe423e1af4fc412b3b26544a697162aa7224c367b1a
|
||||
flattened_ast: 614438bddb4047db8d1381ba7824c8d97aa21411c83bcea3384c01f52797ba2f
|
||||
destructured_ast: 9108d41e68053432ec4d3cf2482cd1bd8d6ade20ff28891f4ee2f3ef21f69975
|
||||
inlined_ast: 9108d41e68053432ec4d3cf2482cd1bd8d6ade20ff28891f4ee2f3ef21f69975
|
||||
dce_ast: 9108d41e68053432ec4d3cf2482cd1bd8d6ade20ff28891f4ee2f3ef21f69975
|
||||
flattened_ast: 81de1e35492ac630873b36da8e2e79ca97dea43075d2012a40d6e955a136a372
|
||||
destructured_ast: 96b7297c2564ed6f1cefcd66495d77b1ad8d59522050832058014169abe0ec35
|
||||
inlined_ast: 96b7297c2564ed6f1cefcd66495d77b1ad8d59522050832058014169abe0ec35
|
||||
dce_ast: 55779acb30ca29bcc70005552ff91b6a71361fbe942b97c0cc6e97de16ff3833
|
||||
bytecode: 5adbf2387ed6209b64c8248741f74929f524771803ef803d5d9f9f8fb0d66ee7
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 117744a82db2c8ec3103bbc81dc52488131bafd739a4cf2b9ece1cd09072e0f8
|
||||
unrolled_ast: 4ff38e507b622be9ca6bb5a99cf9f4ca665d666058da015640a55504dc1ff3bb
|
||||
ssa_ast: 7612101f61d801d5d33efc0715b45610875440a3aa9f962d4104b7fe5019bc44
|
||||
flattened_ast: bdbad44e0defc42471bafc95a9267d59b1c317596d924b1a97444f08698b70f5
|
||||
destructured_ast: 6d44ad68362ddb8caebdffbe35068bbf77a6324a17cf88f188407f40ed37f9e5
|
||||
inlined_ast: 47225dc92c45c2f0788eae9dbcd618d3b17664e2254ca7eafc72a6d696ee859f
|
||||
dce_ast: 1db259215dda3c526f6779f0885f3f22340ac7cf766bbdc6bd188483848c0026
|
||||
flattened_ast: d47b4157f2a9861a15285f4e187f52d80af53ec0754d0e5e77617c64d7734c04
|
||||
destructured_ast: 8ac6a4382d33c5fe9a949255abc98f01d0383c013e34fe6ff1e3ea7e06f10b9d
|
||||
inlined_ast: 3cd1084bb56f086d95fc230e24b314fbacad1a491f0e6d9c1ff738edeb7ca79b
|
||||
dce_ast: 587165ece35585c3ae6966b1dbe9729d21f694586d655ce3771e28bc37be30e4
|
||||
bytecode: 3b90abd4333a964993382d9f47ba381cdd732a342f8b28828b99870c6dfafffc
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 86a0d996309dda9eb9d5d8d1dd58275a442e24a4296e7761207f85ebc97b1ba1
|
||||
unrolled_ast: 7cd8c0c472ab06fcbdf994754d6aa6007aca23c2427dccfb3fdb0173c4bc95d8
|
||||
ssa_ast: 9a7fef0e85d398f0d68b96db691007849eef4927d6f7f3873a7e8a581a927294
|
||||
flattened_ast: ef83a0d178bdfff007a940d544dbb17ad00e76bd8d149ed233e09b940c27c14d
|
||||
destructured_ast: 85a5dbafa3a8f1f6e40d99d921d01229d38fa3cbba24a1bb3a87da7f6a4c7eea
|
||||
inlined_ast: 85a5dbafa3a8f1f6e40d99d921d01229d38fa3cbba24a1bb3a87da7f6a4c7eea
|
||||
dce_ast: 85a5dbafa3a8f1f6e40d99d921d01229d38fa3cbba24a1bb3a87da7f6a4c7eea
|
||||
flattened_ast: 3db995c5d3741a2ca2b3231c6e7f0f1d9ae3cbfe843790b260835705a94f14f3
|
||||
destructured_ast: 917db53bdfa8bbecb8349f40a5dd9c4bfb549bb6cd4aec4a4c5fe7618f298cee
|
||||
inlined_ast: 917db53bdfa8bbecb8349f40a5dd9c4bfb549bb6cd4aec4a4c5fe7618f298cee
|
||||
dce_ast: 77e67cbbd94cf794f3e0a5254d94d9288533727f23c33882d43bbbbc74b513e0
|
||||
bytecode: 1425e7c87a38072c342ef9505090c0b039663ac1c5ce41632f999b376c81d348
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 776475d60a0722c4fc736391d9bac011ad55dc4c55373775641ab22b3dc62b02
|
||||
unrolled_ast: 776475d60a0722c4fc736391d9bac011ad55dc4c55373775641ab22b3dc62b02
|
||||
ssa_ast: 1e73d636efe1a323fee9e8160abcf25ffae1272bcdb5423a0faf8902cf8c1e71
|
||||
flattened_ast: 0504d8c2e2146fcd79bc6b95a133f293f8e06ade0c2d7e510cd241d24e00dafe
|
||||
destructured_ast: 81ab333d3e1b0254ccc68dc62673f1a8844d782dfaf64dc9f769c7b551f9b564
|
||||
inlined_ast: e216dfd94263243f5f11df997138c8a3a8e33374a7aed13a4bf59a367faa57ae
|
||||
dce_ast: e216dfd94263243f5f11df997138c8a3a8e33374a7aed13a4bf59a367faa57ae
|
||||
bytecode: ecf52756cc54e0e43ccfeb4db8369ff820a309fd7061bfaad5dcf535b58782b3
|
||||
flattened_ast: f896de25ea535a63fcf3f58695b6c9d16fa7370e3301f17ec6eaa0bd839f716e
|
||||
destructured_ast: b49a889ba314836db2ef9604dca88d72bfaed753ed03650858f48ad25e05130a
|
||||
inlined_ast: 5ec704aab884c69f03f4fe424402e8988c3f40e068b5ab4f6af059f537867687
|
||||
dce_ast: 26a36139ea44188311968fbd4f832fb711b7f902834c812f79b4a013b8d874b9
|
||||
bytecode: 7db4daf8a8e45f9b9bd97d1f9cb4596f704f8e7451f3e1e5184983fd08e1b2b2
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: fddba4f56016625454f5d5da3fa81487ea9b30358b35269f8bf700976590cfb9
|
||||
unrolled_ast: 02947c30c03d6e87c8afedbfb9dca639248a1777bfb4b9265ee62eb6280b617e
|
||||
ssa_ast: 108f90cd2f8b1a79ec0ae244985a9213392e72eeed6caa8ef41ba5950ab11ef9
|
||||
flattened_ast: 48ce9c5f60818c67cb02f0627c0c04feabf2eb17aa7a4314b334102b15a3f65e
|
||||
destructured_ast: 59982ab4709732bc012791803270488fcf58444158cd0c736babe82138c1970b
|
||||
inlined_ast: 59982ab4709732bc012791803270488fcf58444158cd0c736babe82138c1970b
|
||||
dce_ast: 57f7c5aa1e4a6de27de6e215a500c2f0831d0cb282dc4d022ab907fec73a64b8
|
||||
flattened_ast: 9e99b7bbde2469d636933a864ee61c8ca1e8a71b17eb7cc197fe709845aacaa9
|
||||
destructured_ast: 3c5267ed38b2f3dc229c0c529ba13ba55f99f6a7dc1bfdb9ec65336d661a119d
|
||||
inlined_ast: 3c5267ed38b2f3dc229c0c529ba13ba55f99f6a7dc1bfdb9ec65336d661a119d
|
||||
dce_ast: 6b12f22ea0ca1d517910600d0fd13260e0eb5198595b1c458a4032e992bd4672
|
||||
bytecode: cca4637103b23653c5a99744693068186bc6d89052df73b09c1601c7f85f0eed
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: a67863a460a9dee157b89df5fba6f8eb871bec487360c7bcbeab1504b335577a
|
||||
unrolled_ast: a67863a460a9dee157b89df5fba6f8eb871bec487360c7bcbeab1504b335577a
|
||||
ssa_ast: f1c6c8e9039d32e4d0d46e730f0b7ec29e63550c9c49a7d8d60b89179c744335
|
||||
flattened_ast: fe3d899285178bee9bac8c33a2f70381a8dfa268cbf6347087c373dcc8f08c49
|
||||
destructured_ast: 11dd8920cc9d7b401dd1c7539127e619e4089319e78f887a3dc6585603724eaa
|
||||
inlined_ast: 11dd8920cc9d7b401dd1c7539127e619e4089319e78f887a3dc6585603724eaa
|
||||
dce_ast: 11dd8920cc9d7b401dd1c7539127e619e4089319e78f887a3dc6585603724eaa
|
||||
flattened_ast: 5b3f202ab9f4b63e6e257c2b7d743a1c0721ddb7cdd4c8f6275a752dc2e9e842
|
||||
destructured_ast: 00ac5281bc036afd75ede2ba07a45632762959d1ec5efff61eb3316f0ba16d61
|
||||
inlined_ast: 00ac5281bc036afd75ede2ba07a45632762959d1ec5efff61eb3316f0ba16d61
|
||||
dce_ast: 4fe84b39c3e70d173a23c919d3affdda78e77dfc6037cba8b80ae1a204826c80
|
||||
bytecode: 9aba49a906bfc3f931cb314bd970e04dc8b74966ec2888efecc4f0f8795dc368
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: cef0b29d345936f527e1a8acf6d33cbab795e5e3561b46703bf6529afbfd5325
|
||||
unrolled_ast: cef0b29d345936f527e1a8acf6d33cbab795e5e3561b46703bf6529afbfd5325
|
||||
ssa_ast: 30186fdf7cd60b3df1b6e55ff99ad7757cc3a1166c507fc8f16b9276f82f05aa
|
||||
flattened_ast: f33f65faf05f7bbf8e86435b45e632d30a319ac541b4ff6a59909e59c3028214
|
||||
destructured_ast: 8da1b5fdfd388a779a870e6331bed91cff3dee9ecaef71195aceded5ce14f904
|
||||
inlined_ast: 3d38f21d347cb6782a1e7732f764065fff429ce6dfed789b3b2e641d1b8aeb39
|
||||
dce_ast: 3d38f21d347cb6782a1e7732f764065fff429ce6dfed789b3b2e641d1b8aeb39
|
||||
bytecode: 38e21ed198874357b0a83d451d9498a59838a7f5ad979d372a405b5e6e5a4e17
|
||||
flattened_ast: 91c57b64e5de51c3759400c059f6887a2545378dfb5d4248bdaef87683d72cc5
|
||||
destructured_ast: 8107bbc5a44f1f35d9cd072d10216c191cec865f0edee9ae96e5dcf559b714fb
|
||||
inlined_ast: 8cea84d58a68f8f5b4fd079d7dc6e4da038721b4e2f83460c623a9e9b70f871d
|
||||
dce_ast: 349d6d5523fbcbe1b08c856cbafb72abb96438b9a3380f6c25cb45966945f39b
|
||||
bytecode: 45f844324d2a7baffe9e2e141911951fccd971bb72c5b22cfe65eefe368652c4
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -1,5 +1,18 @@
|
||||
---
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
expectation: Pass
|
||||
outputs:
|
||||
- "Program length exceeds N::MAX_PROGRAM_SIZE."
|
||||
- - compile:
|
||||
- initial_symbol_table: 55be9a7f26f8bd71befb12300e4ecd93c3b87a9c67140ca190d2c1e66a0a319e
|
||||
type_checked_symbol_table: e59145d5bc1be95c9e6bb228dafcad15accffec379901264362f8a9d01725015
|
||||
unrolled_symbol_table: e59145d5bc1be95c9e6bb228dafcad15accffec379901264362f8a9d01725015
|
||||
initial_ast: 5055844ee4ce47add688b1260ccc956c789f6a9b03b25504a28c2fa5a9944724
|
||||
unrolled_ast: 5055844ee4ce47add688b1260ccc956c789f6a9b03b25504a28c2fa5a9944724
|
||||
ssa_ast: 8c698b44b29eb4c67ce4446ad66d53ebc87333d11f4e7acad23d488ae43e6353
|
||||
flattened_ast: 6b9b17fd68f818533002fa71e605e0e5693b32b6e9b57258da156d12add0ebfe
|
||||
destructured_ast: ac574f67867653216e0ea0f60dff7b6676585f1fec7994be6df251721eef6eaa
|
||||
inlined_ast: 8f599322efdea0ed835f8c9cb0006b3a7b9c984501bc6e8b9db3a908cb0cb31f
|
||||
dce_ast: 2a2c6e970e680f5089732358493d1bc7bfe3e82c02c39f38b52a46ea2c16c634
|
||||
bytecode: 3a623138dc01e5cfc8c7ceca800921c338261d48ffbf4538ce9e21235b0cbdc7
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 22e5ae5968afbbe73a278a85fbbe7839c91f8a6ae8b2a2ebc47b0f7c27b7b32c
|
||||
unrolled_ast: 22e5ae5968afbbe73a278a85fbbe7839c91f8a6ae8b2a2ebc47b0f7c27b7b32c
|
||||
ssa_ast: 1d4d764ebef58dd5f4ffa0fec746dc14ac6511394399d099ef901774cb23e687
|
||||
flattened_ast: 5109cbd390a294bfcb89c16f3b56a337206cae71c3005f307f403abf9afec5b2
|
||||
destructured_ast: cfbbef038db7ff79319ced92674bfe14b7a8cbb1beca4c7381953382c60a1836
|
||||
inlined_ast: cfbbef038db7ff79319ced92674bfe14b7a8cbb1beca4c7381953382c60a1836
|
||||
dce_ast: cfbbef038db7ff79319ced92674bfe14b7a8cbb1beca4c7381953382c60a1836
|
||||
bytecode: 3516104be238849345d986d90ff7aa2bc01fe31609f34330e279eef25edb7752
|
||||
flattened_ast: 22bf54b3fd741c5d4c7c41f0f029e3c5e3fe476dcb7a69b7f96e891a94cd7ab8
|
||||
destructured_ast: c8340275d74390e77c3fc70512a9cafaa704b2a9a05d3163e8617bc601e50026
|
||||
inlined_ast: c8340275d74390e77c3fc70512a9cafaa704b2a9a05d3163e8617bc601e50026
|
||||
dce_ast: 6afbd919c00857be865c40edd9079d02dd02d7051f568bfe45d1baccfc4b4bf7
|
||||
bytecode: 0f55fff9989f92de241c4d91c5ac9c347b96c89b9615fb7e570b1b0d0021d5c1
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 82934829512375c02fee11224416622175c0f2c1fad225063ad561120b196a86
|
||||
unrolled_ast: 82934829512375c02fee11224416622175c0f2c1fad225063ad561120b196a86
|
||||
ssa_ast: 22caba0c620c5f9a63d4e3933d8cfc5d4728d42d40353a39c3617683d5f0c922
|
||||
flattened_ast: 8e4fa75c5d481dd545930c6e9e542a1fbd5b31e4854454874f44f3c8a1319842
|
||||
destructured_ast: a7fe93b8e326fd9b93ab721483ad2f65be3c5079941fc2f1c4cc32b248868760
|
||||
inlined_ast: a7fe93b8e326fd9b93ab721483ad2f65be3c5079941fc2f1c4cc32b248868760
|
||||
dce_ast: a7fe93b8e326fd9b93ab721483ad2f65be3c5079941fc2f1c4cc32b248868760
|
||||
flattened_ast: 2661a06a5f0d5a6c06b167543e8597a389e8b833552426229d8bef9e0b6a4770
|
||||
destructured_ast: 1df445bbfc16b4d425cc4edae448172f06c0abe275fd1b2755aab583ba28ecfb
|
||||
inlined_ast: 1df445bbfc16b4d425cc4edae448172f06c0abe275fd1b2755aab583ba28ecfb
|
||||
dce_ast: a867d006251c66d33490635cdd158dd6ee03669401b976e50c52ca215f1e5ff8
|
||||
bytecode: 447867c0cff55fb14313d71ddd48f1a8fbee509cd357304c12fba830841dcd09
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 71f305a9a0f1cb9a7e7288f8d1e8e33dc60c563c8a79292bba93cbc47a22deab
|
||||
unrolled_ast: 71f305a9a0f1cb9a7e7288f8d1e8e33dc60c563c8a79292bba93cbc47a22deab
|
||||
ssa_ast: 386e22834051ea8712aaaf890074feecbb9f77bc00b1d527719ad6a65ec90bc8
|
||||
flattened_ast: 8ba8ade0fbc69bc73424b0078698b5e90c5868b92c60f0fcf6af300bdbbf0d40
|
||||
destructured_ast: 74ca7acb295c6285065c7bc3fdee6b94e0f7d25b3f86ad0bf1819835604f8140
|
||||
inlined_ast: a0d0c084c88498b3f1b3015fea3e54ca8f2fb73f430be47926225fc99e9903bc
|
||||
dce_ast: b3cfb4722950a42590b9f2b030731fd8159df47a6999c02cb8714cafac226a67
|
||||
bytecode: 82d12cfea48eff976f9f70a6846c7f25870209fc3edf10b45b5f862a25ad3f40
|
||||
flattened_ast: 2f3463ad9abfa67b2850103cee6e20b757afe556ea4230bcc424e7990a8aa517
|
||||
destructured_ast: fb144b2514b8a77b50cbb23d991275f3befef4f4d94ca5418610940065a7e6c5
|
||||
inlined_ast: 91b896e11b7410d19a7aa69a7008d9da0cd5aa7d8e668d9219b35ee0a0b852d5
|
||||
dce_ast: b589f303efc5197399adef4ad347a7ac617b14c35e414a93c15e5ba38edf923e
|
||||
bytecode: 771afcbeaa3c6794c5d5b7ae06db1c787a6c78d2b3f0c5ff7e514993ea68aac0
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 47423bb725b42e8571e55829ae6784b52be84366628d4ac08716969cabca10ac
|
||||
unrolled_ast: e0d4f372e90bd4ade1afacd971a09089fb41b993a1ee15800d76dccb86d3be35
|
||||
ssa_ast: b4217a2674509495998c8deb30435450caf0c6cd61e5745c916a919b8c2fdc80
|
||||
flattened_ast: 1bad7946a564a71d6bad4132f2cdf60326a84502528b098e07c50c3641e12925
|
||||
destructured_ast: 3382eb0c271a810e87fc380b20d069b373721dbedf48c54c89244b1f51bb143f
|
||||
inlined_ast: 5e3795ced5aaef834a271b1e9b96403a15df1362913d463474162e9f1a282601
|
||||
dce_ast: d8f89f2e99db1aeca5f52af1193507a6f99dfca7633d9d739ca5f1de7fdefc42
|
||||
flattened_ast: d489c80166d3afe5c5220ad477c0b2ceba24affdb7b686cb799cdd7a09fc7189
|
||||
destructured_ast: 0602fda34468778931c9ed776235e0ece07e4bf1b825f89bd6052a842a55d44a
|
||||
inlined_ast: 59cdd4f3331557ccb86a4bd135735846be87b1710032dceebb3f46e92fc7ffd9
|
||||
dce_ast: b290496ff29a92895769c6dc6591a3205ea6429a4326df653504ab287e91fdb6
|
||||
bytecode: c5073e255b7504fbc368079e634a99935c6c645c9db6830212e2c6077f8ebf3f
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 409d57cef21ca167d937cf70c1d7c116bc900e502831b395698e9d3f13ae0961
|
||||
unrolled_ast: 409d57cef21ca167d937cf70c1d7c116bc900e502831b395698e9d3f13ae0961
|
||||
ssa_ast: 7f12fbc88f56e33590cbb790827e4ec6a04fa9be41e6c1f2bf48515e430d9dc5
|
||||
flattened_ast: 5d1bd9257ba315ee5b563d7e66a2c9b09ffb0841f7d588a28bfa210d73923d2e
|
||||
destructured_ast: 96ddbc8267f0f3e2c870c6b0da42f7d86decdbca1a559ed20e5b67763ab0a5eb
|
||||
inlined_ast: 96ddbc8267f0f3e2c870c6b0da42f7d86decdbca1a559ed20e5b67763ab0a5eb
|
||||
dce_ast: 96ddbc8267f0f3e2c870c6b0da42f7d86decdbca1a559ed20e5b67763ab0a5eb
|
||||
flattened_ast: 8e2378df83a8f59228993ec32ae9fbe19318052a3ced6b451b6f720ca6171257
|
||||
destructured_ast: 8bc445642f52d44cedf36737681f945b99b647953026bb44a836eac1c3cd5d69
|
||||
inlined_ast: 8bc445642f52d44cedf36737681f945b99b647953026bb44a836eac1c3cd5d69
|
||||
dce_ast: 2a0e5585007503ef568572b188bae1212a4839548f624b022aafca1ce8e2cf24
|
||||
bytecode: 675912267b82b91bd854fa2ef169b85c74ecaac6b73a157d7e99818e256b53b1
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 8ba9a8e45a45f2533e256b3a001ede7f91cc199bbe31047147ecdd49014d52f1
|
||||
unrolled_ast: 8ba9a8e45a45f2533e256b3a001ede7f91cc199bbe31047147ecdd49014d52f1
|
||||
ssa_ast: 3e7a79efb2522e18a6bdfe1942ed539e5ad108e9a2b755076d8843f57f1b492d
|
||||
flattened_ast: 9cef8abd1fc247142b9c7e81bc497f16af922a66ddc8b927637abf63ddb4365f
|
||||
destructured_ast: e766ef4f354951465d2aff25b818634939d131212dc06e12e37f7391e8d6dece
|
||||
inlined_ast: e766ef4f354951465d2aff25b818634939d131212dc06e12e37f7391e8d6dece
|
||||
dce_ast: e766ef4f354951465d2aff25b818634939d131212dc06e12e37f7391e8d6dece
|
||||
flattened_ast: 4212b1fec042b0ed6aabb6ebea09dfb038242ecb11c507f15d580a68b6c13bd1
|
||||
destructured_ast: a73f5add01ed1aa34831e4ffe3e360fe45cab8b8f7317eb5f345856d7baf637e
|
||||
inlined_ast: a73f5add01ed1aa34831e4ffe3e360fe45cab8b8f7317eb5f345856d7baf637e
|
||||
dce_ast: c794cf910bd8b30f084cb86383a02208b6a7e64ea10b6688e437d27dd35c0cc3
|
||||
bytecode: 7fe490ec8230a29dea04ba2ade935868530bcdcde28707abfa794c90833cc678
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: d49dfe43c42214993dfb943c61df9c6827d0a2c776a096d557ac5ce39edbb596
|
||||
unrolled_ast: d49dfe43c42214993dfb943c61df9c6827d0a2c776a096d557ac5ce39edbb596
|
||||
ssa_ast: f20609affed799afc1e6c54febc34d12a9fc0fcd421fcacd9eb66f3a9513acca
|
||||
flattened_ast: 240f42785e46c1b87ed6c668020787de9193bff1ceed7fc859209d8034d457f8
|
||||
destructured_ast: d31d15fa254ec3123ddea59796b5a0042b9be6316ef109f5cefa715d97829511
|
||||
inlined_ast: 1db9b07e1dfaa2d21ba725980d900dc32f9ac3e4b4e55a5d3ed80b8150172973
|
||||
dce_ast: 40555db544116ffd654c80635deb1b591d2f541d677cedcd34893272ee602afb
|
||||
flattened_ast: 9a863bf1d189402fdf36bb61f2e3db5226762c0ea91a023215e7d66566f3a38d
|
||||
destructured_ast: f6fafc3a3aef45ed4d3d2892e59a907c0e8617c6931b807f97c25879965a92c8
|
||||
inlined_ast: 44f8af431773c3a33563240ed7e4ceb88e5ef11d2dbcadce87e4f1e34c07dd9b
|
||||
dce_ast: 3aaebe40eb3e670c97b9418ef7685de0e4d6146d882830e98e0733212b4eee03
|
||||
bytecode: 68f3c939bd54966a95293dd018927a50887a633eea6d5dc60fca8a1ba5400607
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: bceb61ae75b47e92e83ce5e6836b22b68854858bb24207c476e77f6580b20c4b
|
||||
unrolled_ast: bceb61ae75b47e92e83ce5e6836b22b68854858bb24207c476e77f6580b20c4b
|
||||
ssa_ast: 695acd5239878bc6336d3628999bde308ea9e07b6cb45e61fd5586e72cd6faaa
|
||||
flattened_ast: 37846d6d3543daffe32472864fc5cf2e60a1a42c9d9fe2702fb592398690115e
|
||||
destructured_ast: 2f8491c2aa6fe9b5d4611c0bfe79989b29d915ad51abc7d1132956fbb7a0a925
|
||||
inlined_ast: 0852f9fe9edbab93d8abb5cdbc2a08284de67824c78513107c4edb3acbc163fc
|
||||
dce_ast: 0852f9fe9edbab93d8abb5cdbc2a08284de67824c78513107c4edb3acbc163fc
|
||||
flattened_ast: a60a773110079c62010c5e2a82dd0c4d9ecc02e050c78e32effc3bf7307f7de0
|
||||
destructured_ast: a2d873b02a1ae206b71dd77ab3e2452fb3fe7e204778e42baec415d0ce9b85cd
|
||||
inlined_ast: e2939aaa893ac951eee3011e2ba14a75bc107a7d629ab17b665247844cf668cb
|
||||
dce_ast: 5834dad1067cd1a345142ff7cb8f7d82c6eba50adf97971c3168b148d3e1c70b
|
||||
bytecode: be43f1b20093160fdfc6c5f85fbbe6c3693a41505738d4d0db70b1fcf2243a4f
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 4eaffbe5275c9202a13ecd96325d64711dd28510408da03cb69305b957cc0e88
|
||||
unrolled_ast: 4eaffbe5275c9202a13ecd96325d64711dd28510408da03cb69305b957cc0e88
|
||||
ssa_ast: d9500a5e75ac40d45f1cb1ca6e625f9a1dee7e46f3071016f52d5290af49ab70
|
||||
flattened_ast: fe26dc8bb418844a4935b5fc6d2040383ef33785eb2c534942b58ac78d8c6858
|
||||
destructured_ast: eedb4d1251e971d1a668fcacbbd5efa0dcec0e9eb3240a0758f4ad277ec5788e
|
||||
inlined_ast: 5dcec5f89ce510f2b1c00f3f65ad27c58025d4f9d3248fd786d1a6089c6246d6
|
||||
dce_ast: 5dcec5f89ce510f2b1c00f3f65ad27c58025d4f9d3248fd786d1a6089c6246d6
|
||||
flattened_ast: 72ecc5ed171c827877906534005f04450bb636efea54c08507026e6b15857862
|
||||
destructured_ast: aed326f6c20b340137dd91f2303705c2c71d7b34140967a74ba3508e612c3399
|
||||
inlined_ast: db6efe2d8c097043958fb85b644a36a6f888adc58772596ef6656087075fa8bd
|
||||
dce_ast: 850d749160d2a12943ad2e94d47a83b1475bbc224830ab74f4ec598cc6f826d4
|
||||
bytecode: fffe093215f68fcc292f2c7b67e847897cd0334cdbf4a410f288d7957541a1d3
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: aebc1a11c608a03ea9a3c30d82b635663b49753effe19404d97f273f58186b14
|
||||
unrolled_ast: aebc1a11c608a03ea9a3c30d82b635663b49753effe19404d97f273f58186b14
|
||||
ssa_ast: d227ff7eddc4e74d61b8e302f60fe9bf7b436f057606a4b5559d79af57ab3d1a
|
||||
flattened_ast: ce30a910ed0d9271716a2338c089fff143e7ce41ed6d9cb6b63a964a3c11f3ff
|
||||
destructured_ast: 3f0eea5875047c6906ecd259f424ceb70e935b543ebbf1d39870b067e9a05613
|
||||
inlined_ast: 49212e3e28d3baae252e7e19add049d3873a2cdae05cdb39d9456d45a0e2c872
|
||||
dce_ast: 49212e3e28d3baae252e7e19add049d3873a2cdae05cdb39d9456d45a0e2c872
|
||||
bytecode: 6b4668099fa04bf4027b390ce9def813a3ade976add6104944433b3fab6a4ad9
|
||||
flattened_ast: 05a894445077f3505e800a089c6ddc475826a9de0f0a1b134c98512ea738e049
|
||||
destructured_ast: 924a5eb5bd60f7537b4669db6e393e6945bab38ae99ee68c6750ffe4666ec7a4
|
||||
inlined_ast: 3b7bbfbbe85929f77a46135310d8d8fc2cd41396185ad3a1e2abe8ca91dcc8fb
|
||||
dce_ast: 011d693fae83c7f85f8cb3735aa82b0a0352301b0b0576ddb975bf93a578c32a
|
||||
bytecode: eb4f76423c610f5f9223118f9f7a7020f297e001cae4f5ceeac9d47101487966
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 47182c12d4f7003819d71a9e7e352077b302b73e11037a316f0a141fbe4b9b12
|
||||
unrolled_ast: 47182c12d4f7003819d71a9e7e352077b302b73e11037a316f0a141fbe4b9b12
|
||||
ssa_ast: 245399f8485816f9687ebe4a758067ee86c38c65772e11c7e952e3efba46c45c
|
||||
flattened_ast: 2232619159d67acd8b4e9f3702f7e3cf22e8ff1a0fa273266e44b364d6c6368c
|
||||
destructured_ast: 2b267276db454bc936d77e9ca33e71552526f9385cc0425ed4a95d0841678f36
|
||||
inlined_ast: 2b267276db454bc936d77e9ca33e71552526f9385cc0425ed4a95d0841678f36
|
||||
dce_ast: 5ef71433c86b9239f85c149cc4788e60ce2274ba3829c5d8c5d1789e2fc76655
|
||||
flattened_ast: 1cbaf23a82ac78edd880cce14f97ca791ad05586c2b298305b5d116c66f741cd
|
||||
destructured_ast: 7399f593b39548470b1c26f25ca1336b4c565f30383515c19bf2b7d2b7595194
|
||||
inlined_ast: 7399f593b39548470b1c26f25ca1336b4c565f30383515c19bf2b7d2b7595194
|
||||
dce_ast: 867c80b990ef129c07631f494d2f26a249d769cae7f407ea569112d696db659c
|
||||
bytecode: 34ea2316698e1b32c9a8cecafbc7ec613d38e33d39bc50b517a10f255e9c8a03
|
||||
errors: ""
|
||||
warnings: ""
|
||||
@ -23,10 +23,10 @@ outputs:
|
||||
initial_ast: ae96cef2402ff3fac80cc3363313fbdff221e2bfbf5ce30655bc1985be92210b
|
||||
unrolled_ast: ae96cef2402ff3fac80cc3363313fbdff221e2bfbf5ce30655bc1985be92210b
|
||||
ssa_ast: 70025d49470fabc8804bb98b54ae1d0d0d5d5943fc9d3e6e76b708f346aef7c1
|
||||
flattened_ast: 395bdc5addd81eae1ea0d91de9ac45eb986d54ffb06c15e6952db4c7520934ea
|
||||
destructured_ast: 91305422c1b671fe401d055c75726616c6990af52acd323f8a9a867043c46e8b
|
||||
inlined_ast: 91305422c1b671fe401d055c75726616c6990af52acd323f8a9a867043c46e8b
|
||||
dce_ast: 91305422c1b671fe401d055c75726616c6990af52acd323f8a9a867043c46e8b
|
||||
bytecode: b42d3c958c08364d974824a28437565b32bce03a6dc86c38a03cfe741cac6995
|
||||
flattened_ast: 806c948265ae74e02fa0130bf2f66a572c0327341a6d990031fa5afee46a4182
|
||||
destructured_ast: 2863f3ca7be0e5bbfd5754c2e091dc6481bce1473d91b5bff1256ebb63e48f55
|
||||
inlined_ast: 2863f3ca7be0e5bbfd5754c2e091dc6481bce1473d91b5bff1256ebb63e48f55
|
||||
dce_ast: 2863f3ca7be0e5bbfd5754c2e091dc6481bce1473d91b5bff1256ebb63e48f55
|
||||
bytecode: 557450e6d9e6a77f05e910a1b9cb91eea9023f0c628dfa6f85e3551ebb296182
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 35bd2bdf56095dd40ac177376dc338e04f1c08c7319d2412b51a23478ad098e8
|
||||
unrolled_ast: 35bd2bdf56095dd40ac177376dc338e04f1c08c7319d2412b51a23478ad098e8
|
||||
ssa_ast: d2990bbfa8df60235f5df4065f98680019c6a4fcf9793a6f980f0365b84b6681
|
||||
flattened_ast: c161f50116bd41f95cffa7d6670a8adc9dfa844ca567a2f9a3a5d7bc4359e9cf
|
||||
destructured_ast: 9ecdb14aaa23abf791f111c97c913c47e82ecdae2eb6bda3a62c7fd237c2a490
|
||||
inlined_ast: 6b6bd0b9752078281824afddf821e42f57ba1bcb1c6249ecfe43f98878db95c6
|
||||
dce_ast: 6b6bd0b9752078281824afddf821e42f57ba1bcb1c6249ecfe43f98878db95c6
|
||||
flattened_ast: 4f38814ab57e9f6b3d19fe9f77f2b55a78a295fab5a0141624303c654c0fa57a
|
||||
destructured_ast: 79cd2e10db60a3edb72d6fc60948e546aa5d802f1ec59ddbb0879659908a296a
|
||||
inlined_ast: 3b4a09203106b129a51aac843cf1cbf302f58e136c55f3a0e18f5bebc6a616be
|
||||
dce_ast: 9adc8fd775f02506e08404f56c7c9ea6cd09971594f25078072fbc658dfa8057
|
||||
bytecode: 023b08025f2aa0f03538528dde0e9b8e6ddf7efb3feb3af35ff79a1d930e42cc
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 858bf2fb16e87d10c82a7d0e2569a2535779bceec0e371bc7cc9ff84d433f648
|
||||
unrolled_ast: 858bf2fb16e87d10c82a7d0e2569a2535779bceec0e371bc7cc9ff84d433f648
|
||||
ssa_ast: 085dfdc6611943a9f1042eeeb84b9f5793600f9405e15581adb7fc1e4b69deaf
|
||||
flattened_ast: fe1ea191970875b42ee3e7fbbf7045276d4a4105ca707501d88798fcaa116a5e
|
||||
destructured_ast: 28235d92ee3f4158de56a5a3c276fbceaeb190dfe9a29885c21816df5db45c49
|
||||
inlined_ast: 28235d92ee3f4158de56a5a3c276fbceaeb190dfe9a29885c21816df5db45c49
|
||||
dce_ast: 225970fceb4182722631073f4cb294fa40effed2b8b5858389c10bb2078e59f9
|
||||
flattened_ast: 72349f847d23c9e1735c2d7636d50c0e93393df65d01f4ef5c83b8d28326a15d
|
||||
destructured_ast: 96aaef29a9d00d1b2e73698ddd3adb8687a6a26a808cb778c34eda95f011f081
|
||||
inlined_ast: 96aaef29a9d00d1b2e73698ddd3adb8687a6a26a808cb778c34eda95f011f081
|
||||
dce_ast: 05c996ba926d1f7b84fbf004839b2d31b2532f39ac3d167e9b0d82454e6d0b51
|
||||
bytecode: b5e0f18e08535e19b2bc80bd0bc3d2893e58223cea4d006a8a8de262d3ab41fd
|
||||
errors: ""
|
||||
warnings: ""
|
||||
@ -23,10 +23,10 @@ outputs:
|
||||
initial_ast: 7516ce18766eb2c7838ded66e8bacf43c4475f592669ed4295d3e3785c04debf
|
||||
unrolled_ast: 7516ce18766eb2c7838ded66e8bacf43c4475f592669ed4295d3e3785c04debf
|
||||
ssa_ast: 328c20b0db3057ecbd9727a1cd49a7a7bc7772fe4559da1642ec0e1e14439049
|
||||
flattened_ast: f6d06fca46355784710dc076d08c68b0da259c60f3b2da4eb42ea8b0bdf7cc01
|
||||
destructured_ast: d0e0988939819fd027b437ff72651204e2af870ac81aa9130709fcc37c792823
|
||||
inlined_ast: d0e0988939819fd027b437ff72651204e2af870ac81aa9130709fcc37c792823
|
||||
dce_ast: d0e0988939819fd027b437ff72651204e2af870ac81aa9130709fcc37c792823
|
||||
flattened_ast: 0a3dabf2f09dcc27073d2136cdbfcb111832ae419a2ffe169a852366d46d110a
|
||||
destructured_ast: ff1cdcc9088318e108771c9619b3d36bee8f4f4d951d044bec4a6ee74accf19f
|
||||
inlined_ast: ff1cdcc9088318e108771c9619b3d36bee8f4f4d951d044bec4a6ee74accf19f
|
||||
dce_ast: ff1cdcc9088318e108771c9619b3d36bee8f4f4d951d044bec4a6ee74accf19f
|
||||
bytecode: b5e0f18e08535e19b2bc80bd0bc3d2893e58223cea4d006a8a8de262d3ab41fd
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 8b68fd0f18e8fc74db391751baaa281e3b62ab56208b7d910040d10fb775261a
|
||||
unrolled_ast: 8b68fd0f18e8fc74db391751baaa281e3b62ab56208b7d910040d10fb775261a
|
||||
ssa_ast: 4d36ab9d484d0d7eaec140ff70e1b43f9484a067dc3b5717e0719e78c46754f2
|
||||
flattened_ast: b70445099700e553ea7b08ff344f20111d4bf8872e7ee3c6d7d53fa2120d4330
|
||||
destructured_ast: 4158b11b7cc18331b1e021e6904859d30dc39bb3362f62be25ab7458efc59186
|
||||
inlined_ast: b35e6f20e8c643ef716e553b152d6be6370bf712b6e29572a0069fa105174d54
|
||||
dce_ast: b35e6f20e8c643ef716e553b152d6be6370bf712b6e29572a0069fa105174d54
|
||||
flattened_ast: 139763ddf1d58bcdb053e62bd22a37f0f25cf40ac6b728d914f0473d4f094816
|
||||
destructured_ast: d66c8b8e8698cead559c3cc52b21a42d70be448b2caee0413dd1ce88fa3bcefd
|
||||
inlined_ast: 89aec80f6e01ba7e7dab7f6ff988fd5205c6932a65d4f57cc164a5df7ac38468
|
||||
dce_ast: 8fa786c76867752aa1d7da290907cd6cb6ebc0b2eaf1c7f271aa9eb16ba187d8
|
||||
bytecode: ce0dbf69a657e1fbc866ccc8c4a1cb4f8080a561d1ba4bafca831cee80a3ef81
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: c9a39ba95e3335c1fa6eb924e55371957d21eebefb07c307e48f556d0a80823b
|
||||
unrolled_ast: c9a39ba95e3335c1fa6eb924e55371957d21eebefb07c307e48f556d0a80823b
|
||||
ssa_ast: 020daa90945dd26c4048779015a7bc6b2a3af0570f23c93b94e22cebdf73754b
|
||||
flattened_ast: 211452012c1cca143b4b1eb6af2023b28f4e1dd00bb8a0e39d4aa0b0dddd55de
|
||||
destructured_ast: 4ce99b468132bbf013efe6d727443d9858eb09f38dd9076bfffe0d278414fb4e
|
||||
inlined_ast: 6d2e80a6a49a236cdcccc01c2400a6296d5d1c7ccc0be29db028cf204b9e570a
|
||||
dce_ast: 6d2e80a6a49a236cdcccc01c2400a6296d5d1c7ccc0be29db028cf204b9e570a
|
||||
flattened_ast: 7c76b6b3b5eeaf8841d4002e7675e9bfbd27ae9dd07229701d617689ab49553c
|
||||
destructured_ast: 12a6bfb9b3bd7a13345014396e276de753ede3a2259bc14c162eeee3de623db1
|
||||
inlined_ast: be58baef96b4edcdb15e134e6802d3d2124e785ec9f2d2a7e66dc653e572463b
|
||||
dce_ast: 43fe34a4712b1904236bcadaa1c6acfe5fc24fba93b056678d17f2f10af0f325
|
||||
bytecode: 44ea5bc8171ad40715c28c40333b673e70474ef9ba2d8f60d6517c0bfc3539e0
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 4c9ab22f340920e9a086b4b55e1e09065bf8839d7bf03d725003fc53cc6d5265
|
||||
unrolled_ast: 4c9ab22f340920e9a086b4b55e1e09065bf8839d7bf03d725003fc53cc6d5265
|
||||
ssa_ast: bf04c3808bc97d0b45f1e69cb8f9faed5f31e01cc03e359364bf22132b36216b
|
||||
flattened_ast: cde3b5d0a6e6744e69645072cc44a21dd6a4ef77c087e4a0afab075abd3b7a70
|
||||
destructured_ast: f10b829b1ac2863d3bc8cbf86b51c8947b5c1db6a0ebcb714d4c9f8f2dedb274
|
||||
inlined_ast: f10b829b1ac2863d3bc8cbf86b51c8947b5c1db6a0ebcb714d4c9f8f2dedb274
|
||||
dce_ast: 6fb7a52d2eeff93d53a26ddc38a0bdf71615b6aa7ab3ab22a894e96bd1d309f1
|
||||
flattened_ast: 42c7d42e4bef17c457c38309491d5b05e69294712c4dd72245a1ec3d23de3453
|
||||
destructured_ast: 4d3de6e078f3c109dfd2bdb96817b23da4c755d9ca1300ad3f74040453aa7f0d
|
||||
inlined_ast: 4d3de6e078f3c109dfd2bdb96817b23da4c755d9ca1300ad3f74040453aa7f0d
|
||||
dce_ast: 628a22914e986028049f1a82a9662057762c39876a72e85e2624bef3b0737e92
|
||||
bytecode: e78a049b9529f1feeaa63bcf231b86c28e604487d185d98bbc0e4a2f201c3ec0
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 0f32aead0f48227cb0c4c01f6e034c16e83b58c285fb02fda1b651389e6003b5
|
||||
unrolled_ast: 0f32aead0f48227cb0c4c01f6e034c16e83b58c285fb02fda1b651389e6003b5
|
||||
ssa_ast: 1eff92c09f76a87a712c3540266c67df2968a2a12c079d341fc42f1faf2024a9
|
||||
flattened_ast: c113938b5453ce9cf9d0ff583dcb084cc04118f15f461708656790b729507054
|
||||
destructured_ast: 99c38f533a47ea79eb51d501c8848b37001a6a84035802405ad535dac8cf990a
|
||||
inlined_ast: 99c38f533a47ea79eb51d501c8848b37001a6a84035802405ad535dac8cf990a
|
||||
dce_ast: 99c38f533a47ea79eb51d501c8848b37001a6a84035802405ad535dac8cf990a
|
||||
flattened_ast: 76a3571ec39036a4e246c5a6e9f9cecff922d18d859cfa58e6165772872b3cbc
|
||||
destructured_ast: f5d61fc324d462caa8fd59843c5125da2306f1d2d5a87cc79c2b699c39228a6f
|
||||
inlined_ast: f5d61fc324d462caa8fd59843c5125da2306f1d2d5a87cc79c2b699c39228a6f
|
||||
dce_ast: abb41334bcee8b02f350d058659e62dc767c34393bb41ac2e4b6dc4127144bd8
|
||||
bytecode: d33387a022d43e9692d4e894d0f01081de02b7a97bca69ab6b769b9ee41672a2
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -1,31 +0,0 @@
|
||||
---
|
||||
namespace: Compile
|
||||
expectation: Pass
|
||||
outputs:
|
||||
- - compile:
|
||||
- initial_symbol_table: 47a51901c66d5f1114b2a8b9e310d9e94496bd96b6d0ace33c113dfa0ca98e74
|
||||
type_checked_symbol_table: 296592ba1e77d8b2a425173f16667acc101401c4f2d5e2bef89bb9bd1600ed79
|
||||
unrolled_symbol_table: 296592ba1e77d8b2a425173f16667acc101401c4f2d5e2bef89bb9bd1600ed79
|
||||
initial_ast: e1b2a0140500be55ae83251c9b425dd92419952de27be605b3369145ef5f74da
|
||||
unrolled_ast: e1b2a0140500be55ae83251c9b425dd92419952de27be605b3369145ef5f74da
|
||||
ssa_ast: 472918a255a170f0ca8fd8995f0455337e3ecc3584cb791ff1a4a90b39043a62
|
||||
flattened_ast: d878cae6b698cf3a17b3452865f7bf9b4226da1f8c576259686d6b9734bac61f
|
||||
destructured_ast: 70463f7122bd326523125de9fe7080780416b2047075637825909711a18a0ca3
|
||||
inlined_ast: b51bf5dc9f96f68c665ef4312c1fe772b89cc007eb7f5394ba81ac32ed0a325b
|
||||
dce_ast: b51bf5dc9f96f68c665ef4312c1fe772b89cc007eb7f5394ba81ac32ed0a325b
|
||||
bytecode: 7e95d1c0ff9c0edfb2081fe98cc11fb567b41a1c5c586688a2586aed8629b3be
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- initial_symbol_table: 6d89772d0f9458fbfd1cfd35c65c8b3cc741e7daa78694c21eeb6f7e61b16d0b
|
||||
type_checked_symbol_table: a8e3ac4ebf716186f9703d4602ee4cbfaec34667e0e7d63f5922778082790288
|
||||
unrolled_symbol_table: a8e3ac4ebf716186f9703d4602ee4cbfaec34667e0e7d63f5922778082790288
|
||||
initial_ast: 732fbbea10ef0dc13c6edbee524678fc45c284235ac0e301e1479f190bcd95fe
|
||||
unrolled_ast: 8c006b178cec5fb163362076592cca98aaf92111878ba744081babb922dbec2c
|
||||
ssa_ast: c63494e9fa9a9d5ad44020acf2db24360650e2e64a94360f805cabbe7e88ef80
|
||||
flattened_ast: 0108ea842c4753f093eb7bde10c72c0ee0744410d3da859e4b3a4596ce686d10
|
||||
destructured_ast: fd66926d2df8d46797372fa2777c5be6178623c540ef40d39747e2a005bab00f
|
||||
inlined_ast: 315ddec865d52c8f66d15ec382ef7e5f2a4b895b432a76fe0f7ae09a09811f8d
|
||||
dce_ast: 0ac6470ade20f5b0a5432e9770a48558d76255a0f9eb3dc0acde1688fc4c2ba4
|
||||
bytecode: 7a91652b8a95d6a25f0ad68011d37481570f9c7b5e79d05c0ae8476c6754f7a8
|
||||
errors: ""
|
||||
warnings: ""
|
18
tests/expectations/compiler/return/ifelse_chain.out
Normal file
18
tests/expectations/compiler/return/ifelse_chain.out
Normal file
@ -0,0 +1,18 @@
|
||||
---
|
||||
namespace: Compile
|
||||
expectation: Pass
|
||||
outputs:
|
||||
- - compile:
|
||||
- initial_symbol_table: 204fa2d504700c7fa4ff175fd95dca964cb3c7fde4cc23b7972f840ca497ce15
|
||||
type_checked_symbol_table: 56f92976ed0897f850ed6a2c9ea6545c48381a8311b1b72f1866a533cbfb3d36
|
||||
unrolled_symbol_table: 56f92976ed0897f850ed6a2c9ea6545c48381a8311b1b72f1866a533cbfb3d36
|
||||
initial_ast: 6ea28950d64ac41eeb8da3d87cb6e3810996f20e112e0642f59a60f761714f1d
|
||||
unrolled_ast: 6ea28950d64ac41eeb8da3d87cb6e3810996f20e112e0642f59a60f761714f1d
|
||||
ssa_ast: 2fb78fa3dc48ebb722b5e868aeae878da7e6eba06843316f0ebd1451adda1d7c
|
||||
flattened_ast: e50d2d001ea761618e59dc13b8b2f3834615637bfad5f740db2e2ad35d4f6679
|
||||
destructured_ast: d1a2969debc86ca62ad8beb0cc2dbc226521eb845399be0fb841df3041fc4e87
|
||||
inlined_ast: d1a2969debc86ca62ad8beb0cc2dbc226521eb845399be0fb841df3041fc4e87
|
||||
dce_ast: d1a2969debc86ca62ad8beb0cc2dbc226521eb845399be0fb841df3041fc4e87
|
||||
bytecode: 1902fe1d777e9d4f106c0daa1f947807fd49e952960f10101e78e47ddf8d5f48
|
||||
errors: ""
|
||||
warnings: ""
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 6019b8c22dc3784fa95210eecf929efcb66246ce03f9ae5d867e187d4bcc8788
|
||||
unrolled_ast: 6019b8c22dc3784fa95210eecf929efcb66246ce03f9ae5d867e187d4bcc8788
|
||||
ssa_ast: fe7e915193461f768fdf91bf468873c767d5f6b6964a2f36fc5b47018aca2472
|
||||
flattened_ast: 7a82af53c79852cd0227536ff5e4cb489733a0047c57f8baaa5ff860b0470625
|
||||
destructured_ast: f414c29c352c1de3e66d89831f06b1134a6d12e8afb07ccebbac9f0dc3642a93
|
||||
inlined_ast: f414c29c352c1de3e66d89831f06b1134a6d12e8afb07ccebbac9f0dc3642a93
|
||||
dce_ast: f414c29c352c1de3e66d89831f06b1134a6d12e8afb07ccebbac9f0dc3642a93
|
||||
flattened_ast: 8a821b2ed86abdf4344ec3e58b1f13cfa8d42cd2fbcd692b60b975ff968df287
|
||||
destructured_ast: c3d78a54d7b38b9e47ef92ab94d93d3530f94f28d14a9a105d00686e750ca862
|
||||
inlined_ast: c3d78a54d7b38b9e47ef92ab94d93d3530f94f28d14a9a105d00686e750ca862
|
||||
dce_ast: f06f4f184c5dad19a346fdcf168240765bda3758ace5f0b80451c60adf544374
|
||||
bytecode: 5487f807b82f67172b386aaf992fed06bcb134d1749202c409a300633a37a9bf
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 8e0c70c47df22261563266d35bc5f3a25169c65c705ed9e33bbe51a92611dccc
|
||||
unrolled_ast: 8e0c70c47df22261563266d35bc5f3a25169c65c705ed9e33bbe51a92611dccc
|
||||
ssa_ast: 2d738c04e5ae989b25373b5d96877981a85862653298922e8feffde828808c07
|
||||
flattened_ast: a518656537c3c8a864b5cab110577479ece5f5c46c913d299897eff8b23c5f59
|
||||
destructured_ast: 86ac4346b1fed99f4843ee0cfe3b946f891e84f1f326db91beb724c422cb1a3e
|
||||
inlined_ast: 86ac4346b1fed99f4843ee0cfe3b946f891e84f1f326db91beb724c422cb1a3e
|
||||
dce_ast: c5163293936da1b87f6d1cb3765f574eab21ce31e6f154af744103d4821f8a16
|
||||
flattened_ast: 1efcab145973980eabc68bb0ec6624b8b5d42bba4c38771f88b7a2cee35cdef3
|
||||
destructured_ast: b11799e3b04a7c0d53a117d990176c346076772d0a1e86e48884cef62618ee04
|
||||
inlined_ast: b11799e3b04a7c0d53a117d990176c346076772d0a1e86e48884cef62618ee04
|
||||
dce_ast: b43faebb2985c920347a8d103943a3d3fd53dae5ce6a62647c9067c7d009132f
|
||||
bytecode: f6aaf7f7a13fb233511385db7479f2612e7a77734ee6a189f063bd3d33a7afaa
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: bbcf9d2685d85c7655c97568ff51cb46dd1aee6ee92af6eb4b9ef6b917ce928e
|
||||
unrolled_ast: bbcf9d2685d85c7655c97568ff51cb46dd1aee6ee92af6eb4b9ef6b917ce928e
|
||||
ssa_ast: d9f3b16b2a063335a36b56798ffaf578d6f04fbe70003ec15a30783590c1dce4
|
||||
flattened_ast: ecf57360ec73b6fac56f204b60ea1a2da68c0d201960cbc9ef18791a90710410
|
||||
destructured_ast: 9f942d5ca5437146aa99a8a7e0a32bcd18d4fa0a97b662eb66881d3cab07ca33
|
||||
inlined_ast: 9f942d5ca5437146aa99a8a7e0a32bcd18d4fa0a97b662eb66881d3cab07ca33
|
||||
dce_ast: 9f942d5ca5437146aa99a8a7e0a32bcd18d4fa0a97b662eb66881d3cab07ca33
|
||||
flattened_ast: 9ce05cb73e1f012bada5972095cc1c0602d96bd63a4fe58029f2c073a8eab51c
|
||||
destructured_ast: 690ca5d32129c085b7897ff25c87a8a95cfc0cf35cec0f3d5742aa68ef4a1a31
|
||||
inlined_ast: 690ca5d32129c085b7897ff25c87a8a95cfc0cf35cec0f3d5742aa68ef4a1a31
|
||||
dce_ast: 4bbb3efdf7be6bd5d87995ed2787265dca604575a2b898a7a9cbe0b889bc235b
|
||||
bytecode: e8fad70723ee17dc768faab9e2ee64ec338b6b1bd4ec1d9350791665c1abd697
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: b6b526e4450475b5f337242783f48a4dd7342a4b5c9639b23d490bfd96a63a1a
|
||||
unrolled_ast: b6b526e4450475b5f337242783f48a4dd7342a4b5c9639b23d490bfd96a63a1a
|
||||
ssa_ast: 23fb955e50de14a4131b2db621a24d05ac52d5ac7af341e7dde5d24479203cda
|
||||
flattened_ast: e932b4af62dcca32a7f420cafce3df42c5366b0d96a7fd501fc528a905d0fa3f
|
||||
destructured_ast: 389f29bac77cc4aae64fd33627a9694c5f0c56f5c5c51aad967cc4a376d120a8
|
||||
inlined_ast: 389f29bac77cc4aae64fd33627a9694c5f0c56f5c5c51aad967cc4a376d120a8
|
||||
dce_ast: b6623307c590c4343468d7444d86aeb2a00d91c38f5d9dc035c863e77ce55f19
|
||||
flattened_ast: ebf21ee2f562b59de5164c9965fbb2e822bd5c8e847def54c41738d4df96a25e
|
||||
destructured_ast: 9ad6ed4557a609671cf3ea7d235114c74fd03717675f28c728240a61d72f38eb
|
||||
inlined_ast: 9ad6ed4557a609671cf3ea7d235114c74fd03717675f28c728240a61d72f38eb
|
||||
dce_ast: 1bf4801943a35c63849ec343cf26a5888fa9852805514a499fc1162bbb51e31a
|
||||
bytecode: 4f4c5c377fed78feede8ee754c9f838f449f8d00cf771b2bb65884e876f90b7e
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 0c172f9b4921fc30d51d61eaa6205537ce6b0e1146864050154ad4a09edfaeea
|
||||
unrolled_ast: 0c172f9b4921fc30d51d61eaa6205537ce6b0e1146864050154ad4a09edfaeea
|
||||
ssa_ast: 7f57febaeac178acde1e72b5b4287ec436a1cd62a3cc941b4bd3faec97bac7a4
|
||||
flattened_ast: 25735f73cb92c1be5a3bd29343ef17b41696cf69476975362fb9511cbd59259e
|
||||
destructured_ast: aad1e2db50ba1033c0efd65edd1583750e27de6dd9c33485aa575f1afa89292b
|
||||
inlined_ast: 3b0ed1659eecd3ee8330217fc7862bf09bfe8a74d63c7f3451b0f1a3ced1dddb
|
||||
dce_ast: 3b0ed1659eecd3ee8330217fc7862bf09bfe8a74d63c7f3451b0f1a3ced1dddb
|
||||
flattened_ast: 253ed245e59e1c3386dd35fe54366164073540f1541d8d361969912b7ef9fca1
|
||||
destructured_ast: ddbd78b291884bdb3178218807f0cc05b7b94a0ea135bbde6ea89c3ba5628e7e
|
||||
inlined_ast: b75a62d1460c2384bf73343eaa865225f3215f3fc2657f3149e2e4a71e112a39
|
||||
dce_ast: 252f3f18bb963961137514ba6814d68d4bb8b5c5e5d1fd6955ffd1c7ef47b8b5
|
||||
bytecode: f8a3d7352634db2882bc62840443ed6981ab356b6037c6bce8b2361189e82319
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 462ac51169ef56e2645c0159f763f0c42b41252ba99be2a834f99f5653d7f94d
|
||||
unrolled_ast: 462ac51169ef56e2645c0159f763f0c42b41252ba99be2a834f99f5653d7f94d
|
||||
ssa_ast: 79bba39bc18a544b54c02d10076536ff0e7fdd471cda3098056c1952b93ac39a
|
||||
flattened_ast: 73a378ea183a4bf27153f895c93f871c1a84b33febfb2f1daf40b98a28b58146
|
||||
destructured_ast: 632553a576436b65b33648d48f2e936962461d6a9d2768e6c9605435cf3ef1c3
|
||||
inlined_ast: 632553a576436b65b33648d48f2e936962461d6a9d2768e6c9605435cf3ef1c3
|
||||
dce_ast: 632553a576436b65b33648d48f2e936962461d6a9d2768e6c9605435cf3ef1c3
|
||||
flattened_ast: aafddc5b1c0e4aae46750722919836b3e71a8ce1cc2647ad4e8bf56981229109
|
||||
destructured_ast: 176f43a5b2919fd6191d8236e7f9bf63198d6da91e0bdfdf87f8d913d06393f7
|
||||
inlined_ast: 176f43a5b2919fd6191d8236e7f9bf63198d6da91e0bdfdf87f8d913d06393f7
|
||||
dce_ast: 176f43a5b2919fd6191d8236e7f9bf63198d6da91e0bdfdf87f8d913d06393f7
|
||||
bytecode: cab2a38bed741bf7b4ae067086da9762dfce98c256155aece53158ebbfad7198
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: de829a425dc7ff52193bcf9f28a646050bc86ef38c2f9ebb5b994cbc0ce47fe5
|
||||
unrolled_ast: dd459b73921cb41b131eead97c613965ad5888ba0eeb38763e95d7615a04eaa8
|
||||
ssa_ast: 1f63cde97ec219fb4804498f65d401d88bb03f9e180fe945cc4ac0a18d385eb4
|
||||
flattened_ast: a3a7f2a5a65daeced437ec9dd6ad61831ced26c363dd887954f89a2beb9f3395
|
||||
destructured_ast: 05cea119847ef6d14e51acc972c11c1e2512c37b15de7d696e5a27c80d1a1148
|
||||
inlined_ast: 05cea119847ef6d14e51acc972c11c1e2512c37b15de7d696e5a27c80d1a1148
|
||||
dce_ast: 05cea119847ef6d14e51acc972c11c1e2512c37b15de7d696e5a27c80d1a1148
|
||||
flattened_ast: ca6aa37b1f80c8a656f9e0666321633b16abdfcbaac926a19760850c7e6027fa
|
||||
destructured_ast: 00c99ddcaf0d8f9913ab5bc98e4699d877d286de1287d66856028cc00739f6f0
|
||||
inlined_ast: 00c99ddcaf0d8f9913ab5bc98e4699d877d286de1287d66856028cc00739f6f0
|
||||
dce_ast: 108683817fd2e9c6e1410cf05b70c670232e6695a758dfebfa253eb01a3c38d4
|
||||
bytecode: 9ef5de2d557b3a8119e5545ab597779492a53ca6f7097a946262eb65c1acdca7
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
112
tests/expectations/execution/assert_early_return.out
Normal file
112
tests/expectations/execution/assert_early_return.out
Normal file
@ -0,0 +1,112 @@
|
||||
---
|
||||
namespace: Execute
|
||||
expectation: Pass
|
||||
outputs:
|
||||
- - compile:
|
||||
- initial_symbol_table: 4385b8b53e4d4eb5db19a127df6fd852718a2459ba96434cfe4a9629b05b8ec9
|
||||
type_checked_symbol_table: ef8e911b1fef63398da28ece44e13f6e4ae15541181ec8e7a3c0e48b967b2cb2
|
||||
unrolled_symbol_table: ef8e911b1fef63398da28ece44e13f6e4ae15541181ec8e7a3c0e48b967b2cb2
|
||||
initial_ast: e8a19b119ac7b49ae5dcfce634d667acd10b703bceff4671d96f4afe20ea4679
|
||||
unrolled_ast: e8a19b119ac7b49ae5dcfce634d667acd10b703bceff4671d96f4afe20ea4679
|
||||
ssa_ast: f88a870f6a619b2a1366e44c4dbcc0e32d91800ce0b35a0e887613ed4eddde93
|
||||
flattened_ast: 5510f15ec8ca2ce3ceeda7e7602762a46501a477d78a9de1bdbbcc49fae5671a
|
||||
destructured_ast: 8d9c60afeb23fdfd453535e5bf370fe112f584bfe577ca242894b95b95ae317f
|
||||
inlined_ast: 8d9c60afeb23fdfd453535e5bf370fe112f584bfe577ca242894b95b95ae317f
|
||||
dce_ast: 8d9c60afeb23fdfd453535e5bf370fe112f584bfe577ca242894b95b95ae317f
|
||||
bytecode: dcedc1bc91c69a0293e85eaf247f91c31ecdc7da396f8bd029a791b623b27f0b
|
||||
errors: ""
|
||||
warnings: ""
|
||||
execute:
|
||||
- execution:
|
||||
transitions:
|
||||
- id: au14f2670sc8ctrx6yxh6ul437nldqujkpeuwke2h3v9e4jeqgnmgqsvv6qgg
|
||||
program: test.aleo
|
||||
function: main
|
||||
inputs:
|
||||
- type: private
|
||||
id: 1949397954224848824575951368219471374317423483328237061474447511813071331229field
|
||||
value: ciphertext1qyqvw6l0n2n2hfk6l3s4vhm6fr3q7edyln3amu9mkgkfvr6g6zg6gzseuzhlk
|
||||
outputs:
|
||||
- type: private
|
||||
id: 588623943503757267501820045717084110015013266930773589316823232307129930688field
|
||||
value: ciphertext1qyq8g5f3dwdpjrv0j8jpzkya05c65w66zypnuf9xutpxsv26q56zqzst43x3z
|
||||
tpk: 4440143486107103992672711015966996078009453027120325474960931472576699485110group
|
||||
tcm: 956295719465073094565613190152229406522389368662418205874320011543205263268field
|
||||
scm: 2303738667493433860273317733707681990458101881183765024674076257655590754869field
|
||||
global_state_root: sr1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6gk0xu
|
||||
proof: proof1qyqsqqqqqqqqqqqpqqqqqqqqqqqyvqt730zv9tjp289fd47x9gcc3xd03jpwl8x59nedg925t7jufap9cn948s3amdwedd66qum2a4yqq8t8fzffpwfmrs5gxef340ps3gymz3ge898gq0uktcvc8twqnkcpyuxxpp0gp2l2yyv226c5a8w4xq06ehgq5tgduazzy7wp583qe6p0lgenkmxd9uvefxsxwync94r6wreu4elmue04yxwdaw346g6jtcqxzye5nev0gns58cpsn4vvsjpkzvyk52kvypq50kypz0thcczxre6xagevwlkh70964cqlszdkjjvpfz7c8ypppmepv48cw54fg0e22yehuyktw7z0wrupcyrs7arv0yvp3hz9sm8ejnl36pmv89q7gv0cpysrfxqdjn546tg89wudqt2uya6qwny0mus2pvxqjzrza8vaqvh77mrsw5cze06jsqzgfk6c72rfq9rqzgrnz30arwlv30yxtpk9l4rrd5dw2lxkll9f8hv992l935uxhyrlpudu785ms8rjpspck9000qzwd46p3f99xkj3adjxl0jxej5ksx9rt00ycs9g5udhgwjzrr4xxtdn2jsjfkf4njuu5x6s4rm7h2q9ywhheyek9d5zzdhde4jj2u53l822gts2dt3rwkpqsg6a8mhenk3hjakj4nxjtwdqpayemp4p5hqq7x5mvj82wmqrq24yz7njzswq76tjx66v93nqfw3n89kvauga6gxlv0yf384pkus80muczzmlcja7rhe0ll92fxkaqr5g9zyj8s7g6z6fn4rg4jjm70h2wl44zc6j538qjsxnpzlp5vm9l77ncvh02esuzrkk02na9h4lynujrqayqh30aqxughwvehwxmjd4gc9qmgl0tgksyvpmevwatklrc8qet0mvqd4neu9skppv5v7jeph2ev5vamrt0usdrxn50l47q0j6fsk8uxf42j22lt2rtz59qj0dvpdsavun0qd64gy66qflc0fnga7pc8ejn6wahz402ctg8xn9vwcwjv05krmw2lezjztzmxzf7f2yn7st88qd2cgts9pu6gckypzq8qagz33mvlkfetznpmnc7zv6lx08vsuj38j7sw6ujdrcntp4u24mghkqtr8hrwvjjyusnlsz432dd7hdyq4erx2m9enl6jtvgdwmah9y4pdq9dudz58n2tqxqvqqqqqqqqqqqx49luc5ltce6nldndf0kr40cj94q2he05pe3mzrqzr80uwtrtsc39css06lq66kntnf405spxf6qqqtrtketcdsmehc48retlk95f3483hyapjlhdg8jjvu7tlny07dvh5p6wv2fsuzcq7vd8tsh47pj0qqqxg9wljy2z6t8mmkpg3kq6n5nerk69qnhda0clhtylj2spmj92gs2ygydtg3cj3mqja3nj8wxa5pqsrxr0u6f2etgcul6luukn5p3kmpxxz6l8twg6ed5c79xuwjpdu8qyqq28alxn
|
||||
verified: true
|
||||
status: accepted
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- execution:
|
||||
transitions:
|
||||
- id: au10j060xemhs6hp22q5z9f666j9jjyx3ddrp9p0d8pf4kdq5j27sys3zqngj
|
||||
program: test.aleo
|
||||
function: main
|
||||
inputs:
|
||||
- type: private
|
||||
id: 8074222261243563712897852261345879392213326355389000002015095766254732085943field
|
||||
value: ciphertext1qyqphpe0wgwrqph360vc5m6ewu4dv3qq6d890sfddxjrwfjmcgm2jqgw89lgc
|
||||
outputs:
|
||||
- type: private
|
||||
id: 3194122436616881424292291350925952583187555336316524560479373486165793182061field
|
||||
value: ciphertext1qyq86n235v5ggscdchqvt6k4hms3c8gkh4jzydf283rt622lrl9yzqg5s07wx
|
||||
tpk: 4152732181525065617351199828917779834060023954124968050606284621055360799826group
|
||||
tcm: 235738461878268264507244718392472317265018971642030445084183397632412772752field
|
||||
scm: 4900036025129937911534831193930720357249672696528783301190811935205857609210field
|
||||
global_state_root: sr1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6gk0xu
|
||||
proof: proof1qyqsqqqqqqqqqqqpqqqqqqqqqqqze9c0ap4lzdsc6dfxaevcnapq8asgl5h82qug87t04vxu5lqrcrzrv9p6wv8y6cxz8hm36clg2espq83637qdhymk6dlysnl37tgranak3pelhvnhxyxjxnx7dj6nhskzuw7y5g7mhwtqvn7pwmn274tusqxps4jhzppt08pmgarhafrxgp0u9xvgpnpgw7ynvzq6w2pmzuxhk5wmndqj9c4hxs728rzy9ea5qyqzdy39k9yus0cm37s57t4algvc2jz9f9dd0funwxl0xere34lctwms67783l2393vsysjtxkf9nkcq2sxgpl9pyjv2egc3678yt9v9zsf4l06hwf0dkgdjkl89auu7fgkdp5pg5se334ynstqunlc2w7eqqp4q655v0xtxxgyepr2t8c0nxa68pteuf72s4ztw76t888kn9ttsqla2ze3frpae6s8mr7zqgqpsqylmnkrzuvjd7e2384fz0u7r9qaul8r48w77t2ss7sgd3t2sx7mntynthyasvmfd9mamy7vl20uyrqxjlr0yw4dhg6nuu2ahqq3hv5kg237hm4fhyqk20z3yrx9l9dk4xtnfglt6ed8u4csnn78nuruwt7qelwnqn7pjkz95fy6nc4j7njm60ta60k8f5xp7qlxgc2554ah6a3tatl7fw4046uqr8gvj7nf2we5pzdn287aqctjuf6k09433s8fkk3k4tnmswxss4j67xdf42yr0zv96qt5umtph8f8dk9g2sec2cu505m02skl0jvmgyqy929qpy39cypnsq46n2h5xw2xdx4r4lxtpejvhlmdjvrxx2amlah65vckgsch8qkqr72yhezepestxreunl8m3lkwhl3hf228x0rwnm9ta2rzxuvfsgt7yjhwuqu73pewjffp8l9h696v0e9sxtqu3kj3jymy2etx4anq2hhxykerag9wgwz385rafg60n52f23q84ckg8j368l4sg0hx8fq99zcg2yl0yv99ntqj2c3kus0jwgrysgwx3jtfxr6rl009nyemhzqyqmzva7cdc87jp4e3hqyswf4hzazngdmzqf08gh462da57jzrcp86e0tr7p3qjzfx94en4g6hhysha0780n84trnqrr40jnuywaaeq24v9n4ynsvdwq8gwq5azm0l9jrhzm6xrvxhcrf9k48puzkhj8qqdqvqqqqqqqqqqqmlue7vd5mfradxfnjf9vztg6rp29ewlp3xc7gx23ack27yrru80qg6a0xgg4ajhn4x37q9jq4mjsyq22hhqmzzweprta6gfezs9s87kxrlw9jeksa9zeqsn2ww7wnhp0520hdlpvu7wep3s7u4lcapswfcqqy0fghkv6lgvlm564lq43kv4xcqzsr0x3lq39ekhas82pleq06q3r9pzzquzyq6akxdqsj24ty74eyzlrjzv5t4e5v0ww43mee39neua3q2s9hvghketljjccmr7mfc2sqqq4f4ut5
|
||||
verified: true
|
||||
status: accepted
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- execution:
|
||||
transitions:
|
||||
- id: au10gyaju6yr9me6d8l28fwhx65w2zls2t0ccfy3t5pngax55nnq5qqqxrny8
|
||||
program: test.aleo
|
||||
function: main
|
||||
inputs:
|
||||
- type: private
|
||||
id: 88204195335974216418759683303292216043779078355613167945781354727344920385field
|
||||
value: ciphertext1qyqpvkn6v5kk9tuapl84vqu3jte0f2w7qxuyt73s82kswx76qdz57yqktgrnz
|
||||
outputs:
|
||||
- type: private
|
||||
id: 3914369771983733353164101765555458008753606209615886837893508835416845292078field
|
||||
value: ciphertext1qyq0nqz7sswcmmh9ass9v2n0cfrghtuzgx7ey3yrqd9uhtkvf6d2qps6rkspa
|
||||
tpk: 8230740749397616342957301999706650915153644162812370837746638975145956411137group
|
||||
tcm: 2890782865234133958171457586056509922468321574973631315281975799959033914364field
|
||||
scm: 5258565730318103630533845951156419665533866493701567935669993589597692371521field
|
||||
global_state_root: sr1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6gk0xu
|
||||
proof: proof1qyqsqqqqqqqqqqqpqqqqqqqqqqq00r9s5y8p7uz89emtzg9yq4yxmthtftne3lpqf76rvkdeqduujsz0nhf3dzs5c6zwt25feum9whgpqyqh7t8t2d4gc8cetzxx793wlv52rlszsc5yu7gpksrvmzf92vytva6hs0s6l4tlga3zhejm5a3j0qpmhrvy00uzlmepupjspnp8lsehat5jqenq58ww3382569vr0v5svv34c6ke7mtm4zxzt5cm9dqhyqtvc89x463g2q3s57dwfcafhzrv32zg47ddpjq8h07zx8kjdhkldca5s7kg2ye2l99h6mcllsd2vcqsu0hmw4arx908wfcsz757q6djsf8rkvueft90xu3ymuhwfun0td9s2uagr2a5w3cjjhg59nhgx9grv5dlpt4l2ykx779q026ysyvt3er49u336tkqf9vgpndpjkjund66pvlem3jaf20srmved7w6svfszhazjva27e2pc30vnqq0h209jp6lywlg3gvw4pe0tq075qf95dhat63w496rssgxuaewnx2ju5jxq087zlf79efqfnqkkexe06audzf4l8vq5fq89pz9fnc8tqjm4qlfc7akajalayvsv0jjl0fkdkxszq02wkdrpj22y6qpssmszalk9rsj9dpw7jujjgp890ta3fmprman3a60fnkp5yg9x7vt9z29ze2n4gqcg2v0wa9u72u38h3wn76wq36w60z8jkq6meu8ssqaemv7rpfku9qw4720rje2cvganrg5dsl9d6pl6zcp2mqa5e0658dzv0wtu3k7pgc7zr2fm0ffvvd6cgdmwetffazz3q95q22udwmy9y7w57ethudpdy0uvpyg37x2m4n5n6t08s4jw74t64tjymdc8aw9jatze4attqsvv28klkpgtl2t5tuz8h2xus0f9m49v8l9hlrcqvhvngq7cu03qs24l5pqqekjxshxmwuajgek36cphd8my5rspmd262jvrdeytzacgrgdzfre63n8lv8w88twzc50qdtswduszaum2ayz2vtcsmt4zua7qg04uz02d2sx2pk8cujh8rv76xmnaezqqtlgv9f06cjdxgawsqxqflsdrua5hx24kwk8sq7jc3umqwazl6pjvfnspsldj7lu4u29rtpqyuhe2u8z25mxrea53zfc8dh3r2tyw0fnl4x79t6h23vjgw6lxq8qvqqqqqqqqqqqe7nnktqsl2pwhq450csr34wdam6s6qnyd4muldvw627ft2a9xag3dlzef8m52pfnfa5cl5vj982qqqz2jzrzpqmlynw5f3vfftfxlvl36jshw9e0urgrh8wq89h0le0uts5z5ayp86uum6em8ftava4qssqq88edxa6futpjkpgk44k2w6nra32h95y5nxzm4lercytu62gm7wqmt75wv5m980rkxthzsf5lx2jmq3fmcx6s4wfcxm2ha4cu0chs5jhlnx8ds7yjps7dqruxms78zdxsyqqdyg39a
|
||||
verified: true
|
||||
status: accepted
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- execution:
|
||||
transitions:
|
||||
- id: au1f4awhmaxr7jnyg30yx0kel0jhs87gea6d5k3hmfp70589ctsx5psrtjqzq
|
||||
program: test.aleo
|
||||
function: main
|
||||
inputs:
|
||||
- type: private
|
||||
id: 7323317284237132550893119862759552667981679660996294970442459803738868835536field
|
||||
value: ciphertext1qyqyf09p4hhgplcrl9ak0l0tvuwpm3xhwadrwy8nkkwdfepznwgxurqrxc28f
|
||||
outputs:
|
||||
- type: private
|
||||
id: 7091980139100542163680145896215306688586120371908022432045728575736556477745field
|
||||
value: ciphertext1qyqq9jep8xre5wumn75f4l78a84fayu3ylv8s6eyf6d26rgpwn3jxqcmmzun3
|
||||
tpk: 5649977020878585643126558031280442357481139820003268236737358229625320247518group
|
||||
tcm: 6767517080390288477520368643762123787551306537793319984551369392054028511715field
|
||||
scm: 7499398132489845850920282484671530605120496245578629492233334116969945395115field
|
||||
global_state_root: sr1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6gk0xu
|
||||
proof: proof1qyqsqqqqqqqqqqqpqqqqqqqqqqqx45zw8k2len0s54z9kcw33y8q9m693eauahvhgglv6cndya2t6m5sutzgy98e44cunkz4z5jeucqpq8v8wa567ej2x4uv2n7z4xaatv02mt97l56hhgsufmeswwafwzj87yzvcedq8zfx7zdle44mvmgtnqzvtluw63xwjsnaxz83fz6jrv3d68e5lgdj7u3wnkey6dxdwcfhpz3m7kx2r2pc0t894jvtvn5ssqqfxzuxhn2g7lre0qk02retrhemqyrvftl46zt96pjfss2jlt9hh02j6wzn7ruk84mp5z86d74uk8uprwn6evzr2dgas387q3ysezxh3q8u395c6fvjkzptgklsej9jzz2am33plny9rs65zjlr7qn3ak3qqg3dxa7nq4wzprk376ehxdxed6wklah2plrx6a6jhgv96x5wjj40639j9c8cdl76ft7t4d2dr0dqq93lt94cach6uwet4maglswlrfghy9cpjkncqwjtgza962uct88v436puqaupaje5u3rmpzuyxm48qxzvsgth3ty86feqqvv0fnjncjz38y5wal5fpj8j4jpfap48z7frpvrp2mqeknv35cnprp55a70w7qx2jzdpvzktu327xadptjw7l9umjrye4qstfulzqwgzk9gttv2fe65tsr006az6x8kudkas459pxqpprgczqcafutpfcc648dvuy4x32g6tdyv8ya22cdxalseltc04s8glzc7sjqm2mclyfu6zx7kywc87hpf67kes4hygmv8gvur5v28uq2yupu9mvmyu3duhnuwlf069ckcsfkv3jqqksldgthc0xa4r7r6qzfasyjkvss320t9gsjew6q7veucqkyv8a7neygjy45lwmk0elzs5tnqapgknrxqvflrjcs3cmvs875csf808d7cdyayzfawsvrmxfcx52rx0p7eymuwydu9tg5xghcxm64ra90570zzn7hcpzl9rfq6dc8gvehfj6gzwmye4qnd5x32md9fueulaeqmrpalkxzq5c2rg3gxkptq8c0x9kexvepgjrj5th8w6e0rlujcasnegxlf8amhn2ah5s99ph3rvura9qsmp797n7fv2qafdgtzmelah67dvtzm4nv2du45yulprnxyqu2rs78s40tvmmx93pkxve7kz6tu4fnf42xnu07xd0r2pdcgqvqqqqqqqqqqpgcfcjfpzs2fur0f80j0scmgpcp5xzsykzmg0n9rkka9cfmth6jq0snmemqd3n54fgvq4ua8qqynsyqq9d9jmhu00d5mra7g6gge56haed592mhvnzh3cc7sxwhawcnm8v327937npykt3rmc7mmtmtj44gqqyws4zquy2z0mfr6pska3fd6ppx83samw49w5amh9tzhzyuhyw6q7y72zq7rt4c0z2v9xzgmu69jaxtqpsg7yhpfj465qtd9z82v3xmfusrrfl4qv6c42gdg407hfcx7qqqq9ukexv
|
||||
verified: true
|
||||
status: accepted
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- execution: ~
|
||||
verified: false
|
||||
status: none
|
||||
errors: "SnarkVMError(Failed to evaluate instruction (assert.eq r2 true ;): 'assert.eq' failed: 'false' is not equal to 'true' (should be equal))"
|
||||
warnings: ""
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 409d57cef21ca167d937cf70c1d7c116bc900e502831b395698e9d3f13ae0961
|
||||
unrolled_ast: 409d57cef21ca167d937cf70c1d7c116bc900e502831b395698e9d3f13ae0961
|
||||
ssa_ast: 7f12fbc88f56e33590cbb790827e4ec6a04fa9be41e6c1f2bf48515e430d9dc5
|
||||
flattened_ast: 5d1bd9257ba315ee5b563d7e66a2c9b09ffb0841f7d588a28bfa210d73923d2e
|
||||
destructured_ast: 96ddbc8267f0f3e2c870c6b0da42f7d86decdbca1a559ed20e5b67763ab0a5eb
|
||||
inlined_ast: 96ddbc8267f0f3e2c870c6b0da42f7d86decdbca1a559ed20e5b67763ab0a5eb
|
||||
dce_ast: 96ddbc8267f0f3e2c870c6b0da42f7d86decdbca1a559ed20e5b67763ab0a5eb
|
||||
flattened_ast: 8e2378df83a8f59228993ec32ae9fbe19318052a3ced6b451b6f720ca6171257
|
||||
destructured_ast: 8bc445642f52d44cedf36737681f945b99b647953026bb44a836eac1c3cd5d69
|
||||
inlined_ast: 8bc445642f52d44cedf36737681f945b99b647953026bb44a836eac1c3cd5d69
|
||||
dce_ast: 2a0e5585007503ef568572b188bae1212a4839548f624b022aafca1ce8e2cf24
|
||||
bytecode: 675912267b82b91bd854fa2ef169b85c74ecaac6b73a157d7e99818e256b53b1
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: 74426941096b3fc3154c3f0925212a2a30fc13e23d4a13bbdecbecf6e460ec82
|
||||
unrolled_ast: 74426941096b3fc3154c3f0925212a2a30fc13e23d4a13bbdecbecf6e460ec82
|
||||
ssa_ast: a17a7c9223e4067b834734861d45709c0042a57b60c92b3d59ef327e4c01e6e6
|
||||
flattened_ast: 12cc3473493217b0eda4b43df55ec24749f9398b32237bc10397aeb15c25cdb6
|
||||
destructured_ast: 11115e703a0cd70b6b3f80d873cacd87383ac6b5d5088898d6792a756ac8bf47
|
||||
inlined_ast: 11115e703a0cd70b6b3f80d873cacd87383ac6b5d5088898d6792a756ac8bf47
|
||||
dce_ast: 9509608edbec389c1c4b6d015020f9ed676fbc31c47a844513ef503e9ed89880
|
||||
flattened_ast: 8aa42c48a8d35fbadb8f9a27a8e0102fdd17ca72f28656bfe5af7664540e6c4e
|
||||
destructured_ast: 749bea4883e5c8d589e7beef106b7eab4e8d11faf8a275962eb0a9dd834a0c0f
|
||||
inlined_ast: 749bea4883e5c8d589e7beef106b7eab4e8d11faf8a275962eb0a9dd834a0c0f
|
||||
dce_ast: a172dc2d0aa013289712d534ebc157adb7cec67796f708faea31970a051ec0e5
|
||||
bytecode: f6aaf7f7a13fb233511385db7479f2612e7a77734ee6a189f063bd3d33a7afaa
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -9,10 +9,10 @@ outputs:
|
||||
initial_ast: e5ad05937041eea6b511f067c946adc83282a76f09d9c67fd58aba4cddae9d0c
|
||||
unrolled_ast: e5ad05937041eea6b511f067c946adc83282a76f09d9c67fd58aba4cddae9d0c
|
||||
ssa_ast: c11c83b8011667b9803def78e26c978af8a407a0bc550aa01d57f2a21d64d769
|
||||
flattened_ast: 682315f244844945b7934430b3d25013b090c13d4d6d1369d1679164e8411c74
|
||||
destructured_ast: 2f55151960e617cdc0d1750cc49e4e571f76bdd69a512f78304f01e3122cc440
|
||||
inlined_ast: d6742527ffdfa28de311914f3496ad605499ac1f64bf946cb0e64bd9dfc3da6f
|
||||
dce_ast: d6742527ffdfa28de311914f3496ad605499ac1f64bf946cb0e64bd9dfc3da6f
|
||||
flattened_ast: c9c69ccdd00a39a9f600ceba6ee7ac5e47c47b1abf8d8857264581cc18795fa6
|
||||
destructured_ast: d84d9587cb336791a142e889eb248c425e51acc8f3b8f17561ec1aea5b554378
|
||||
inlined_ast: 558c25fa346d7e139cb309899cba630557836983ce4f147c2eef009343a670c2
|
||||
dce_ast: 69876b0a87e8c14ed0085f25354da4a7f2bfaa351dfb5230f9b7f37bcf33d6e3
|
||||
bytecode: 1524806e8239505d72e66621c387acc0e3342a9507535f00db692088eb933b1b
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
16
tests/tests/compiler/assert/early_return.leo
Normal file
16
tests/tests/compiler/assert/early_return.leo
Normal file
@ -0,0 +1,16 @@
|
||||
/*
|
||||
namespace: Compile
|
||||
expectation: Pass
|
||||
*/
|
||||
|
||||
// This test intends to make sure the assertion
|
||||
// is not triggered if the early return is taken.
|
||||
program test.aleo {
|
||||
transition main(a: bool) -> bool {
|
||||
if a {
|
||||
return a;
|
||||
}
|
||||
assert(false);
|
||||
return a;
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
expectation: Pass
|
||||
*/
|
||||
|
||||
program test.aleo {
|
||||
|
24
tests/tests/compiler/return/ifelse_chain.leo
Normal file
24
tests/tests/compiler/return/ifelse_chain.leo
Normal file
@ -0,0 +1,24 @@
|
||||
/*
|
||||
namespace: Compile
|
||||
expectation: Pass
|
||||
*/
|
||||
|
||||
// The intent is to test that the amount of code generated
|
||||
// is only linear in the number of conditions.
|
||||
program test.aleo {
|
||||
transition main(a: field) -> u32 {
|
||||
if a == 0field {
|
||||
return 0u32;
|
||||
} else if a == 1field {
|
||||
return 1u32;
|
||||
} else if a == 2field {
|
||||
return 2u32;
|
||||
} else if a == 3field {
|
||||
return 3u32;
|
||||
} else if a == 4field {
|
||||
return 4u32;
|
||||
}
|
||||
|
||||
return 5u32;
|
||||
}
|
||||
}
|
32
tests/tests/execution/assert_early_return.leo
Normal file
32
tests/tests/execution/assert_early_return.leo
Normal file
@ -0,0 +1,32 @@
|
||||
/*
|
||||
namespace: Execute
|
||||
expectation: Pass
|
||||
cases:
|
||||
- program: test.aleo
|
||||
function: main
|
||||
input: ["1u32"]
|
||||
- program: test.aleo
|
||||
function: main
|
||||
input: ["2u32"]
|
||||
- program: test.aleo
|
||||
function: main
|
||||
input: ["3u32"]
|
||||
- program: test.aleo
|
||||
function: main
|
||||
input: ["4u32"]
|
||||
- program: test.aleo
|
||||
function: main
|
||||
input: ["5u32"]
|
||||
*/
|
||||
|
||||
// The intent is to test that the assertion
|
||||
// does not trigger if the early return happens.
|
||||
program test.aleo {
|
||||
transition main(x: u32) -> bool {
|
||||
if x < 5u32 {
|
||||
return true;
|
||||
}
|
||||
assert(false);
|
||||
return true;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user