mirror of
https://github.com/ProvableHQ/leo.git
synced 2024-09-11 05:45:30 +03:00
Compatibility fixes
This commit is contained in:
parent
d27ba5fa31
commit
3b3a3bff02
@ -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 leo_ast::CompositeType;
|
||||
use crate::CompositeType;
|
||||
use leo_span::Symbol;
|
||||
use serde::{Deserialize, Deserializer, Serialize, Serializer};
|
||||
|
||||
|
@ -46,4 +46,9 @@ impl Variant {
|
||||
pub fn is_function(self) -> bool {
|
||||
matches!(self, Variant::AsyncFunction | Variant::Function)
|
||||
}
|
||||
|
||||
/// Returns true if the variant is an async function.
|
||||
pub fn is_async_function(self) -> bool {
|
||||
matches!(self, Variant::AsyncFunction)
|
||||
}
|
||||
}
|
||||
|
@ -139,6 +139,13 @@ impl Type {
|
||||
.zip_eq(right.elements().iter())
|
||||
.all(|(left_type, right_type)| left_type.eq_flat_relax_composite(right_type)),
|
||||
(Type::Composite(left), Type::Composite(right)) => left.id.name == right.id.name,
|
||||
// Don't type check when type hasn't been explicitly defined.
|
||||
(Type::Future(left), Type::Future(right)) if !left.is_explicit || !right.is_explicit => true,
|
||||
(Type::Future(left), Type::Future(right)) if left.inputs.len() == right.inputs.len() => left
|
||||
.inputs()
|
||||
.iter()
|
||||
.zip_eq(right.inputs().iter())
|
||||
.all(|(left_type, right_type)| left_type.eq_flat_relax_composite(right_type)),
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
|
@ -227,8 +227,7 @@ impl<'a> CodeGenerator<'a> {
|
||||
self.variable_mapping.insert(&input.identifier.name, register_string.clone());
|
||||
// Note that this unwrap is safe because we set the variant at the beginning of the function.
|
||||
let visibility = match (self.variant.unwrap(), input.mode) {
|
||||
(Variant::AsyncTransition, Mode::None) |
|
||||
(Variant::Transition, Mode::None) => Mode::Private,
|
||||
(Variant::AsyncTransition, Mode::None) | (Variant::Transition, Mode::None) => Mode::Private,
|
||||
(Variant::AsyncFunction, Mode::None) => Mode::Public,
|
||||
_ => input.mode,
|
||||
};
|
||||
|
@ -14,9 +14,9 @@
|
||||
// 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::{CodeGenerator, Location};
|
||||
use crate::CodeGenerator;
|
||||
|
||||
use leo_ast::{Mode, Type};
|
||||
use leo_ast::{Location, Mode, Type};
|
||||
|
||||
impl<'a> CodeGenerator<'a> {
|
||||
pub(crate) fn visit_type(input: &Type) -> String {
|
||||
|
@ -26,13 +26,13 @@ pub struct DeadCodeEliminator<'a> {
|
||||
pub(crate) used_variables: IndexSet<Symbol>,
|
||||
/// Whether or not the variables are necessary.
|
||||
pub(crate) is_necessary: bool,
|
||||
/// Whether or not we are currently traversing a finalize block.
|
||||
pub(crate) is_finalize: bool,
|
||||
/// Whether or not we are currently traversing an async function.
|
||||
pub(crate) is_async: bool,
|
||||
}
|
||||
|
||||
impl<'a> DeadCodeEliminator<'a> {
|
||||
/// Initializes a new `DeadCodeEliminator`.
|
||||
pub fn new(node_builder: &'a NodeBuilder) -> Self {
|
||||
Self { node_builder, used_variables: Default::default(), is_necessary: false, is_finalize: false }
|
||||
Self { node_builder, used_variables: Default::default(), is_necessary: false, is_async: false }
|
||||
}
|
||||
}
|
||||
|
@ -118,7 +118,7 @@ impl StatementReconstructor for DeadCodeEliminator<'_> {
|
||||
|
||||
/// Flattening removes conditional statements from the program.
|
||||
fn reconstruct_conditional(&mut self, input: ConditionalStatement) -> (Statement, Self::AdditionalOutput) {
|
||||
if !self.is_finalize {
|
||||
if !self.is_async {
|
||||
unreachable!("`ConditionalStatement`s should not be in the AST at this phase of compilation.")
|
||||
} else {
|
||||
(
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
use crate::Destructurer;
|
||||
|
||||
use leo_ast::{Finalize, Function, ProgramReconstructor, StatementReconstructor};
|
||||
use leo_ast::{Function, ProgramReconstructor, StatementReconstructor};
|
||||
|
||||
impl ProgramReconstructor for Destructurer<'_> {
|
||||
fn reconstruct_function(&mut self, input: Function) -> Function {
|
||||
@ -27,24 +27,15 @@ impl ProgramReconstructor for Destructurer<'_> {
|
||||
input: input.input,
|
||||
output: input.output,
|
||||
output_type: input.output_type,
|
||||
block: self.reconstruct_block(input.block).0,
|
||||
finalize: input.finalize.map(|finalize| {
|
||||
// Set the `is_finalize` flag before reconstructing the finalize block.
|
||||
self.is_finalize = true;
|
||||
// Reconstruct the finalize block.
|
||||
let finalize = Finalize {
|
||||
identifier: finalize.identifier,
|
||||
input: finalize.input,
|
||||
output: finalize.output,
|
||||
output_type: finalize.output_type,
|
||||
block: self.reconstruct_block(finalize.block).0,
|
||||
span: finalize.span,
|
||||
id: finalize.id,
|
||||
};
|
||||
// Reset the `is_finalize` flag.
|
||||
self.is_finalize = false;
|
||||
finalize
|
||||
}),
|
||||
block: {
|
||||
// Set the `is_async` flag before reconstructing the block.
|
||||
self.is_async = input.variant.is_async_function();
|
||||
// Reconstruct the block.
|
||||
let block = self.reconstruct_block(input.block).0;
|
||||
// Reset the `is_async` flag.
|
||||
self.is_async = false;
|
||||
block
|
||||
},
|
||||
span: input.span,
|
||||
id: input.id,
|
||||
}
|
||||
|
@ -222,7 +222,7 @@ impl StatementReconstructor for Destructurer<'_> {
|
||||
|
||||
fn reconstruct_conditional(&mut self, input: ConditionalStatement) -> (Statement, Self::AdditionalOutput) {
|
||||
// Conditional statements can only exist in finalize blocks.
|
||||
if !self.is_finalize {
|
||||
if !self.is_async {
|
||||
unreachable!("`ConditionalStatement`s should not be in the AST at this phase of compilation.")
|
||||
} else {
|
||||
(
|
||||
|
@ -30,13 +30,13 @@ pub struct Destructurer<'a> {
|
||||
pub(crate) assigner: &'a Assigner,
|
||||
/// A mapping between variables and flattened tuple expressions.
|
||||
pub(crate) tuples: IndexMap<Symbol, TupleExpression>,
|
||||
/// Whether or not we are currently traversing a finalize block.
|
||||
pub(crate) is_finalize: bool,
|
||||
/// Whether or not we are currently traversing an async function block.
|
||||
pub(crate) is_async: bool,
|
||||
}
|
||||
|
||||
impl<'a> Destructurer<'a> {
|
||||
pub(crate) fn new(type_table: &'a TypeTable, node_builder: &'a NodeBuilder, assigner: &'a Assigner) -> Self {
|
||||
Self { type_table, node_builder, assigner, tuples: IndexMap::new(), is_finalize: false }
|
||||
Self { type_table, node_builder, assigner, tuples: IndexMap::new(), is_async: false }
|
||||
}
|
||||
|
||||
/// A wrapper around `assigner.simple_assign_statement` that tracks the type of the lhs.
|
||||
|
@ -32,8 +32,8 @@ pub struct FunctionInliner<'a> {
|
||||
pub(crate) reconstructed_functions: Vec<(Symbol, Function)>,
|
||||
/// The main program.
|
||||
pub(crate) program: Option<Symbol>,
|
||||
/// Whether or not we are currently traversing a finalize block.
|
||||
pub(crate) is_finalize: bool,
|
||||
/// Whether or not we are currently traversing an async function block.
|
||||
pub(crate) is_async: bool,
|
||||
}
|
||||
|
||||
impl<'a> FunctionInliner<'a> {
|
||||
@ -51,7 +51,7 @@ impl<'a> FunctionInliner<'a> {
|
||||
reconstructed_functions: Default::default(),
|
||||
type_table,
|
||||
program: None,
|
||||
is_finalize: false,
|
||||
is_async: false,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
use crate::FunctionInliner;
|
||||
|
||||
use leo_ast::{Finalize, Function, ProgramReconstructor, ProgramScope, StatementReconstructor};
|
||||
use leo_ast::{Function, ProgramReconstructor, ProgramScope, StatementReconstructor};
|
||||
use leo_span::Symbol;
|
||||
|
||||
use indexmap::IndexMap;
|
||||
@ -69,24 +69,15 @@ impl ProgramReconstructor for FunctionInliner<'_> {
|
||||
input: input.input,
|
||||
output: input.output,
|
||||
output_type: input.output_type,
|
||||
block: self.reconstruct_block(input.block).0,
|
||||
finalize: input.finalize.map(|finalize| {
|
||||
// Set the `is_finalize` flag before reconstructing the finalize block.
|
||||
self.is_finalize = true;
|
||||
// Reconstruct the finalize block.
|
||||
let finalize = Finalize {
|
||||
identifier: finalize.identifier,
|
||||
input: finalize.input,
|
||||
output: finalize.output,
|
||||
output_type: finalize.output_type,
|
||||
block: self.reconstruct_block(finalize.block).0,
|
||||
span: finalize.span,
|
||||
id: finalize.id,
|
||||
};
|
||||
// Reset the `is_finalize` flag.
|
||||
self.is_finalize = false;
|
||||
finalize
|
||||
}),
|
||||
block: {
|
||||
// Set the `is_async` flag before reconstructing the block.
|
||||
self.is_async = input.variant.is_async_function();
|
||||
// Reconstruct the block.
|
||||
let block = self.reconstruct_block(input.block).0;
|
||||
// Reset the `is_async` flag.
|
||||
self.is_async = false;
|
||||
block
|
||||
},
|
||||
span: input.span,
|
||||
id: input.id,
|
||||
}
|
||||
|
@ -71,7 +71,7 @@ impl StatementReconstructor for FunctionInliner<'_> {
|
||||
|
||||
/// Flattening removes conditional statements from the program.
|
||||
fn reconstruct_conditional(&mut self, input: ConditionalStatement) -> (Statement, Self::AdditionalOutput) {
|
||||
if !self.is_finalize {
|
||||
if !self.is_async {
|
||||
unreachable!("`ConditionalStatement`s should not be in the AST at this phase of compilation.")
|
||||
} else {
|
||||
(
|
||||
|
@ -639,17 +639,22 @@ impl<'a> ExpressionVisitor<'a> for TypeChecker<'a> {
|
||||
}
|
||||
} else if func.variant == Variant::AsyncTransition {
|
||||
// Fully infer future type.
|
||||
let future_type = match self.async_function_input_types.get(&Location::new(input.program, Symbol::intern(&format!("finalize/{}", ident.name)))) {
|
||||
Some(inputs) => {
|
||||
Type::Future(FutureType::new(
|
||||
inputs.clone(), Some(Location::new(input.program, ident.name)), true
|
||||
))
|
||||
},
|
||||
let future_type = match self
|
||||
.async_function_input_types
|
||||
.get(&Location::new(input.program, Symbol::intern(&format!("finalize/{}", ident.name))))
|
||||
{
|
||||
Some(inputs) => Type::Future(FutureType::new(
|
||||
inputs.clone(),
|
||||
Some(Location::new(input.program, ident.name)),
|
||||
true,
|
||||
)),
|
||||
None => {
|
||||
self.emit_err(TypeCheckerError::async_function_not_found(ident.name, input.span));
|
||||
return Some(Type::Future(FutureType::new(
|
||||
Vec::new(), Some(Location::new(input.program, ident.name)), false
|
||||
)))
|
||||
Vec::new(),
|
||||
Some(Location::new(input.program, ident.name)),
|
||||
false,
|
||||
)));
|
||||
}
|
||||
};
|
||||
let fully_inferred_type = match func.output_type {
|
||||
|
@ -16,15 +16,10 @@
|
||||
|
||||
use crate::{DiGraphError, TypeChecker};
|
||||
|
||||
use leo_ast::{
|
||||
Input::{External, Internal},
|
||||
Type::Future,
|
||||
*,
|
||||
};
|
||||
use leo_ast::{Type, *};
|
||||
use leo_errors::{TypeCheckerError, TypeCheckerWarning};
|
||||
use leo_span::sym;
|
||||
|
||||
use leo_ast::Variant::{AsyncFunction, AsyncTransition};
|
||||
use snarkvm::console::network::{MainnetV0, Network};
|
||||
use std::collections::HashSet;
|
||||
|
||||
@ -89,24 +84,21 @@ impl<'a> ProgramVisitor<'a> for TypeChecker<'a> {
|
||||
|
||||
// Create future stubs.
|
||||
if input.variant == Variant::AsyncFunction {
|
||||
let finalize_input_map = &mut self.finalize_input_types;
|
||||
let finalize_input_map = &mut self.async_function_input_types;
|
||||
let resolved_inputs: Vec<Type> = input
|
||||
.input
|
||||
.iter()
|
||||
.map(|input_mode| {
|
||||
match input_mode {
|
||||
Internal(function_input) => match &function_input.type_ {
|
||||
Future(f) => {
|
||||
// Since we traverse stubs in post-order, we can assume that the corresponding finalize stub has already been traversed.
|
||||
Future(FutureType::new(
|
||||
finalize_input_map.get(&f.location.clone().unwrap()).unwrap().clone(),
|
||||
f.location.clone(),
|
||||
true,
|
||||
))
|
||||
}
|
||||
_ => function_input.clone().type_,
|
||||
},
|
||||
External(_) => unreachable!("External inputs are not allowed in finalize outputs of stubs."),
|
||||
.map(|input| {
|
||||
match &input.type_ {
|
||||
Type::Future(f) => {
|
||||
// Since we traverse stubs in post-order, we can assume that the corresponding finalize stub has already been traversed.
|
||||
Type::Future(FutureType::new(
|
||||
finalize_input_map.get(&f.location.clone().unwrap()).unwrap().clone(),
|
||||
f.location.clone(),
|
||||
true,
|
||||
))
|
||||
}
|
||||
_ => input.clone().type_,
|
||||
}
|
||||
})
|
||||
.collect();
|
||||
@ -221,7 +213,7 @@ impl<'a> ProgramVisitor<'a> for TypeChecker<'a> {
|
||||
check_has_field(sym::owner, Type::Address);
|
||||
}
|
||||
|
||||
if !(input.is_record && self.is_stub) {
|
||||
if !(input.is_record && self.scope_state.is_stub) {
|
||||
for Member { mode, identifier, type_, span, .. } in input.members.iter() {
|
||||
// Check that the member type is not a tuple.
|
||||
if matches!(type_, Type::Tuple(_)) {
|
||||
@ -336,15 +328,8 @@ impl<'a> ProgramVisitor<'a> for TypeChecker<'a> {
|
||||
function
|
||||
.input
|
||||
.iter()
|
||||
.filter_map(|input| match input {
|
||||
Internal(parameter) => {
|
||||
if let Future(_) = parameter.type_.clone() {
|
||||
Some(parameter.identifier.name)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
External(_) => None,
|
||||
.filter_map(|input| {
|
||||
if let Type::Future(_) = input.type_.clone() { Some(input.identifier.name) } else { None }
|
||||
})
|
||||
.collect(),
|
||||
);
|
||||
@ -364,12 +349,12 @@ impl<'a> ProgramVisitor<'a> for TypeChecker<'a> {
|
||||
self.exit_scope(function_index);
|
||||
|
||||
// Make sure that async transitions call finalize.
|
||||
if self.scope_state.variant == Some(AsyncTransition) && !self.scope_state.has_called_finalize {
|
||||
if self.scope_state.variant == Some(Variant::AsyncTransition) && !self.scope_state.has_called_finalize {
|
||||
self.emit_err(TypeCheckerError::async_transition_must_call_async_function(function.span));
|
||||
}
|
||||
|
||||
// Check that all futures were awaited exactly once.
|
||||
if self.scope_state.variant == Some(AsyncFunction) {
|
||||
if self.scope_state.variant == Some(Variant::AsyncFunction) {
|
||||
// Throw error if not all futures awaits even appear once.
|
||||
if !self.await_checker.static_to_await.is_empty() {
|
||||
self.emit_err(TypeCheckerError::future_awaits_missing(
|
||||
|
@ -400,16 +400,18 @@ impl<'a> StatementVisitor<'a> for TypeChecker<'a> {
|
||||
|
||||
// Fully type the expected return value.
|
||||
if self.scope_state.variant == Some(Variant::AsyncTransition) && self.scope_state.has_called_finalize {
|
||||
let inferred_future_type = match self.async_function_input_types.get(&func.unwrap().finalize.clone().unwrap()) {
|
||||
Some(types) => Future(FutureType::new(
|
||||
types.clone(),
|
||||
Some(Location::new(self.scope_state.program_name, parent)),
|
||||
true,
|
||||
)),
|
||||
None => {
|
||||
return self.emit_err(TypeCheckerError::async_transition_missing_future_to_return(input.span()));
|
||||
}
|
||||
};
|
||||
let inferred_future_type =
|
||||
match self.async_function_input_types.get(&func.unwrap().finalize.clone().unwrap()) {
|
||||
Some(types) => Future(FutureType::new(
|
||||
types.clone(),
|
||||
Some(Location::new(self.scope_state.program_name, parent)),
|
||||
true,
|
||||
)),
|
||||
None => {
|
||||
return self
|
||||
.emit_err(TypeCheckerError::async_transition_missing_future_to_return(input.span()));
|
||||
}
|
||||
};
|
||||
// Need to modify return type since the function signature is just default future, but the actual return type is the fully inferred future of the finalize input type.
|
||||
let inferred = match return_type.clone() {
|
||||
Some(Future(_)) => Some(inferred_future_type),
|
||||
|
@ -1313,7 +1313,8 @@ impl<'a> TypeChecker<'a> {
|
||||
self.emit_err(TypeCheckerError::async_transition_invalid_output(function_output.span));
|
||||
}
|
||||
// If the function is not an async transition, then it cannot have a future as output.
|
||||
if self.scope_state.variant != Some(Variant::AsyncTransition) && matches!(function_output.type_, Type::Future(_))
|
||||
if self.scope_state.variant != Some(Variant::AsyncTransition)
|
||||
&& matches!(function_output.type_, Type::Future(_))
|
||||
{
|
||||
self.emit_err(TypeCheckerError::only_async_transition_can_return_future(function_output.span));
|
||||
}
|
||||
|
@ -41,6 +41,8 @@ pub struct ScopeState {
|
||||
pub(crate) is_call: bool,
|
||||
/// Location of most recent external call that produced a future.
|
||||
pub(crate) call_location: Option<Location>,
|
||||
/// Whether currently traversing an async function.
|
||||
pub(crate) is_async: bool,
|
||||
}
|
||||
|
||||
impl ScopeState {
|
||||
@ -58,6 +60,7 @@ impl ScopeState {
|
||||
is_conditional: false,
|
||||
is_call: false,
|
||||
call_location: None,
|
||||
is_async: false,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -306,7 +306,7 @@ create_messages!(
|
||||
}
|
||||
|
||||
@formatted
|
||||
finalize_input_mode_must_be_public {
|
||||
async_function_input_must_be_public {
|
||||
args: (),
|
||||
msg: format!("An input to an async function must be public."),
|
||||
help: Some("Use a `public` modifier to the input variable declaration or remove the visibility modifier entirely.".to_string()),
|
||||
@ -840,7 +840,7 @@ create_messages!(
|
||||
}
|
||||
|
||||
@formatted
|
||||
finalize_function_cannot_return_value {
|
||||
async_function_cannot_return_value {
|
||||
args: (),
|
||||
msg: "An async function is not allowed to return a value.".to_string(),
|
||||
help: Some("Remove an output type in the function signature, and remove the return statement from the function. Note that the future returned by async functions is automatically inferred, and must not be explicitly written.".to_string()),
|
||||
@ -860,9 +860,23 @@ create_messages!(
|
||||
}
|
||||
|
||||
@formatted
|
||||
finalize_cannot_assign_outside_conditional {
|
||||
async_cannot_assign_outside_conditional {
|
||||
args: (variable: impl Display),
|
||||
msg: format!("Cannot re-assign to `{variable}` from a conditional scope to an outer scope in a finalize block."),
|
||||
help: Some("This is a fundamental restriction that can often be avoided by using a ternary operator `?` or re-declaring the variable in the current scope. In the future, ARC XXXX (https://github.com/AleoHQ/ARCs) will support more complex assignments in finalize blocks.".to_string()),
|
||||
msg: format!("Cannot re-assign to `{variable}` from a conditional scope to an outer scope in an async function."),
|
||||
help: Some("This is a fundamental restriction that can often be avoided by using a ternary operator `?` or re-declaring the variable in the current scope. In the future, ARC XXXX (https://github.com/AleoHQ/ARCs) will support more complex assignments in async functions.".to_string()),
|
||||
}
|
||||
|
||||
@formatted
|
||||
only_async_transition_can_return_future {
|
||||
args: (),
|
||||
msg: "A `transition` cannot return a future.".to_string(),
|
||||
help: Some("Use an `async transition` instead.".to_string()),
|
||||
}
|
||||
|
||||
@formatted
|
||||
async_function_not_found {
|
||||
args: (name: impl Display),
|
||||
msg: format!("The async function `{name}` does not exist."),
|
||||
help: Some(format!("Ensure that `{name}` is defined as an async function in the current program.")),
|
||||
}
|
||||
);
|
||||
|
@ -2,4 +2,4 @@
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
outputs:
|
||||
- "Error [ETYC0372007]: Expected one type from `u32`, but got `u8`\n --> compiler-test:8:22\n |\n 8 | for i: u8 in START..STOP {\n | ^^^^^\n"
|
||||
- "Error [ETYC0372003]: Expected type `u8` but type `u32` was found\n --> compiler-test:8:22\n |\n 8 | for i: u8 in START..STOP {\n | ^^^^^\n"
|
||||
|
@ -2,4 +2,4 @@
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
outputs:
|
||||
- "Error [ETYC0372072]: Expected a tuple with 2 elements, found one with 3 elements\n --> compiler-test:5:13\n |\n 5 | let (a,b,c): (u8,u8) = (2u8,3u8);\n | ^^^^^^^\nError [ETYC0372072]: Expected a tuple with 3 elements, found one with 2 elements\n --> compiler-test:6:13\n |\n 6 | let (d,e): (u8,u8,u8) = (1u8,2u8,3u8);\n | ^^^^^\nError [ETYC0372007]: Expected one type from `u8`, but got `(u8,u8,u8)`\n --> compiler-test:7:36\n |\n 7 | let (g,h,i): (u8,u8,u8) = (1u8);\n | ^^^\nError [ETYC0372083]: A program must have at least one transition function.\n --> compiler-test:1:1\n |\n 1 | \n 2 | \n 3 | program test.aleo {\n | ^^^^^^^^^^^^\n"
|
||||
- "Error [ETYC0372072]: Expected a tuple with 2 elements, found one with 3 elements\n --> compiler-test:5:13\n |\n 5 | let (a,b,c): (u8,u8) = (2u8,3u8);\n | ^^^^^^^\nError [ETYC0372072]: Expected a tuple with 3 elements, found one with 2 elements\n --> compiler-test:6:13\n |\n 6 | let (d,e): (u8,u8,u8) = (1u8,2u8,3u8);\n | ^^^^^\nError [ETYC0372003]: Expected type `(u8,u8,u8)` but type `u8` was found\n --> compiler-test:7:36\n |\n 7 | let (g,h,i): (u8,u8,u8) = (1u8);\n | ^^^\nError [ETYC0372083]: A program must have at least one transition function.\n --> compiler-test:1:1\n |\n 1 | \n 2 | \n 3 | program test.aleo {\n | ^^^^^^^^^^^^\n"
|
||||
|
@ -2,4 +2,4 @@
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
outputs:
|
||||
- "Error [ETYC0372097]: Cannot re-assign to `try_get_token` from a conditional scope to an outer scope in a finalize block.\n --> compiler-test:16:13\n |\n 16 | let try_get_token: TokenInfo = Mapping::get_or_use(\n | ^^^^^^^^^^^^^\n |\n = This is a fundamental restriction that can often be avoided by using a ternary operator `?` or re-declaring the variable in the current scope. In the future, ARC XXXX (https://github.com/AleoHQ/ARCs) will support more complex assignments in finalize blocks.\n"
|
||||
- "Error [EPAR0370005]: expected ; -- found 'finalize'\n --> compiler-test:11:21\n |\n 11 | return then finalize();\n | ^^^^^^^^"
|
||||
|
@ -2,4 +2,4 @@
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
outputs:
|
||||
- "Error [ETYC0372107]: The output of an async function must be assigned to a `Future` type..\n --> compiler-test:8:17\n |\n 8 | return finalize_mint_public(receiver, amount);\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nError [ETYC0372007]: Expected one type from `Future<Fn(address,u64)>`, but got `()`\n --> compiler-test:8:17\n |\n 8 | return finalize_mint_public(receiver, amount);\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nError [ETYC0372009]: Mapping::has_key is not a valid core function.\n --> compiler-test:12:30\n |\n 12 | let has_key: bool = Mapping::has_key(account, receiver);\n | ^^^^^^^\nError [ETYC0372014]: Mapping::has_key is not a valid core function call.\n --> compiler-test:12:30\n |\n 12 | let has_key: bool = Mapping::has_key(account, receiver);\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
|
||||
- "Error [ETYC0372107]: The output of an async function must be assigned to a `Future` type..\n --> compiler-test:8:17\n |\n 8 | return finalize_mint_public(receiver, amount);\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nError [ETYC0372003]: Expected type `()` but type `Future<Fn(address,u64)>` was found\n --> compiler-test:8:17\n |\n 8 | return finalize_mint_public(receiver, amount);\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nError [ETYC0372009]: Mapping::has_key is not a valid core function.\n --> compiler-test:12:30\n |\n 12 | let has_key: bool = Mapping::has_key(account, receiver);\n | ^^^^^^^\nError [ETYC0372014]: Mapping::has_key is not a valid core function call.\n --> compiler-test:12:30\n |\n 12 | let has_key: bool = Mapping::has_key(account, receiver);\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
|
||||
|
@ -3,16 +3,16 @@ namespace: Compile
|
||||
expectation: Pass
|
||||
outputs:
|
||||
- - compile:
|
||||
- initial_symbol_table: abb6832433f8abdafece357acef6c23a24ed43cf4ffedc8ebab5737c946cb49a
|
||||
type_checked_symbol_table: b0612ceaa5efd7c4c50bcf6bbea21cb08b6333420b187d0b3f5d53adf92b1e0b
|
||||
unrolled_symbol_table: b0612ceaa5efd7c4c50bcf6bbea21cb08b6333420b187d0b3f5d53adf92b1e0b
|
||||
initial_ast: c5d71825599d2330a6732d0a45120fa7cdeea0f26d14b52711081f05e59d706e
|
||||
unrolled_ast: c5d71825599d2330a6732d0a45120fa7cdeea0f26d14b52711081f05e59d706e
|
||||
ssa_ast: 2bd218a2cbd878b15690e927f108e7c94f3c1c76668f2e4df36ec2e1f91d2388
|
||||
flattened_ast: f905d3aa8253284ae117c7987f67bd979e9d0522c65bcc1a156e44258775977a
|
||||
destructured_ast: bbd6c90ef1f1901af2b0629fb78ced7eb8dd8fd1ce79703e8be883e270f590cb
|
||||
inlined_ast: 5839761b5e07e8667f0f3b857e31bb8f7ffa82d179fc3862be849cac3789d94c
|
||||
dce_ast: 5839761b5e07e8667f0f3b857e31bb8f7ffa82d179fc3862be849cac3789d94c
|
||||
- initial_symbol_table: f4fdd9d63c589d5b0d479ad742e172bdf396a2abbdc44f0875639ccd10fd24b0
|
||||
type_checked_symbol_table: 3da7188df5f78d7ea1554e7e6b665814a1b47defd1a928467f23ef06a2960ed7
|
||||
unrolled_symbol_table: 3da7188df5f78d7ea1554e7e6b665814a1b47defd1a928467f23ef06a2960ed7
|
||||
initial_ast: 3ca9478b8578b8767ece4f9b203dc6bd662f326a0bf19d8780b41a1cd1886da4
|
||||
unrolled_ast: 3ca9478b8578b8767ece4f9b203dc6bd662f326a0bf19d8780b41a1cd1886da4
|
||||
ssa_ast: 13759b3635fd78f577967b5f6086d19c2eca8d7f7f7e410a7ff62435f01d3275
|
||||
flattened_ast: a8bab5287b59f2843a752ba88c87705184e5b4680aa2de72f1bee71c18350955
|
||||
destructured_ast: 6a4309fa035a3c06b9cc08c6c1ce4aef89a4ae13389ce7aaeddf0982c779c93f
|
||||
inlined_ast: 44341ccc9165fc7a2b662c051e7723391b25077d13a07780e9d525917d20aebc
|
||||
dce_ast: 44341ccc9165fc7a2b662c051e7723391b25077d13a07780e9d525917d20aebc
|
||||
bytecode: cc273037c3ab51d0adc1aa2a98ba98703f5bc15c14cce5207e29b1f6e3d88ab7
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -2,4 +2,4 @@
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
outputs:
|
||||
- "Error [ETYC0372007]: Expected one type from `u8`, but got `i8`\n --> compiler-test:16:13\n |\n 16 | x = f1(1u8);\n | ^^^^^^^\nError [ETYC0372007]: Expected one type from `u8`, but got `i8`\n --> compiler-test:20:13\n |\n 20 | y = f3(y, z);\n | ^^^^^^^^\nError [ETYC0372007]: Expected one type from `i8`, but got `u8`\n --> compiler-test:20:16\n |\n 20 | y = f3(y, z);\n | ^\n"
|
||||
- "Error [ETYC0372003]: Expected type `i8` but type `u8` was found\n --> compiler-test:16:13\n |\n 16 | x = f1(1u8);\n | ^^^^^^^\nError [ETYC0372003]: Expected type `i8` but type `u8` was found\n --> compiler-test:20:13\n |\n 20 | y = f3(y, z);\n | ^^^^^^^^\nError [ETYC0372003]: Expected type `u8` but type `i8` was found\n --> compiler-test:20:16\n |\n 20 | y = f3(y, z);\n | ^\n"
|
||||
|
@ -0,0 +1,5 @@
|
||||
---
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
outputs:
|
||||
- "Error [ETYC0372110]: A `transition` cannot return a future.\n --> compiler-test:5:35\n |\n 5 | transition a(a: u64, b: u64) -> Future {\n | ^^^^^^\n |\n = Use an `async transition` instead.\nError [ETYC0372111]: The async function `finish` does not exist.\n --> compiler-test:6:12\n |\n 6 | return finish(a, b);\n | ^^^^^^^^^^^^\n |\n = Ensure that `finish` is defined as an async function in the current program.\nError [ETYC0372088]: An async transition must call an async function.\n --> compiler-test:9:3\n |\n 9 | async transition finish(a: u64, b: u64) {\n 10 | if (b == 0u64) {\n 11 | assert_eq(b, 0u64);\n 12 | } else {\n 13 | assert_eq(a / b, 1u64);\n 14 | }\n 15 | }\n | ^\n |\n = Example: `async transition foo() -> Future { let a: Future = bar(); return await_futures(a); }`\n"
|
@ -2,4 +2,4 @@
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
outputs:
|
||||
- "Error [ETYC0372017]: The type `Foo` is not found in the current scope.\n --> compiler-test:4:28\n |\n 4 | transition main(a: u8, foo: Foo) -> u8 {\n | ^^^\n |\n = If you are using an external type, make sure to preface with the program name. Ex: `credits.aleo/credits` instead of `credits`\nError [ETYC0372017]: The type `Foo` is not found in the current scope.\n --> compiler-test:8:38\n |\n 8 | transition returns_foo(a: u8) -> Foo {\n | ^^^\n |\n = If you are using an external type, make sure to preface with the program name. Ex: `credits.aleo/credits` instead of `credits`\nError [ETYC0372007]: Expected one type from `u8`, but got `Foo`\n --> compiler-test:9:16\n |\n 9 | return a;\n | ^\n"
|
||||
- "Error [ETYC0372017]: The type `Foo` is not found in the current scope.\n --> compiler-test:4:28\n |\n 4 | transition main(a: u8, foo: Foo) -> u8 {\n | ^^^\n |\n = If you are using an external type, make sure to preface with the program name. Ex: `credits.aleo/credits` instead of `credits`\nError [ETYC0372017]: The type `Foo` is not found in the current scope.\n --> compiler-test:8:38\n |\n 8 | transition returns_foo(a: u8) -> Foo {\n | ^^^\n |\n = If you are using an external type, make sure to preface with the program name. Ex: `credits.aleo/credits` instead of `credits`\nError [ETYC0372003]: Expected type `Foo` but type `u8` was found\n --> compiler-test:9:16\n |\n 9 | return a;\n | ^\n"
|
||||
|
@ -2,4 +2,4 @@
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
outputs:
|
||||
- "Error [ETYC0372106]: An async function is not allowed to return a value.\n --> compiler-test:10:5\n |\n 10 | async function finalize() -> Future {\n 11 | Mapping::set(foo, 1u32, 1u32);\n 12 | }\n | ^\n |\n = Remove an output type in the function signature, and remove the return statement from the function. Note that the future returned by async functions is automatically inferred, and must not be explicitly written.\nError [ETYC0372036]: Function must return a value.\n --> compiler-test:10:5\n |\n 10 | async function finalize() -> Future {\n 11 | Mapping::set(foo, 1u32, 1u32);\n 12 | }\n | ^\n"
|
||||
- "Error [ETYC0372106]: An async function is not allowed to return a value.\n --> compiler-test:10:5\n |\n 10 | async function finalize() -> Future {\n 11 | Mapping::set(foo, 1u32, 1u32);\n 12 | }\n | ^\n |\n = Remove an output type in the function signature, and remove the return statement from the function. Note that the future returned by async functions is automatically inferred, and must not be explicitly written.\nError [ETYC0372110]: A `transition` cannot return a future.\n --> compiler-test:10:34\n |\n 10 | async function finalize() -> Future {\n | ^^^^^^\n |\n = Use an `async transition` instead.\nError [ETYC0372036]: Function must return a value.\n --> compiler-test:10:5\n |\n 10 | async function finalize() -> Future {\n 11 | Mapping::set(foo, 1u32, 1u32);\n 12 | }\n | ^\n"
|
||||
|
@ -3,29 +3,29 @@ namespace: Compile
|
||||
expectation: Pass
|
||||
outputs:
|
||||
- - compile:
|
||||
- initial_symbol_table: b111e8cf63f297807a2aafff5bb852ee255e5ea82bcc22360036c5aa4e6bad35
|
||||
type_checked_symbol_table: ae5038734243d9f2acd7523102b4241a28b09c2dcae63e7382dbb40804edacda
|
||||
unrolled_symbol_table: ae5038734243d9f2acd7523102b4241a28b09c2dcae63e7382dbb40804edacda
|
||||
initial_ast: d6df8937e830f774c35520f71e1a43a82a538d4a568072bd6f640a66385e7529
|
||||
unrolled_ast: d6df8937e830f774c35520f71e1a43a82a538d4a568072bd6f640a66385e7529
|
||||
ssa_ast: 7d7b6c58283cd017d101a05fe02db9984ad718ed3be60597a72bce99d6de953a
|
||||
flattened_ast: d58f7a2d00560dcacdbb17978cd46699c34811cbcd8f434be26ae26d3c951f78
|
||||
destructured_ast: e2b26bc7e984cb037abe6e334962d82494c774cf7fcb1c29dd3e8854eac01581
|
||||
inlined_ast: 2f8c78e1f400520caa3a00b2c5ee005bf198da0fc32978f2763454e134cf9382
|
||||
dce_ast: 2f8c78e1f400520caa3a00b2c5ee005bf198da0fc32978f2763454e134cf9382
|
||||
- initial_symbol_table: 8b522d0a39eb531a3b44e1689486e9421bf3511b734ea1866490af667391a494
|
||||
type_checked_symbol_table: 5518f6156fadf886a27d01ab9f04e7d5ba6ad744eb57eae50591cfeb7ac3e245
|
||||
unrolled_symbol_table: 5518f6156fadf886a27d01ab9f04e7d5ba6ad744eb57eae50591cfeb7ac3e245
|
||||
initial_ast: 2bfe467a04d427a79a28ef4029ccebdb3cb0eddf0b37e6b33dbdbe2063aa67bc
|
||||
unrolled_ast: 2bfe467a04d427a79a28ef4029ccebdb3cb0eddf0b37e6b33dbdbe2063aa67bc
|
||||
ssa_ast: 658fe90229b11769bc01e033f7833960f756b09e082ea0542b270acb4c1ee71b
|
||||
flattened_ast: 6e131dfaa409eaec17bd67acc1b1ac4611fdb5deb1686f70f8bc34327ab10648
|
||||
destructured_ast: dc160ce86c6b05e46449a72e5ed1d1b9e932693d28f430940442fd5df2354143
|
||||
inlined_ast: 43a6c945bdcf715ee62ef3eb62df9fa922c2f9f848c8989438514a05d4fd2101
|
||||
dce_ast: 43a6c945bdcf715ee62ef3eb62df9fa922c2f9f848c8989438514a05d4fd2101
|
||||
bytecode: fcafcc5b4dca1daebcb7e7f97cce06bcd129c54677e310c424a255abd3132732
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- initial_symbol_table: cf8902b50e9aa0275c5d8795fb204b6efa0bdb7ed916c74b3003e534b6ca0c73
|
||||
type_checked_symbol_table: 9a42f42dcaff38603884cf1d7e1ecbf4b35638055610f5421d659e4fe64ddeea
|
||||
unrolled_symbol_table: 9a42f42dcaff38603884cf1d7e1ecbf4b35638055610f5421d659e4fe64ddeea
|
||||
initial_ast: 1ec1379f994c84bc3c06c64ca4d2bf88f4d715c13405619c38e6ad124b4abc94
|
||||
unrolled_ast: 302979e71a78ec66080a873821d87e9bf94fbf5eb251172af4a8c247dd606ced
|
||||
ssa_ast: ea61e2019e0ec944f5e8c0b7dd921f0f616cd4624cd275c9812efba2f97bae16
|
||||
flattened_ast: 48d700cba9e550bfa26604e05cdf07391da27b22d02169a061c9da70fc54be9c
|
||||
destructured_ast: 1f8006a7e2720c288d49ec461f95004ac65c3061b20bd0d95101a2aa8ffd29c9
|
||||
inlined_ast: 73756c3e65d06da957eefb4f207862457b7df4509eabe128588be661f8a0a5d5
|
||||
dce_ast: bc1a5b58cb752f2f1902164df6cfc0d0f9aedece47c7103040b7b097e5899d2d
|
||||
- initial_symbol_table: ad49aec92f87f1e65648a7ae10d5bfb563f50bb397a933a9852c979b4ed5e3f3
|
||||
type_checked_symbol_table: 7a05bbb86250bee3f69eee0c1f46f9d506dcb57c74358c26d158bde771b29bd7
|
||||
unrolled_symbol_table: 7a05bbb86250bee3f69eee0c1f46f9d506dcb57c74358c26d158bde771b29bd7
|
||||
initial_ast: f4b27c45b21e659b2b730a167dbbf8a309b19e71beded7108cb7267b06177417
|
||||
unrolled_ast: bdd7c6800831eebcb6a09cb05acd5be0ad83730e1d210eb4d9b4d6b968d0b326
|
||||
ssa_ast: e4441d4a0d42e1061d4481bce0113ebd8a6f258dc9e877adc5e52029d3f04991
|
||||
flattened_ast: 82cca8f1537803acde719f029a4ac265e0c1c53fa6e8cd4e4e2800a4d840c871
|
||||
destructured_ast: aee30ce903740d4f39c7f88aae66ed0bca4affce5b51988699cc9167ff946494
|
||||
inlined_ast: f4292c099047c4d8e3c0fbdaf7f32a1273a3eb68c4a11b0eccff59bd7c804247
|
||||
dce_ast: 406a8d3de9427c696512e49e8f7ab27d48616754516e535152dc13c15a3e1ee0
|
||||
bytecode: 1619c1b8a3e185454210bc8c9433ceec86833904810bba242398f28ea7d99d81
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -3,55 +3,55 @@ namespace: Compile
|
||||
expectation: Pass
|
||||
outputs:
|
||||
- - compile:
|
||||
- initial_symbol_table: 86ab6ef04a32a88f3e80544e8457ba0f9c8437fa8bd6c0ecf4fe81f81e303b36
|
||||
type_checked_symbol_table: 239974cd2bde58d2da7d4f875f5870ded9c5d861fe349f8baf622d65408d400d
|
||||
unrolled_symbol_table: 239974cd2bde58d2da7d4f875f5870ded9c5d861fe349f8baf622d65408d400d
|
||||
initial_ast: 3a0563f3764064bddf0bdb750c5b9d29ceb7e467478302e240208997ad0982ff
|
||||
unrolled_ast: 3a0563f3764064bddf0bdb750c5b9d29ceb7e467478302e240208997ad0982ff
|
||||
ssa_ast: a0136dbe0ba8ba23b655fda6aca4ea8438e6bc807b1ab0d79da518d36f104301
|
||||
flattened_ast: 32720dbd5b0b993e183b2c6646724c8c3a0774e2bf7e27d836849c1e59e1b3fc
|
||||
destructured_ast: 9947a00c36783530205560d41dea323840f437d2234b76e599de49204ec376da
|
||||
inlined_ast: 0a825690453bdceb53348d0823b81ca1ded15895ce7e131e98de9828631cda6e
|
||||
dce_ast: a2ed7cdeefb5942222083bd79b6f1675789ba1876d24fe314eadfb944711f299
|
||||
- initial_symbol_table: 0fbe7b86610386bfb1c7f0f211b2043baae706b9195008f8553511968f9297e7
|
||||
type_checked_symbol_table: efc3324af11b2f3645010266f1a871d799b81b07bec594fa88402b3f6fe1330b
|
||||
unrolled_symbol_table: efc3324af11b2f3645010266f1a871d799b81b07bec594fa88402b3f6fe1330b
|
||||
initial_ast: 472f984ad224e345de6a6a8cb7c4986b0bf8fa288713c38a506b41bad280faa5
|
||||
unrolled_ast: 472f984ad224e345de6a6a8cb7c4986b0bf8fa288713c38a506b41bad280faa5
|
||||
ssa_ast: ff6501ea72e6a46b15d71a89b71181851fba9aa2e6ee2a36d70218ad1a089a68
|
||||
flattened_ast: ba4154876562575fc3f8b6106a3ed4ab331382a4538ebc9630c82ed9be48176b
|
||||
destructured_ast: a995365c129f150bc361a571e5a0810f014a62c170d39e904b7de473bcdac50f
|
||||
inlined_ast: 3a2f11285208b9bd75048be921a23504d9389ae81e2bdc96f631943cfa4349c6
|
||||
dce_ast: ed19a1a5455d89e6a59914923e69d600b0fde7fa91cae652d70756eb59365e03
|
||||
bytecode: 833525edcc02927d3c52ea36f01ee8b6100738cb8d8c2d26fedec7365c622169
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- initial_symbol_table: 8f08ab5c3c4f864dcfff4dee81fc81b97fe5fceb3529dd906b8ef14bf4b090e3
|
||||
type_checked_symbol_table: b8612e351f4e648b42d351d8b938a724de286943e953bcfc880b75678770e1cb
|
||||
unrolled_symbol_table: b8612e351f4e648b42d351d8b938a724de286943e953bcfc880b75678770e1cb
|
||||
initial_ast: 45e99d526a59e3e7b4e4929786457add0807850e5ad87c3f1fa82675df172f62
|
||||
unrolled_ast: ea7d4394eb733a73c1333c7bf67d415877fed5fc3ba876c8eecf213273e5afba
|
||||
ssa_ast: 05a77645263e3b4e8e66027f43e568ff15c5f02cb4d1e33fb608ba4dabc129d5
|
||||
flattened_ast: 44232f9ecc0e46a51335643d983b9f701aa189c9f15cfaaa71e07c959802a5a4
|
||||
destructured_ast: 7918a91ae2c0966bc2a1aff0ab9d26c32d661545553c3999e97903a2cd582c01
|
||||
inlined_ast: cf6fe2066e7332141ab69dc9df9987ef9a9114adc2a9300a3389901fb16be81e
|
||||
dce_ast: dd733a5f1fdcc419b50e1cb3dd755ae4afc3ef604db812bc835c26b8c9917e88
|
||||
- initial_symbol_table: 837e6e9f7a93af9d92cb90208d54a4e55693939bccddf588c94102805a600ec2
|
||||
type_checked_symbol_table: c33e10eabb14d2d0dc8a7ffd7370dcda4d0467b46dc00d9a526c0cf7fc373906
|
||||
unrolled_symbol_table: c33e10eabb14d2d0dc8a7ffd7370dcda4d0467b46dc00d9a526c0cf7fc373906
|
||||
initial_ast: 64089bd9ecc0ab9ce224328c7ba9b2ece577f585b2417b48eb0883ec8cec304c
|
||||
unrolled_ast: 450bb73f7249477591a716a45cbd0fbb332d98a8765b2804ca919488cbc7e1bf
|
||||
ssa_ast: d445e67098ada41b7ada11f69a07acf107d1b8e6ab052e7bb3e8d1b6530c4371
|
||||
flattened_ast: 29e0bb208d92d60aad254ff140b0213e723cb6d96259c57bc72ffb17ffded47c
|
||||
destructured_ast: c524bacaa1e254955f64ccba023c0bcc7cf245c6098c05b7caf11067fbb9d230
|
||||
inlined_ast: d473a30ba312c6da47394340848f156a90946ccf0007dc62ea0d0bf8437e2404
|
||||
dce_ast: dddf9e1f157aff81704b13f77002cd9214870e91d0409094f7079694faa77d8b
|
||||
bytecode: 06118b170bd8fcf39f203c974615c368081e6bceae6dbe0d6aaa125d76bd9ac2
|
||||
errors: ""
|
||||
warnings: "Warning [WTYC0372000]: Not all paths through the function await all futures. 2/4 paths contain at least one future that is never awaited.\n --> compiler-test:17:5\n |\n 17 | async function finalize_main(f: Future, f2: Future, a: u32) {\n 18 | // f.await();\n 19 | if a == 1u32 {\n 20 | Future::await(f);\n 21 | f2.await();\n 22 | }\n 23 | \n 24 | if a == 2u32 {\n 25 | //f2.await();\n 26 | Mapping::set(ayo, 1u32, 1u32);\n 27 | }\n 28 | \n 29 | let total: u32 = f.0 + f2.0;\n 30 | Mapping::set(ayo, 1u32, total);\n 31 | }\n | ^\n |\n = Ex: `f.await()` to await a future. Remove this warning by including the `--disable-conditional-branch-type-checking` flag."
|
||||
- initial_symbol_table: 0eaf18229b4e9225a3cb73c9a68b9484952dfc14fd8ff170447add05bf0b0524
|
||||
type_checked_symbol_table: f24076223c77bb2932780788da22dd53da0f7950742aa6224e756412f8e3779f
|
||||
unrolled_symbol_table: f24076223c77bb2932780788da22dd53da0f7950742aa6224e756412f8e3779f
|
||||
initial_ast: 6f160f0208f733668a5d665d34fa7e657503938d7e8f3fa23bc00cc511105612
|
||||
unrolled_ast: 6665260afd2e96e10940c64b803b3dfbc11bab1ce7a04b92fcd36d653f7c4ed0
|
||||
ssa_ast: 26ccc97ce0e1e6b60a3fdc801ce29e401d9a47276bafe55578c8b39287d5ef41
|
||||
flattened_ast: ab3e104b14969b481dc655dc8ccb0a1646eb4cf47b86deb2827711f34ed6f7ef
|
||||
destructured_ast: 10c352f0ca4e853a2ed2e408b8050cf047ff5d10c977ad23473c25042285df46
|
||||
inlined_ast: f223801f28cd37d07d69f772bdaf7fbd4615c0401370f495dfe575375ae2eeac
|
||||
dce_ast: e0d468d1003e6c2774b97f3bdff4be0de5661730598f3db5c3421fe31a29e4de
|
||||
- initial_symbol_table: 11d73259b527776fa2019508fa961ca24850cc2bd0fbbcebfb7310c565289560
|
||||
type_checked_symbol_table: fb91e05612819b16dc6a1fb37cd80f776918dc1f502feca4d9428f42dc21754d
|
||||
unrolled_symbol_table: fb91e05612819b16dc6a1fb37cd80f776918dc1f502feca4d9428f42dc21754d
|
||||
initial_ast: 05de2b0dcfd85ec6446f4507492e26b2093e771f44c497f92a24d6fff5e8c864
|
||||
unrolled_ast: 4f09dae0678393afc3cbc5592159df83ca22b947084d3c8e779281724d07a2ca
|
||||
ssa_ast: 0cb5c531ad471909089716ef6c7382fb3fcbb82dafb6edef541e4f7cff4fb8ba
|
||||
flattened_ast: 46d54d4d9fe36538d34ac306780262ee1f54a6141aa2281ef7ae74ffcf4dddcf
|
||||
destructured_ast: 88653b95656b6f56872d7ea452491322e4c122909879b72856b891c474aa8342
|
||||
inlined_ast: 0f81029815dec13a526530eeea0e92e6eb61313421ce5a7b46ed3739d62beaf6
|
||||
dce_ast: 6b852bcf601b323678eea14e096f49c72f8800d18ec811b00c31817daf630d63
|
||||
bytecode: 7a2fd5581e13d3b66f1fad269ba868cf6d272929b84cea2dc1cb6a0af22867c2
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- initial_symbol_table: f38e89a5b86fef979e7cd6b47cea12498d695b4d89e12a30051ba8a6e764fb49
|
||||
type_checked_symbol_table: 8dfdc112d4ebdd4aa4d52b72d262696830e8d545d4cd9694575acccb569cb6a2
|
||||
unrolled_symbol_table: 8dfdc112d4ebdd4aa4d52b72d262696830e8d545d4cd9694575acccb569cb6a2
|
||||
initial_ast: 0d39ae8720f325f7fb1de93c78621ee641b18e826bc5edfdf0934b90608a7a6a
|
||||
unrolled_ast: 61c28641f6fb0478f2e0414859da8708790b977a56fa0e71b99912cd1e225f86
|
||||
ssa_ast: d65d59f47ff705cd49018d8ee953910bbcae73ef45491f3f8638a95ff51c7600
|
||||
flattened_ast: b51e2ccba6e160bf4ef7fdb0c071984ad5ea62722a97342bdd89a8effdf367b9
|
||||
destructured_ast: 5a4e750ae3a09dca023dfce772f38097864fa51b2d83ad91ad54642cff66b29b
|
||||
inlined_ast: 549460fc2ec17aebb284e1cec859532b0932c07c6f52bd9b22bb2bb98121b57d
|
||||
dce_ast: 2b95271cf24f8d0e7f1fda97a68c1623eb502dec0abaf4a40fe0138abfc514ae
|
||||
- initial_symbol_table: 04a3a0ccbf4ed061d19da4e624725caff0e64ac838498cbd09df865f4f9044f2
|
||||
type_checked_symbol_table: 69550e476553614e01dd39df0b3a8f682556cdf76982503af0e6a77d4916e027
|
||||
unrolled_symbol_table: 69550e476553614e01dd39df0b3a8f682556cdf76982503af0e6a77d4916e027
|
||||
initial_ast: bf4f5dac2e3cac6f6c8b117a93b7bc9a4b9d31f66b3b0d946866da23003e6a69
|
||||
unrolled_ast: a1786c230d46f3b207f118aaaaea373cd1d9935aa7e63b99e403a8faf36df2fe
|
||||
ssa_ast: 82581ca24afcd79d3e3c1346009981d4a9d3d227afc0540707b6c315ecdce107
|
||||
flattened_ast: 2ff2d69c6199a5c70a8ffb96d8dc0529f6f1fbf631a1f690169d2d9162e91689
|
||||
destructured_ast: 8da4c7c91fabf5edb6768e616f223e574b3415c848321f66ad9e587b76259210
|
||||
inlined_ast: a740025e070d37bd22f264e37dfd6802eb9e1b10c12c928a08acd14fbe9043d6
|
||||
dce_ast: e127a5223a49f123398009b927e96ebb44f266df7271feb7b1ff5f7f748e6ff5
|
||||
bytecode: 388c60022d4ad4fac382a685cc997c84d142f4e1357eb7c00e3efb545f5f70e5
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -3,55 +3,55 @@ namespace: Compile
|
||||
expectation: Pass
|
||||
outputs:
|
||||
- - compile:
|
||||
- initial_symbol_table: f7fdb56f570b11a60163e88b79615e5035ffcb2a867ac550e133601aa184f776
|
||||
type_checked_symbol_table: 117445b864ede05083c647516fed1fe7b5bb08f7d8ae4c0d5b29bd4bbe4a8a83
|
||||
unrolled_symbol_table: 117445b864ede05083c647516fed1fe7b5bb08f7d8ae4c0d5b29bd4bbe4a8a83
|
||||
initial_ast: 5324a2e889b56a4a9295b0798a5c95421f7a294ba00849ff653bae8157632a2b
|
||||
unrolled_ast: 5324a2e889b56a4a9295b0798a5c95421f7a294ba00849ff653bae8157632a2b
|
||||
ssa_ast: 5e6c15466f6b9fafb4c6da148a4b0929bef1e9a4a4c68bd04b0c607c6a94a5ce
|
||||
flattened_ast: c11410be9ab5755f83f226b7cc12a5d3b91a1cc2092f5399679438fca54015c5
|
||||
destructured_ast: 297b5a92d869204140aa1356bb5d9287dfc615858677a5a46e591696a1ac6211
|
||||
inlined_ast: fa01682672b72f1bd800e486ba42ddd425bd51e4932257cb98be2894a0a72467
|
||||
dce_ast: 6c04d1612560feccd448b5d1197bcdd9ea21424ce57bd60e5f1a4e9c1151fdf6
|
||||
- initial_symbol_table: c3d0ea026b5d60b48e857637a67489b89de75466d257974347c164546b9b9660
|
||||
type_checked_symbol_table: ae06cab6240fce0da07873fbf8159dc2acade6e666375b1c52dc586a98a0f8a3
|
||||
unrolled_symbol_table: ae06cab6240fce0da07873fbf8159dc2acade6e666375b1c52dc586a98a0f8a3
|
||||
initial_ast: 6e3dc0ac11741965498701cb2b5ebb68eecb1e932b9f6d84aca33350b91f6e2d
|
||||
unrolled_ast: 6e3dc0ac11741965498701cb2b5ebb68eecb1e932b9f6d84aca33350b91f6e2d
|
||||
ssa_ast: d898f89ce1fbcd93694c06446e31d5ab52ace6fd966c7dd35e082dead74440c7
|
||||
flattened_ast: 3f8304d2444d4e4132549ae4b530997040c0978d09fc8986bf67a3eba1538e99
|
||||
destructured_ast: 55c36655c56d82657c07cd352bc12762b12f41a00ca7e8cbf039a4d4d8d6e264
|
||||
inlined_ast: b7dda92d9f46b0646ce43f38625e29da41f0273f87990fc0e153cfe61e992523
|
||||
dce_ast: 638d72b2d6010f5a2a7d699fb69b1a056faae9a878b3c37f2b34e8f41fad5176
|
||||
bytecode: d207ac4b2d723295d2e715b2ea29f26bf8adcddbe41b4d5a036b69998a0ecfd6
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- initial_symbol_table: e3a5ea7efb8779cee70e77682e6ff6b756cfd327bef9f0105bf25ccd903ce367
|
||||
type_checked_symbol_table: d89fe0ddf84a2daa9a99225042afaa8a8298433c317595a1e8ef17b72afbb690
|
||||
unrolled_symbol_table: d89fe0ddf84a2daa9a99225042afaa8a8298433c317595a1e8ef17b72afbb690
|
||||
initial_ast: 926bf82b8c3c6646039637654d54ed2ec4ff7b151dc5a8a75649191db4ebc954
|
||||
unrolled_ast: 2d4a62c7a0c6cca1ffba89b2667727d96df7a354979bcecb5836fd2cc47a2525
|
||||
ssa_ast: c2edabe8988c41d2a5aa8a4703f06227c6537031266f9360492c864b92173fc4
|
||||
flattened_ast: c892b63b62194f1fe30519fa05e03a84cc722ee4bee8fc106d9e3aa604451630
|
||||
destructured_ast: 583712cc94400864eb1bba5ad15c531e7090faab0ed5087e64aeda2f6d495b75
|
||||
inlined_ast: 9932cd135f915f22cf860eff58f1dc64ab9f4909ff3945e916406b7f1b6b058f
|
||||
dce_ast: e9630c0fff101955e9b62cae4d86fa8d8374b3aad42309bf2ba78fdd9fb15f32
|
||||
- initial_symbol_table: 1a537ce4873945cd8969e08fd2440d3d9dbf4175306e7a60a18f59305958366e
|
||||
type_checked_symbol_table: 3c670b67da9da6028e642d487a1382f3de1b554c8c0d51fc531b71e36b5cdef5
|
||||
unrolled_symbol_table: 3c670b67da9da6028e642d487a1382f3de1b554c8c0d51fc531b71e36b5cdef5
|
||||
initial_ast: bcfa98eafaf355e7313773fa4340b88d2530e3d2b279252fc1117327de42d77a
|
||||
unrolled_ast: 01a9f5e11f5749b408619a513bf7f9eececfd83f9f87c883fcd8db53440babab
|
||||
ssa_ast: b6da9c41019a2af6cd137e29fe7b5041cc13a45d574b920101a69f7093c58980
|
||||
flattened_ast: f245e96aeaad10851bf4ec416c7dea9315e6fb4a270124fceaf1e8049a5cc691
|
||||
destructured_ast: b6e4f7239bbe832727944d357e2c059c6305f7b7eebc122761b313645f747ed5
|
||||
inlined_ast: cb3e38acfd6c330de5eec63279e2c69db0e4ff91b49d4bc4cbfb2276364985be
|
||||
dce_ast: 62f1a74cc6b63ebf65dab1142f770730704c530be96344f4df9210beecfa72ef
|
||||
bytecode: 06118b170bd8fcf39f203c974615c368081e6bceae6dbe0d6aaa125d76bd9ac2
|
||||
errors: ""
|
||||
warnings: "Warning [WTYC0372000]: Not all paths through the function await all futures. 2/4 paths contain at least one future that is never awaited.\n --> compiler-test:17:5\n |\n 17 | async function finalize_main(f: Future, f2: Future, a: u32) {\n 18 | // f.await();\n 19 | if a == 1u32 {\n 20 | Future::await(f);\n 21 | f2.await();\n 22 | }\n 23 | \n 24 | if a == 2u32 {\n 25 | //f2.await();\n 26 | Mapping::set(ayo, 1u32, 1u32);\n 27 | }\n 28 | \n 29 | let total: u32 = f.0 + f2.0;\n 30 | Mapping::set(ayo, 1u32, total);\n 31 | }\n | ^\n |\n = Ex: `f.await()` to await a future. Remove this warning by including the `--disable-conditional-branch-type-checking` flag."
|
||||
- initial_symbol_table: e0401fd594efeb916ad62bc91f5befc082646b3bf3303f391412e3635aae7f65
|
||||
type_checked_symbol_table: 51795bd5058fadfc474fdd30f4e6501c77130d50502b95de51a3c086349fe3a7
|
||||
unrolled_symbol_table: 51795bd5058fadfc474fdd30f4e6501c77130d50502b95de51a3c086349fe3a7
|
||||
initial_ast: 62cede6946880abfcd6c2e7585290a3de515cb2d17e5b402ea9b5a3ac401a426
|
||||
unrolled_ast: cdb61db7b43abbe21076bf0a1e6327dd011ef5aac6572d851f6f15a679ecd78e
|
||||
ssa_ast: aa3353e76e682d68d3ef00b6c8a606d93915dad00157a5341223b23f357ceb2a
|
||||
flattened_ast: aca685ca655b57a7ed19c00d37c177aebcd48dfa1bcaf66949abc9e55de81466
|
||||
destructured_ast: 844f630d94b95016f415e0eb640c7d4d537c2dae2df17a4eddc2962102778cba
|
||||
inlined_ast: 90d301b0cd79bea7506f940a39418b9803811b10d68d48fa8b308c48a6fda333
|
||||
dce_ast: 6e8fe026727e10fce4722c8ec2c38894046890c269e23e739aeb2a669f9497a6
|
||||
- initial_symbol_table: 04f7d3a44d791763aec79b596224c653e682ab928bc0cba71a1cd6282198e885
|
||||
type_checked_symbol_table: d9d3363d1049a924bbae356d0f90ac3c9bfca7f6ae5ba51ad915d66e9d0b9a1e
|
||||
unrolled_symbol_table: d9d3363d1049a924bbae356d0f90ac3c9bfca7f6ae5ba51ad915d66e9d0b9a1e
|
||||
initial_ast: 856e56d95eaf14f6e9241001763546b7d982402ac87521e2ec3b7ea476764692
|
||||
unrolled_ast: 75b69748ca1e534c95cf084164773d471f51537b50b2d517dc4be26dddb06e1b
|
||||
ssa_ast: 6d38bf225e9cf5af37b9d6c595c2973ec31a32d227ca65cb590d27400d442780
|
||||
flattened_ast: 65fb4138701cad86a5fcd7e024645e833aeb6e88b3ea2a3a6b69269fd1d77620
|
||||
destructured_ast: 85a81c23da7e97b057ddf4ef71f375781e1dfcb90d656d694a5aa0f0c176b497
|
||||
inlined_ast: a1b2367575e170a79ace2ac7ff071bc3c770476b37ee149310c3b2cfe67b1c7f
|
||||
dce_ast: f46fa7963b327b9c75c9f7a7569e350d7f62c21964cb5df140cd2186c2043697
|
||||
bytecode: 7a2fd5581e13d3b66f1fad269ba868cf6d272929b84cea2dc1cb6a0af22867c2
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- initial_symbol_table: be4de29f78cffd9e751f5bb39cb55434328ba6faa15106ffc188edf8fe3bfae4
|
||||
type_checked_symbol_table: 75922990c1f38bdc18cf19f11c2b0dc9e10b5baa95eb24f5e222a4d5dec48cac
|
||||
unrolled_symbol_table: 75922990c1f38bdc18cf19f11c2b0dc9e10b5baa95eb24f5e222a4d5dec48cac
|
||||
initial_ast: 804425ef6a5f095f3d5b8b93ee9b6d9088cd733e9b6bb1113cb202f833a363d4
|
||||
unrolled_ast: ef84ec6892c11a2ac1a85ed3ea832c2b146b51bb4665da73f60bfca31e046ed0
|
||||
ssa_ast: 12f20f50c53ce58f88230714aa6da43f767da486624db64b94cb7ee06a2af95d
|
||||
flattened_ast: 49878f2432a40994576c36a9379d3e006abac4f698e5205a243bc54cee246a0e
|
||||
destructured_ast: 3500398adce5427394753e0786a2c95d185fe2da5d76c159fd71e7be9ccf7943
|
||||
inlined_ast: d0b404957c42e21126e78b962e17265548deeef6bcad4c25aed9fdd559b3c373
|
||||
dce_ast: aa386faa8cae04833ab56a0477ba5b80734c6a349486ca6e2a2677ddae2b7ac4
|
||||
- initial_symbol_table: 11c1000ce2f1774ad382af12ba51e8b55d5a98ee0da67cb8620e686c1fcaebb1
|
||||
type_checked_symbol_table: 9f27eb3f177ceb81d9b14cc85c07b7198eb67d0ee806c04cbbff1cfb18b997ab
|
||||
unrolled_symbol_table: 9f27eb3f177ceb81d9b14cc85c07b7198eb67d0ee806c04cbbff1cfb18b997ab
|
||||
initial_ast: 575e251f07e552c917ab36bc9877b13dd1638651c4023ade20701dd2a5fe27ff
|
||||
unrolled_ast: 2a4969ad315e900b5a3f1eecd4e6508dc6946fb5f6c3861ee793961ce6bcc203
|
||||
ssa_ast: 4a00e3d36cdd4ff4be1fc6a389aaf17cfb02b6c54fa84276fb5be66b8a78b124
|
||||
flattened_ast: 885c5f8145aa1a82e5fe41abbabae12cbd15eb014b333b246c6c5401b5b6bfea
|
||||
destructured_ast: f3b5b961a498f9befec85b69b3012145a6e97774d37a8c8e354ec4e5eeb64f84
|
||||
inlined_ast: 2bf37fc499b3eca18c8227e61f69f730d36e755d7879dde13bb9161936bafbfc
|
||||
dce_ast: 390391c2098cf6a910eeec98fc92fdea31303a84a1d6fd6673c8dbd9d20180de
|
||||
bytecode: 388c60022d4ad4fac382a685cc997c84d142f4e1357eb7c00e3efb545f5f70e5
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -3,29 +3,29 @@ namespace: Compile
|
||||
expectation: Pass
|
||||
outputs:
|
||||
- - compile:
|
||||
- initial_symbol_table: f01c0be0af6f871d620e93062d274ad414d7971248abf57851171ee600afab28
|
||||
type_checked_symbol_table: b06a76af8ce077bec212aabaa48585e095aeae9921eaac4996c9248ad7d8025f
|
||||
unrolled_symbol_table: b06a76af8ce077bec212aabaa48585e095aeae9921eaac4996c9248ad7d8025f
|
||||
initial_ast: da1c344d97580fa733d2849bf0ddaf0e2e0fd714e1172bbd596efc35835415de
|
||||
unrolled_ast: da1c344d97580fa733d2849bf0ddaf0e2e0fd714e1172bbd596efc35835415de
|
||||
ssa_ast: 9c134e68b215ebe1d5435bd082e8e4d6ad0b909f73bd0e175b2d7e146b9fe9a9
|
||||
flattened_ast: 332902d523b19497dda94966a486e8c56fbf0fa29dfa5372e0a0216b2a818a21
|
||||
destructured_ast: 72e3b5ccac60949dd44e037ab2f2c69cf86513d83008d730f60a9ff6bf59fdf2
|
||||
inlined_ast: 29439e16614c5e0303d2d23b1742b749993bdbd1fa2ad72daf2f44922f8056ab
|
||||
dce_ast: 29439e16614c5e0303d2d23b1742b749993bdbd1fa2ad72daf2f44922f8056ab
|
||||
- initial_symbol_table: 116d58ba03f7a7d97eed6581380790a8f53f04bae1ba88b75602f860ec303795
|
||||
type_checked_symbol_table: 9569a2562f21f4b374ec99175f9be361e146ba2e7c552fd5389c945c4c764b4b
|
||||
unrolled_symbol_table: 9569a2562f21f4b374ec99175f9be361e146ba2e7c552fd5389c945c4c764b4b
|
||||
initial_ast: 0a137d4df2ce8a6bb3c9b82e12856ba4769f6a0ee60b9d44fe4e5b112383accc
|
||||
unrolled_ast: 0a137d4df2ce8a6bb3c9b82e12856ba4769f6a0ee60b9d44fe4e5b112383accc
|
||||
ssa_ast: 2a1a92101ca526d604626f5ba6c0e4d032877119538e3f1f11a184d7e1c9820e
|
||||
flattened_ast: 16987d115d2346155c394f964ddc7ad81d13c9f825a0e4e206c46bb7b3c3250f
|
||||
destructured_ast: e237c687b23978180a04086c93fd6e894743e0bf2a95d4de408b0e4d2ecfc636
|
||||
inlined_ast: 479ac6fdc020109c406fa654f6e8bcbec37069b9b68ff63e39dbfa09c5a40f04
|
||||
dce_ast: 479ac6fdc020109c406fa654f6e8bcbec37069b9b68ff63e39dbfa09c5a40f04
|
||||
bytecode: 7e95d1c0ff9c0edfb2081fe98cc11fb567b41a1c5c586688a2586aed8629b3be
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- initial_symbol_table: a18204fa4dc8f8246d86d8b0b3f736296657b941f0795029067db948622877fc
|
||||
type_checked_symbol_table: 64d46bfead8c89a63153788829bf7c8fd473a7fc9c3b780949c4e05b5a44511e
|
||||
unrolled_symbol_table: 64d46bfead8c89a63153788829bf7c8fd473a7fc9c3b780949c4e05b5a44511e
|
||||
initial_ast: 8ed8dc93ec31e03c38d9159c4d9050da391afb31bfcd7aff260ef9fbda0b532a
|
||||
unrolled_ast: 40b40ce671aadd1b817fe547e1b2fb2cf380e427f8b85a5de83dade6a2ec5a6f
|
||||
ssa_ast: 6a5446dce369ef8bba97e48b0346ad67def68a0922b8fe8bc9bcd1b4e3919971
|
||||
flattened_ast: d2bcd3b69e042a959854843f26a8b5bc3c4122b6928665d0b5bba8a3ea8f61bc
|
||||
destructured_ast: 3ff173b557d2bde939a70a34fd8bd687527789b264ee4560f177913b24bca40d
|
||||
inlined_ast: a9d0181755638673cd508810a6aba626e8a484f7bc852ba671dcf92a894c6173
|
||||
dce_ast: 4a29d2115a5cfdae3627d832512998920d9035eb50a8087f8438842e5fa87b39
|
||||
- initial_symbol_table: e68fd2fbfc3ff3832375c1c2df1e6a67787480498938fc77e766ca07ae751992
|
||||
type_checked_symbol_table: a3dbe89fee3c01d1a1798775bd34ee5e9a160d9a31bc223cf8d949ad08310b43
|
||||
unrolled_symbol_table: a3dbe89fee3c01d1a1798775bd34ee5e9a160d9a31bc223cf8d949ad08310b43
|
||||
initial_ast: 90315edede362afca47bb3f8c861ab8bbbdb049ea56db7ebbbf8f20ce60aeb4a
|
||||
unrolled_ast: 6541d8c338b4eeb027aedd7c9151f3eac30d61ab2986d22a008ef5bd4a67ffc7
|
||||
ssa_ast: 80086e21c3779f9da4b57c755eedf9132709a1edc63644ef4ec574ce047b076f
|
||||
flattened_ast: a9988b6cbd9cb03bc49e6850084531888e0cc04e456496fe7eff390812d39611
|
||||
destructured_ast: a94ba575cc25982052a729a8a1b8fa3560a0043b305cf4dede91d17a71202fcb
|
||||
inlined_ast: 7a6d98c84ce9a50bd944f11bca3d98f8262ab57b55fcc7f15537650b3d4bc6ef
|
||||
dce_ast: ef3d06f7a3ed3bba09c3fda4378aaa2f700384fc28e5d8c3751633bbc03f9f4e
|
||||
bytecode: 7a91652b8a95d6a25f0ad68011d37481570f9c7b5e79d05c0ae8476c6754f7a8
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -2,4 +2,4 @@
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
outputs:
|
||||
- "Error [ETYC0372093]: A program must have at least one transition function.\n --> compiler-test:1:1\n |\n 1 | \n 2 | \n 3 | program test.aleo { \n | ^^^^^^^^^^^^\n"
|
||||
- "Error [ETYC0372083]: A program must have at least one transition function.\n --> compiler-test:1:1\n |\n 1 | \n 2 | \n 3 | program test.aleo { \n | ^^^^^^^^^^^^\n"
|
||||
|
@ -2,4 +2,4 @@
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
outputs:
|
||||
- "Error [ETYC0372007]: Expected one type from `test_credits`, but got `()`\n --> compiler-test:10:16\n |\n 10 | return test_credits {\n | ^^^^^^^^^^^^\n"
|
||||
- "Error [ETYC0372003]: Expected type `()` but type `test_credits` was found\n --> compiler-test:10:16\n |\n 10 | return test_credits {\n | ^^^^^^^^^^^^\n"
|
||||
|
@ -2,4 +2,4 @@
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
outputs:
|
||||
- "Error [ETYC0372007]: Expected one type from `u32`, but got `boolean`\n --> compiler-test:5:30\n |\n 5 | let x: bool = true ? x: true;\n | ^\nError [EAST0372009]: variable `x` shadowed by\n --> compiler-test:5:13\n |\n 5 | let x: bool = true ? x: true;\n | ^\nError [ETYC0372083]: A program must have at least one transition function.\n --> compiler-test:1:1\n |\n 1 | \n 2 | \n 3 | program test.aleo { \n | ^^^^^^^^^^^^\n"
|
||||
- "Error [ETYC0372003]: Expected type `boolean` but type `u32` was found\n --> compiler-test:5:30\n |\n 5 | let x: bool = true ? x: true;\n | ^\nError [EAST0372009]: variable `x` shadowed by\n --> compiler-test:5:13\n |\n 5 | let x: bool = true ? x: true;\n | ^\nError [ETYC0372083]: A program must have at least one transition function.\n --> compiler-test:1:1\n |\n 1 | \n 2 | \n 3 | program test.aleo { \n | ^^^^^^^^^^^^\n"
|
||||
|
@ -3,42 +3,42 @@ namespace: Compile
|
||||
expectation: Pass
|
||||
outputs:
|
||||
- - compile:
|
||||
- initial_symbol_table: d10855153b18c105a8e5d4141289c234ca5401be695fadedbe5a9aa1feed0d99
|
||||
type_checked_symbol_table: f110ac31e00452e37a27a7a39877eb7324481bf3553a0950abedafe59af6f8cf
|
||||
unrolled_symbol_table: f110ac31e00452e37a27a7a39877eb7324481bf3553a0950abedafe59af6f8cf
|
||||
initial_ast: e2238909b4c7ea4d4a5f154b0a277da0a29b5d091487fa5bd2bf188eeb1d0e1c
|
||||
unrolled_ast: e2238909b4c7ea4d4a5f154b0a277da0a29b5d091487fa5bd2bf188eeb1d0e1c
|
||||
ssa_ast: 2ff3f0ee1fd181cfdf5d8b01b6a8e9db7c4ee197eaa427ac8ffbfbe1edc35752
|
||||
flattened_ast: 2f353ab25caa77f6f9ac8036035a8f38090e2dad01d015278b9a44bd387b736c
|
||||
destructured_ast: 3d2ac1b2e9d71a1b0fce350e3bfca4acc1d51ce3dfcd3e7e8e0284c3b0da0645
|
||||
inlined_ast: 3d2ac1b2e9d71a1b0fce350e3bfca4acc1d51ce3dfcd3e7e8e0284c3b0da0645
|
||||
dce_ast: 3d2ac1b2e9d71a1b0fce350e3bfca4acc1d51ce3dfcd3e7e8e0284c3b0da0645
|
||||
- initial_symbol_table: 340c54b67bf4ed5c52a8c178e9cd7f7f8aa1d733cc157327b14cd9658b386ae6
|
||||
type_checked_symbol_table: d972634f150980436170caf1f7ebaa08f35f59f0c68166ca2df8a9ebdf4c71e5
|
||||
unrolled_symbol_table: d972634f150980436170caf1f7ebaa08f35f59f0c68166ca2df8a9ebdf4c71e5
|
||||
initial_ast: d4a02a93f27d962ced13da70e6e78fb8b53c585fab7232c4afb6ebdb97751880
|
||||
unrolled_ast: d4a02a93f27d962ced13da70e6e78fb8b53c585fab7232c4afb6ebdb97751880
|
||||
ssa_ast: 196758b126b3b83c899c1d7bfccc7caf76b275f5ea5797da6d7b62f9d46d13cb
|
||||
flattened_ast: 51b1fc2019f67cf0624405a13151677297b6b87207d41bde6e45edd221163898
|
||||
destructured_ast: ea1edb23d0539d5c6af1d224d82f00494a4809b5a59a3fe6ef7d151639f590c8
|
||||
inlined_ast: ea1edb23d0539d5c6af1d224d82f00494a4809b5a59a3fe6ef7d151639f590c8
|
||||
dce_ast: ea1edb23d0539d5c6af1d224d82f00494a4809b5a59a3fe6ef7d151639f590c8
|
||||
bytecode: 6341f6fcccbfa86b71e0eac445b9d0ee558c74ef896183ee82b456b9e7fb2270
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- initial_symbol_table: 8d776af55222c1012f4a66823de540e46507a8bf4f035c3b98d5e0e8419fb11f
|
||||
type_checked_symbol_table: a530a2ed108764a8c9414a8dfbcb62e55a15fb8b927b7cd841525181e16bf1d1
|
||||
unrolled_symbol_table: a530a2ed108764a8c9414a8dfbcb62e55a15fb8b927b7cd841525181e16bf1d1
|
||||
initial_ast: d98b64e80f9cd090ab339b158742e28a5cebe95e92855b0cb0916055b6f94a10
|
||||
unrolled_ast: b55be301d013cc28832d56d0ed9415285ad53fdc5269b8249f2335e47ca02794
|
||||
ssa_ast: c03f293c04d8926711e04215a232f80f8eee8e9a28bc3f2997899a0be96e902b
|
||||
flattened_ast: 8a743d3e2e978c6e68e07555f5866e9e0ff2e69516391eaf98ad6e23b3783490
|
||||
destructured_ast: c6fbe4b0c4379b619d315e1fefdde388586553d3bd904fd0bb1d70342c9ce685
|
||||
inlined_ast: c6fbe4b0c4379b619d315e1fefdde388586553d3bd904fd0bb1d70342c9ce685
|
||||
dce_ast: c6fbe4b0c4379b619d315e1fefdde388586553d3bd904fd0bb1d70342c9ce685
|
||||
- initial_symbol_table: 3e72c903f6f9ab2438076da7c329b8cd369c9c3307d14bff4963e8a8f6bb18e0
|
||||
type_checked_symbol_table: 27f40a9e28a4b7d03d5c91be8a1893b766ac0e9be2d8a7c5ababe68b45ee01c7
|
||||
unrolled_symbol_table: 27f40a9e28a4b7d03d5c91be8a1893b766ac0e9be2d8a7c5ababe68b45ee01c7
|
||||
initial_ast: bf17af18b2264841e5933766b4bd190c7139d59d121e1c2a1b7a0c37715f90b2
|
||||
unrolled_ast: c82dddfcac1fec8f63b8dfce008fd6cb000b7f603fd22611ae000adefcb4246c
|
||||
ssa_ast: 97069a75c94ed52904c922470f78a75abcab70ec1a7f5966febe8cae605efb8e
|
||||
flattened_ast: be815a3a27a747ffd6f1c6d87dccba6f90c6d90e3b78fd50112f77f5289fb5eb
|
||||
destructured_ast: b29a50cae659e63902e0137059becdf6f15d00c7aeded8f68ef97a95e9de2fbc
|
||||
inlined_ast: b29a50cae659e63902e0137059becdf6f15d00c7aeded8f68ef97a95e9de2fbc
|
||||
dce_ast: b29a50cae659e63902e0137059becdf6f15d00c7aeded8f68ef97a95e9de2fbc
|
||||
bytecode: e902cc1e73a94c6024944460951f6207587ed939584c016908554b23280b94ec
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- initial_symbol_table: 03b418d6693ca962167a299441ed71a01f3c76c72ee6529c16cf407d8ff13be9
|
||||
type_checked_symbol_table: b60369fb896fe9fbc00fd88f6a84a35bce5c10b1d2589ad2b076802582fbd4e5
|
||||
unrolled_symbol_table: b60369fb896fe9fbc00fd88f6a84a35bce5c10b1d2589ad2b076802582fbd4e5
|
||||
initial_ast: 4ef079f2728830f124f039ea50a27e7a745c5b36acbe55cd9b2b68d680b43da7
|
||||
unrolled_ast: 13790c19e56821820e6c5ce5602ad823c10d3cb29f1fc87977975ff3362d255b
|
||||
ssa_ast: 189b5ef4384180df8d2e1a2d8b43e3b66b6653810434b50625525c98224acdcc
|
||||
flattened_ast: 2f05988b3eaa4a4e5341aa1604cfce67db101df9927b1ebf32acd94841486281
|
||||
destructured_ast: 838c48d0682fb6422e48c9f510bbc69401b624b181d901a22f7cd3f6f7b3be5d
|
||||
inlined_ast: 838c48d0682fb6422e48c9f510bbc69401b624b181d901a22f7cd3f6f7b3be5d
|
||||
dce_ast: 838c48d0682fb6422e48c9f510bbc69401b624b181d901a22f7cd3f6f7b3be5d
|
||||
- initial_symbol_table: 78c72f7c5e19d1f0fbd6073ed85b5f7977f912d671e4c522bd27652647b19733
|
||||
type_checked_symbol_table: 6c8f504dd11151208a41f10109046e49a18fb4609706a71c01a11eb5d16128bb
|
||||
unrolled_symbol_table: 6c8f504dd11151208a41f10109046e49a18fb4609706a71c01a11eb5d16128bb
|
||||
initial_ast: 65349655f9b288bcb18caaa1d1216e7678f0e3919b740719d1a9f9660124f7ec
|
||||
unrolled_ast: 6ad3178891c74b6042bddee324c5dce52addcf62565d3457154b907863926f9a
|
||||
ssa_ast: 6af16bac66f4da284d7bb27542f90f77a4eb6ffcc7915aa1ea64953a899437e9
|
||||
flattened_ast: afb3257ab605fb3ba64f07f5400edce3206ea852d567f5e16962c9e6b0b3c47b
|
||||
destructured_ast: 819770e49c3158317e2a112c99aed86f6cc14b4c61eda5acbf796973fcdeedc7
|
||||
inlined_ast: 819770e49c3158317e2a112c99aed86f6cc14b4c61eda5acbf796973fcdeedc7
|
||||
dce_ast: 819770e49c3158317e2a112c99aed86f6cc14b4c61eda5acbf796973fcdeedc7
|
||||
bytecode: b92b0c5017841d1c4ace13f7b040b9b7f84174bf74d49b8472f5f101f0d6caf8
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -3,42 +3,42 @@ namespace: Compile
|
||||
expectation: Pass
|
||||
outputs:
|
||||
- - compile:
|
||||
- initial_symbol_table: 5d846826e43522da36251bd23c556281a420beb0d463a37678ad6260e0da3104
|
||||
type_checked_symbol_table: 6706c6596e34356b82aeb6b673892f5db90b68e9d006a9279277dfc34ec3a694
|
||||
unrolled_symbol_table: 6706c6596e34356b82aeb6b673892f5db90b68e9d006a9279277dfc34ec3a694
|
||||
initial_ast: 02ec3677650180d8d2f3902cf4b6417ecb91c3b711910f46f5f9f33de51f5a01
|
||||
unrolled_ast: 02ec3677650180d8d2f3902cf4b6417ecb91c3b711910f46f5f9f33de51f5a01
|
||||
ssa_ast: b9bf4b0c163c09f8ab1017dcb1d400a5bb822d62921a43df272cd1c358c9cc29
|
||||
flattened_ast: bdc674a1eda09bceae5bac7c27d79e3bf30d38755b714dd3592dd3323bf30f89
|
||||
destructured_ast: 232a24bd7e247ad558feddc636a12c8c203310a715f5dcadcbed23c83deb11b2
|
||||
inlined_ast: 232a24bd7e247ad558feddc636a12c8c203310a715f5dcadcbed23c83deb11b2
|
||||
dce_ast: 232a24bd7e247ad558feddc636a12c8c203310a715f5dcadcbed23c83deb11b2
|
||||
- initial_symbol_table: b9d02d1b85ab19ec91480212bbfe3b765bc663861026aa9dbb97b31ec1e4996b
|
||||
type_checked_symbol_table: 135897b1dbcb1676d36ac8d1aa865381e9530287bb7449442ea446c29bb6449c
|
||||
unrolled_symbol_table: 135897b1dbcb1676d36ac8d1aa865381e9530287bb7449442ea446c29bb6449c
|
||||
initial_ast: 067591039f4d58fae5acf7c987d08fead46a25d06278ec74b3d0e41851a1f2e3
|
||||
unrolled_ast: 067591039f4d58fae5acf7c987d08fead46a25d06278ec74b3d0e41851a1f2e3
|
||||
ssa_ast: af24b1aeb7c1a05116ed5c1a718067de95c2365a0532e9d97bd1cf69912a70fa
|
||||
flattened_ast: c3d8cff7286b7d1187046982da77a9527f2753d62e914407cb5d42b4242636fd
|
||||
destructured_ast: 3d04c9faddeaf8bc7839934ecc75b0dfe973c198e0c19bf0683a16ba3f13cdef
|
||||
inlined_ast: 3d04c9faddeaf8bc7839934ecc75b0dfe973c198e0c19bf0683a16ba3f13cdef
|
||||
dce_ast: 3d04c9faddeaf8bc7839934ecc75b0dfe973c198e0c19bf0683a16ba3f13cdef
|
||||
bytecode: c562a0b23873460644ce0af83bd46d2a4010f5d667aafd72940cfa0dd3a1c893
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- initial_symbol_table: c2f264e69e0b7173138b37dd1f9663a082e2ac90ce0d00789960268db6e756b2
|
||||
type_checked_symbol_table: 934bc5bec6c6847a9e3eabdc0d5eb10f072aace53f314fc97ab12474adec6464
|
||||
unrolled_symbol_table: 934bc5bec6c6847a9e3eabdc0d5eb10f072aace53f314fc97ab12474adec6464
|
||||
initial_ast: 6f4a2a747de9222cd08c725815e813a5d4c578f2eb917ead8a99ca3543194ea4
|
||||
unrolled_ast: 1fc7d2a17799e9575e322ab3561b7b47b9cb28065298da6b042d76c5d529d081
|
||||
ssa_ast: 16319d7cadeb9ff2592ebf84649e68783c89c8dd880fafaf82c2b3b7b51b3aac
|
||||
flattened_ast: 2d756f2dd9f3fa7c6b4ff0fa2460adcabde372fa3547eb865300e3577107ce25
|
||||
destructured_ast: be41c21f030b41e6ae83fb9993db9d40ced4cc32f338099aa3c15e02337b12bd
|
||||
inlined_ast: be41c21f030b41e6ae83fb9993db9d40ced4cc32f338099aa3c15e02337b12bd
|
||||
dce_ast: 698d6b6f58fe15cf03cab30a9a9aa9bb508dcbe2f1c0200e1a143df9eea9f3a9
|
||||
- initial_symbol_table: f2ae8eee41238514bb792b1b782feab70aa865807bb489187726796a3d5198b7
|
||||
type_checked_symbol_table: f7765fa8c7a391f3250f9c2ff124729fe8592f32dbc82d7e9428682df49ea351
|
||||
unrolled_symbol_table: f7765fa8c7a391f3250f9c2ff124729fe8592f32dbc82d7e9428682df49ea351
|
||||
initial_ast: 90f2be69e327a67e772bab6e517a1efe90d6fbbdcda2ab69e73c48dd5ea413cd
|
||||
unrolled_ast: 163290d0f28722f746b4d4541abe84c17a91c65a8c7d690b98b7f0af19994ad5
|
||||
ssa_ast: a112118a15f292e6c7f1c19cea3d817142e53f4eeb9519991d451d2544473fd7
|
||||
flattened_ast: 42734a56fa5e1bcd21832d5c83e314cbc249b5d8437ebbc072052a07fbb22070
|
||||
destructured_ast: 56c2bd2789e46f95b9e93b225777b4a6178cbedd75256c4adf21df9f65485ea5
|
||||
inlined_ast: 56c2bd2789e46f95b9e93b225777b4a6178cbedd75256c4adf21df9f65485ea5
|
||||
dce_ast: 26bd4e6f56705dd313f4fa58b964be29576620e0b6a2fc25d9ad55bd89a88413
|
||||
bytecode: 5a1ca0038e83880d6d2cd5413ca4e8ec01e2622d635d6d8b2cb64463cd5c4817
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- initial_symbol_table: a5845512a20caed62a1003ecd4c7a5841791c214e22d49059207c84ad3b77978
|
||||
type_checked_symbol_table: ac4184be5e0b157e9933b4fcfbbd4e25535fabee0b4a2b6601698499a1ffff98
|
||||
unrolled_symbol_table: ac4184be5e0b157e9933b4fcfbbd4e25535fabee0b4a2b6601698499a1ffff98
|
||||
initial_ast: 6d6e05fc0c1e6feda3ca6ccdc65a1c006dc91b34b8220df6c8bea9c90bdb3d2a
|
||||
unrolled_ast: c0742e53dab2efa2ea86aa15e3b595604a922365a6ce0d9de1eebe470d0ff6a2
|
||||
ssa_ast: 221b82dfb6404b11ceff146ff0d2574504cec0f5d99405bbfd59ee38b80b053b
|
||||
flattened_ast: 21aa2231da2e31a51bf6c3323391fcf653081a548e6372e3d595e2fcb8f510ea
|
||||
destructured_ast: e88a63f1da0afb324feca3720a8eb6fcdf9c2a2138deb166791efe069746e048
|
||||
inlined_ast: e88a63f1da0afb324feca3720a8eb6fcdf9c2a2138deb166791efe069746e048
|
||||
dce_ast: 91891543cdb698e9022dcc75f65d71d2422ff229ab56d27c70d155b74dd1700d
|
||||
- initial_symbol_table: de21200cc8a95064b4a4b2d7a1f194d3b54595212e607ee49edd716cbf6dd17e
|
||||
type_checked_symbol_table: 4e42579ae5f24adba68080229fc51fd767334ad987d82c6f755fe90d20b4cd29
|
||||
unrolled_symbol_table: 4e42579ae5f24adba68080229fc51fd767334ad987d82c6f755fe90d20b4cd29
|
||||
initial_ast: 0cc09a6fcaafb39da24c46d650f915c6352b593958d991f45b0ec61ef3bf01bb
|
||||
unrolled_ast: 3f95452c2a8d57484c7814740d596de17d20bf04d812e7b106ca1eb1273be3cd
|
||||
ssa_ast: 1b9583fe511e9f5705f2cd4d0566d697929b8c2480709f9c14378658e64a67f5
|
||||
flattened_ast: c4c6d893a4252bdd83ff40b1109057545c57474e4636188b22dd7f936a14e42c
|
||||
destructured_ast: b4c4946001c3c5eeb47744a365a7908728a8de9b8d8a8cf0fe3d4072870168e3
|
||||
inlined_ast: b4c4946001c3c5eeb47744a365a7908728a8de9b8d8a8cf0fe3d4072870168e3
|
||||
dce_ast: b3ae1144d78b74320dde8741d8b779408a633b5a152efce15f6c9f38abe957ad
|
||||
bytecode: 81e7b663dbb9d60c89b80b448c71ada9bdc7a93fac808bd8d1b6ca3ab053f914
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -3,29 +3,29 @@ namespace: Compile
|
||||
expectation: Pass
|
||||
outputs:
|
||||
- - compile:
|
||||
- initial_symbol_table: 549f722b29333d1ccaab49bb199c09ae4dce17ca36d5f815969ce8c810edf30b
|
||||
type_checked_symbol_table: d944645217b8c52116eafa5880eab303a2bd4e1934b393ff1d5e02e62cb7fb3a
|
||||
unrolled_symbol_table: d944645217b8c52116eafa5880eab303a2bd4e1934b393ff1d5e02e62cb7fb3a
|
||||
initial_ast: 04a51a69032863e43113a3b78908516d7f4b002de1a75858cf53b88e8222c617
|
||||
unrolled_ast: 04a51a69032863e43113a3b78908516d7f4b002de1a75858cf53b88e8222c617
|
||||
ssa_ast: 6599fd409ecb9473da96cd3d9c389acf667cb9b10439c34d79ee0b7ffd6bf882
|
||||
flattened_ast: 6b5f593d5e23586a5ac05d023a2ac7ca3cbe93a44221deeba06a73ef97001369
|
||||
destructured_ast: 9f23364c95bb538fc8e1f2a3220ea8d8ad13458e204a32bf39ed0e1f27569068
|
||||
inlined_ast: 9f23364c95bb538fc8e1f2a3220ea8d8ad13458e204a32bf39ed0e1f27569068
|
||||
dce_ast: 9f23364c95bb538fc8e1f2a3220ea8d8ad13458e204a32bf39ed0e1f27569068
|
||||
- initial_symbol_table: 74e53781a60f54132c609b3b03492c4250036c379e5204b93329a9f57d49fe91
|
||||
type_checked_symbol_table: 8851bc9f35e154359b0cbcc34f19cd64e3ebfcbacd301e070ad4b44e399d897c
|
||||
unrolled_symbol_table: 8851bc9f35e154359b0cbcc34f19cd64e3ebfcbacd301e070ad4b44e399d897c
|
||||
initial_ast: 74b39a65214c6dd05311092d4e59bd51eae97ebd18d1d680b1db55cfb54beddf
|
||||
unrolled_ast: 74b39a65214c6dd05311092d4e59bd51eae97ebd18d1d680b1db55cfb54beddf
|
||||
ssa_ast: 9d457405594c43b13f129dcd8b95302086654fa55355b387c83aabaaee1f2d6d
|
||||
flattened_ast: 03e9facafccbbc398b682d08a79df26fdd778b91f2f4bed225ce5a5323e2171b
|
||||
destructured_ast: 1970939a0425fa00978dc2822b28f011d3c27a16aa6d9e4bad7ff681a0a7411f
|
||||
inlined_ast: 1970939a0425fa00978dc2822b28f011d3c27a16aa6d9e4bad7ff681a0a7411f
|
||||
dce_ast: 1970939a0425fa00978dc2822b28f011d3c27a16aa6d9e4bad7ff681a0a7411f
|
||||
bytecode: 313d955a664b50823386dc1f0d7141f5fc80174c965209376991ff0a5d0012f9
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- initial_symbol_table: 873baecde90e247a405dae145acbbfe9fde5acb61abbbb920a15d834a3edcadc
|
||||
type_checked_symbol_table: 34fecf3a5ef14c6a8ae780c5e0ad363f28d7ef7720d3553227a4fb1f84360db0
|
||||
unrolled_symbol_table: 34fecf3a5ef14c6a8ae780c5e0ad363f28d7ef7720d3553227a4fb1f84360db0
|
||||
initial_ast: 5e9eecb9c182f167b612a77b7c55fa8ae344b01646cb0786e53a89af21c67493
|
||||
unrolled_ast: 10ae0635a3ae79e7fc5de4b2e384d6c555cb1717774ad1636dc6471feaa12b13
|
||||
ssa_ast: 62a24b8ccef4e8cd368f200d66b3db0d70c6eefe33426489f3b127cbfced19f9
|
||||
flattened_ast: 2945b3bde2d6203ea5eca681fd1e835bceeb3f2cee3c97068faf41b25dc0b962
|
||||
destructured_ast: e1d011f5adce0256864c11596e0466219f73fa34bfb08220d7adfbce15689c96
|
||||
inlined_ast: e1d011f5adce0256864c11596e0466219f73fa34bfb08220d7adfbce15689c96
|
||||
dce_ast: 9e5648d4e29eb53d9529417a248d42e49fe4a4ea4028fda7935aef714ccfad6b
|
||||
- initial_symbol_table: bb3a69180106d91616ac9d6778fe8aee0fbdaab72b1b079183ebd0fcf772e359
|
||||
type_checked_symbol_table: 92c4575a892476360e9efc1a118f534c1901622faca71626bb5778f76332e5cb
|
||||
unrolled_symbol_table: 92c4575a892476360e9efc1a118f534c1901622faca71626bb5778f76332e5cb
|
||||
initial_ast: 4406bc30d232c90c5069c388652b051dbb9e5378a20f38e69cf9f847ae83aee0
|
||||
unrolled_ast: 2f3e72af631b9e4cdd067c40959e112bb0a7d1a5076a6c44b818c322ab4229f7
|
||||
ssa_ast: fcc3c8e717138f0c75a3c7765b26af7e5d009d1d7afd239b782ef56f0b0f3763
|
||||
flattened_ast: 435f235eed4f63f31e391e6455014bd64de1320f147d156e4453414dca21752f
|
||||
destructured_ast: cdce20251477a5fa781fb90ae69dd08e12710b9d39363d4eecbfb81ac05e7481
|
||||
inlined_ast: cdce20251477a5fa781fb90ae69dd08e12710b9d39363d4eecbfb81ac05e7481
|
||||
dce_ast: a40a9b93296c22a41a527727f8cf61dc11dbed23ac00c3577333a63d6d1393f8
|
||||
bytecode: 391aaceb8bee155d767833247676b44806a300637213cd0d4c2dcc23f93396c1
|
||||
errors: ""
|
||||
warnings: ""
|
||||
|
@ -2,4 +2,4 @@
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
outputs:
|
||||
- "Error [ETYC0372007]: Expected one type from `u32`, but got `i8`\n --> compiler-test:11:21\n |\n 11 | let x: i8 = s.f1;\n | ^^^^\n"
|
||||
- "Error [ETYC0372003]: Expected type `i8` but type `u32` was found\n --> compiler-test:11:21\n |\n 11 | let x: i8 = s.f1;\n | ^^^^\n"
|
||||
|
@ -2,4 +2,4 @@
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
outputs:
|
||||
- "Error [ETYC0372007]: Expected one type from `u64`, but got `boolean`\n --> compiler-test:5:35\n |\n 5 | let t: (bool, bool) = (a, 1u64); // We should be declaring to a boolean, not a u64.\n | ^^^^\n"
|
||||
- "Error [ETYC0372003]: Expected type `boolean` but type `u64` was found\n --> compiler-test:5:35\n |\n 5 | let t: (bool, bool) = (a, 1u64); // We should be declaring to a boolean, not a u64.\n | ^^^^\n"
|
||||
|
@ -2,4 +2,4 @@
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
outputs:
|
||||
- "Error [ETYC0372050]: A struct cannot contain a tuple.\n --> compiler-test:22:9\n |\n 22 | mem: (u8, u16)\n | ^^^\nError [ETYC0372051]: A function cannot take in a tuple as input.\n --> compiler-test:8:18\n |\n 8 | function foo(a: (u8, u16)) -> (u8, u16) {\n | ^\nError [ETYC0372049]: A tuple type cannot contain a tuple.\n --> compiler-test:12:28\n |\n 12 | function bar() -> (u8, (u16, u32)) {\n | ^^^^^^^^^^\nError [ETYC0372052]: A tuple expression cannot contain another tuple expression.\n --> compiler-test:13:22\n |\n 13 | return (1u8, (2u16, 3u32));\n | ^^^^^^^^^^^^\nError [ETYC0372052]: A tuple expression cannot contain another tuple expression.\n --> compiler-test:13:22\n |\n 13 | return (1u8, (2u16, 3u32));\n | ^^^^^^^^^^^^\nError [ETYC0372007]: Expected one type from `i8, i16, i32, i64, i128, u8, u16, u32, u64, u128`, but got `(u8,u16)`\n --> compiler-test:17:13\n |\n 17 | for i: (u8, u16) in 0u8..2u8 {}\n | ^\nError [ETYC0372007]: Expected one type from `u8`, but got `(u8,u16)`\n --> compiler-test:17:29\n |\n 17 | for i: (u8, u16) in 0u8..2u8 {}\n | ^^^\nError [ETYC0372007]: Expected one type from `u8`, but got `(u8,u16)`\n --> compiler-test:17:34\n |\n 17 | for i: (u8, u16) in 0u8..2u8 {}\n | ^^^\nError [ETYC0372083]: A program must have at least one transition function.\n --> compiler-test:1:1\n |\n 1 | \n 2 | \n 3 | program test.aleo { \n | ^^^^^^^^^^^^\n"
|
||||
- "Error [ETYC0372050]: A struct cannot contain a tuple.\n --> compiler-test:22:9\n |\n 22 | mem: (u8, u16)\n | ^^^\nError [ETYC0372051]: A function cannot take in a tuple as input.\n --> compiler-test:8:18\n |\n 8 | function foo(a: (u8, u16)) -> (u8, u16) {\n | ^\nError [ETYC0372049]: A tuple type cannot contain a tuple.\n --> compiler-test:12:28\n |\n 12 | function bar() -> (u8, (u16, u32)) {\n | ^^^^^^^^^^\nError [ETYC0372052]: A tuple expression cannot contain another tuple expression.\n --> compiler-test:13:22\n |\n 13 | return (1u8, (2u16, 3u32));\n | ^^^^^^^^^^^^\nError [ETYC0372052]: A tuple expression cannot contain another tuple expression.\n --> compiler-test:13:22\n |\n 13 | return (1u8, (2u16, 3u32));\n | ^^^^^^^^^^^^\nError [ETYC0372007]: Expected one type from `i8, i16, i32, i64, i128, u8, u16, u32, u64, u128`, but got `(u8,u16)`\n --> compiler-test:17:13\n |\n 17 | for i: (u8, u16) in 0u8..2u8 {}\n | ^\nError [ETYC0372003]: Expected type `(u8,u16)` but type `u8` was found\n --> compiler-test:17:29\n |\n 17 | for i: (u8, u16) in 0u8..2u8 {}\n | ^^^\nError [ETYC0372003]: Expected type `(u8,u16)` but type `u8` was found\n --> compiler-test:17:34\n |\n 17 | for i: (u8, u16) in 0u8..2u8 {}\n | ^^^\nError [ETYC0372083]: A program must have at least one transition function.\n --> compiler-test:1:1\n |\n 1 | \n 2 | \n 3 | program test.aleo { \n | ^^^^^^^^^^^^\n"
|
||||
|
@ -2,4 +2,4 @@
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
outputs:
|
||||
- "Error [ETYC0372007]: Expected one type from `boolean`, but got `u64`\n --> compiler-test:5:34\n |\n 5 | let t: (bool, u64) = (a, b); // We should expect a boolean, not a u64.\n | ^\nError [ETYC0372003]: Expected type `boolean` but type `u64` was found\n --> compiler-test:7:24\n |\n 7 | return (t.0, t.1);\n | ^\n"
|
||||
- "Error [ETYC0372003]: Expected type `u64` but type `boolean` was found\n --> compiler-test:5:34\n |\n 5 | let t: (bool, u64) = (a, b); // We should expect a boolean, not a u64.\n | ^\nError [ETYC0372003]: Expected type `boolean` but type `u64` was found\n --> compiler-test:7:24\n |\n 7 | return (t.0, t.1);\n | ^\n"
|
||||
|
@ -3,88 +3,91 @@ namespace: Execute
|
||||
expectation: Pass
|
||||
outputs:
|
||||
- - compile:
|
||||
- initial_symbol_table: bf3ab2a7e202ca44d269abb9876817308ccc967dc19762ebfc45083d2d16a95c
|
||||
type_checked_symbol_table: 3951d3d66613f8203f23ff7216a38b7fa155922648dfbe1d9b1201f84b697315
|
||||
unrolled_symbol_table: 3951d3d66613f8203f23ff7216a38b7fa155922648dfbe1d9b1201f84b697315
|
||||
initial_ast: 21104527f729cd9523b74f7902131e756ac4615405c3ca225635573abcf92fb3
|
||||
unrolled_ast: 21104527f729cd9523b74f7902131e756ac4615405c3ca225635573abcf92fb3
|
||||
ssa_ast: f7b1644dfb4b99b5960906ee80bf88ca6b7d6a6dfeb0b50195a2cd94c0e788f5
|
||||
flattened_ast: ce2048db3cf0d124c10c6a418e38bed03c9b5ac251fe342b5f79e8b2d3c7a8cd
|
||||
destructured_ast: 17bb3b101a6fd5936f1eb879e3cbb2938f93f53ae3291ac02a1f5ce66f5532be
|
||||
inlined_ast: 17bb3b101a6fd5936f1eb879e3cbb2938f93f53ae3291ac02a1f5ce66f5532be
|
||||
dce_ast: 17bb3b101a6fd5936f1eb879e3cbb2938f93f53ae3291ac02a1f5ce66f5532be
|
||||
bytecode: 1714432c88873553dfc5e23b3097d205011de6a60cae026ff319b139e8b12d7b
|
||||
- initial_symbol_table: 17dc9f6dcb320c160ffe1d26761b75b37ee44fe25619f2013fc6bc58b6583db1
|
||||
type_checked_symbol_table: 1d48096d1a93db0bb2462a54823dfaaedbfec9797947ad5642e106a3e01579e3
|
||||
unrolled_symbol_table: 1d48096d1a93db0bb2462a54823dfaaedbfec9797947ad5642e106a3e01579e3
|
||||
initial_ast: 27c7103cf4aef0e2bb8a1abb044f3aa3a02b6d58c08a0f2cca78d13f7b061665
|
||||
unrolled_ast: 27c7103cf4aef0e2bb8a1abb044f3aa3a02b6d58c08a0f2cca78d13f7b061665
|
||||
ssa_ast: 5d2d844bb95e6a45dffd4786aa55c2483f7cda49617cb74671e9687c1cb75a74
|
||||
flattened_ast: df415243c990cb8a30c4e863f60fcfebbcbd3ddd8d698db902fe44c3726b9da5
|
||||
destructured_ast: 011a8cb6f4a57de5947f443b7e7641f1151fb80f0ec1e973795d06162a046283
|
||||
inlined_ast: 9a9ca324838b653871e9309e62cb3d0d3258479f732296d798d21017d4cb3391
|
||||
dce_ast: 9a9ca324838b653871e9309e62cb3d0d3258479f732296d798d21017d4cb3391
|
||||
bytecode: c874534d8f0d3fbd6314e9c33907a596cf23f1f6d070776423b0316f40251d44
|
||||
errors: ""
|
||||
warnings: ""
|
||||
execute:
|
||||
- execution:
|
||||
transitions:
|
||||
- id: au1hnth740vefp7jq5dcjnggq9hfmarpyscjysk0cvr0a3488mcg5rsamq48l
|
||||
- id: au1gssvavae6ac53rs8ksw8j9ga3hccp67z28xh36qf4062l8690spsyfy53e
|
||||
program: cond_exec_in_finalize.aleo
|
||||
function: a
|
||||
inputs:
|
||||
- type: private
|
||||
id: 8439431422115674265164472483490708670658760244412750772980523672963521358457field
|
||||
value: ciphertext1qyqwpjrpfzwspvw5j3vr5rnu05jk944a5xkaefh3uvy5gsawz6pvurgzs4570
|
||||
id: 7626202372721641535512265492191969309447186797313499247653268394332453807927field
|
||||
value: ciphertext1qyq85ue2r3j05nsht40nt5rxeewyzevhu40pl090yfrte5wvw0w3szqhtt7p9
|
||||
- type: private
|
||||
id: 582963545993539343219219179975209903939449980999695117631522815041705958243field
|
||||
value: ciphertext1qyq9vkjwgy2rug0u3rg4kqrty37lq7sezgugqxqs4k45qpgy8wn5vygf0mu7h
|
||||
id: 1443812050965843742096133489395435648284251851376088034812367117905213557076field
|
||||
value: ciphertext1qyqycthe92m9vq7n2jmqwq6yzrzdlvn3444uel0j6u7g74vyy4nggqc4kmcpq
|
||||
outputs:
|
||||
- type: future
|
||||
id: 8259485654359189397095752007942598763747436067076711852451648060024173375253field
|
||||
id: 8231166181376553910396126064535951686569110152218676702140502043511990822295field
|
||||
value: "{\n program_id: cond_exec_in_finalize.aleo,\n function_name: a,\n arguments: [\n 1u64,\n 0u64\n ]\n}"
|
||||
tpk: 4207409092521788773697665282957518117044749858057590104309967566781092115271group
|
||||
tcm: 5720809732376370870922323426771185853315798040351592412162356650894648757129field
|
||||
tpk: 769969058670211305403054972674090607838301017799111639698834153018520792433group
|
||||
tcm: 5925913616768344982910633865433077509444975263571425771517515198551312511915field
|
||||
scm: 1886094021537141979658158678736082193414687088300410876802743154665441796198field
|
||||
global_state_root: sr1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6gk0xu
|
||||
proof: proof1qyqsqqqqqqqqqqqpqqqqqqqqqqq27xafejh3rfy9r7flupzdenl0vglwcy7j3eax7l6c0692lqnp4v9z6758u8d74chd5nuv8vqnmyqpqy9n20azz298hyrlc9apsmacr80wx2x8vm3ku83gxlz9gz5cff57sjvhzfcjutvhk29k04f2jg0tkqphrmz5yuys26q0n5vx7vnmrsedusg0y74vlqn2nw55mwtm3s79mys3v3krszj2fd7lkmgud9jvuyqzx35d47g7zp26qd8pn0rxhxf4ftj2gyr2ldwwzn7z54zh42k30h96t4d9fp3qr84alxffg0kcz3qq0tqmnkxnea7eqlplev8m82a6f79386qy8aqquykfazfkru8jvukp56jdukgmuedhfgs4mnwvmgjcr9mfm0j4wmxpdsa9ce57due6rf0h57z4qtfjzyt4d5tnghesttldvhucwjzfey2m7x0chtg4tzv9q9rxp65ktmkt8jkfn3cm73kle7xd3j7x4myprf90ffnc5n7tapzxp7vd6h426e2hyrd6x29ftqp0gq9ptsspaytdzzh0tp5dx0ls9v8dgvsw6vzlqjh350q5pqdsrrgxp9h8p55mfpntcupg6wwehus09cq0vyqw290l93lzn0wgxpc35kjcx3hvlrnddzmnzdlwe70rnqfwg2rsg6np8px62np9uv6hnputy3uqnnw8p6rys8eee04cf9mwvexxecn4z7gxa6ylg4rf3avs465s2qy3ekff5y0sd60t5qk7rrdlyeeenwag3pxzdr3djxurff5cteydqp0wz6awgf892zhgjhujw28mqchvu6820h3sx3vue8vm30jpuazgpzxdalg5lv7nyrcegz7935qdrjq9xe3vup7z6gd0sgljdfm32efsg8tzneurlsxgjk82e095495s4lxc6mds9y26yf8n3ph0gnrt7ecy7u8ufv5g0jagj0huyaffrvqscndrfy69703kzm5h9xgq4zvm7s97c47zzwmh2kmp4h98f3yy0vtjxd8g85xxu7xlkkcu35qwwcx6kqyc6py6uzy7e0n8qgc052wpgw68u4vfnla7uh4z8c9ynskzsrrjpuny4edr24fw57y0y8a2le8d0z8pu988sghc25aeuh2aqcl25y0q6hhq78nggjjge5pv692samxxq3eytjt43kazls8qqy7l3qxq60q0qvqqqqqqqqqqpvxevrn6pj72s5amzvc70fhkynkqnwwjecv8r0wtmhl04x492axaytufuc8t6v2u7vcv8xu27d44sqq8jkgep7nrg9ks2gvdmv3qycvwwpvac3pgsqer4rzj6qnu9aztej3sv9zc9vv7slccja8fpwqufjuqq8m0yefdjp7x7fwfhezwkk83f0u8lg3sc3kltsf7r2m5fmxhrkuq7wqry7r697r8hfpdyr4cw25vj4zy5qaq6ay5wfvzmeek8vytr76fltrd6gdk4ujvctc80qfrag2uqyqqvstf5t
|
||||
verified: true
|
||||
status: accepted
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- execution:
|
||||
transitions:
|
||||
- id: au1y308ypfwfwhhm4jepwazp276t2fr2nqgaqppqx6z70w88aq2jv9syu6as4
|
||||
program: cond_exec_in_finalize.aleo
|
||||
function: a
|
||||
inputs:
|
||||
- type: private
|
||||
id: 1631318581148965008674844087839181853396169120474775467118751107469904730527field
|
||||
value: ciphertext1qyq05fhpftu7pg49cql4l8rmzpayfutsjyjq9yt0mdpdk7luhas4vrqz5yp3l
|
||||
- type: private
|
||||
id: 2730883656536056771736746580650804733132269756588008567659943372030531745988field
|
||||
value: ciphertext1qyqgem7prc6rmvufszxqgztjsq3c08me6txscjz3cl6yeus9qgg85rqrw35jq
|
||||
outputs:
|
||||
- type: future
|
||||
id: 7386294196767656539101367746470737224910311672267601420512890407269047059437field
|
||||
value: "{\n program_id: cond_exec_in_finalize.aleo,\n function_name: a,\n arguments: [\n 1u64,\n 1u64\n ]\n}"
|
||||
tpk: 539929479867149800733285453788663840307959183316106833158590803990176232963group
|
||||
tcm: 750293666249868558647437278234877709852569665340157728357983917884441329142field
|
||||
global_state_root: sr1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6gk0xu
|
||||
proof: proof1qyqsqqqqqqqqqqqpqqqqqqqqqqqvuqxzqplhy8tfkehsr66dwa6uxafp2frp7anzslxal0t8ryrsf6qw4kv3dw5nl06y3rstjqyzercqqy24v3px5rm3y2yuatleccqp762grxpnz5mzr2ducchjvpes6ds2xdk4kg0q8a2769jtdgve6sd5qqq4faa55rml8z8ep26sf27uyv6wrdcmcqxdq9zhysds6ch6344dxtm4877f3u2t4h7z3pg7wkezr7qch7mx588dxwkn60jc2k8efalwrkjqmhcck4kqmvfqmw0f7ek9lpkftx79rj4j8hwjcwcwp00lzm5pldufllzqg7lkrmwa4zpxflv4relr6nksp6qg2vlur3qm8rlkfyexdx93du2mk40957cq0y2kfyyqphyy7j8pcntnhvp8xaaazztd2jwuyaqqml2k0saclf4aur2448zh2lttz0n7xmc7l2a4tuqqn9yzsx7yfe33xpnnuy4e6xev8zhyc2ckxsl5wvpmnxwfqnu35v9x9us7sdfu0drtlz03ul9gk5g65dfs6q233jn3cx3rhnw59ncgfl27cfcfy3rmddal9rkacpgsph2vpurpvvvn8slu0pjk6uahp06pa6ul7xqqzmschhvy956jtpc0p6kxpllkw69wrnvdngyt2tc6z4ezwzhxkue99e324ugv34l2gnyj27h59g5pslgnefctav83fnp3gqmxl02qrwz73znmyk3hgv4la80jlc33ruy6vs8srntsxlj83d7ersc4chyv7t865qdea73hpzztgy7mtdu3wpt6jhl586x94du2x4e6sh3lwqs97j98j3yctfav9rxh6z8pxnkmqklp6mu77ln7lu3p5xzdfgj70dwanh7ha7g7vx855jy9ursu7knss9v0y5lw27keue04lgp420y40um6sjgx4af08gcp5lwnrhzdqwq3r0zkzjyhy09h8gjnyjz03p9h8edthh88rxewr3dlltkn207m5vxlhu66mklgfddudrqh37fs7gnhptzadyzexupnyvvzh2sfa5h76zzhgfg86kcnl7shthv2ef0pa845m9zwheyr4j67xs9q98rhypq6q3c65snrl5drg2cn94dyz4k5nhdyxc37qa6a8l7xmvwth6n6j4hqetrtmk8qj8cw6tx7kuzcnv2du80khwrsk8vz9pn8s53t7udwh0c2qvqqqqqqqqqqpx2j8rrhzjz2n7vc7mu7axz5w70pnplkn7th3e0n4np88fd9pn824e4tethgckudjkdw8nx4j5n9qqqrfy3u00l06ulcf5arm6s99kz32n2f4ceprkf8xtqp8mn9vvx5apemt63pryh7yxxtr8qzyf8nspspqy8mp0qql8llavuug9xc4hzhauaqxw7yka30cerjse8w8auqyxwsy960yr3fjemmr0f4dsj2vxgnust3tcletp5hsnyhgdgppy3wssju8n9dehaptwsm2399hgnltrdnqqqqw5x6kz
|
||||
verified: true
|
||||
status: accepted
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- execution:
|
||||
transitions:
|
||||
- id: au15x0h7t67dt4qtd8rw88n6p7z8qlrl87k73cs6ccp87qn6yrfnvqqh79dch
|
||||
program: cond_exec_in_finalize.aleo
|
||||
function: a
|
||||
inputs:
|
||||
- type: private
|
||||
id: 270031312842872099149153816168966123261059659148779587198535012228139245910field
|
||||
value: ciphertext1qyqwmtz9hdlr84wzls0c9r75x9nehdvj6q97djepe3uksazeqy2q6ysu60ag8
|
||||
- type: private
|
||||
id: 2324112544709230142835944577027874423920312613748094000298404077279994623487field
|
||||
value: ciphertext1qyqxxlgwh8nx6lg7kgxrvrl2rg40g9m0y4s9cjykdc4vsn3u7r5p2yqywpkty
|
||||
outputs:
|
||||
- type: future
|
||||
id: 2083750374367970367055399814294610712389072795928419568916374373502193990747field
|
||||
value: "{\n program_id: cond_exec_in_finalize.aleo,\n function_name: a,\n arguments: [\n 1u64,\n 2u64\n ]\n}"
|
||||
tpk: 7458390631358257933021695534982934099811217047220226771581295540904028489993group
|
||||
tcm: 6633056545390342742807118551129484810714402998268060346969235503471015910575field
|
||||
global_state_root: sr1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6gk0xu
|
||||
proof: proof1qyqsqqqqqqqqqqqpqqqqqqqqqqqzklf2q5p4v0hwx62rvkwjzlp23t8w5fysmmjr8yaa90flg5h5ff737ydef42s55v0c66quhzes55qqxh6da50s32ccfvl6t8tn4sv3w5epruyg8yzv2zmfqztz7f4rerksyewmjf0l6x4srenzcenmmk0lqr07rszm2hz28wdq8v6200thzku6pz0rs9uxel9tlpdkhaj6x2wx3nthjeysr23kkzqsxeykad7jqqley365zugtp8qdxkpgnj7r4cnlu5rt9xfexdt34fln5uhtjd8az3vrz2cr73p3dqzctz765e02suqw9ye6lyx0c83u8g3ewkch9208snmq8vds3g89x86h68wx793rqk8d8r977ljm5kwnes67h6flvtczse0lfgejzqn2te6yetnq0x4437c7auf2q9atlm4yy666jd5p9ya8ztwnkmqhenk6cyw4an9ceukqr6ml5aq0jplvp634l2nx5vuml20nwatv79vlt36fxmedpu5r6wamshrnlxfaas3g3n5jw6tx6mqtqw5g0luxdv5g94r6fewl653l5twff53kjtrqmhva9j5vyhuhrq0nwjcuwk74v42ffe4ysa5e2j54jqmgrlj6223enqgjeg6ur8ejjara52p4y79nvlt5shzevu85sh2dh8zvge8w25xsfneg4zrfa4frrqpgt9f060ytrp80mktrm22q2kshuhgs73f894xtzg5jldtuvpfavzdmu84p6pd2tql7f0j7xhharle4jryuxqxhvhp49cdu28u03ervpjz6a54x2mnpv3aj0qkwd2w5x2f5sy6ceffpc2l6ed77npurl3kpznm0u2ek26e03977lvn7y7u8n9hgz4j503q270nrgva0yhf9kmsc3pe8evegg5jvg6dz8e4r83kxtqpm30k7t7tnqq3pjvvs7ycdfg95y6efazd79kue3fcp8fwmakn5k452r5dkf6tgs7eaqz2znpv7cqj47kepgq5003uqhmjk0xfwyprhftq7a255kmfemk2eylfkl0z6rt7q7hqcke79dv0dpl5sr92slvyyqlvzztq0f5ftunuul3rhgfeq92cp8m3he59ujz0jvs67r90h4fgr7jgv0rhs50ev7d2ahn7du8s67aeh24q5r8665r9h739qumzpuqvpfsgxqumgzrdtfgjqh7gw0g8qvqqqqqqqqqqq7qrqssrfgs54nfgh00q3rrwg05p576tk9uyac54x9gq5793fljxv8lujjfsyjfql5m72sd47uw6sqqppfh0lmcvl8me4qgkzny9gwkm88daj8t38thnxvzpckwtd9luf5m0lksanwyd8s9r5ms58jc2l7uqqx5t2avtkpeff86q8xarc34chnrwswa3ynajuqes3evad87pmqhqety77egc4a7e4nszwt7epm5n69e4m5twl9wtpn239w4z07sjkhu52tlmzpyena58y9t63y5w79n3qyqqmhyez9
|
||||
proof: proof1qyqsqqqqqqqqqqqpqqqqqqqqqqq0rxwjqlxmc8acm0xaxeewz905709n3wjz45gmdpv6q0yy2pqhzj0dj7zaq2x32veqxg2aqveccuyqqys9vejps3830l50n6znqk47m7tf00xv4qnpg9vpz4l45rqs7n2hdyxutqjjd6w3j3le0p64u5dpjq2jhfant7td2w0wrr0r5v762k8lujm2r3rq283jfkl0aqrnfuhhklhxpe5zrhvcndj95p8drpw7fsqggqfk9e40l7nw600kel4p36ggaapgjpzpqlanwuuwlj3mas52p6qefk7xkacgcldxka9saqf4wwgqu9e87lv9jy68fzr65nujqdlxkds23l30nqejxfh0d6ycvvmgfzutps9ggafhelp0vc7zude43yjsrnx3348l4wzgu4nncayjlc88sw60h02lkn79ak8hszv4gqejvdlam4v5ylx5wsde7y5af0jrwkn2qp6st8j0ns5hafgh6mex29dt7ah26clzzmgm6ack4wvq64905ja9xuzsex6rf3uvahk89wzhlzx5eqwq7894l2l0f7vkmglk8d85987qttja0ug87594vxrkaadd008ary7fw94xyzga40cea6rlqqksq6qk52l549ze48pwenug4pg8g9lrfe3xqsl6dezyxa2a7vtnk83rhhw4uv9h4q4cas9v9r2meqkxmgspwe2r4gxyhn8zu2rraz9xspvj2skkarq30rv58zdqa6a6fftucu8l6788afecfl5r22dta56xfm6ze432hcxupq54sqpsug3dh2a6jqdkpw75pn7kdf60yfj0nru6w920cp808jxch6v3rj04rej26rvyqk5uz90k5kdlrg4c6hdxje2qtueffyw4mjr93yyuq8qjccstrq4qaad77dv42yl3wf5d0pqgceeurf4dtrzey0dt6jtz0tmynmvyzhcqycrcks09wslyy699lufkjcwknxju3t88vh9vffj0xmr5fzsh6cr72mjhwsrelh8lt023xeg0x9zvwn63pgz2es37p5dzlc3kut8sqp2tfy5vpazc58c5u25wg69aqa9vgjxkk94uwugx2n80jhwjqpugpxx9huu297v629hdjchld26c394rydn9t4rckf8ka63q3reelczq9uqdrgjh4azp353rx5x3matwx550cu9kgtwd7jnf76gl67nppkqfqvqqqqqqqqqqqwt6l5ch7kf7lrjfkpz83v2yw4mek6f6www8lwjucqpev25xf2x63tztw2x2mmqpp022yy8faa5csqqz5chxf3fde47ngzntjzhche0lv9ya3ywfagh8qxs490phu0n8pu0pz966d627zse28nap87cn65cpqy370fjf7z03rtrwshkz3fdu3hmknkdcx2sw72yv7elklj780n4qrq3lx7dmmuez3pj84zhhdhvuk9j9cpzxu74hfjkym23dkqya4cqkrtf5xhl06kpnqs6lfahpxjtysyqqwxuqrc
|
||||
verified: true
|
||||
status: rejected
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- execution:
|
||||
transitions:
|
||||
- id: au15g2dzv539esrh62fvcy5vsddkfyrzzk7nnepmzlqfpyv22hn5qxqtnpn6q
|
||||
program: cond_exec_in_finalize.aleo
|
||||
function: a
|
||||
inputs:
|
||||
- type: private
|
||||
id: 5755235326889702063396661360406534619980588488304068553623334414887009409776field
|
||||
value: ciphertext1qyqps4a7t45ykg473tu3nt59q5rll0jrq3ghy5y70dfcvgq9kqf7zpchzxdwx
|
||||
- type: private
|
||||
id: 3168774907191969896146509716630837060431141939375351609835731626544876393367field
|
||||
value: ciphertext1qyqx5j5cmspsnncytmhu27m677ncd6k998h2sk9pqfe6q7kdnjalzqs5h2ltw
|
||||
outputs:
|
||||
- type: future
|
||||
id: 8003027955445173917787103564419705677737189877194407988894713228635015061036field
|
||||
value: "{\n program_id: cond_exec_in_finalize.aleo,\n function_name: a,\n arguments: [\n 1u64,\n 1u64\n ]\n}"
|
||||
tpk: 3944001539338773920385360533696508669316623780459830039129651343406354973968group
|
||||
tcm: 5854238226448648076159184366434581922193197117627936839271893386087664253575field
|
||||
scm: 739276317952343341616529172088594290231100072446409874714908969030318369312field
|
||||
global_state_root: sr1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6gk0xu
|
||||
proof: proof1qyqsqqqqqqqqqqqpqqqqqqqqqqqp7fep503nsgv3e5qkwruyp3vftl5k7n9jlsnqpcl6axys04ncvcscpgr36224sapm43zskajkxavpq8yjd3ujv62c6rxrp2l7ggrtmpheze7sq2r485pptz6pq8zynvkcxn8ywqvn74fdpgyrpe3gf9t6sq9f55daenaytwgy6ftfkkx77hvwrn8te5uylhj78a4nq5hsd32yqhthe4rmzm26ma72wk2a2q7xfxqe832ksstasa3kg0m2zgetexkeglcgav7qkdn6zz63gdv47h97qk7ct3nma9k0gnfg4ny4fzu8gecp9e4nurpw7ewjve47el4ecv0flkar25qv5fexucpr4nu08za2cxfjpj9aaer2q4q9u8cnr6gxnkxgpg73dlf3r5nx9xmm47jgkpee0qz593uktpqm49mxc35et02ttqj5ph3m0p530as3arurrcztwmvaqzrwagcl5tl0h665rvc4kw9k2dkdyyx2lpf4n07uy2dr3gcje35gfg6cyccpkg4h7z78std0gadrqqfs7vvh9atg6ktwfpdphxqv0xdrm673lc25xt8wvnanxa8r9cgr9atun00fxjswht0urd8ynugzq5q5e9lsklcyuprfgtuvygrlasyx64ssv4l280y32csexn0ayk6rrzuuxx46swh3g9fxkcrzr3h92jvqcj32fvgc8lquk3fh7axc49sya3kazy8vsyw5yp6dezt2hwegzyq4rk02hg8ktqkpudt7wa5e6mu42nv8wnaznasa5tc7j2kfvncacqtnqzhze9ayycn0ceq8ppvs857regmyptuwg6yvtfl70cjm5v98z8jzhwfpaq94ggsmvd3pzpjyexz6ref7z63wnay8904j0a00m0nqdl58ekcnssp3dh6hcfat80nctkk08ztqnpktdlrxrryht8lndzsgdn285le7nus67yul0jq49uu7uy0cmzdz2pla032mnc5a9heakgya535quswnhrav8vsumttp2ecy5yadzjn40mjngk4wlhhnmccq7zeyfkqv2gzhk2znsh0h7r6vskpkk8srn7kl98ydv0l9yn9mnqa6zzrjd5jtw84myemrk0ttus5ywy2s2a4vh09yvsj96574tzk2awks4fftxd4uw8366e0y3pmhfa2zzjuhvxh4eys3fan8k9rdy3t9usszqvqqqqqqqqqqpzvsxu0tdxk387x2wwxv4dftmauj0zhexhrdw7lncu54z0kk0z8yzmraem3wn4y4jquy838f67c6sqqpkjnfuhpspq9wnv6gql0w829p6s2r75avzlngaaxetazlqmu3qhwch2adaqlh3tg8gy7mwv7ts6yqq8u7as4t2sxdtc48knt7yhwgqte35swwzg9zzrvwdwp9hyw4jv9pykz9gfw4ng9flsl625vu6ekupg95gpvzvkmtwpz7k9njyn5pz5cgcx2atd5weh4ks2tsvsxz6fy3qqqq8lc238
|
||||
verified: true
|
||||
status: accepted
|
||||
errors: ""
|
||||
warnings: ""
|
||||
- execution:
|
||||
transitions:
|
||||
- id: au1vm9z2lj66auhxnttt6ttmvkcls4n33pnw5luytxf7q5sugz2mg9s2mnxpk
|
||||
program: cond_exec_in_finalize.aleo
|
||||
function: a
|
||||
inputs:
|
||||
- type: private
|
||||
id: 6198652585657260926426509444997868163964918416464849417615079714896319348277field
|
||||
value: ciphertext1qyqywze23n5d4hwjyrv8wj4wqtdf6qh9s8v53xczpnsd37werv9kuzg9wph3y
|
||||
- type: private
|
||||
id: 8382351396873690135158297135263023868922664846333758390492559925774475695943field
|
||||
value: ciphertext1qyqzxypstrnl4lm63lzqfmwn3d988rvu3rr8qkklykxlvv3dupp0vyqy7j0tj
|
||||
outputs:
|
||||
- type: future
|
||||
id: 7667170962147625602914227675444707942639000179432959786181658614205536097569field
|
||||
value: "{\n program_id: cond_exec_in_finalize.aleo,\n function_name: a,\n arguments: [\n 1u64,\n 2u64\n ]\n}"
|
||||
tpk: 6497893695285924190886988099286850340592111983422894045205456561953781042463group
|
||||
tcm: 5356618385916014026788680411791041563447120696363074218812093120828036880964field
|
||||
scm: 6394314791324076323128735909574169416822398762092026258451607675413037400008field
|
||||
global_state_root: sr1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6gk0xu
|
||||
proof: proof1qyqsqqqqqqqqqqqpqqqqqqqqqqqrtyt3hwgzfjty9h0cxu2fwg3typpxljhale6zs74aqscrdjj9tc8n9q7pchkh94fs53hturft6jcqq9e92wq22mlgss986end2hhrlsa9404fujm4tsga5ezn8053hsvhw8cnvkpzppkat2cwm326cmx87qrydjh6xk644j0njkm5dvhhujwntzup9z7yj4ndn6pegdpjmh7a0t60wq7c0nw5t5aksswuwk3vevq8mlg2yv0m3q6a52vr2n7ygw6uakwtcknyz4d6p8y0wuue8qzyzzmdaystcy09e3cch4qf4gpxndsqf733dhx6jne7aul3qwxvt5y9jp6v44fwtxn9yyw56l6sxwrzvwn8n48jlp5h2qj44qqapr5yvqmqq2k097uh636y2g9h6s7wf4zgljvdfgl2qsnpduxw6sz64dprmdp2wk3t6np82mkn2uz7euurfllrsqdjyvhlv5ger9696rrc7xuwgsrlctgpk6fgmgrh44drw529hwmqhyd4wamuakuxr32xtrjgv3980qrfq0l4f5sej7aru9m3x3aczppdh74n2u2xx2gth0lf9zce07v55sl3mdpm9ealjprzjq6fztpphzqfnr65ht63u8s0a3rl6z3yh380pk60t0p380g2z0zgj5k6gk8k0xd234rx33pe4n7hr6r3zulyl3gqc4d4vmz0fuexkh2c9fwl2ak2wnlafv42utzr5q3u4cq079fyz5gjtumex0ltq7697agtfpa85wewj84rxsuwf5z25c7227h5ea382rs06n5wh3xqnshfydq8pzwt2xvnxsaz4uj80w6u8cdxdjwswxv8pv6teqjggu5h2n49tx55kvxgyzu356py0hfefd7g9f3krg8drxtqzurhkx0adaaj8ka242fnqkzlvl6e3839mmyedgu6s2muj22yywsdwvfqke3lj4hsy39lgazpg0cjxugyep7hekzd3wpfe87weqtl8vq4c253fav24uf5fkvwd7zc6a3qsjtfytztaz294u03tyxhewk4wyd4qz92zakhquy9f3gfgnhfflwc8jqws24rxsjjg9pvk2xug2x8p6mrm8prhp29mzj8vu2q2cqldc92ktv9mjwrpmnwsq9jx5ssk6tqwpsu6w5dpxyswvg4pmqq3p7u62qrwy7my9x5cnu6pn6y62fapdcrqvqqqqqqqqqqp55zmveuwjxlk9qpr83mpnyes38hh0vckeaaqff2p8ad254z3sxn3g99whc5q8gvncdce6n7dh00qqqfqyhx8660fypkg4d9shhgplsvec4q46k8kekc3vc8wcy86q57uygy988mxwwtvfaj2lf2jeeyuzcpq8qwltgqw4thlzvrsuqpgckqc3w9cjkfkshwucedjdvc5l0u9d6pygyt5uxjcmgx6hy7z4xnx6jd7e7zd9xheemd0496qtnanjj94mxc5elxvs7wk9t7h3spast3ymq7qqqq60ahha
|
||||
verified: true
|
||||
status: rejected
|
||||
errors: ""
|
||||
|
@ -17,34 +17,33 @@ outputs:
|
||||
identifier: "{\"id\":\"2\",\"name\":\"main\",\"span\":\"{\\\"lo\\\":42,\\\"hi\\\":46}\"}"
|
||||
input: []
|
||||
output:
|
||||
- Internal:
|
||||
mode: None
|
||||
type_:
|
||||
Future:
|
||||
inputs:
|
||||
- Integer: U32
|
||||
- Integer: U32
|
||||
- Future:
|
||||
inputs: []
|
||||
location: ~
|
||||
is_explicit: true
|
||||
- Future:
|
||||
inputs:
|
||||
- Integer: U32
|
||||
- Future:
|
||||
inputs:
|
||||
- Integer: U32
|
||||
- Integer: U32
|
||||
location: ~
|
||||
is_explicit: true
|
||||
location: ~
|
||||
is_explicit: true
|
||||
location: ~
|
||||
is_explicit: true
|
||||
span:
|
||||
lo: 52
|
||||
hi: 124
|
||||
id: 3
|
||||
- mode: None
|
||||
type_:
|
||||
Future:
|
||||
inputs:
|
||||
- Integer: U32
|
||||
- Integer: U32
|
||||
- Future:
|
||||
inputs: []
|
||||
location: ~
|
||||
is_explicit: true
|
||||
- Future:
|
||||
inputs:
|
||||
- Integer: U32
|
||||
- Future:
|
||||
inputs:
|
||||
- Integer: U32
|
||||
- Integer: U32
|
||||
location: ~
|
||||
is_explicit: true
|
||||
location: ~
|
||||
is_explicit: true
|
||||
location: ~
|
||||
is_explicit: true
|
||||
span:
|
||||
lo: 52
|
||||
hi: 124
|
||||
id: 3
|
||||
output_type:
|
||||
Future:
|
||||
inputs:
|
||||
@ -200,55 +199,51 @@ outputs:
|
||||
variant: AsyncFunction
|
||||
identifier: "{\"id\":\"26\",\"name\":\"finalize_main\",\"span\":\"{\\\"lo\\\":426,\\\"hi\\\":439}\"}"
|
||||
input:
|
||||
- Internal:
|
||||
identifier: "{\"id\":\"27\",\"name\":\"a\",\"span\":\"{\\\"lo\\\":440,\\\"hi\\\":441}\"}"
|
||||
mode: None
|
||||
type_:
|
||||
Integer: U32
|
||||
span:
|
||||
lo: 440
|
||||
hi: 441
|
||||
id: 28
|
||||
- Internal:
|
||||
identifier: "{\"id\":\"29\",\"name\":\"b\",\"span\":\"{\\\"lo\\\":448,\\\"hi\\\":449}\"}"
|
||||
mode: None
|
||||
type_:
|
||||
Integer: U32
|
||||
span:
|
||||
lo: 448
|
||||
hi: 449
|
||||
id: 30
|
||||
- Internal:
|
||||
identifier: "{\"id\":\"31\",\"name\":\"f0\",\"span\":\"{\\\"lo\\\":456,\\\"hi\\\":458}\"}"
|
||||
mode: None
|
||||
type_:
|
||||
Future:
|
||||
inputs: []
|
||||
location: ~
|
||||
is_explicit: true
|
||||
span:
|
||||
lo: 456
|
||||
hi: 458
|
||||
id: 32
|
||||
- Internal:
|
||||
identifier: "{\"id\":\"33\",\"name\":\"f1\",\"span\":\"{\\\"lo\\\":474,\\\"hi\\\":476}\"}"
|
||||
mode: None
|
||||
type_:
|
||||
Future:
|
||||
inputs:
|
||||
- Integer: U32
|
||||
- Future:
|
||||
inputs:
|
||||
- Integer: U32
|
||||
- Integer: U32
|
||||
location: ~
|
||||
is_explicit: true
|
||||
location: ~
|
||||
is_explicit: true
|
||||
span:
|
||||
lo: 474
|
||||
hi: 476
|
||||
id: 34
|
||||
- identifier: "{\"id\":\"27\",\"name\":\"a\",\"span\":\"{\\\"lo\\\":440,\\\"hi\\\":441}\"}"
|
||||
mode: None
|
||||
type_:
|
||||
Integer: U32
|
||||
span:
|
||||
lo: 440
|
||||
hi: 441
|
||||
id: 28
|
||||
- identifier: "{\"id\":\"29\",\"name\":\"b\",\"span\":\"{\\\"lo\\\":448,\\\"hi\\\":449}\"}"
|
||||
mode: None
|
||||
type_:
|
||||
Integer: U32
|
||||
span:
|
||||
lo: 448
|
||||
hi: 449
|
||||
id: 30
|
||||
- identifier: "{\"id\":\"31\",\"name\":\"f0\",\"span\":\"{\\\"lo\\\":456,\\\"hi\\\":458}\"}"
|
||||
mode: None
|
||||
type_:
|
||||
Future:
|
||||
inputs: []
|
||||
location: ~
|
||||
is_explicit: true
|
||||
span:
|
||||
lo: 456
|
||||
hi: 458
|
||||
id: 32
|
||||
- identifier: "{\"id\":\"33\",\"name\":\"f1\",\"span\":\"{\\\"lo\\\":474,\\\"hi\\\":476}\"}"
|
||||
mode: None
|
||||
type_:
|
||||
Future:
|
||||
inputs:
|
||||
- Integer: U32
|
||||
- Future:
|
||||
inputs:
|
||||
- Integer: U32
|
||||
- Integer: U32
|
||||
location: ~
|
||||
is_explicit: true
|
||||
location: ~
|
||||
is_explicit: true
|
||||
span:
|
||||
lo: 474
|
||||
hi: 476
|
||||
id: 34
|
||||
output: []
|
||||
output_type: Unit
|
||||
block:
|
||||
|
@ -27,17 +27,16 @@ outputs:
|
||||
identifier: "{\"id\":\"4\",\"name\":\"main\",\"span\":\"{\\\"lo\\\":72,\\\"hi\\\":76}\"}"
|
||||
input: []
|
||||
output:
|
||||
- Internal:
|
||||
mode: None
|
||||
type_:
|
||||
Future:
|
||||
inputs: []
|
||||
location: ~
|
||||
is_explicit: false
|
||||
span:
|
||||
lo: 82
|
||||
hi: 88
|
||||
id: 5
|
||||
- mode: None
|
||||
type_:
|
||||
Future:
|
||||
inputs: []
|
||||
location: ~
|
||||
is_explicit: false
|
||||
span:
|
||||
lo: 82
|
||||
hi: 88
|
||||
id: 5
|
||||
output_type:
|
||||
Future:
|
||||
inputs: []
|
||||
@ -104,36 +103,33 @@ outputs:
|
||||
variant: AsyncFunction
|
||||
identifier: "{\"id\":\"16\",\"name\":\"finalize_main\",\"span\":\"{\\\"lo\\\":186,\\\"hi\\\":199}\"}"
|
||||
input:
|
||||
- Internal:
|
||||
identifier: "{\"id\":\"17\",\"name\":\"a\",\"span\":\"{\\\"lo\\\":200,\\\"hi\\\":201}\"}"
|
||||
mode: None
|
||||
type_:
|
||||
Integer: U32
|
||||
span:
|
||||
lo: 200
|
||||
hi: 201
|
||||
id: 18
|
||||
- Internal:
|
||||
identifier: "{\"id\":\"19\",\"name\":\"b\",\"span\":\"{\\\"lo\\\":207,\\\"hi\\\":208}\"}"
|
||||
mode: None
|
||||
type_:
|
||||
Integer: U32
|
||||
span:
|
||||
lo: 207
|
||||
hi: 208
|
||||
id: 20
|
||||
- identifier: "{\"id\":\"17\",\"name\":\"a\",\"span\":\"{\\\"lo\\\":200,\\\"hi\\\":201}\"}"
|
||||
mode: None
|
||||
type_:
|
||||
Integer: U32
|
||||
span:
|
||||
lo: 200
|
||||
hi: 201
|
||||
id: 18
|
||||
- identifier: "{\"id\":\"19\",\"name\":\"b\",\"span\":\"{\\\"lo\\\":207,\\\"hi\\\":208}\"}"
|
||||
mode: None
|
||||
type_:
|
||||
Integer: U32
|
||||
span:
|
||||
lo: 207
|
||||
hi: 208
|
||||
id: 20
|
||||
output:
|
||||
- Internal:
|
||||
mode: None
|
||||
type_:
|
||||
Future:
|
||||
inputs: []
|
||||
location: ~
|
||||
is_explicit: false
|
||||
span:
|
||||
lo: 217
|
||||
hi: 223
|
||||
id: 21
|
||||
- mode: None
|
||||
type_:
|
||||
Future:
|
||||
inputs: []
|
||||
location: ~
|
||||
is_explicit: false
|
||||
span:
|
||||
lo: 217
|
||||
hi: 223
|
||||
id: 21
|
||||
output_type:
|
||||
Future:
|
||||
inputs: []
|
||||
|
@ -23,7 +23,7 @@ program token.aleo {
|
||||
return finalize_mint_public(receiver, amount);
|
||||
}
|
||||
|
||||
async function finalize_mint_public(public receiver: address, public amount: u64) {
|
||||
async function finalize_mint_public(receiver: address, amount: u64) {
|
||||
// Increments `account[receiver]` by `amount`.
|
||||
// If `account[receiver]` does not exist, it will be created.
|
||||
// If `account[receiver] + amount` overflows, `mint_public` is reverted.
|
||||
@ -45,7 +45,7 @@ program token.aleo {
|
||||
return finalize_transfer_public(self.caller, receiver, amount);
|
||||
}
|
||||
|
||||
async function finalize_transfer_public(public sender: address, public receiver: address, public amount: u64) {
|
||||
async function finalize_transfer_public(sender: address, receiver: address, amount: u64) {
|
||||
// Decrements `account[sender]` by `amount`.
|
||||
// If `account[sender]` does not exist, it will be created.
|
||||
// If `account[sender] - amount` underflows, `transfer_public` is reverted.
|
||||
@ -100,7 +100,7 @@ program token.aleo {
|
||||
return (remaining, finalize_transfer_private_to_public(receiver, amount));
|
||||
}
|
||||
|
||||
async function finalize_transfer_private_to_public(public receiver: address, public amount: u64) {
|
||||
async function finalize_transfer_private_to_public(receiver: address, amount: u64) {
|
||||
// Increments `account[receiver]` by `amount`.
|
||||
// If `account[receiver]` does not exist, it will be created.
|
||||
// If `account[receiver] + amount` overflows, `transfer_private_to_public` is reverted.
|
||||
|
@ -0,0 +1,19 @@
|
||||
/*
|
||||
namespace: Compile
|
||||
expectation: Fail
|
||||
*/
|
||||
|
||||
program test.aleo {
|
||||
|
||||
transition a(a: u64, b: u64) -> Future {
|
||||
return finish(a, b);
|
||||
}
|
||||
|
||||
async transition finish(a: u64, b: u64) {
|
||||
if (b == 0u64) {
|
||||
assert_eq(b, 0u64);
|
||||
} else {
|
||||
assert_eq(a / b, 1u64);
|
||||
}
|
||||
}
|
||||
}
|
@ -16,11 +16,11 @@ cases:
|
||||
|
||||
program cond_exec_in_finalize.aleo {
|
||||
|
||||
transition a(a: u64, b: u64) {
|
||||
return then finalize(a, b);
|
||||
async transition a(a: u64, b: u64) -> Future {
|
||||
return finish(a, b);
|
||||
}
|
||||
|
||||
finalize a(a: u64, b: u64) {
|
||||
async function finish(a: u64, b: u64) {
|
||||
if (b == 0u64) {
|
||||
assert_eq(b, 0u64);
|
||||
} else {
|
||||
|
@ -55,7 +55,9 @@ pub fn disassemble<N: Network, Instruction: InstructionTrait<N>, Command: Comman
|
||||
program
|
||||
.closures()
|
||||
.iter()
|
||||
.map(|(id, closure)| (Identifier::from(id).name, FunctionStub::from_closure(closure)))
|
||||
.map(|(id, closure)| {
|
||||
(Identifier::from(id).name, FunctionStub::from_closure(closure, program_id.name.name))
|
||||
})
|
||||
.collect_vec(),
|
||||
program
|
||||
.functions()
|
||||
|
Loading…
Reference in New Issue
Block a user