Compatibility fixes

This commit is contained in:
Pranav Gaddamadugu 2024-04-30 13:51:09 -04:00
parent d27ba5fa31
commit 3b3a3bff02
49 changed files with 551 additions and 528 deletions

View File

@ -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};

View File

@ -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)
}
}

View File

@ -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,
}
}

View File

@ -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,
};

View File

@ -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 {

View File

@ -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 }
}
}

View File

@ -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 {
(

View File

@ -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,
}

View File

@ -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 {
(

View File

@ -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.

View File

@ -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,
}
}
}

View File

@ -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,
}

View File

@ -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 {
(

View File

@ -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 {

View File

@ -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(

View File

@ -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),

View File

@ -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));
}

View File

@ -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,
}
}

View File

@ -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.")),
}
);

View File

@ -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"

View File

@ -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"

View File

@ -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 | ^^^^^^^^"

View File

@ -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"

View File

@ -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: ""

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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: ""

View File

@ -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: ""

View File

@ -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: ""

View File

@ -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: ""

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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: ""

View File

@ -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: ""

View File

@ -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: ""

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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: ""

View File

@ -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:

View File

@ -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: []

View File

@ -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.

View File

@ -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);
}
}
}

View File

@ -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 {

View File

@ -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()