Merge pull request #27902 from AleoHQ/fix/external-struct

[Fix] External struct equality
This commit is contained in:
d0cd 2024-04-18 16:08:14 -07:00 committed by GitHub
commit 95ee4a4133
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
733 changed files with 7911 additions and 7853 deletions

View File

@ -1,50 +0,0 @@
// Copyright (C) 2019-2023 Aleo Systems Inc.
// This file is part of the Leo library.
// The Leo library is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// The Leo library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// 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::{CompositeType, Identifier, Node, NodeID, Type};
use leo_span::Span;
use serde::{Deserialize, Serialize};
use std::fmt;
/// A function output from an external program with type record.
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct External {
/// The name the parameter is accessible as in the function's body.
pub identifier: Identifier,
/// The name of the external program.
pub program_name: Identifier,
/// The name of the external record type.
pub record: Identifier,
/// The parameters span from any annotations to its type.
pub span: Span,
/// The ID of the node.
pub id: NodeID,
}
impl External {
pub fn type_(&self) -> Type {
Type::Composite(CompositeType { id: self.record, program: Some(self.program_name.name) })
}
}
impl fmt::Display for External {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}: {}.leo/{}.record", self.identifier, self.program_name, self.record)
}
}
crate::simple_node_impl!(External);

View File

@ -52,8 +52,8 @@ impl Finalize {
) -> Self {
let output_type = match output.len() {
0 => Type::Unit,
1 => output[0].type_(),
_ => Type::Tuple(TupleType::new(output.iter().map(|output| output.type_()).collect())),
1 => output[0].type_.clone(),
_ => Type::Tuple(TupleType::new(output.iter().map(|output| output.type_.clone()).collect())),
};
Self { identifier, input, output, output_type, block, span, id }

View File

@ -14,91 +14,15 @@
// 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::{External, Identifier, Mode, Node, NodeID, Type};
use crate::{Identifier, Mode, Node, NodeID, Type};
use leo_span::Span;
use serde::{Deserialize, Serialize};
use std::fmt;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum Input {
Internal(FunctionInput),
External(External),
}
impl fmt::Display for Input {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
use Input::*;
match self {
Internal(input) => input.fmt(f),
External(input) => input.fmt(f),
}
}
}
impl Input {
pub fn type_(&self) -> Type {
use Input::*;
match self {
Internal(input) => input.type_.clone(),
External(input) => input.type_(),
}
}
pub fn identifier(&self) -> Identifier {
use Input::*;
match self {
Internal(input) => input.identifier,
External(input) => input.identifier,
}
}
pub fn mode(&self) -> Mode {
use Input::*;
match self {
Internal(input) => input.mode,
External(_) => Mode::None,
}
}
}
impl Node for Input {
fn span(&self) -> Span {
use Input::*;
match self {
Internal(input) => input.span(),
External(input) => input.span(),
}
}
fn set_span(&mut self, span: Span) {
use Input::*;
match self {
Internal(input) => input.set_span(span),
External(input) => input.set_span(span),
}
}
fn id(&self) -> usize {
use Input::*;
match self {
Internal(input) => input.id(),
External(input) => input.id(),
}
}
fn set_id(&mut self, id: usize) {
use Input::*;
match self {
Internal(input) => input.set_id(id),
External(input) => input.set_id(id),
}
}
}
/// A function parameter.
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct FunctionInput {
pub struct Input {
/// The name the parameter is accessible as in the function's body.
pub identifier: Identifier,
/// The mode of the function parameter.
@ -111,16 +35,28 @@ pub struct FunctionInput {
pub id: NodeID,
}
impl FunctionInput {
impl Input {
fn format(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{} {}: {}", self.mode, self.identifier, self.type_)
}
pub fn identifier(&self) -> &Identifier {
&self.identifier
}
pub fn mode(&self) -> Mode {
self.mode
}
pub fn type_(&self) -> &Type {
&self.type_
}
}
impl fmt::Display for FunctionInput {
impl fmt::Display for Input {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
self.format(f)
}
}
crate::simple_node_impl!(FunctionInput);
crate::simple_node_impl!(Input);

View File

@ -23,9 +23,6 @@ pub use core_function::*;
pub mod variant;
pub use variant::*;
pub mod external;
pub use external::*;
pub mod finalize;
pub use finalize::*;
@ -91,16 +88,10 @@ impl Function {
span: Span,
id: NodeID,
) -> Self {
// Determine the output type of the function
let get_output_type = |output: &Output| match &output {
Output::Internal(output) => output.type_.clone(),
Output::External(output) => output.type_(),
};
let output_type = match output.len() {
0 => Type::Unit,
1 => get_output_type(&output[0]),
_ => Type::Tuple(TupleType::new(output.iter().map(get_output_type).collect())),
1 => output[0].type_.clone(),
_ => Type::Tuple(TupleType::new(output.iter().map(|o| o.type_.clone()).collect())),
};
Function { annotations, variant, identifier, input, output, output_type, block, finalize, span, id }

View File

@ -14,81 +14,15 @@
// 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::{External, Mode, Node, NodeID, Type};
use crate::{Mode, Node, NodeID, Type};
use leo_span::Span;
use serde::{Deserialize, Serialize};
use std::fmt;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum Output {
Internal(FunctionOutput),
External(External),
}
impl Output {
pub fn type_(&self) -> Type {
match self {
Output::Internal(output) => output.type_.clone(),
Output::External(output) => output.type_(),
}
}
pub fn mode(&self) -> Mode {
match self {
Output::Internal(output) => output.mode,
Output::External(_) => Mode::None,
}
}
}
impl fmt::Display for Output {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
use Output::*;
match self {
Internal(output) => output.fmt(f),
External(output) => output.fmt(f),
}
}
}
impl Node for Output {
fn span(&self) -> Span {
use Output::*;
match self {
Internal(output) => output.span(),
External(output) => output.span(),
}
}
fn set_span(&mut self, span: Span) {
use Output::*;
match self {
Internal(output) => output.set_span(span),
External(output) => output.set_span(span),
}
}
fn id(&self) -> NodeID {
use Output::*;
match self {
Internal(output) => output.id(),
External(output) => output.id(),
}
}
fn set_id(&mut self, id: NodeID) {
use Output::*;
match self {
Internal(output) => output.set_id(id),
External(output) => output.set_id(id),
}
}
}
/// A function output.
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct FunctionOutput {
pub struct Output {
/// The mode of the function output.
pub mode: Mode,
/// The type of the function output.
@ -99,10 +33,20 @@ pub struct FunctionOutput {
pub id: NodeID,
}
impl fmt::Display for FunctionOutput {
impl Output {
pub fn type_(&self) -> &Type {
&self.type_
}
pub fn mode(&self) -> Mode {
self.mode
}
}
impl fmt::Display for Output {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{} {}", self.mode, self.type_)
}
}
crate::simple_node_impl!(FunctionOutput);
crate::simple_node_impl!(Output);

View File

@ -16,7 +16,7 @@
use crate::{Identifier, Node, NodeID, Type};
use leo_span::{Span, Symbol};
use leo_span::Span;
use serde::{Deserialize, Serialize};
use snarkvm::prelude::{Mapping as MappingCore, Network};
@ -38,11 +38,11 @@ pub struct Mapping {
}
impl Mapping {
pub fn from_snarkvm<N: Network>(mapping: &MappingCore<N>, program: Symbol) -> Self {
pub fn from_snarkvm<N: Network>(mapping: &MappingCore<N>) -> Self {
Self {
identifier: Identifier::from(mapping.name()),
key_type: Type::from_snarkvm(mapping.key().plaintext_type(), program),
value_type: Type::from_snarkvm(mapping.value().plaintext_type(), program),
key_type: Type::from_snarkvm(mapping.key().plaintext_type(), None),
value_type: Type::from_snarkvm(mapping.value().plaintext_type(), None),
span: Default::default(),
id: Default::default(),
}

View File

@ -87,9 +87,9 @@ impl Composite {
mode: if input.owner().is_public() { Mode::Public } else { Mode::Private },
identifier: Identifier::from(id),
type_: match entry {
Public(t) => Type::from_snarkvm(t, external_program),
Private(t) => Type::from_snarkvm(t, external_program),
Constant(t) => Type::from_snarkvm(t, external_program),
Public(t) => Type::from_snarkvm(t, None),
Private(t) => Type::from_snarkvm(t, None),
Constant(t) => Type::from_snarkvm(t, None),
},
span: Default::default(),
id: Default::default(),
@ -104,7 +104,7 @@ impl Composite {
}
}
pub fn from_snarkvm<N: Network>(input: &StructType<N>, program: Symbol) -> Self {
pub fn from_snarkvm<N: Network>(input: &StructType<N>) -> Self {
Self {
identifier: Identifier::from(input.name()),
members: input
@ -113,12 +113,12 @@ impl Composite {
.map(|(id, type_)| Member {
mode: Mode::None,
identifier: Identifier::from(id),
type_: Type::from_snarkvm(type_, program),
type_: Type::from_snarkvm(type_, None),
span: Default::default(),
id: Default::default(),
})
.collect(),
external: Some(program),
external: None,
is_record: false,
span: Default::default(),
id: Default::default(),

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 crate::{Finalize, FunctionInput, Identifier, Input, Mode, Node, NodeID, Output, TupleType, Type};
use crate::{Finalize, Identifier, Input, Mode, Node, NodeID, Output, TupleType, Type};
use leo_span::{Span, Symbol};
@ -50,29 +50,26 @@ impl FinalizeStub {
pub fn new(identifier: Identifier, input: Vec<Input>, output: Vec<Output>, span: Span, id: NodeID) -> Self {
let output_type = match output.len() {
0 => Type::Unit,
1 => output[0].type_(),
_ => Type::Tuple(TupleType::new(output.iter().map(|output| output.type_()).collect())),
1 => output[0].type_.clone(),
_ => Type::Tuple(TupleType::new(output.iter().map(|output| output.type_.clone()).collect())),
};
Self { identifier, input, output, output_type, span, id }
}
pub fn from_snarkvm<N: Network, Command: CommandTrait<N>>(
finalize: &FinalizeCore<N, Command>,
program: Symbol,
) -> Self {
pub fn from_snarkvm<N: Network, Command: CommandTrait<N>>(finalize: &FinalizeCore<N, Command>) -> Self {
let mut inputs = Vec::new();
finalize.inputs().iter().enumerate().for_each(|(index, input)| {
let arg_name = Identifier::new(Symbol::intern(&format!("a{}", index + 1)), Default::default());
match input.finalize_type() {
Plaintext(val) => inputs.push(Input::Internal(FunctionInput {
Plaintext(val) => inputs.push(Input {
identifier: arg_name,
mode: Mode::None,
type_: Type::from_snarkvm(val, program),
type_: Type::from_snarkvm(val, None),
span: Default::default(),
id: Default::default(),
})),
}),
Future(_) => {} // Don't need to worry about nested futures
}
});

View File

@ -18,10 +18,7 @@ use crate::{
finalize_stub::*,
Annotation,
CompositeType,
External,
Function,
FunctionInput,
FunctionOutput,
Identifier,
Input,
Mode,
@ -89,16 +86,10 @@ impl FunctionStub {
span: Span,
id: NodeID,
) -> Self {
// Determine the output type of the function
let get_output_type = |output: &Output| match &output {
Output::Internal(output) => output.type_.clone(),
Output::External(output) => output.type_(),
};
let output_type = match output.len() {
0 => Type::Unit,
1 => get_output_type(&output[0]),
_ => Type::Tuple(TupleType::new(output.iter().map(get_output_type).collect())),
1 => output[0].type_.clone(),
_ => Type::Tuple(TupleType::new(output.iter().map(|o| o.type_.clone()).collect())),
};
FunctionStub { annotations, variant, identifier, input, output, output_type, finalize_stub, span, id }
@ -150,52 +141,46 @@ impl FunctionStub {
.outputs()
.iter()
.map(|output| match output.value_type() {
ValueType::Constant(val) => vec![Output::Internal(FunctionOutput {
ValueType::Constant(val) => vec![Output {
mode: Mode::Constant,
type_: Type::from_snarkvm(val, program),
type_: Type::from_snarkvm(val, None),
span: Default::default(),
id: Default::default(),
})],
ValueType::Public(val) => vec![Output::Internal(FunctionOutput {
}],
ValueType::Public(val) => vec![Output {
mode: Mode::Public,
type_: Type::from_snarkvm(val, program),
type_: Type::from_snarkvm(val, None),
span: Default::default(),
id: Default::default(),
})],
ValueType::Private(val) => vec![Output::Internal(FunctionOutput {
}],
ValueType::Private(val) => vec![Output {
mode: Mode::Private,
type_: Type::from_snarkvm(val, program),
type_: Type::from_snarkvm(val, None),
span: Default::default(),
id: Default::default(),
})],
ValueType::Record(id) => vec![Output::Internal(FunctionOutput {
}],
ValueType::Record(id) => vec![Output {
mode: Mode::None,
type_: Composite(CompositeType { id: Identifier::from(id), program: Some(program) }),
span: Default::default(),
id: Default::default(),
})],
}],
ValueType::ExternalRecord(loc) => {
vec![Output::External(External {
identifier: Identifier::new(Symbol::intern("dummy"), Default::default()),
program_name: ProgramId::from(loc.program_id()).name,
record: Identifier::from(loc.resource()),
vec![Output {
mode: Mode::None,
span: Default::default(),
id: Default::default(),
})]
type_: Composite(CompositeType {
id: Identifier::from(loc.resource()),
program: Some(ProgramId::from(loc.program_id()).name.name),
}),
}]
}
ValueType::Future(_) => Vec::new(), // Don't include futures in the output signature
})
.collect_vec()
.concat();
let output_vec = outputs
.iter()
.map(|output| match output {
Output::Internal(output) => output.type_.clone(),
Output::External(output) => {
Type::Composite(CompositeType { id: output.record, program: Some(output.program_name.name) })
}
})
.collect_vec();
let output_vec = outputs.iter().map(|output| output.type_.clone()).collect_vec();
let output_type = match output_vec.len() {
0 => Type::Unit,
1 => output_vec[0].clone(),
@ -213,79 +198,73 @@ impl FunctionStub {
.map(|(index, input)| {
let arg_name = Identifier::new(Symbol::intern(&format!("a{}", index + 1)), Default::default());
match input.value_type() {
ValueType::Constant(val) => Input::Internal(FunctionInput {
ValueType::Constant(val) => Input {
identifier: arg_name,
mode: Mode::Constant,
type_: Type::from_snarkvm(val, program),
type_: Type::from_snarkvm(val, None),
span: Default::default(),
id: Default::default(),
}),
ValueType::Public(val) => Input::Internal(FunctionInput {
},
ValueType::Public(val) => Input {
identifier: arg_name,
mode: Mode::Public,
type_: Type::from_snarkvm(val, program),
type_: Type::from_snarkvm(val, None),
span: Default::default(),
id: Default::default(),
}),
ValueType::Private(val) => Input::Internal(FunctionInput {
},
ValueType::Private(val) => Input {
identifier: arg_name,
mode: Mode::Private,
type_: Type::from_snarkvm(val, program),
type_: Type::from_snarkvm(val, None),
span: Default::default(),
id: Default::default(),
}),
ValueType::Record(id) => Input::Internal(FunctionInput {
},
ValueType::Record(id) => Input {
identifier: arg_name,
mode: Mode::None,
type_: Composite(CompositeType { id: Identifier::from(id), program: Some(program) }),
span: Default::default(),
id: Default::default(),
}),
ValueType::ExternalRecord(loc) => Input::External(External {
identifier: Identifier::new(Symbol::intern("dummy"), Default::default()),
program_name: ProgramId::from(loc.program_id()).name,
record: Identifier::from(loc.resource()),
},
ValueType::ExternalRecord(loc) => Input {
identifier: arg_name,
mode: Mode::None,
span: Default::default(),
id: Default::default(),
}),
type_: Composite(CompositeType {
id: Identifier::from(loc.name()),
program: Some(ProgramId::from(loc.program_id()).name.name),
}),
},
ValueType::Future(_) => panic!("Functions do not contain futures as inputs"),
}
})
.collect_vec(),
output: outputs,
output_type,
finalize_stub: function.finalize_logic().map(|f| FinalizeStub::from_snarkvm(f, program)),
finalize_stub: function.finalize_logic().map(|f| FinalizeStub::from_snarkvm(f)),
span: Default::default(),
id: Default::default(),
}
}
pub fn from_closure<N: Network, Instruction: InstructionTrait<N>>(
closure: &ClosureCore<N, Instruction>,
program: Symbol,
) -> Self {
pub fn from_closure<N: Network, Instruction: InstructionTrait<N>>(closure: &ClosureCore<N, Instruction>) -> Self {
let outputs = closure
.outputs()
.iter()
.map(|output| match output.register_type() {
Plaintext(val) => Output::Internal(FunctionOutput {
Plaintext(val) => Output {
mode: Mode::None,
type_: Type::from_snarkvm(val, program),
type_: Type::from_snarkvm(val, None),
span: Default::default(),
id: Default::default(),
}),
},
Record(_) => panic!("Closures do not return records"),
ExternalRecord(_) => panic!("Closures do not return external records"),
Future(_) => panic!("Closures do not return futures"),
})
.collect_vec();
let output_vec = outputs
.iter()
.map(|output| match output {
Output::Internal(output) => output.type_.clone(),
Output::External(_) => panic!("Closures do not return external records"),
})
.collect_vec();
let output_vec = outputs.iter().map(|output| output.type_.clone()).collect_vec();
let output_type = match output_vec.len() {
0 => Type::Unit,
1 => output_vec[0].clone(),
@ -302,13 +281,13 @@ impl FunctionStub {
.map(|(index, input)| {
let arg_name = Identifier::new(Symbol::intern(&format!("a{}", index + 1)), Default::default());
match input.register_type() {
Plaintext(val) => Input::Internal(FunctionInput {
Plaintext(val) => Input {
identifier: arg_name,
mode: Mode::None,
type_: Type::from_snarkvm(val, program),
type_: Type::from_snarkvm(val, None),
span: Default::default(),
id: Default::default(),
}),
},
Record(_) => panic!("Closures do not contain records as inputs"),
ExternalRecord(_) => panic!("Closures do not contain external records as inputs"),
Future(_) => panic!("Closures do not contain futures as inputs"),

View File

@ -53,7 +53,7 @@ impl ArrayType {
}
}
pub fn from_snarkvm<N: Network>(array_type: &ConsoleArrayType<N>, program: Symbol) -> Self {
pub fn from_snarkvm<N: Network>(array_type: &ConsoleArrayType<N>, program: Option<Symbol>) -> Self {
Self {
element_type: Box::new(Type::from_snarkvm(array_type.next_element_type(), program)),
length: NonNegativeNumber::from(array_type.length().to_string().replace("u32", "")),

View File

@ -98,7 +98,40 @@ impl Type {
}
}
pub fn from_snarkvm<N: Network>(t: &PlaintextType<N>, program: Symbol) -> Self {
///
/// Returns `true` if the self `Type` is equal to the other `Type` in all aspects besides composite program of origin.
///
/// Flattens array syntax: `[[u8; 1]; 2] == [u8; (2, 1)] == true`
///
pub fn eq_flat_relax_composite(&self, other: &Self) -> bool {
match (self, other) {
(Type::Address, Type::Address)
| (Type::Boolean, Type::Boolean)
| (Type::Field, Type::Field)
| (Type::Group, Type::Group)
| (Type::Scalar, Type::Scalar)
| (Type::Signature, Type::Signature)
| (Type::String, Type::String)
| (Type::Unit, Type::Unit) => true,
(Type::Array(left), Type::Array(right)) => {
left.element_type().eq_flat_relax_composite(right.element_type()) && left.length() == right.length()
}
(Type::Identifier(left), Type::Identifier(right)) => left.matches(right),
(Type::Integer(left), Type::Integer(right)) => left.eq(right),
(Type::Mapping(left), Type::Mapping(right)) => {
left.key.eq_flat_relax_composite(&right.key) && left.value.eq_flat(&right.value)
}
(Type::Tuple(left), Type::Tuple(right)) if left.length() == right.length() => left
.elements()
.iter()
.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,
_ => false,
}
}
pub fn from_snarkvm<N: Network>(t: &PlaintextType<N>, program: Option<Symbol>) -> Self {
match t {
Literal(lit) => match lit {
snarkvm::prelude::LiteralType::Address => Type::Address,
@ -119,7 +152,7 @@ impl Type {
snarkvm::prelude::LiteralType::Signature => Type::Signature,
snarkvm::prelude::LiteralType::String => Type::String,
},
Struct(s) => Type::Composite(CompositeType { id: common::Identifier::from(s), program: Some(program) }),
Struct(s) => Type::Composite(CompositeType { id: common::Identifier::from(s), program }),
Array(array) => Type::Array(ArrayType::from_snarkvm(array, program)),
}
}

View File

@ -280,34 +280,14 @@ impl<'a> ProgramVisitor<'a> for CheckUniqueNodeIds<'a> {
self.visit_identifier(identifier, &Default::default());
// Check the inputs.
for in_ in input {
match in_ {
Input::Internal(FunctionInput { identifier, type_, id, .. }) => {
self.visit_identifier(identifier, &Default::default());
self.check_ty(type_);
self.check(*id);
}
Input::External(External { identifier, program_name, record, id, .. }) => {
self.visit_identifier(identifier, &Default::default());
self.visit_identifier(program_name, &Default::default());
self.visit_identifier(record, &Default::default());
self.check(*id);
}
}
self.visit_identifier(in_.identifier(), &Default::default());
self.check_ty(&in_.type_);
self.check(in_.id);
}
// Check the outputs.
for out in output {
match out {
Output::Internal(FunctionOutput { type_, id, .. }) => {
self.check_ty(type_);
self.check(*id);
}
Output::External(External { identifier, program_name, record, id, .. }) => {
self.visit_identifier(identifier, &Default::default());
self.visit_identifier(program_name, &Default::default());
self.visit_identifier(record, &Default::default());
self.check(*id);
}
}
self.check_ty(&out.type_);
self.check(out.id);
}
// Check the function body.
self.visit_block(block);
@ -317,34 +297,14 @@ impl<'a> ProgramVisitor<'a> for CheckUniqueNodeIds<'a> {
self.visit_identifier(identifier, &Default::default());
// Check the inputs.
for in_ in input {
match in_ {
Input::Internal(FunctionInput { identifier, type_, id, .. }) => {
self.visit_identifier(identifier, &Default::default());
self.check_ty(type_);
self.check(*id);
}
Input::External(External { identifier, program_name, record, id, .. }) => {
self.visit_identifier(identifier, &Default::default());
self.visit_identifier(program_name, &Default::default());
self.visit_identifier(record, &Default::default());
self.check(*id);
}
}
self.visit_identifier(in_.identifier(), &Default::default());
self.check_ty(&in_.type_);
self.check(in_.id);
}
// Check the outputs.
for out in output {
match out {
Output::Internal(FunctionOutput { type_, id, .. }) => {
self.check_ty(type_);
self.check(*id);
}
Output::External(External { identifier, program_name, record, id, .. }) => {
self.visit_identifier(identifier, &Default::default());
self.visit_identifier(program_name, &Default::default());
self.visit_identifier(record, &Default::default());
self.check(*id);
}
}
self.check_ty(&out.type_);
self.check(out.id);
}
// Check the function body.
self.visit_block(block);

View File

@ -223,10 +223,13 @@ impl ParserContext<'_> {
self.expect(&Token::LeftCurly)?;
let (members, end) = self.parse_struct_members()?;
// Only provide a program name for records.
let external = if is_record { self.program_name } else { None };
Ok((struct_name.name, Composite {
identifier: struct_name,
members,
external: self.program_name,
external,
is_record,
span: start + end,
id: self.node_builder.next_id(),
@ -282,84 +285,16 @@ impl ParserContext<'_> {
let name = self.expect_identifier()?;
self.expect(&Token::Colon)?;
if self.peek_is_external() {
let external = self.expect_identifier()?;
let mut span = name.span + external.span;
let type_ = self.parse_type()?.0;
// Parse `.leo/` or `.aleo/`.
self.eat(&Token::Dot);
self.eat_any(&[Token::Leo, Token::Aleo]);
self.eat(&Token::Div);
// Parse record name.
let record = self.expect_identifier()?;
// Parse `.record`.
self.eat(&Token::Dot);
self.eat(&Token::Record);
span = span + self.prev_token.span;
Ok(functions::Input::External(External {
identifier: name,
program_name: external,
record,
span,
id: self.node_builder.next_id(),
}))
} else {
let type_ = self.parse_type()?.0;
Ok(functions::Input::Internal(FunctionInput {
identifier: name,
mode,
type_,
span: name.span,
id: self.node_builder.next_id(),
}))
}
}
/// Returns a [`FunctionOutput`] AST node if the next tokens represent a function output.
fn parse_function_output(&mut self) -> Result<FunctionOutput> {
// TODO: Could this span be made more accurate?
let mode = self.parse_mode()?;
let (type_, span) = self.parse_type()?;
Ok(FunctionOutput { mode, type_, span, id: self.node_builder.next_id() })
Ok(functions::Input { identifier: name, mode, type_, span: name.span, id: self.node_builder.next_id() })
}
/// Returns a [`Output`] AST node if the next tokens represent a function output.
fn parse_output(&mut self) -> Result<Output> {
if self.peek_is_external() {
let external = self.expect_identifier()?;
let mut span = external.span;
// Parse `.leo/` or `.aleo/`.
self.eat(&Token::Dot);
self.eat_any(&[Token::Leo, Token::Aleo]);
self.eat(&Token::Div);
// Parse record name.
let record = self.expect_identifier()?;
// Parse `.record`.
self.eat(&Token::Dot);
self.eat(&Token::Record);
span = span + self.prev_token.span;
Ok(Output::External(External {
identifier: Identifier::new(Symbol::intern("dummy"), self.node_builder.next_id()),
program_name: external,
record,
span,
id: self.node_builder.next_id(),
}))
} else {
Ok(Output::Internal(self.parse_function_output()?))
}
}
pub fn peek_is_external(&self) -> bool {
matches!((&self.token.token, self.look_ahead(1, |t| &t.token)), (Token::Identifier(_), Token::Dot))
let mode = self.parse_mode()?;
let (type_, span) = self.parse_type()?;
Ok(Output { mode, type_, span, id: self.node_builder.next_id() })
}
/// Returns an [`Annotation`] AST node if the next tokens represent an annotation.

View File

@ -16,7 +16,7 @@
use crate::CodeGenerator;
use leo_ast::{functions, Composite, Function, Mapping, Mode, Program, ProgramScope, Type, Variant};
use leo_ast::{Composite, Function, Mapping, Member, Mode, Program, ProgramScope, Type, Variant};
use indexmap::IndexMap;
use itertools::Itertools;
@ -51,8 +51,21 @@ impl<'a> CodeGenerator<'a> {
let order = self.struct_graph.post_order().unwrap();
// Create a mapping of symbols to references of structs so can perform constant-time lookups.
let structs_map: IndexMap<Symbol, &Composite> =
program_scope.structs.iter().map(|(name, struct_)| (*name, struct_)).collect();
let structs_map: IndexMap<Symbol, &Composite> = self
.symbol_table
.structs
.iter()
.filter_map(|(name, struct_)| {
// Only include structs and local records.
if !(struct_.is_record
&& struct_.external.map(|program| program != self.program_id.unwrap().name.name).unwrap_or(false))
{
Some((name.name, struct_))
} else {
None
}
})
.collect();
// Visit each `Struct` or `Record` in the post-ordering and produce an Aleo struct or record.
program_string.push_str(
@ -60,9 +73,9 @@ impl<'a> CodeGenerator<'a> {
.into_iter()
.map(|name| {
match structs_map.get(&name) {
// If the struct is found, it is a local struct.
// If the struct is found, it is a struct or external record.
Some(struct_) => self.visit_struct_or_record(struct_),
// If the struct is not found, it is an imported struct.
// If the struct is not found, it is an imported record.
None => String::new(),
}
})
@ -125,8 +138,19 @@ impl<'a> CodeGenerator<'a> {
self.composite_mapping.insert(&record.identifier.name, (true, output_string.clone()));
writeln!(output_string, " {}:", record.identifier).expect("failed to write to string"); // todo: check if this is safe from name conflicts.
let mut members = Vec::with_capacity(record.members.len());
let mut member_map: IndexMap<Symbol, Member> =
record.members.clone().into_iter().map(|member| (member.identifier.name, member)).collect();
// Add the owner field to the beginning of the members list.
// Note that type checking ensures that the owner field exists.
members.push(member_map.shift_remove(&sym::owner).unwrap());
// Add the remaining fields to the members list.
members.extend(member_map.into_iter().map(|(_, member)| member));
// Construct and append the record variables.
for var in record.members.iter() {
for var in members.iter() {
let mode = match var.mode {
Mode::Constant => "constant",
Mode::Public => "public",
@ -169,20 +193,12 @@ impl<'a> CodeGenerator<'a> {
let register_string = format!("r{}", self.next_register);
self.next_register += 1;
let type_string = match input {
functions::Input::Internal(input) => {
self.variable_mapping.insert(&input.identifier.name, register_string.clone());
let visibility = match (self.is_transition_function, input.mode) {
(true, Mode::None) => Mode::Private,
_ => input.mode,
};
self.visit_type_with_visibility(&input.type_, visibility)
}
functions::Input::External(input) => {
self.variable_mapping.insert(&input.identifier.name, register_string.clone());
format!("{}.aleo/{}.record", input.program_name, input.record)
}
self.variable_mapping.insert(&input.identifier.name, register_string.clone());
let visibility = match (self.is_transition_function, input.mode) {
(true, Mode::None) => Mode::Private,
_ => input.mode,
};
let type_string = self.visit_type_with_visibility(&input.type_, visibility);
writeln!(function_string, " input {register_string} as {type_string};",)
.expect("failed to write to string");
@ -223,23 +239,15 @@ impl<'a> CodeGenerator<'a> {
let register_string = format!("r{}", self.next_register);
self.next_register += 1;
// TODO: Dedup code.
let type_string = match input {
functions::Input::Internal(input) => {
self.variable_mapping.insert(&input.identifier.name, register_string.clone());
self.variable_mapping.insert(&input.identifier.name, register_string.clone());
let visibility = match (self.is_transition_function, input.mode) {
(true, Mode::None) => Mode::Public,
_ => input.mode,
};
self.visit_type_with_visibility(&input.type_, visibility)
}
functions::Input::External(input) => {
self.variable_mapping.insert(&input.program_name.name, register_string.clone());
format!("{}.aleo/{}.record", input.program_name, input.record)
}
let visibility = match (self.is_transition_function, input.mode) {
(true, Mode::None) => Mode::Public,
_ => input.mode,
};
let type_string = self.visit_type_with_visibility(&input.type_, visibility);
writeln!(function_string, " input {register_string} as {type_string};",)
.expect("failed to write to string");
}

View File

@ -28,7 +28,6 @@ use leo_ast::{
ExpressionStatement,
IterationStatement,
Mode,
Output,
ReturnStatement,
Statement,
};
@ -103,38 +102,28 @@ impl<'a> CodeGenerator<'a> {
.iter()
.zip_eq(output)
.map(|(operand, output)| {
match output {
Output::Internal(output) => {
let visibility = if self.is_transition_function {
match self.in_finalize {
// If in finalize block, the default visibility is public.
true => match output.mode {
Mode::None => Mode::Public,
mode => mode,
},
// If not in finalize block, the default visibility is private.
false => match output.mode {
Mode::None => Mode::Private,
mode => mode,
},
}
} else {
// Only program functions have visibilities associated with their outputs.
Mode::None
};
format!(
" output {} as {};\n",
operand,
self.visit_type_with_visibility(&output.type_, visibility)
)
let visibility = if self.is_transition_function {
match self.in_finalize {
// If in finalize block, the default visibility is public.
true => match output.mode {
Mode::None => Mode::Public,
mode => mode,
},
// If not in finalize block, the default visibility is private.
false => match output.mode {
Mode::None => Mode::Private,
mode => mode,
},
}
Output::External(output) => {
format!(
" output {} as {}.aleo/{}.record;\n",
operand, output.program_name, output.record,
)
}
}
} else {
// Only program functions have visibilities associated with their outputs.
Mode::None
};
format!(
" output {} as {};\n",
operand,
self.visit_type_with_visibility(&output.type_, visibility)
)
})
.join("");

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 crate::CodeGenerator;
use crate::{CodeGenerator, Location};
use leo_ast::{Mode, Type};
@ -48,10 +48,19 @@ impl<'a> CodeGenerator<'a> {
pub(crate) fn visit_type_with_visibility(&self, type_: &'a Type, visibility: Mode) -> String {
match type_ {
// When the type is a record.
// Note that this unwrap is safe because all composite types have been added to the mapping.
Type::Composite(struct_) if self.composite_mapping.get(&struct_.id.name).unwrap().0 => {
format!("{}.record", struct_.id.name)
// When the type is a record
Type::Composite(struct_)
if self
.symbol_table
.lookup_struct(Location::from(struct_), self.program_id.map(|p| p.name.name))
.unwrap()
.is_record =>
{
if struct_.program == self.program_id.map(|p| p.name.name) || struct_.program.is_none() {
format!("{}.record", struct_.id.name)
} else {
format!("{}.aleo/{}.record", struct_.program.unwrap(), struct_.id.name)
}
}
_ => match visibility {
Mode::None => Self::visit_type(type_),

View File

@ -41,7 +41,7 @@ pub enum DiGraphError<N: Node> {
}
/// A directed graph.
#[derive(Debug)]
#[derive(Debug, PartialEq, Eq)]
pub struct DiGraph<N: Node> {
/// The set of nodes in the graph.
nodes: IndexSet<N>,
@ -107,6 +107,17 @@ impl<N: Node> DiGraph<N> {
Ok(finished)
}
/// Retains a subset of the nodes, and removes all edges in which the source or destination is not in the subset.
pub fn retain_nodes(&mut self, nodes: &IndexSet<N>) {
// Remove the nodes from the set of nodes.
self.nodes.retain(|node| nodes.contains(node));
self.edges.retain(|node, _| nodes.contains(node));
// Remove the edges that reference the nodes.
for (_, children) in self.edges.iter_mut() {
children.retain(|child| nodes.contains(child));
}
}
// Detects if there is a cycle in the graph starting from the given node, via a recursive depth-first search.
// If there is no cycle, returns `None`.
// If there is a cycle, returns the node that was most recently discovered.
@ -214,4 +225,33 @@ mod test {
check_post_order(&graph, &[1, 2, 3, 4, 5]);
}
#[test]
fn test_retain_nodes() {
let mut graph = DiGraph::<u32>::new(IndexSet::new());
graph.add_edge(1, 2);
graph.add_edge(1, 3);
graph.add_edge(1, 5);
graph.add_edge(2, 3);
graph.add_edge(2, 4);
graph.add_edge(2, 5);
graph.add_edge(3, 4);
graph.add_edge(4, 5);
let mut nodes = IndexSet::new();
nodes.insert(1);
nodes.insert(2);
nodes.insert(3);
graph.retain_nodes(&nodes);
let mut expected = DiGraph::<u32>::new(IndexSet::new());
expected.add_edge(1, 2);
expected.add_edge(1, 3);
expected.add_edge(2, 3);
expected.edges.insert(3, IndexSet::new());
assert_eq!(graph, expected);
}
}

View File

@ -14,6 +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 leo_span::Symbol;
use serde::{Deserialize, Deserializer, Serialize, Serializer};
@ -31,6 +32,12 @@ impl Location {
}
}
impl From<&CompositeType> for Location {
fn from(composite: &CompositeType) -> Location {
Location::new(composite.program, composite.id.name)
}
}
impl Serialize for Location {
fn serialize<S>(&self, serializer: S) -> leo_errors::Result<S::Ok, S::Error>
where

View File

@ -28,7 +28,7 @@ use std::cell::RefCell;
use leo_ast::{normalize_json_value, remove_key_from_json, Composite, Function};
use leo_errors::{AstError, Result};
use leo_span::Span;
use leo_span::{Span, Symbol};
use indexmap::IndexMap;
use serde::{Deserialize, Serialize};
@ -59,18 +59,19 @@ pub struct SymbolTable {
impl SymbolTable {
/// Recursively checks if the symbol table contains an entry for the given symbol.
/// Leo does not allow any variable shadowing or overlap between different symbols.
pub fn check_shadowing(&self, location: &Location, span: Span) -> Result<()> {
pub fn check_shadowing(&self, location: &Location, is_struct: bool, span: Span) -> Result<()> {
if self.functions.contains_key(location) {
return Err(AstError::shadowed_function(location.name, span).into());
} else if let Some(existing) = self.structs.get(location) {
return match existing.is_record {
true => Err(AstError::shadowed_record(location.name, span).into()),
false => Err(AstError::shadowed_struct(location.name, span).into()),
};
} else if self.structs.get(location).is_some() && !(location.program.is_none() && is_struct) {
// The second half of the conditional makes sure that structs are only caught for shadowing local records during ST creation, not for redefinition of external structs.
return Err(AstError::shadowed_record(location.name, span).into());
} else if self.structs.get(&Location::new(None, location.name)).is_some() && !is_struct {
// Struct redefinition is allowed. If there are more than one occurrences, the error will be caught in the creator pass.
return Err(AstError::shadowed_struct(location.name, span).into());
} else if self.variables.contains_key(location) {
return Err(AstError::shadowed_variable(location.name, span).into());
}
if let Some(parent) = self.parent.as_ref() { parent.check_shadowing(location, span) } else { Ok(()) }
if let Some(parent) = self.parent.as_ref() { parent.check_shadowing(location, is_struct, span) } else { Ok(()) }
}
/// Returns the current scope index.
@ -84,7 +85,7 @@ impl SymbolTable {
/// Inserts a function into the symbol table.
pub fn insert_fn(&mut self, location: Location, insert: &Function) -> Result<()> {
let id = self.scope_index();
self.check_shadowing(&location, insert.span)?;
self.check_shadowing(&location, false, insert.span)?;
self.functions.insert(location, Self::new_function_symbol(id, insert));
self.scopes.push(Default::default());
Ok(())
@ -92,18 +93,45 @@ impl SymbolTable {
/// Inserts a struct into the symbol table.
pub fn insert_struct(&mut self, location: Location, insert: &Composite) -> Result<()> {
match self.check_shadowing(&location, insert.span) {
Ok(_) => {
self.structs.insert(location, insert.clone());
Ok(())
// Check shadowing.
self.check_shadowing(&location, !insert.is_record, insert.span)?;
if insert.is_record {
// Insert the record into the symbol table.
self.structs.insert(location, insert.clone());
} else {
if let Some(struct_) = self.structs.get(&Location::new(None, location.name)) {
// Allow redefinition of external structs so long as the definitions match.
if !self.check_eq_struct(insert, struct_) {
return Err(AstError::redefining_external_struct(location.name, insert.span).into());
}
}
Err(e) => Err(e),
// Insert with program location set to `None` to reflect that in snarkVM structs are not attached to programs (unlike records).
self.structs.insert(Location::new(None, location.name), insert.clone());
}
Ok(())
}
/// Checks if two structs are equal.
fn check_eq_struct(&self, new: &Composite, old: &Composite) -> bool {
if new.is_record || old.is_record {
return false;
}
if new.members.len() != old.members.len() {
return false;
}
for (member1, member2) in new.members.iter().zip(old.members.iter()) {
if member1.name() != member2.name() || !member1.type_.eq_flat_relax_composite(&member2.type_) {
return false;
}
}
true
}
/// Inserts a variable into the symbol table.
pub fn insert_variable(&mut self, location: Location, insert: VariableSymbol) -> Result<()> {
self.check_shadowing(&location, insert.span)?;
self.check_shadowing(&location, false, insert.span)?;
self.variables.insert(location, insert);
Ok(())
}
@ -131,14 +159,15 @@ impl SymbolTable {
}
/// Attempts to lookup a struct in the symbol table.
pub fn lookup_struct(&self, location: Location) -> Option<&Composite> {
pub fn lookup_struct(&self, location: Location, main_program: Option<Symbol>) -> Option<&Composite> {
if let Some(struct_) = self.structs.get(&location) {
Some(struct_)
} else if let Some(parent) = self.parent.as_ref() {
parent.lookup_struct(location)
} else {
None
return Some(struct_);
} else if location.program == main_program {
if let Some(struct_) = self.structs.get(&Location::new(None, location.name)) {
return Some(struct_);
}
}
if let Some(parent) = self.parent.as_ref() { parent.lookup_struct(location, main_program) } else { None }
}
/// Attempts to lookup a variable in the symbol table.

View File

@ -83,7 +83,7 @@ impl ExpressionReconstructor for Flattener<'_> {
};
// Note that type checking guarantees that both expressions have the same same type. This is a sanity check.
assert!(first_type.eq_flat(&second_type));
assert!(first_type.eq_flat_relax_composite(&second_type));
match &first_type {
Type::Array(first_type) => self.ternary_array(first_type, &input.condition, &first, &second),
@ -91,7 +91,7 @@ impl ExpressionReconstructor for Flattener<'_> {
// Get the struct definitions.
let first_type = self
.symbol_table
.lookup_struct(Location::new(first_type.program, first_type.id.name))
.lookup_struct(Location::new(self.program, first_type.id.name), self.program)
.unwrap();
self.ternary_struct(first_type, &input.condition, &first, &second)
}

View File

@ -16,9 +16,29 @@
use crate::Flattener;
use leo_ast::{Finalize, Function, ProgramReconstructor, StatementReconstructor};
use leo_ast::{Finalize, Function, ProgramReconstructor, ProgramScope, Statement, StatementReconstructor};
impl ProgramReconstructor for Flattener<'_> {
/// Flattens a program scope.
fn reconstruct_program_scope(&mut self, input: ProgramScope) -> ProgramScope {
self.program = Some(input.program_id.name.name);
ProgramScope {
program_id: input.program_id,
structs: input.structs.into_iter().map(|(i, c)| (i, self.reconstruct_struct(c))).collect(),
mappings: input.mappings.into_iter().map(|(id, mapping)| (id, self.reconstruct_mapping(mapping))).collect(),
functions: input.functions.into_iter().map(|(i, f)| (i, self.reconstruct_function(f))).collect(),
consts: input
.consts
.into_iter()
.map(|(i, c)| match self.reconstruct_const(c) {
(Statement::Const(declaration), _) => (i, declaration),
_ => unreachable!("`reconstruct_const` can only return `Statement::Const`"),
})
.collect(),
span: input.span,
}
}
/// Flattens a function's body and finalize block, if it exists.
fn reconstruct_function(&mut self, function: Function) -> Function {
// First, flatten the finalize block. This allows us to initialize self.finalizes correctly.

View File

@ -47,6 +47,7 @@ use leo_ast::{
Type,
UnitExpression,
};
use leo_span::Symbol;
pub struct Flattener<'a> {
/// The symbol table associated with the program.
@ -64,6 +65,8 @@ pub struct Flattener<'a> {
/// Note that returns are inserted in the order they are encountered during a pre-order traversal of the AST.
/// Note that type checking guarantees that there is at most one return in a basic block.
pub(crate) returns: Vec<(Option<Expression>, ReturnStatement)>,
/// The program name.
pub(crate) program: Option<Symbol>,
}
impl<'a> Flattener<'a> {
@ -73,7 +76,15 @@ impl<'a> Flattener<'a> {
node_builder: &'a NodeBuilder,
assigner: &'a Assigner,
) -> Self {
Self { symbol_table, type_table, node_builder, assigner, condition_stack: Vec::new(), returns: Vec::new() }
Self {
symbol_table,
type_table,
node_builder,
assigner,
condition_stack: Vec::new(),
returns: Vec::new(),
program: None,
}
}
/// Clears the state associated with `ReturnStatements`, returning the ones that were previously stored.

View File

@ -254,7 +254,7 @@ impl ExpressionConsumer for StaticSingleAssigner<'_> {
// Lookup the struct definition.
// Note that type checking guarantees that the correct struct definition exists.
let struct_definition: &Composite =
self.symbol_table.lookup_struct(Location::new(self.program, input.name.name)).unwrap();
self.symbol_table.lookup_struct(Location::new(self.program, input.name.name), self.program).unwrap();
// Initialize the list of reordered members.
let mut reordered_members = Vec::with_capacity(members.len());

View File

@ -14,8 +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 indexmap::IndexSet;
use leo_ast::*;
use leo_errors::emitter::Handler;
use leo_errors::{emitter::Handler, AstError, LeoError};
use leo_span::Symbol;
use crate::{Location, SymbolTable, VariableSymbol, VariableType};
@ -32,11 +33,13 @@ pub struct SymbolTableCreator<'a> {
program_name: Option<Symbol>,
/// Whether or not traversing stub.
is_stub: bool,
/// The set of local structs that have been successfully visited.
structs: IndexSet<Symbol>,
}
impl<'a> SymbolTableCreator<'a> {
pub fn new(handler: &'a Handler) -> Self {
Self { symbol_table: Default::default(), handler, program_name: None, is_stub: false }
Self { symbol_table: Default::default(), handler, program_name: None, is_stub: false, structs: IndexSet::new() }
}
}
@ -65,7 +68,11 @@ impl<'a> ProgramVisitor<'a> for SymbolTableCreator<'a> {
}
fn visit_struct(&mut self, input: &'a Composite) {
if let Err(err) = self.symbol_table.insert_struct(Location::new(self.program_name, input.name()), input) {
// Allow up to one local redefinition for each external struct.
if !input.is_record && !self.structs.insert(input.name()) {
return self.handler.emit_err::<LeoError>(AstError::shadowed_struct(input.name(), input.span).into());
}
if let Err(err) = self.symbol_table.insert_struct(Location::new(input.external, input.name()), input) {
self.handler.emit_err(err);
}
}
@ -115,7 +122,7 @@ impl<'a> ProgramVisitor<'a> for SymbolTableCreator<'a> {
}
fn visit_struct_stub(&mut self, input: &'a Composite) {
if let Err(err) = self.symbol_table.insert_struct(Location::new(self.program_name, input.name()), input) {
if let Err(err) = self.symbol_table.insert_struct(Location::new(input.external, input.name()), input) {
self.handler.emit_err(err);
}
}

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 crate::{Location, TypeChecker};
use crate::{Location, TypeChecker, VariableSymbol};
use leo_ast::*;
use leo_errors::{emitter::Handler, TypeCheckerError};
@ -206,11 +206,7 @@ impl<'a> ExpressionVisitor<'a> for TypeChecker<'a> {
match self.visit_expression(&access.inner, &None) {
Some(Type::Composite(struct_)) => {
// Retrieve the struct definition associated with `identifier`.
let struct_ = self
.symbol_table
.borrow()
.lookup_struct(Location::new(struct_.program, struct_.id.name))
.cloned();
let struct_ = self.lookup_struct(struct_.program, struct_.id.name);
if let Some(struct_) = struct_ {
// Check that `access.name` is a member of the struct.
match struct_.members.iter().find(|member| member.name() == access.name.name) {
@ -613,7 +609,7 @@ impl<'a> ExpressionVisitor<'a> for TypeChecker<'a> {
// Check function argument types.
func.input.iter().zip(input.arguments.iter()).for_each(|(expected, argument)| {
self.visit_expression(argument, &Some(expected.type_()));
self.visit_expression(argument, &Some(expected.type_().clone()));
});
// Add the call to the call graph.
@ -651,9 +647,7 @@ impl<'a> ExpressionVisitor<'a> for TypeChecker<'a> {
}
fn visit_struct_init(&mut self, input: &'a StructExpression, additional: &Self::AdditionalInput) -> Self::Output {
let struct_ =
self.symbol_table.borrow().lookup_struct(Location::new(self.program_name, input.name.name)).cloned();
if let Some(struct_) = struct_ {
if let Some(struct_) = self.lookup_struct(self.program_name, input.name.name) {
// Check struct type name.
let ret = self.check_expected_struct(&struct_, additional, input.name.span());
@ -698,12 +692,14 @@ impl<'a> ExpressionVisitor<'a> for TypeChecker<'a> {
}
fn visit_identifier(&mut self, input: &'a Identifier, expected: &Self::AdditionalInput) -> Self::Output {
let var_: VariableSymbol;
if let Some(var) = self.symbol_table.borrow().lookup_variable(Location::new(None, input.name)) {
Some(self.assert_and_return_type(var.type_.clone(), expected, input.span()))
var_ = var.clone();
} else {
self.emit_err(TypeCheckerError::unknown_sym("variable", input.name, input.span()));
None
return None;
}
Some(self.assert_and_return_type(var_.type_.clone(), expected, input.span()))
}
fn visit_literal(&mut self, input: &'a Literal, expected: &Self::AdditionalInput) -> Self::Output {
@ -771,14 +767,16 @@ impl<'a> ExpressionVisitor<'a> for TypeChecker<'a> {
fn visit_locator(&mut self, input: &'a LocatorExpression, expected: &Self::AdditionalInput) -> Self::Output {
// Check that the locator points to a valid resource in the ST.
let loc_: VariableSymbol;
if let Some(var) =
self.symbol_table.borrow().lookup_variable(Location::new(Some(input.program.name.name), input.name))
{
Some(self.assert_and_return_type(var.type_.clone(), expected, input.span()))
loc_ = var.clone();
} else {
self.emit_err(TypeCheckerError::unknown_sym("variable", input.name, input.span()));
None
return None;
}
Some(self.assert_and_return_type(loc_.type_.clone(), expected, input.span()))
}
fn visit_ternary(&mut self, input: &'a TernaryExpression, expected: &Self::AdditionalInput) -> Self::Output {

View File

@ -201,34 +201,35 @@ impl<'a> ProgramVisitor<'a> for TypeChecker<'a> {
check_has_field(sym::owner, Type::Address);
}
for Member { mode, identifier, type_, span, .. } in input.members.iter() {
// Check that the member type is not a tuple.
if matches!(type_, Type::Tuple(_)) {
self.emit_err(TypeCheckerError::composite_data_type_cannot_contain_tuple(
if input.is_record { "record" } else { "struct" },
identifier.span,
));
}
// Ensure that there are no record members.
self.assert_member_is_not_record(identifier.span, input.identifier.name, type_);
// If the member is a struct, add it to the struct dependency graph.
// Note that we have already checked that each member is defined and valid.
if let Type::Composite(struct_member_type) = type_ {
// Note that since there are no cycles in the program dependency graph, there are no cycles in the struct dependency graph caused by external structs.
self.struct_graph.add_edge(input.identifier.name, struct_member_type.id.name);
} else if let Type::Array(array_type) = type_ {
// Get the base element type.
let base_element_type = array_type.base_element_type();
// If the base element type is a struct, then add it to the struct dependency graph.
if let Type::Identifier(member_type) = base_element_type {
self.struct_graph.add_edge(input.identifier.name, member_type.name);
if !(input.is_record && self.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(_)) {
self.emit_err(TypeCheckerError::composite_data_type_cannot_contain_tuple(
if input.is_record { "record" } else { "struct" },
identifier.span,
));
}
// Ensure that there are no record members.
self.assert_member_is_not_record(identifier.span, input.identifier.name, type_);
// If the member is a struct, add it to the struct dependency graph.
// Note that we have already checked that each member is defined and valid.
if let Type::Composite(struct_member_type) = type_ {
// Note that since there are no cycles in the program dependency graph, there are no cycles in the struct dependency graph caused by external structs.
self.struct_graph.add_edge(input.identifier.name, struct_member_type.id.name);
} else if let Type::Array(array_type) = type_ {
// Get the base element type.
let base_element_type = array_type.base_element_type();
// If the base element type is a struct, then add it to the struct dependency graph.
if let Type::Composite(member_type) = base_element_type {
self.struct_graph.add_edge(input.identifier.name, member_type.id.name);
}
}
}
// If the input is a struct, then check that the member does not have a mode.
if !input.is_record && !matches!(mode, Mode::None) {
self.emit_err(TypeCheckerError::struct_cannot_have_member_mode(*span));
// If the input is a struct, then check that the member does not have a mode.
if !input.is_record && !matches!(mode, Mode::None) {
self.emit_err(TypeCheckerError::struct_cannot_have_member_mode(*span));
}
}
}
}
@ -240,9 +241,7 @@ impl<'a> ProgramVisitor<'a> for TypeChecker<'a> {
match input.key_type.clone() {
Type::Tuple(_) => self.emit_err(TypeCheckerError::invalid_mapping_type("key", "tuple", input.span)),
Type::Composite(struct_type) => {
if let Some(struct_) =
self.symbol_table.borrow().lookup_struct(Location::new(struct_type.program, struct_type.id.name))
{
if let Some(struct_) = self.lookup_struct(struct_type.program, struct_type.id.name) {
if struct_.is_record {
self.emit_err(TypeCheckerError::invalid_mapping_type("key", "record", input.span));
}
@ -259,9 +258,7 @@ impl<'a> ProgramVisitor<'a> for TypeChecker<'a> {
match input.value_type.clone() {
Type::Tuple(_) => self.emit_err(TypeCheckerError::invalid_mapping_type("value", "tuple", input.span)),
Type::Composite(struct_type) => {
if let Some(struct_) =
self.symbol_table.borrow().lookup_struct(Location::new(struct_type.program, struct_type.id.name))
{
if let Some(struct_) = self.lookup_struct(struct_type.program, struct_type.id.name) {
if struct_.is_record {
self.emit_err(TypeCheckerError::invalid_mapping_type("value", "record", input.span));
}

View File

@ -209,7 +209,7 @@ impl<'a> StatementVisitor<'a> for TypeChecker<'a> {
// Check that the type of the definition is defined.
self.assert_type_is_valid(&input.type_, input.span);
// Check that the type of the definition is not a unit type, singleton tuple type, nested tuple type, or external struct type.
// Check that the type of the definition is not a unit type, singleton tuple type, or nested tuple type.
match &input.type_ {
// If the type is an empty tuple, return an error.
Type::Unit => self.emit_err(TypeCheckerError::lhs_must_be_identifier_or_tuple(input.span)),
@ -221,19 +221,12 @@ impl<'a> StatementVisitor<'a> for TypeChecker<'a> {
if matches!(type_, Type::Tuple(_)) {
self.emit_err(TypeCheckerError::nested_tuple_type(input.span))
}
if let Type::Composite(composite) = type_ {
self.assert_internal_struct(composite, input.span);
}
}
}
},
Type::Mapping(_) | Type::Err => unreachable!(
"Parsing guarantees that `mapping` and `err` types are not present at this location in the AST."
),
// Make sure there are no instances of external structs created.
Type::Composite(composite) => {
self.assert_internal_struct(composite, input.span);
}
// Otherwise, the type is valid.
_ => (), // Do nothing
}
@ -450,7 +443,7 @@ impl<'a> StatementVisitor<'a> for TypeChecker<'a> {
// Check function argument types.
finalize.input.iter().zip(arguments.iter()).for_each(|(expected, argument)| {
self.visit_expression(argument, &Some(expected.type_()));
self.visit_expression(argument, &Some(expected.type_().clone()));
});
}
}

View File

@ -28,7 +28,6 @@ use leo_ast::{
MappingType,
Mode,
Node,
Output,
Type,
Variant,
};
@ -37,6 +36,7 @@ use leo_span::{Span, Symbol};
use snarkvm::console::network::{Network, Testnet3};
use indexmap::IndexSet;
use itertools::Itertools;
use std::cell::RefCell;
@ -67,6 +67,8 @@ pub struct TypeChecker<'a> {
pub(crate) program_name: Option<Symbol>,
/// Whether or not we are currently traversing a stub.
pub(crate) is_stub: bool,
/// The set of used composites.
pub(crate) used_structs: IndexSet<Symbol>,
}
const ADDRESS_TYPE: Type = Type::Address;
@ -116,6 +118,7 @@ const MAGNITUDE_TYPES: [Type; 3] =
impl<'a> TypeChecker<'a> {
/// Returns a new type checker given a symbol table and error handler.
pub fn new(symbol_table: SymbolTable, type_table: &'a TypeTable, handler: &'a Handler) -> Self {
// Initialize w/ only structs and non-external records.
let struct_names = symbol_table.structs.keys().map(|loc| loc.name).collect();
let function_names = symbol_table.functions.keys().map(|loc| loc.name).collect();
@ -134,6 +137,7 @@ impl<'a> TypeChecker<'a> {
is_return: false,
program_name: None,
is_stub: true,
used_structs: IndexSet::new(),
}
}
@ -176,20 +180,9 @@ impl<'a> TypeChecker<'a> {
}
/// Emits an error if the two given types are not equal.
pub(crate) fn check_eq_types(&self, t1: &Option<Type>, t2: &Option<Type>, span: Span) {
pub(crate) fn check_eq_types(&mut self, t1: &Option<Type>, t2: &Option<Type>, span: Span) {
match (t1, t2) {
(Some(t1), Some(t2)) if !Type::eq_flat(t1, t2) => {
if let (Type::Composite(left), Type::Composite(right)) = (t1, t2) {
if !self.check_duplicate_struct(left.id.name, left.program.unwrap(), right.program.unwrap()) {
self.emit_err(TypeCheckerError::struct_definitions_dont_match(
left.id.name.to_string(),
left.program.unwrap().to_string(),
right.program.unwrap().to_string(),
span,
));
}
return;
}
(Some(t1), Some(t2)) if !Type::eq_flat_relax_composite(t1, t2) => {
self.emit_err(TypeCheckerError::type_should_be(t1, t2, span))
}
(Some(type_), None) | (None, Some(type_)) => {
@ -201,7 +194,7 @@ impl<'a> TypeChecker<'a> {
/// Use this method when you know the actual type.
/// Emits an error to the handler if the `actual` type is not equal to the `expected` type.
pub(crate) fn assert_and_return_type(&self, actual: Type, expected: &Option<Type>, span: Span) -> Type {
pub(crate) fn assert_and_return_type(&mut self, actual: Type, expected: &Option<Type>, span: Span) -> Type {
if expected.is_some() {
self.check_eq_types(&Some(actual.clone()), expected, span);
}
@ -209,8 +202,10 @@ impl<'a> TypeChecker<'a> {
}
/// Emits an error to the error handler if the `actual` type is not equal to the `expected` type.
pub(crate) fn assert_type(&self, actual: &Option<Type>, expected: &Type, span: Span) {
self.check_type(|actual: &Type| actual.eq_flat(expected), expected.to_string(), actual, span)
pub(crate) fn assert_type(&mut self, actual: &Option<Type>, expected: &Type, span: Span) {
if let Some(actual) = actual {
self.check_eq_types(&Some(actual.clone()), &Some(expected.clone()), span);
}
}
/// Emits an error to the error handler if the given type is not an address.
@ -403,7 +398,7 @@ impl<'a> TypeChecker<'a> {
/// Emits an error if the correct number of arguments are not provided.
/// Emits an error if the arguments are not of the correct type.
pub(crate) fn check_core_function_call(
&self,
&mut self,
core_function: CoreFunction,
arguments: &[(Option<Type>, Span)],
function_span: Span,
@ -1074,60 +1069,11 @@ impl<'a> TypeChecker<'a> {
Type::Composite(current_struct)
}
/// Determines if two struct definitions from different programs match or not.
pub(crate) fn check_duplicate_struct(&self, name: Symbol, program_1: Symbol, program_2: Symbol) -> bool {
// Make sure that both structs have been defined already.
let st = self.symbol_table.borrow();
let (struct_1, struct_2) = match (
st.lookup_struct(Location::new(Some(program_1), name)),
st.lookup_struct(Location::new(Some(program_2), name)),
) {
(Some(struct_1), Some(struct_2)) => (struct_1, struct_2),
_ => return false,
};
// Make sure both structs have the same number of members
if struct_1.members.len() != struct_2.members.len() {
return false;
}
// Make sure that all members of the structs match.
for (member_1, member_2) in struct_1.members.iter().zip(struct_2.members.iter()) {
// Make sure that the member names match.
if member_1.identifier.name != member_2.identifier.name {
return false;
}
// Make sure that the member types match.
if member_1.type_.eq_flat(&member_2.type_) {
continue;
}
// Recursively check that the member types match in the case that the type is struct.
return if let (Type::Composite(internal_struct_1), Type::Composite(internal_struct_2)) =
(&member_1.type_, &member_2.type_)
{
self.check_duplicate_struct(
internal_struct_1.id.name,
internal_struct_1.program.unwrap(),
internal_struct_2.program.unwrap(),
)
} else {
false
};
}
true
}
/// Emits an error if the struct member is a record type.
pub(crate) fn assert_member_is_not_record(&self, span: Span, parent: Symbol, type_: &Type) {
pub(crate) fn assert_member_is_not_record(&mut self, span: Span, parent: Symbol, type_: &Type) {
match type_ {
Type::Composite(struct_)
if self
.symbol_table
.borrow()
.lookup_struct(Location::new(struct_.program, struct_.id.name))
.map_or(false, |struct_| struct_.is_record) =>
if self.lookup_struct(struct_.program, struct_.id.name).map_or(false, |struct_| struct_.is_record) =>
{
self.emit_err(TypeCheckerError::struct_or_record_cannot_contain_record(parent, struct_.id.name, span))
}
@ -1141,7 +1087,7 @@ impl<'a> TypeChecker<'a> {
}
/// Emits an error if the type or its constituent types is not valid.
pub(crate) fn assert_type_is_valid(&self, type_: &Type, span: Span) -> bool {
pub(crate) fn assert_type_is_valid(&mut self, type_: &Type, span: Span) -> bool {
let mut is_valid = true;
match type_ {
// String types are temporarily disabled.
@ -1150,13 +1096,7 @@ impl<'a> TypeChecker<'a> {
self.emit_err(TypeCheckerError::strings_are_not_supported(span));
}
// Check that the named composite type has been defined.
Type::Composite(struct_)
if self
.symbol_table
.borrow()
.lookup_struct(Location::new(struct_.program, struct_.id.name))
.is_none() =>
{
Type::Composite(struct_) if self.lookup_struct(struct_.program, struct_.id.name).is_none() => {
is_valid = false;
self.emit_err(TypeCheckerError::undefined_type(struct_.id.name, span));
}
@ -1188,11 +1128,7 @@ impl<'a> TypeChecker<'a> {
// Array elements cannot be records.
Type::Composite(struct_type) => {
// Look up the type.
if let Some(struct_) = self
.symbol_table
.borrow()
.lookup_struct(Location::new(struct_type.program, struct_type.id.name))
{
if let Some(struct_) = self.lookup_struct(struct_type.program, struct_type.id.name) {
// Check that the type is not a record.
if struct_.is_record {
self.emit_err(TypeCheckerError::array_element_cannot_be_record(span));
@ -1229,7 +1165,7 @@ impl<'a> TypeChecker<'a> {
// Type check the function's parameters.
function.input.iter().for_each(|input_var| {
// Check that the type of input parameter is defined.
self.assert_type_is_valid(&input_var.type_(), input_var.span());
self.assert_type_is_valid(input_var.type_(), input_var.span());
// Check that the type of the input parameter is not a tuple.
if matches!(input_var.type_(), Type::Tuple(_)) {
self.emit_err(TypeCheckerError::function_cannot_take_tuple_as_input(input_var.span()))
@ -1250,9 +1186,7 @@ impl<'a> TypeChecker<'a> {
// If the function is not a transition function, then it cannot have a record as input
if let Type::Composite(struct_) = input_var.type_() {
if let Some(val) =
self.symbol_table.borrow().lookup_struct(Location::new(struct_.program, struct_.id.name))
{
if let Some(val) = self.lookup_struct(struct_.program, struct_.id.name) {
if val.is_record && !matches!(function.variant, Variant::Transition) {
self.emit_err(TypeCheckerError::function_cannot_input_or_output_a_record(input_var.span()));
}
@ -1264,7 +1198,7 @@ impl<'a> TypeChecker<'a> {
if let Err(err) = self.symbol_table.borrow_mut().insert_variable(
Location::new(None, input_var.identifier().name),
VariableSymbol {
type_: input_var.type_(),
type_: input_var.type_().clone(),
span: input_var.identifier().span(),
declaration: VariableType::Input(input_var.mode()),
},
@ -1276,47 +1210,36 @@ impl<'a> TypeChecker<'a> {
// Type check the function's return type.
// Note that checking that each of the component types are defined is sufficient to check that `output_type` is defined.
function.output.iter().for_each(|output| {
match output {
Output::External(external) => {
// If the function is not a transition function, then it cannot output a record.
// Note that an external output must always be a record.
if !matches!(function.variant, Variant::Transition) {
self.emit_err(TypeCheckerError::function_cannot_input_or_output_a_record(external.span()));
}
// Otherwise, do not type check external record function outputs.
// TODO: Verify that this is not needed when the import system is updated.
}
Output::Internal(function_output) => {
// Check that the type of output is defined.
if self.assert_type_is_valid(&function_output.type_, function_output.span) {
// If the function is not a transition function, then it cannot output a record.
if let Type::Composite(struct_) = function_output.type_.clone() {
if !matches!(function.variant, Variant::Transition)
&& self
.symbol_table
.borrow()
.lookup_struct(Location::new(struct_.program, struct_.id.name))
.unwrap()
.is_record
{
self.emit_err(TypeCheckerError::function_cannot_input_or_output_a_record(
function_output.span,
));
}
}
}
// Check that the type of the output is not a tuple. This is necessary to forbid nested tuples.
if matches!(&function_output.type_, Type::Tuple(_)) {
self.emit_err(TypeCheckerError::nested_tuple_type(function_output.span))
}
// Check that the mode of the output is valid.
// For functions, only public and private outputs are allowed
if function_output.mode == Mode::Constant {
self.emit_err(TypeCheckerError::cannot_have_constant_output_mode(function_output.span));
function.output.iter().for_each(|function_output| {
// If the function is not a transition function, then it cannot output a record.
// Note that an external output must always be a record.
if let Type::Composite(struct_) = function_output.type_.clone() {
if let Some(val) = self.lookup_struct(struct_.program, struct_.id.name) {
if val.is_record && !matches!(function.variant, Variant::Transition) {
self.emit_err(TypeCheckerError::function_cannot_input_or_output_a_record(function_output.span));
}
}
}
// Check that the type of output is defined.
if self.assert_type_is_valid(&function_output.type_, function_output.span) {
// If the function is not a transition function, then it cannot output a record.
if let Type::Composite(struct_) = function_output.type_.clone() {
if !matches!(function.variant, Variant::Transition)
&& self.lookup_struct(struct_.program, struct_.id.name).unwrap().is_record
{
self.emit_err(TypeCheckerError::function_cannot_input_or_output_a_record(function_output.span));
}
}
}
// Check that the type of the output is not a tuple. This is necessary to forbid nested tuples.
if matches!(&function_output.type_, Type::Tuple(_)) {
self.emit_err(TypeCheckerError::nested_tuple_type(function_output.span))
}
// Check that the mode of the output is valid.
// For functions, only public and private outputs are allowed
if function_output.mode == Mode::Constant {
self.emit_err(TypeCheckerError::cannot_have_constant_output_mode(function_output.span));
}
});
}
@ -1337,7 +1260,7 @@ impl<'a> TypeChecker<'a> {
finalize.input.iter().for_each(|input_var| {
// Check that the type of input parameter is defined.
if self.assert_type_is_valid(&input_var.type_(), input_var.span()) {
if self.assert_type_is_valid(input_var.type_(), input_var.span()) {
// Check that the input parameter is not a tuple.
if matches!(input_var.type_(), Type::Tuple(_)) {
self.emit_err(TypeCheckerError::finalize_cannot_take_tuple_as_input(input_var.span()))
@ -1345,13 +1268,7 @@ impl<'a> TypeChecker<'a> {
// Check that the input parameter is not a record.
if let Type::Composite(struct_) = input_var.type_() {
// Note that this unwrap is safe, as the type is defined.
if self
.symbol_table
.borrow()
.lookup_struct(Location::new(struct_.program, struct_.id.name))
.unwrap()
.is_record
{
if self.lookup_struct(struct_.program, struct_.id.name).unwrap().is_record {
self.emit_err(TypeCheckerError::finalize_cannot_take_record_as_input(input_var.span()))
}
}
@ -1364,7 +1281,7 @@ impl<'a> TypeChecker<'a> {
if let Err(err) = self.symbol_table.borrow_mut().insert_variable(
Location::new(None, input_var.identifier().name),
VariableSymbol {
type_: input_var.type_(),
type_: input_var.type_().clone(),
span: input_var.identifier().span(),
declaration: VariableType::Input(input_var.mode()),
},
@ -1387,7 +1304,7 @@ impl<'a> TypeChecker<'a> {
// Note that checking that each of the component types are defined is sufficient to guarantee that the `output_type` is defined.
finalize.output.iter().for_each(|output_type| {
// Check that the type of output is defined.
if self.assert_type_is_valid(&output_type.type_(), output_type.span()) {
if self.assert_type_is_valid(&output_type.type_().clone(), output_type.span()) {
// Check that the output is not a tuple. This is necessary to forbid nested tuples.
if matches!(&output_type.type_(), Type::Tuple(_)) {
self.emit_err(TypeCheckerError::nested_tuple_type(output_type.span()))
@ -1395,13 +1312,7 @@ impl<'a> TypeChecker<'a> {
// Check that the output is not a record.
if let Type::Composite(struct_) = output_type.type_() {
// Note that this unwrap is safe, as the type is defined.
if self
.symbol_table
.borrow()
.lookup_struct(Location::new(struct_.program, struct_.id.name))
.unwrap()
.is_record
{
if self.lookup_struct(struct_.program, struct_.id.name).unwrap().is_record {
self.emit_err(TypeCheckerError::finalize_cannot_output_record(output_type.span()))
}
}
@ -1417,17 +1328,15 @@ impl<'a> TypeChecker<'a> {
self.assert_type_is_valid(&finalize.output_type, finalize.span);
}
/// Emits an error if the type corresponds to an external struct.
pub(crate) fn assert_internal_struct(&self, composite: &CompositeType, span: Span) {
let st = self.symbol_table.borrow();
match st.lookup_struct(Location::new(composite.program, composite.id.name)) {
None => self.emit_err(TypeCheckerError::undefined_type(composite.id, span)),
Some(composite_def) => {
if !composite_def.is_record && composite_def.external.unwrap() != self.program_name.unwrap() {
self.emit_err(TypeCheckerError::cannot_define_external_struct(composite.id, span))
}
}
/// Wrapper around lookup_struct that additionally records all structs that are used in the program.
pub(crate) fn lookup_struct(&mut self, program: Option<Symbol>, name: Symbol) -> Option<Composite> {
let struct_ =
self.symbol_table.borrow().lookup_struct(Location::new(program, name), self.program_name).cloned();
// Record the usage.
if let Some(s) = &struct_ {
self.used_structs.insert(s.identifier.name);
}
struct_
}
}

View File

@ -37,6 +37,9 @@ impl<'a> Pass for TypeChecker<'a> {
visitor.visit_program(ast.as_repr());
handler.last_err().map_err(|e| *e)?;
// Remove unused structs from the struct graph.
// This prevents unused struct definitions from being included in the generated bytecode.
visitor.struct_graph.retain_nodes(&visitor.used_structs);
Ok((visitor.symbol_table.take(), visitor.struct_graph, visitor.call_graph))
}
}

View File

@ -146,10 +146,10 @@ create_messages!(
help: None,
}
@backtraced
@formatted
redefining_external_struct {
args: (struct_: impl Display),
msg: format!("There are two mismatched definitions of struct `{struct_}`."),
help: Some("Duplicate definitions of structs are required to use external structs, but each field's name and type must match exactly.".to_string()),
msg: format!("There are two definitions of struct `{struct_}` that do not match."),
help: Some("Check the import files to see if there are any struct definitions of the same name.".to_string()),
}
);

View File

@ -313,7 +313,6 @@ create_messages!(
help: None,
}
/// Enforce that cannot use an external type to do anything except input/output of function
@formatted
external_type_cannot_be_used_inside_function {
args: (program: impl Display, file_type: impl Display),

View File

@ -16,7 +16,7 @@ program battleship.aleo {
destroyer: u64,
// The address of the opponent.
player: address,
) -> board.aleo/board_state.record {
) -> board.aleo/board_state {
// Verify that each individual ship placement bitstring is valid.
let valid_carrier: bool = verify.aleo/validate_ship(carrier, 5u64, 31u64, 4311810305u64);
assert(valid_carrier);
@ -44,22 +44,22 @@ program battleship.aleo {
// This function commits a given board to a game with an opponent and creates the initial dummy move.
transition offer_battleship(
// The board record to start a game with.
board: board.aleo/board_state.record,
) -> (board.aleo/board_state.record, move.aleo/move.record) {
board: board.aleo/board_state,
) -> (board.aleo/board_state, move.aleo/move) {
let state: board.aleo/board_state = board.aleo/start_board(board);
let dummy: move.aleo/move = move.aleo/start_game(board.player_2);
return (state, dummy);
}
// Returns updated board_state.record that has been started and can no longer be used to join or start new games.
// Returns updated board_state that has been started and can no longer be used to join or start new games.
// Returns dummy move record owned by the opponent.
transition start_battleship(
// The board record to play the game with.
board: board.aleo/board_state.record,
board: board.aleo/board_state,
// The move record to play to begin the game. This should be the dummy move record created from offer_battleship.
move_start: move.aleo/move.record,
) -> (board.aleo/board_state.record, move.aleo/move.record) {
move_start: move.aleo/move,
) -> (board.aleo/board_state, move.aleo/move) {
// Validate that the move players and board players match each other.
assert_eq(board.player_1, move_start.player_2);
assert_eq(board.player_2, move_start.player_1);
@ -74,12 +74,12 @@ program battleship.aleo {
// Returns new move record owned by opponent.
transition play(
// The board record to update.
board: board.aleo/board_state.record,
board: board.aleo/board_state,
// The incoming move from the opponent.
move_incoming: move.aleo/move.record,
move_incoming: move.aleo/move,
// The u64 equivalent of the bitwise representation of the next coordinate to play on the opponent's board.
shoot: u64,
) -> (board.aleo/board_state.record, move.aleo/move.record) {
) -> (board.aleo/board_state, move.aleo/move) {
// Verify the board has been started. This prevents players from starting a game and then creating
// a brand new board to play with.
assert(board.game_started);

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 2ee2a99efeb3473ccec80415106122bfa9a87565247ed9b8032896ec756e33aa
type_checked_symbol_table: c1619490816ec0d56d77600e667acdb7b4577b32084cf542fcdc1a802d7a972b
unrolled_symbol_table: c1619490816ec0d56d77600e667acdb7b4577b32084cf542fcdc1a802d7a972b
initial_ast: 94d3242e748619d667e5896f7ad3988dda45250b368ce2486c33cf6f1c55b638
unrolled_ast: 94d3242e748619d667e5896f7ad3988dda45250b368ce2486c33cf6f1c55b638
ssa_ast: db3e09758f82feca118021d2bee6d59052d672d49f417c27e3b0c05d88002a15
flattened_ast: a6592d9d77d05c67e310532f457aaa9316897aa6a1c0072686475cefe48eb886
destructured_ast: 60890ee588aab8ff3665cc85fbd5107c9bc6b93676aa93dc1d817616423ab596
inlined_ast: 60890ee588aab8ff3665cc85fbd5107c9bc6b93676aa93dc1d817616423ab596
dce_ast: 0fc4768d947d9da8680ad6005a49bbdf0ae8e71f9e345e9e2ae87a691e76dabf
- initial_symbol_table: 8590bfdc34bf629713e80225413b6b4086a02e3a0f1701e038a3462d67de2cb6
type_checked_symbol_table: 21cea1fba777a70203eb01d044462b0b8ccbe5f7f740af263665dc524a2939c7
unrolled_symbol_table: 21cea1fba777a70203eb01d044462b0b8ccbe5f7f740af263665dc524a2939c7
initial_ast: 63b64fdec2600e169dc05c0b210198baf7ed93e0c3dbc02b7f480fda025a64ab
unrolled_ast: 63b64fdec2600e169dc05c0b210198baf7ed93e0c3dbc02b7f480fda025a64ab
ssa_ast: daab561c9feaffe8646181cda82c50c2e59f5d1fdae4b53cc1bb17fbe58de7f6
flattened_ast: 9766861f84ee0e518a788b333ea53d57d3756ce9887905e67a1811bc206fa80b
destructured_ast: 7fbcbf7ca80d15630de5c2c9f61636d3cbb94697b8ff351b5b98b215bd66fac9
inlined_ast: 7fbcbf7ca80d15630de5c2c9f61636d3cbb94697b8ff351b5b98b215bd66fac9
dce_ast: 55e7b40e50222ec8e551708bb0cc806ef5ca34df5e82199bcd140a7550a8ff9e
bytecode: e434c09cee27a5dfb5a4e9e9fd26aa2ba6e7f0653fad3a4f2a7d85983ba559c9
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 7f932b8d44e0a087c6da5750a6d6caebe3701863c0d179297cfb44fc68113163
type_checked_symbol_table: 2bc79159a5bee87aecb4b652b908988bfc8922ea41269afe0dffd7fe55ffccda
unrolled_symbol_table: 2bc79159a5bee87aecb4b652b908988bfc8922ea41269afe0dffd7fe55ffccda
initial_ast: 8cb5c760709498b96a56ea62b25d3c28b22bf0484298831b23cd89a3570c63c3
unrolled_ast: 8cb5c760709498b96a56ea62b25d3c28b22bf0484298831b23cd89a3570c63c3
ssa_ast: 54a1e0dc85a8262b757539c8e65704ebe4666f121081732d9a8ed3381c5bef34
flattened_ast: 033487cd7acf9bb3a532f56b66e0cf09b5a81396f9442f0390967a4a027767b6
destructured_ast: f959a2d4ba504698c24951fa26ae50ce794822918cec705792aba498cb0b3dd9
inlined_ast: f959a2d4ba504698c24951fa26ae50ce794822918cec705792aba498cb0b3dd9
dce_ast: f959a2d4ba504698c24951fa26ae50ce794822918cec705792aba498cb0b3dd9
- initial_symbol_table: 3b33e24f00720c49e7a4ca8b53228c2fcf455fa1aba41fc87fafb747b3f61a86
type_checked_symbol_table: e47b26cc3842e66ecaa657f3b78874ae82d7c3806e5a51cfdaf40418953521b7
unrolled_symbol_table: e47b26cc3842e66ecaa657f3b78874ae82d7c3806e5a51cfdaf40418953521b7
initial_ast: 0750b7fe991d7485dcf186486aaee2fcdeb44c2e7bc071d361844da03f7d8802
unrolled_ast: 0750b7fe991d7485dcf186486aaee2fcdeb44c2e7bc071d361844da03f7d8802
ssa_ast: fa5728ed6bd57a8aec809a06ce9da282b66e7f8280a104c57db54e14a3d2f3fd
flattened_ast: b9d842a2ade5f6729e78f92414f740fc5aa690cafbf09f9d04fa8e1ab371c273
destructured_ast: 655fd9782a6d328286c792778acc28af526e96f67304864d1b0d03b906dc04d2
inlined_ast: 655fd9782a6d328286c792778acc28af526e96f67304864d1b0d03b906dc04d2
dce_ast: 655fd9782a6d328286c792778acc28af526e96f67304864d1b0d03b906dc04d2
bytecode: da1b0a83a17b801368b0a583b158d88d9d807a33000c8e89e82da123c8041aea
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: e0182bdd45dcbb1862e12e209da9b2fb8227c78b37bf915e37f00208557c9b18
type_checked_symbol_table: 9031de27b62db9f0c3f3ed4fb03211263039a5bb88fa67e6bd6ee55396d946f9
unrolled_symbol_table: 9031de27b62db9f0c3f3ed4fb03211263039a5bb88fa67e6bd6ee55396d946f9
initial_ast: 10650ea9835265f168c13b09658eadd2b33b4eca35826b56bdca6be930c5ef53
unrolled_ast: 10650ea9835265f168c13b09658eadd2b33b4eca35826b56bdca6be930c5ef53
ssa_ast: b103df8661413a11492f1bf0d7e0e322e652f38055875bdb51026bda792ec8b3
flattened_ast: 7510319c7429d2397d871c23319c8fef5e3fde8072e4fc72cc6bacb7f993537a
destructured_ast: 965ad6941786c46e8fcd8e9ffdfb330f4c824eaffbf90940f67c9480cbccf6b4
inlined_ast: 965ad6941786c46e8fcd8e9ffdfb330f4c824eaffbf90940f67c9480cbccf6b4
dce_ast: 965ad6941786c46e8fcd8e9ffdfb330f4c824eaffbf90940f67c9480cbccf6b4
- initial_symbol_table: b82092ef37ed899832a4c71d59a17c4609f46bd3430622ae9e1979186e0ff6c8
type_checked_symbol_table: acdcb875e7a98311479e050051a0ad3324929197a0f28c59a81918575d22e374
unrolled_symbol_table: acdcb875e7a98311479e050051a0ad3324929197a0f28c59a81918575d22e374
initial_ast: e32f9143a276e3b637aacd87ea2fa7bae6ff2ddc5ef6c81accc28f361ca2f152
unrolled_ast: e32f9143a276e3b637aacd87ea2fa7bae6ff2ddc5ef6c81accc28f361ca2f152
ssa_ast: 05d468b863be27cc3f2dff3925258a980e3ccb1c491ea4a090e4632b6fb7bddb
flattened_ast: 58d49b3e298931330e45474de1c20a59947f13bb1af455049e9a24a5d30ab544
destructured_ast: c933747e56a27dfcd82b60420aa5a27ff48d53377026fc48e70f91e81828e926
inlined_ast: c933747e56a27dfcd82b60420aa5a27ff48d53377026fc48e70f91e81828e926
dce_ast: c933747e56a27dfcd82b60420aa5a27ff48d53377026fc48e70f91e81828e926
bytecode: bde2653fac0393940c5400272e53492228206e50abb36ce080b95043003ee976
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: e0182bdd45dcbb1862e12e209da9b2fb8227c78b37bf915e37f00208557c9b18
type_checked_symbol_table: 6cb5b5abdfc48c9e6f755f97947504a8bdc2837ffbf708b0c12f5c38e52ca55b
unrolled_symbol_table: 6cb5b5abdfc48c9e6f755f97947504a8bdc2837ffbf708b0c12f5c38e52ca55b
initial_ast: 4b616fbbbf52577b25e69eb1b95915dd9b9ae0da10520f3edd913b9aeeae93fd
unrolled_ast: 4b616fbbbf52577b25e69eb1b95915dd9b9ae0da10520f3edd913b9aeeae93fd
ssa_ast: 94c32c4de57d425b18ec80921bacbbe66ae2eb8a813ade87b9e1852e01ce38d3
flattened_ast: b9b1d340db4cadc4b503f8b5a62e7e81e806aef8b61de78439fcd135facdce0f
destructured_ast: 06aaefc70bac853d85a46cb1698f98a45916fa83b7ce78a8c5dc7aed0fac6055
inlined_ast: 06aaefc70bac853d85a46cb1698f98a45916fa83b7ce78a8c5dc7aed0fac6055
dce_ast: 06aaefc70bac853d85a46cb1698f98a45916fa83b7ce78a8c5dc7aed0fac6055
- initial_symbol_table: b82092ef37ed899832a4c71d59a17c4609f46bd3430622ae9e1979186e0ff6c8
type_checked_symbol_table: 5f60ffeadc19e23ce3a3468edcd2362aa4ffcd74621c8d3782ee245fa23f2f01
unrolled_symbol_table: 5f60ffeadc19e23ce3a3468edcd2362aa4ffcd74621c8d3782ee245fa23f2f01
initial_ast: 2b475c9233d9fa54f1ad7d1bfb3175ea561fea129f3ee7b474e7da3cbdc99f7f
unrolled_ast: 2b475c9233d9fa54f1ad7d1bfb3175ea561fea129f3ee7b474e7da3cbdc99f7f
ssa_ast: 343562445f84c60ef160927e782d03d19ff3922e325ff470a66e4ff79aa52bbd
flattened_ast: da0054bf44e76038a92c6c710593a6670acf03c0d9de213d3bd372a41c087cc8
destructured_ast: bceb8271cae1d660ef1d86a282d6a199172d9108fb8b01b4f124922438c50583
inlined_ast: bceb8271cae1d660ef1d86a282d6a199172d9108fb8b01b4f124922438c50583
dce_ast: bceb8271cae1d660ef1d86a282d6a199172d9108fb8b01b4f124922438c50583
bytecode: c0b90b7f7e80041dc1a314c1a87290534936018fb001c6e1291266a02393c6f2
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 3742aee96e76bb3d7d05a2f040bb4e84fa92268b522f537f91b6b74e1bf8754b
type_checked_symbol_table: e4097f4f784b48ea876a7d7278c96bc81f51a90c70f81d215fa490eca8ca5311
unrolled_symbol_table: 60258c0c9cc5cd4935f5b8418ddbe251a9ece726e47dc6adb386747569b3c2fc
initial_ast: 3d649cf2f604480c50b5ff669bf54750f77e81f889a3998555cc71689390485c
unrolled_ast: 7ede4b449bb5d6f8017baae359e49a939f98fc956351a73c72049d8a6cfb9f96
ssa_ast: 17ae84d03fb6b02573a98d6fe13a5237a50bd48a107d947c29dfd5025003ab96
flattened_ast: 985b5d6acbf6e9eb67f8af31252aac85d8fc12cb6726b3250a939d7fd0c7cbf2
destructured_ast: 01a6903c0b477163dc5be6959c7d00b0e86ef547c51aed50953f974d2735d216
inlined_ast: 01a6903c0b477163dc5be6959c7d00b0e86ef547c51aed50953f974d2735d216
dce_ast: 01a6903c0b477163dc5be6959c7d00b0e86ef547c51aed50953f974d2735d216
- initial_symbol_table: 444b16cb853bc142d40f5d97c46185f29009ce7381f33c4fe5f1ffcf4be66a91
type_checked_symbol_table: 6059dbd55847480b1ba19306d3bf92cd4acd3fda07e61f83500855517509230f
unrolled_symbol_table: b29917f480c252f72d1a4a091d4ca3573dc2c5b431e0f05d734b7a3afeff1a69
initial_ast: afc353c70ecd2f897037d9f437d943ff1eb1c78d281565987d79fe612caf87e6
unrolled_ast: 93bc70451204936bb0fb91d9e8fb9d3d9629b82549855f14c6da9ec2a77d35e1
ssa_ast: 1b3bfc2925d156079482a3877a525a532a72811326d259bbc3939673cb5058df
flattened_ast: 5ac924f2b8b3378623b4056f16ea0db1d8dbb94d4b369437caa7b20581b7d6a8
destructured_ast: 992bb44a0fbf1f818a4df4192501bb02965dd07c7a1b728a5c089629347fbff3
inlined_ast: 992bb44a0fbf1f818a4df4192501bb02965dd07c7a1b728a5c089629347fbff3
dce_ast: 992bb44a0fbf1f818a4df4192501bb02965dd07c7a1b728a5c089629347fbff3
bytecode: 5f0cb09518f39fc62d32faa38cb42fa04dca2587eaaaa1e0ac30fa9885ce4248
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: f0c558fe33905e4a538c4b8c1778c51ccda937535c4fa06ffc7d83ae08f7b2cb
type_checked_symbol_table: d34d710ad8077f01ff2d8f4bdcc1328f2aa579651f2ebd3f00280f351024ebd2
unrolled_symbol_table: d34d710ad8077f01ff2d8f4bdcc1328f2aa579651f2ebd3f00280f351024ebd2
initial_ast: 32276ab6a1dc1aab9f7c473112e6672410ee24cc6161566deb1e4602658b4277
unrolled_ast: 32276ab6a1dc1aab9f7c473112e6672410ee24cc6161566deb1e4602658b4277
ssa_ast: 4e948dd99feb72930b8ec3a14c0dba9fe02af16ed798b858ca5247cdf7fa4527
flattened_ast: 1870270c4c93698bd331a1890d73ac5f5524f3a0e9b35f48a00b9ffe630a781d
destructured_ast: 55ef280c7f5d558cace875f38161b48c6f4c86a59c51fe9f381f358a13e0ad57
inlined_ast: 55ef280c7f5d558cace875f38161b48c6f4c86a59c51fe9f381f358a13e0ad57
dce_ast: 55ef280c7f5d558cace875f38161b48c6f4c86a59c51fe9f381f358a13e0ad57
- initial_symbol_table: 57ab0f2053d8a9868143076c4f6fbb6f1350b5ddf078bab3a1b1aa1ea31c144d
type_checked_symbol_table: 8c30ccac13e71c5991918799308d9b17f1495ad7a9341dc0fd56fc51bb83380e
unrolled_symbol_table: 8c30ccac13e71c5991918799308d9b17f1495ad7a9341dc0fd56fc51bb83380e
initial_ast: 228b2bd414ad4e376795eb65a3b0857137a5b2cc1ca456a6d1e6b9db8e5f36ca
unrolled_ast: 228b2bd414ad4e376795eb65a3b0857137a5b2cc1ca456a6d1e6b9db8e5f36ca
ssa_ast: b518ff7bd2c6110de3078a8d4dea4a7fccd352926cf943d652108de4164bc315
flattened_ast: 9b8f4c6738400d82ce394e7b2d87e1629d822754291b499b7b53c6a0578d6fae
destructured_ast: 99cff44363985a0fd9dd5687e64c11ce3b35fe24446bd672c3ab4946b6ef3deb
inlined_ast: 99cff44363985a0fd9dd5687e64c11ce3b35fe24446bd672c3ab4946b6ef3deb
dce_ast: 99cff44363985a0fd9dd5687e64c11ce3b35fe24446bd672c3ab4946b6ef3deb
bytecode: d5ca429014c67ec53c9ce4c200f06611379969892725237b5164737ea8100c12
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 0a9e39c80f4a7f4cac48e8fa673aec1a25fb39998ad02d690a0922bdbf7c91a5
type_checked_symbol_table: fcace63f105343adf3ce1f8d99a70762e83a99e81d6d9a366ec7e9a7bfcbbb96
unrolled_symbol_table: fcace63f105343adf3ce1f8d99a70762e83a99e81d6d9a366ec7e9a7bfcbbb96
initial_ast: ed44f2e8674bc083238a3e55c224e862583cc2118f7032194dd9f866937f6e11
unrolled_ast: ed44f2e8674bc083238a3e55c224e862583cc2118f7032194dd9f866937f6e11
ssa_ast: cace7d8d010a0387e087f70d50dda22dd9219f10e7e93f4c5b8de4afd2b7abfe
flattened_ast: 00d9a1361c7f00b01be1856f385ccb2ce2864a33d17f01cde91b83ba527cf663
destructured_ast: 190079c0017bf93950821145acf9f999dd7e8f9cb1a5267b22aefa3c08dd002d
inlined_ast: 190079c0017bf93950821145acf9f999dd7e8f9cb1a5267b22aefa3c08dd002d
dce_ast: 190079c0017bf93950821145acf9f999dd7e8f9cb1a5267b22aefa3c08dd002d
bytecode: a3539a0515c22f4ec653aa601063d7a414db833dc25273cee463985b052b72bc
- initial_symbol_table: c42f06a1e3af9bf3eb0f64b6fb191368be9819ed62c20a7577f5ca420a04dece
type_checked_symbol_table: 1178db31859bfb23a3595fd4e9c08b59483a10546badc8e1e17f92f1d1d03cbb
unrolled_symbol_table: 1178db31859bfb23a3595fd4e9c08b59483a10546badc8e1e17f92f1d1d03cbb
initial_ast: a152e55118e1461eddd33ceef10863059f3d3e9d74a1cb29687941d46e8af9bb
unrolled_ast: a152e55118e1461eddd33ceef10863059f3d3e9d74a1cb29687941d46e8af9bb
ssa_ast: fb2e2e4db78c49505f5b0ec8a2700ee5ac0f00f478ede12b982f254f07cd3854
flattened_ast: e25a30f5c363ddefa9eb39e05bb26b4e64eee58ff5c3acca1837c1d016f191b9
destructured_ast: 533f74331fbf0bf3e4945d0901c4c367d07e87e1c4bd24d5afaa4291e239fe7c
inlined_ast: 533f74331fbf0bf3e4945d0901c4c367d07e87e1c4bd24d5afaa4291e239fe7c
dce_ast: 533f74331fbf0bf3e4945d0901c4c367d07e87e1c4bd24d5afaa4291e239fe7c
bytecode: 96a3dd2c8b423fc1830c547bb318ef7379dd2b3d3ba030142fe344b51c0ecfc2
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 513000ef5b6588b18b4e9307c998bdac2d0eaf3c0fbe8f972df99531d10fb990
type_checked_symbol_table: 87970aa8e3bdb5c78b6316f4b6ce58036b334f72316b38e89f53ea0fa2cdc883
unrolled_symbol_table: 87970aa8e3bdb5c78b6316f4b6ce58036b334f72316b38e89f53ea0fa2cdc883
initial_ast: 031c8fde01e7664264477a68836b02a1509461bb352940221d35f62f51dcfce2
unrolled_ast: 031c8fde01e7664264477a68836b02a1509461bb352940221d35f62f51dcfce2
ssa_ast: 7a81bde21f8f85449b1ea0620e9feb46ca294f6d0c5dab6bdf6537bca42f1a26
flattened_ast: 29345cb534219377137f4fda5f28cd516e46bee93d276a481df72aa855227f02
destructured_ast: c811b0fbd315b49da02dbb6e3000a47648ed7d47ab5906d5e918d527928575b0
inlined_ast: c811b0fbd315b49da02dbb6e3000a47648ed7d47ab5906d5e918d527928575b0
dce_ast: c811b0fbd315b49da02dbb6e3000a47648ed7d47ab5906d5e918d527928575b0
- initial_symbol_table: 980d6579050b9b2cbe09a6e463ac8ec362ef3efb46f5466c135e5bdcc615a6b2
type_checked_symbol_table: 184009b1beca74325203f1581260aa9093f164c13390d1f34d181789ab038836
unrolled_symbol_table: 184009b1beca74325203f1581260aa9093f164c13390d1f34d181789ab038836
initial_ast: 46b97966bd59f7f2ef2a8e9db3276ecccfb56cae533e223e8664aa40b7cd976f
unrolled_ast: 46b97966bd59f7f2ef2a8e9db3276ecccfb56cae533e223e8664aa40b7cd976f
ssa_ast: dc2456142b747ad537b8c8f4f454d902a63be4fd33ea0e3995b32d3e27696b6f
flattened_ast: 2d565c001d469769cf49641c76479052f64cf856f5d881447904bab5c59c10c5
destructured_ast: 6895090c4dbf3184e19aab7b93fc582e93a1127e1dd0c27c27a6543c5f2c3cc2
inlined_ast: 6895090c4dbf3184e19aab7b93fc582e93a1127e1dd0c27c27a6543c5f2c3cc2
dce_ast: 6895090c4dbf3184e19aab7b93fc582e93a1127e1dd0c27c27a6543c5f2c3cc2
bytecode: 66a857f6a5e79328d146c55f5e42c6eb249b7c6c9cc1c6e0c534328b85e649eb
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 78fdfbc136a07b9056e6365495b010543217aae651dfa5b4991024873ba0396b
type_checked_symbol_table: 820e08769c49cac44545850f7756291c7e7181f273a63f16a0ce4892e3c45a28
unrolled_symbol_table: 820e08769c49cac44545850f7756291c7e7181f273a63f16a0ce4892e3c45a28
initial_ast: 102d78cfa8f14fdfcb39e6ccbccbc78820acef97645800ffc84931f9b82e9f5d
unrolled_ast: 102d78cfa8f14fdfcb39e6ccbccbc78820acef97645800ffc84931f9b82e9f5d
ssa_ast: a09ab12ef7f9790e9a1725c1b2dc86d65564b489d1e685b380a28f9bbcb33b6a
flattened_ast: ea928f6cb8ced6deb619e281f0a580a258f2a4dc771f6489738b5381decf10b0
destructured_ast: 52d3bf925752d918afe27ec537319cb6ddc7d88884e55fcc6b219766705c17d2
inlined_ast: 52d3bf925752d918afe27ec537319cb6ddc7d88884e55fcc6b219766705c17d2
dce_ast: 52d3bf925752d918afe27ec537319cb6ddc7d88884e55fcc6b219766705c17d2
- initial_symbol_table: d0472fb5cda32905b61edc36f4c0f39cbb88e69cb0f352909dddef32e99b29ee
type_checked_symbol_table: e797417a5ac6338c0212d721959b7da11f9242042d429190abc8fbf3fcf36f35
unrolled_symbol_table: e797417a5ac6338c0212d721959b7da11f9242042d429190abc8fbf3fcf36f35
initial_ast: fa84ad6a715ac143c2fbd87bdb94f35dac3a813b29fc5a217623d24438a4392f
unrolled_ast: fa84ad6a715ac143c2fbd87bdb94f35dac3a813b29fc5a217623d24438a4392f
ssa_ast: 2f41cda1fd9cd4195784027309b4a7415762ae2265d2e4cee8dbdf5bcf2c3dae
flattened_ast: 35654de53cb8a73b4f887e8ce42cbc76e6a76d47e8cedc7ec3b321703d731cb8
destructured_ast: 29f7a7223e98b02ee7c81b9f9ceb1a2184436245180addd88a1116d45a8b2f70
inlined_ast: 29f7a7223e98b02ee7c81b9f9ceb1a2184436245180addd88a1116d45a8b2f70
dce_ast: 29f7a7223e98b02ee7c81b9f9ceb1a2184436245180addd88a1116d45a8b2f70
bytecode: 0871c25bd990602b411e2492035ed37dfd4243251c0b6aed5d0937e00f91ec89
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 500c040c7c93a9b43123f9b77a4c805ad791563acccaa8fe77f2077d242a1a14
type_checked_symbol_table: 2194ee075b5de9a883208b611ee50d05dd98a0b70cfb1c3b7cd14c1eb2f5c4b9
unrolled_symbol_table: 2194ee075b5de9a883208b611ee50d05dd98a0b70cfb1c3b7cd14c1eb2f5c4b9
initial_ast: 7d40187329bfa45bc12a8722d93ae749d18bc1e74140426242a684297dd1f3e8
unrolled_ast: 7d40187329bfa45bc12a8722d93ae749d18bc1e74140426242a684297dd1f3e8
ssa_ast: 7d40187329bfa45bc12a8722d93ae749d18bc1e74140426242a684297dd1f3e8
flattened_ast: e2468a2b162270486b4c801ca8d53737250d16e11b1907aa0181ac2bdb710638
destructured_ast: 3a14bdb199158262348c694d07030108f2dddd658c822d2a1e88e5b8640a1438
inlined_ast: 3a14bdb199158262348c694d07030108f2dddd658c822d2a1e88e5b8640a1438
dce_ast: 3a14bdb199158262348c694d07030108f2dddd658c822d2a1e88e5b8640a1438
- initial_symbol_table: 563a8367c9e56df179025521f1763a5b1e54286e606a80fbaac7538df0cb1628
type_checked_symbol_table: 3bbb6e3a5f9cc65db742e2135ccfa1a8dfce80f7571cd13fd2e02e9cbf4c3a87
unrolled_symbol_table: 3bbb6e3a5f9cc65db742e2135ccfa1a8dfce80f7571cd13fd2e02e9cbf4c3a87
initial_ast: d22023292a932c574e079af02a3fe01dbef4d23182af231295a5ac416624f327
unrolled_ast: d22023292a932c574e079af02a3fe01dbef4d23182af231295a5ac416624f327
ssa_ast: d22023292a932c574e079af02a3fe01dbef4d23182af231295a5ac416624f327
flattened_ast: 39bd6072b1337e8dbb155c7e86c21d96d8364c68740b17728f408080ac66bcc9
destructured_ast: 7eecab738122e55b5bf7e6d0cfef6dbb0d4a7de524cf3d259e7990825c9e37e0
inlined_ast: 7eecab738122e55b5bf7e6d0cfef6dbb0d4a7de524cf3d259e7990825c9e37e0
dce_ast: 7eecab738122e55b5bf7e6d0cfef6dbb0d4a7de524cf3d259e7990825c9e37e0
bytecode: bbabb76319d2c69ed28a19090796ad7f974be74a1ef138d0cc58507cc4787632
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 03c3c6a161c2813b1e23ee475d096e4736319aeade6acd8a5c01d06bb6666d39
type_checked_symbol_table: 725f7cb442d1391ac14f33a35f2f08b16172caa56311f0b8f62b0d890a89240e
unrolled_symbol_table: 725f7cb442d1391ac14f33a35f2f08b16172caa56311f0b8f62b0d890a89240e
initial_ast: 660059d86d20bf51414ba6a346b61dd0c6afa1d975d1ede5d238625971d2ece2
unrolled_ast: 660059d86d20bf51414ba6a346b61dd0c6afa1d975d1ede5d238625971d2ece2
ssa_ast: 4d231a23b66f1e53a4ee1710c9228f325595440c08b06a40e29021683d47ea17
flattened_ast: 351a1c018c70da07816b449a263dae9814c2a834d3ce9d61ee9128f12d664ea3
destructured_ast: 9be6cf274ef817fec1e3b6bd65c517c32334046d10cee4e8ecf539a6faff9c01
inlined_ast: 9be6cf274ef817fec1e3b6bd65c517c32334046d10cee4e8ecf539a6faff9c01
dce_ast: 9be6cf274ef817fec1e3b6bd65c517c32334046d10cee4e8ecf539a6faff9c01
- initial_symbol_table: 2ead4d19d4804f64dae1f782cdedb5e64b423871b92a282b456eec8c741e6f0d
type_checked_symbol_table: 17ff99888ebfde119e70341b04ed8e17e541cbbdbfdcbe0b790e51acb4f522a4
unrolled_symbol_table: 17ff99888ebfde119e70341b04ed8e17e541cbbdbfdcbe0b790e51acb4f522a4
initial_ast: 1d5b1e38085bd023bed8958f38ecdc017abf7dbb9f5070187fe52e27f79cea5a
unrolled_ast: 1d5b1e38085bd023bed8958f38ecdc017abf7dbb9f5070187fe52e27f79cea5a
ssa_ast: 44a08ebe5e0dd7bc505366eb366e52bf6f35f0be4b49f33b87bf33b6910fecb7
flattened_ast: 4869905408a50b9841e4d1c0db83396322bb67d5205539d23fd8e97b1b265ab6
destructured_ast: cff0ee070f2e23d502991dc02c53018baee3c7042b68491cd298d6f83fc80bd2
inlined_ast: cff0ee070f2e23d502991dc02c53018baee3c7042b68491cd298d6f83fc80bd2
dce_ast: cff0ee070f2e23d502991dc02c53018baee3c7042b68491cd298d6f83fc80bd2
bytecode: 5adcc7b9450eedbada20f55565a821769e58c3cacb624d7e45061693d167a079
errors: ""
warnings: ""

View File

@ -2,4 +2,4 @@
namespace: Compile
expectation: Fail
outputs:
- "Error [ETYC0372007]: Expected one type from `[boolean; 8]`, but got `[boolean; 7]`\n --> compiler-test:5:16\n |\n 5 | return [a, a, a, a, a, a, a];\n | ^^^^^^^^^^^^^^^^^^^^^\nError [ETYC0372007]: Expected one type from `u8`, but got `u32`\n --> compiler-test:9:52\n |\n 9 | return [1u8, 2u8, 3u8, 4u8, 5u8, 6u8, 7u8, 8u32];\n | ^^^^\n"
- "Error [ETYC0372003]: Expected type `[boolean; 8]` but type `[boolean; 7]` was found\n --> compiler-test:5:16\n |\n 5 | return [a, a, a, a, a, a, a];\n | ^^^^^^^^^^^^^^^^^^^^^\nError [ETYC0372003]: Expected type `u8` but type `u32` was found\n --> compiler-test:9:52\n |\n 9 | return [1u8, 2u8, 3u8, 4u8, 5u8, 6u8, 7u8, 8u32];\n | ^^^^\n"

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 26f877e6575661a91a28368e33498e6e6807f3a2027fb798a383c8bddce3218b
type_checked_symbol_table: a156cac3eae20c8389876081217052404f77d236c4766e8bb0782d0b9594dffb
unrolled_symbol_table: a156cac3eae20c8389876081217052404f77d236c4766e8bb0782d0b9594dffb
initial_ast: f220b8582b245809648f0b3697d37949bd2fd02767b68e32271e8b333e51308a
unrolled_ast: f220b8582b245809648f0b3697d37949bd2fd02767b68e32271e8b333e51308a
ssa_ast: 4023197733bca77f2882eb2f3f2ade5191fbacbeca3732ef79e077d26f629fc1
flattened_ast: eaa969f63bfd5010915975bd11f4d8cd9ef88936ffcfa1bf34b1a76af1c2b1e3
destructured_ast: b2b04532023156c700a64414ed41664dbb7b36edff06bff46fb5f029fa48e094
inlined_ast: b2b04532023156c700a64414ed41664dbb7b36edff06bff46fb5f029fa48e094
dce_ast: b2b04532023156c700a64414ed41664dbb7b36edff06bff46fb5f029fa48e094
- initial_symbol_table: 629dc4ae004ae23b372bca6c4fc41a7481a5558a689e581da45f966ab553cdb2
type_checked_symbol_table: 4e8b27a441d41b499db427062a82821b9f01d7d08cfee0815ce9ff566a4377bc
unrolled_symbol_table: 4e8b27a441d41b499db427062a82821b9f01d7d08cfee0815ce9ff566a4377bc
initial_ast: 586c6aac40af53efb4dbb8c5fc832c05316dc89492f07d5e14318a1aee6ae783
unrolled_ast: 586c6aac40af53efb4dbb8c5fc832c05316dc89492f07d5e14318a1aee6ae783
ssa_ast: e52d1e19d22cce1174057d3eb250e0e46b7020f5c343df598f15755d82861c52
flattened_ast: b66ac3f53ba4de6c7cbdf3b57078a106db668190e77de49d72e3a173b0364df5
destructured_ast: 72d2627a0e064f0a06656f906a7170f815cdc7d4ab4f27e109a2a9b75c766aaa
inlined_ast: 72d2627a0e064f0a06656f906a7170f815cdc7d4ab4f27e109a2a9b75c766aaa
dce_ast: 72d2627a0e064f0a06656f906a7170f815cdc7d4ab4f27e109a2a9b75c766aaa
bytecode: 53499e77217ba5d8d146384234cbed9abe5c47abcbfe547f7bff6fbef4194a56
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 2736b9080cd1f7ee443af8ec180fb09deba000c8dfe4318dbb30f1709936ecdf
type_checked_symbol_table: 01b285a9912018552f939ce1c1fb09776f50d1eb361299d9e9a5eb68287944ff
unrolled_symbol_table: 01b285a9912018552f939ce1c1fb09776f50d1eb361299d9e9a5eb68287944ff
initial_ast: 4a5225c722d8af4f266ec15f7e9ff05e2c9375daa78f21ee078a5e22198d0adf
unrolled_ast: 4a5225c722d8af4f266ec15f7e9ff05e2c9375daa78f21ee078a5e22198d0adf
ssa_ast: 1708017fb5ea18ede484da052f593113726832c08a726e6fb824827e4a7ea111
flattened_ast: f86fbd97869c73e10ca2626da6ef391655cd94ad1eade81038d5c357e9e47e10
destructured_ast: 8c3a2b2387bf2d7114b791c9385e9b48edf355b20653b7454103787da25520d4
inlined_ast: 8c3a2b2387bf2d7114b791c9385e9b48edf355b20653b7454103787da25520d4
dce_ast: 8c3a2b2387bf2d7114b791c9385e9b48edf355b20653b7454103787da25520d4
- initial_symbol_table: 6a11af1dbf52fd1c90cd871dcaf9784ac7965f90473782037649817f229c6578
type_checked_symbol_table: e17f262eb3f8b806b89ad3410c1fc1848ea5642a25ee46b3d865b9ad12a8060e
unrolled_symbol_table: e17f262eb3f8b806b89ad3410c1fc1848ea5642a25ee46b3d865b9ad12a8060e
initial_ast: c177e2efa9252626326b434a98e14ac57266e6050f87fe767ebf40314f38363e
unrolled_ast: c177e2efa9252626326b434a98e14ac57266e6050f87fe767ebf40314f38363e
ssa_ast: cb2622d44f931f7c7800b91375d4e0df963e352363300b1838c16bb3fe6b46d1
flattened_ast: 3c8465173f5d602018c11692a0e7efbeff3ab7251b45a9223fdee347bb08665e
destructured_ast: 1477caefac4251349268f67f1aed6360ed8ea29a8e90814e58d269d6c9e39b49
inlined_ast: 1477caefac4251349268f67f1aed6360ed8ea29a8e90814e58d269d6c9e39b49
dce_ast: 1477caefac4251349268f67f1aed6360ed8ea29a8e90814e58d269d6c9e39b49
bytecode: 87676231f14ea25fc123a2569754b9ff0dca4a4f7cee0eb4ed6419174dd0af4c
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: c2554df804e76bce64e5beedbf8d8e065838dbcbd414e55b572828825d0d697b
type_checked_symbol_table: 22b375401300c7518693377bd090bac20ee7b423925434817e9d88c889e7deba
unrolled_symbol_table: 22b375401300c7518693377bd090bac20ee7b423925434817e9d88c889e7deba
initial_ast: cb1bfce0497f40547211ffaeffda34260f6757ae7d01a459b18bc67b8ac8f34a
unrolled_ast: cb1bfce0497f40547211ffaeffda34260f6757ae7d01a459b18bc67b8ac8f34a
ssa_ast: 2e2f85fc41a676f3000db2d8458423fdbc30249f4adc8586cdd5c8dd4c71f54f
flattened_ast: 262edbbd14bb015caaf058b5e221350ee434c9e677588cedf934230ef546ad18
destructured_ast: f38da35449d08acc987f25287f0626bc904dedd91b184af73f2dc01e68cfaae1
inlined_ast: f38da35449d08acc987f25287f0626bc904dedd91b184af73f2dc01e68cfaae1
dce_ast: f38da35449d08acc987f25287f0626bc904dedd91b184af73f2dc01e68cfaae1
- initial_symbol_table: d8dbb67a15c1b2741ed787ddd2794f07da0e810bc3af3c5cfaa7abb0fcfe468b
type_checked_symbol_table: 104d9cdd2fd08d7f6ef5cf1725840e419246586c076240dc803e8ebcbbc7d257
unrolled_symbol_table: 104d9cdd2fd08d7f6ef5cf1725840e419246586c076240dc803e8ebcbbc7d257
initial_ast: 1d9e094450fcd4b74f7012a0045e36734b7c4a56bc05d23e9e8f301783c9f217
unrolled_ast: 1d9e094450fcd4b74f7012a0045e36734b7c4a56bc05d23e9e8f301783c9f217
ssa_ast: 3f2b5086050a20c61a306b136919c9a735efbf2ab6fabbc96db736aa2d63feb0
flattened_ast: 61e9e3d42bf722af5600b81a92e76b1b1514dbd689f562a201d38a842b8f49d2
destructured_ast: c91fb6636b4741e93f1afeef378bf4c90d693de84758481830c9a957415f3bc7
inlined_ast: c91fb6636b4741e93f1afeef378bf4c90d693de84758481830c9a957415f3bc7
dce_ast: c91fb6636b4741e93f1afeef378bf4c90d693de84758481830c9a957415f3bc7
bytecode: 134904b86b96581876c2ca0c6ead651dda0dc9f2fb6dc583400133410b7deede
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: c2554df804e76bce64e5beedbf8d8e065838dbcbd414e55b572828825d0d697b
type_checked_symbol_table: 22b375401300c7518693377bd090bac20ee7b423925434817e9d88c889e7deba
unrolled_symbol_table: 22b375401300c7518693377bd090bac20ee7b423925434817e9d88c889e7deba
initial_ast: e4a47461dd96ca03ee0cf5f66cd341212a64411225adfe1f4650b5a0244dc505
unrolled_ast: e4a47461dd96ca03ee0cf5f66cd341212a64411225adfe1f4650b5a0244dc505
ssa_ast: 4b157ccde4b193233579fc52a44a24b89ab462bf370717bf274003f65e143567
flattened_ast: 959bdc62988f257cc6d6c649d512b67e8082bf5e03a4631f0b4b6a5249a3a657
destructured_ast: 5d5379f88c7a5fef32fc9bf9f7f86ae3f5d3f8044d24d7846f8cec26af6a0902
inlined_ast: 5d5379f88c7a5fef32fc9bf9f7f86ae3f5d3f8044d24d7846f8cec26af6a0902
dce_ast: 5d5379f88c7a5fef32fc9bf9f7f86ae3f5d3f8044d24d7846f8cec26af6a0902
- initial_symbol_table: d8dbb67a15c1b2741ed787ddd2794f07da0e810bc3af3c5cfaa7abb0fcfe468b
type_checked_symbol_table: 104d9cdd2fd08d7f6ef5cf1725840e419246586c076240dc803e8ebcbbc7d257
unrolled_symbol_table: 104d9cdd2fd08d7f6ef5cf1725840e419246586c076240dc803e8ebcbbc7d257
initial_ast: 1570af26a7d95ac6ce9cd0445f8269e8506c1cacb251156e2a2314886546efda
unrolled_ast: 1570af26a7d95ac6ce9cd0445f8269e8506c1cacb251156e2a2314886546efda
ssa_ast: bd8d2cb0e3c077158f049b09579f705c66cb6ac350ef0512b2de1475f0a35b6c
flattened_ast: 1a29caae6494e28787081ddbb51b426928eda783a4ffcb42992d8df106d5d370
destructured_ast: 6038006f7feb85563336f867986873a36ca8164ff836115a853204280ea54eaf
inlined_ast: 6038006f7feb85563336f867986873a36ca8164ff836115a853204280ea54eaf
dce_ast: 6038006f7feb85563336f867986873a36ca8164ff836115a853204280ea54eaf
bytecode: 56a9fa48a00d1b38b6f60a93ef2168b2c0ce9c23ba3cb7bffa40debfc1b16180
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: c2554df804e76bce64e5beedbf8d8e065838dbcbd414e55b572828825d0d697b
type_checked_symbol_table: 22b375401300c7518693377bd090bac20ee7b423925434817e9d88c889e7deba
unrolled_symbol_table: 22b375401300c7518693377bd090bac20ee7b423925434817e9d88c889e7deba
initial_ast: 61217aec18c2073eee84ec4213b7bc45ed3bf4743a7dd0f438697e081a881dc7
unrolled_ast: 61217aec18c2073eee84ec4213b7bc45ed3bf4743a7dd0f438697e081a881dc7
ssa_ast: 2279e268ed5b67453ec005211004ebee30d7577737a87ad4bc21e72c36be2db0
flattened_ast: a435047224da26164211d0859f21ac93e7c862dfd8d6b7ca2309e07dad0f8099
destructured_ast: eec8bc555a48e191e4895ae8e073c9e01e32e4a4c32f560a672ed4000fbfe233
inlined_ast: eec8bc555a48e191e4895ae8e073c9e01e32e4a4c32f560a672ed4000fbfe233
dce_ast: eec8bc555a48e191e4895ae8e073c9e01e32e4a4c32f560a672ed4000fbfe233
- initial_symbol_table: d8dbb67a15c1b2741ed787ddd2794f07da0e810bc3af3c5cfaa7abb0fcfe468b
type_checked_symbol_table: 104d9cdd2fd08d7f6ef5cf1725840e419246586c076240dc803e8ebcbbc7d257
unrolled_symbol_table: 104d9cdd2fd08d7f6ef5cf1725840e419246586c076240dc803e8ebcbbc7d257
initial_ast: 62a306fbea321e172d8e75adaf81bab1abdb5c30c9039ceb6b813fe950b3ecb8
unrolled_ast: 62a306fbea321e172d8e75adaf81bab1abdb5c30c9039ceb6b813fe950b3ecb8
ssa_ast: 00bbb8c466d7c34b32c40369457fdc8e86cb1c411bb3dea70fed8ecc0962e000
flattened_ast: 202475ab2c9e84c264e0a2227c0ed8b0d715c9e5b93562dbaad45c1897369c20
destructured_ast: b136b7fad28055631741a0bba46ed452d557a91a8bf0a2ec28e7ae04c8e7500a
inlined_ast: b136b7fad28055631741a0bba46ed452d557a91a8bf0a2ec28e7ae04c8e7500a
dce_ast: b136b7fad28055631741a0bba46ed452d557a91a8bf0a2ec28e7ae04c8e7500a
bytecode: 2332d5b7ed9910dc65c885e1aeedbbde00e02d95a55caa300a9cb72456707034
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: c2554df804e76bce64e5beedbf8d8e065838dbcbd414e55b572828825d0d697b
type_checked_symbol_table: 22b375401300c7518693377bd090bac20ee7b423925434817e9d88c889e7deba
unrolled_symbol_table: 22b375401300c7518693377bd090bac20ee7b423925434817e9d88c889e7deba
initial_ast: c16f3e4533f6a833dd3429cdace72599198d9ffc0cff0c5262f7d2d817aecad2
unrolled_ast: c16f3e4533f6a833dd3429cdace72599198d9ffc0cff0c5262f7d2d817aecad2
ssa_ast: 4cb449adc13d9fc054d35a4306c031d95833037c377da5fc56b4a76f2eabaa9c
flattened_ast: 168cdaccc60a15bd504f5d1a86998611aa82892610386f4cd5258abc05643f22
destructured_ast: 2428bc52f2407de9746fd7eda15cfea48b39f6175906a5a42c72e256545e0fac
inlined_ast: 2428bc52f2407de9746fd7eda15cfea48b39f6175906a5a42c72e256545e0fac
dce_ast: 2428bc52f2407de9746fd7eda15cfea48b39f6175906a5a42c72e256545e0fac
- initial_symbol_table: d8dbb67a15c1b2741ed787ddd2794f07da0e810bc3af3c5cfaa7abb0fcfe468b
type_checked_symbol_table: 104d9cdd2fd08d7f6ef5cf1725840e419246586c076240dc803e8ebcbbc7d257
unrolled_symbol_table: 104d9cdd2fd08d7f6ef5cf1725840e419246586c076240dc803e8ebcbbc7d257
initial_ast: 5e3efc5b509f5296596e615bdeeb60b5b668871598afb317a95cb993b3d0b0f6
unrolled_ast: 5e3efc5b509f5296596e615bdeeb60b5b668871598afb317a95cb993b3d0b0f6
ssa_ast: e5be1ff0bd4cc7980dd744361c929de40015aa2cb7f7389b0ad6722d1e26b22f
flattened_ast: d7e5969c4cbe24c765b23f9c57c1f8f8063bb83747ce3204cb9de779c346ce82
destructured_ast: 9c5223a5d8c03a475db13cd1d83053fd04f8f0e3fda753a6319b44345ae3dd9e
inlined_ast: 9c5223a5d8c03a475db13cd1d83053fd04f8f0e3fda753a6319b44345ae3dd9e
dce_ast: 9c5223a5d8c03a475db13cd1d83053fd04f8f0e3fda753a6319b44345ae3dd9e
bytecode: 990eee0b87d70df046bad969201ad8afabff10162eb70c00f837fde81fed4104
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: c2554df804e76bce64e5beedbf8d8e065838dbcbd414e55b572828825d0d697b
type_checked_symbol_table: a8f7a4e237c8966091f6c5fdef5b980e067d7d91ebc40ab89dccdc6e36de71fb
unrolled_symbol_table: a8f7a4e237c8966091f6c5fdef5b980e067d7d91ebc40ab89dccdc6e36de71fb
initial_ast: 34ef2d8c201f7799c13ebdffbc40ae7ce6cf81c04e30286b7eae833c6fc4b356
unrolled_ast: 34ef2d8c201f7799c13ebdffbc40ae7ce6cf81c04e30286b7eae833c6fc4b356
ssa_ast: fb94a65958ce35f26e3b445f2069f5a728bd48c94517eefa84a98ba589b22df8
flattened_ast: 902a44e03c34cd3c2045243b58377180ee78d460d017bb4e9ce80cc48b5a1d8c
destructured_ast: 81519b70dd5b8f52dc24a3ee25e5f00378763639af72cc88fbd6330d66219392
inlined_ast: 81519b70dd5b8f52dc24a3ee25e5f00378763639af72cc88fbd6330d66219392
dce_ast: e4f6dca808d318e43ba9fff9e726ed58beb588c47196d1d7197805620352c29c
- initial_symbol_table: d8dbb67a15c1b2741ed787ddd2794f07da0e810bc3af3c5cfaa7abb0fcfe468b
type_checked_symbol_table: 53007ca7363cbe54cc92ce5d0fe80c751c388592a3a284a71d2726b52c07d372
unrolled_symbol_table: 53007ca7363cbe54cc92ce5d0fe80c751c388592a3a284a71d2726b52c07d372
initial_ast: cdab0d69e8b4a92e3a4b9a3009beef7a36a096db85f2dda1638e0d902c3931cf
unrolled_ast: cdab0d69e8b4a92e3a4b9a3009beef7a36a096db85f2dda1638e0d902c3931cf
ssa_ast: bc46c5561cbfe6d7b999b2f4e651acf3240e25ac559cd09a859287bf130ffb84
flattened_ast: b939dcd979d53cea4c226039b1956fad4e82e25faa6e9399cdbac127690a3cf8
destructured_ast: bd24dba11e6477be5dd3df626ceff8b20a6204daf5970b965f18dab4e5feec49
inlined_ast: bd24dba11e6477be5dd3df626ceff8b20a6204daf5970b965f18dab4e5feec49
dce_ast: f5448157b0c3c540c094d52184572a6d1be1e32942de6b500e6e959b6062c1dd
bytecode: bb260232bbd0ccede368961a31abeef5edc7e00cab3348b4b8518d4e5798a6b5
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: c2554df804e76bce64e5beedbf8d8e065838dbcbd414e55b572828825d0d697b
type_checked_symbol_table: 22b375401300c7518693377bd090bac20ee7b423925434817e9d88c889e7deba
unrolled_symbol_table: 22b375401300c7518693377bd090bac20ee7b423925434817e9d88c889e7deba
initial_ast: b1d21cb0ba71715333e75efca70fe0bcf972fe6cd829450005477642b87073fe
unrolled_ast: b1d21cb0ba71715333e75efca70fe0bcf972fe6cd829450005477642b87073fe
ssa_ast: 2d68d235dcd42e1f8bc6c6a7b33df61ea8f568ef47f0f8d45ec829f5ba322747
flattened_ast: 69ba227eb312a96c98b9bd948e0211f3d5a5ab776baee208d240ab26cbf44f9c
destructured_ast: a05609fc7fb96a7c9287782e1077381d674700017b8340a40c1515af3c97ae50
inlined_ast: a05609fc7fb96a7c9287782e1077381d674700017b8340a40c1515af3c97ae50
dce_ast: a05609fc7fb96a7c9287782e1077381d674700017b8340a40c1515af3c97ae50
- initial_symbol_table: d8dbb67a15c1b2741ed787ddd2794f07da0e810bc3af3c5cfaa7abb0fcfe468b
type_checked_symbol_table: 104d9cdd2fd08d7f6ef5cf1725840e419246586c076240dc803e8ebcbbc7d257
unrolled_symbol_table: 104d9cdd2fd08d7f6ef5cf1725840e419246586c076240dc803e8ebcbbc7d257
initial_ast: 4cc933c5315707ee16b1a9774eb85a3100d1d64b309b98007be5c49e5ff0d854
unrolled_ast: 4cc933c5315707ee16b1a9774eb85a3100d1d64b309b98007be5c49e5ff0d854
ssa_ast: 2c7c77dee1833a33d93b874977de2b03fecac0593183fad787e0b9cad670de8a
flattened_ast: 1f890a2a36f91f7b1119f01394a7e1aa7b98bb7eceaa235c56db52a4168440e7
destructured_ast: 60f0f2e32652c9f400ff70ce870d4a7f7f38ae827ecbe2b0365b95438c5c45d4
inlined_ast: 60f0f2e32652c9f400ff70ce870d4a7f7f38ae827ecbe2b0365b95438c5c45d4
dce_ast: 60f0f2e32652c9f400ff70ce870d4a7f7f38ae827ecbe2b0365b95438c5c45d4
bytecode: c3a0c03f4324a6dd6baea42e664ffad91868714739e03525dcbc968582007ceb
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: cd0dd5b8c35f4122c143671a9c75e32b149bb2d85693ae62cbb4b5368ac38892
type_checked_symbol_table: 188525122dabaa0f219515b75de1edad0bb16a433c9f45c197b06a35c5982a12
unrolled_symbol_table: 188525122dabaa0f219515b75de1edad0bb16a433c9f45c197b06a35c5982a12
initial_ast: f86190debc635d37b9a18467587d9836ad3bcc07b8ec6a263267c928b81c85c9
unrolled_ast: f86190debc635d37b9a18467587d9836ad3bcc07b8ec6a263267c928b81c85c9
ssa_ast: 115eafc8a3d7b48c79363e4c8a56314d73407e4fed1d56056fcbabf752060fcf
flattened_ast: 75138500773ddba4b63ea9199c36f24c48a3169977fa70fc4adfbd64daeb71df
destructured_ast: 0cd440866d288992b0795dbcc202791d7969c088378be37c2e6828f37407fe9c
inlined_ast: 0cd440866d288992b0795dbcc202791d7969c088378be37c2e6828f37407fe9c
dce_ast: 0cd440866d288992b0795dbcc202791d7969c088378be37c2e6828f37407fe9c
- initial_symbol_table: 8e2a7922b54f3c40c20b4844fe2be67b4b0ed3400a49f1be5cb2ac418f83c975
type_checked_symbol_table: ad11a2a7b16fedb468b6065ddca7a7e829fc13e71f6ca8e94662f7d592295ad2
unrolled_symbol_table: ad11a2a7b16fedb468b6065ddca7a7e829fc13e71f6ca8e94662f7d592295ad2
initial_ast: c91a2ed6d992a39348ac505f68f6f07aad43a6737022d448da63c308a5a7fe78
unrolled_ast: c91a2ed6d992a39348ac505f68f6f07aad43a6737022d448da63c308a5a7fe78
ssa_ast: 51c5c57eaf1e55e0de59cc2d3a89a3a3c9514764c178c200b1105fd72c912f33
flattened_ast: e5aea9db7c367ee73aa1de54779aab7b317425849e67bfa869d017e22b46bb2b
destructured_ast: 912baa669278754bc0a7dd6a6cdd1ef105517abc533528ee608504c18672d801
inlined_ast: 912baa669278754bc0a7dd6a6cdd1ef105517abc533528ee608504c18672d801
dce_ast: 912baa669278754bc0a7dd6a6cdd1ef105517abc533528ee608504c18672d801
bytecode: 3c391009be59588562aa4a34d1b00508cd253c94d35a66741962352c76a92633
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: fa3884ac54aff755ef2586393599721511b7ce135c9bcbe74cabff30886e0b80
type_checked_symbol_table: 23d793fbaa974bea4557caf161cb9e8e4f653b8513007155c7b6d790e3bdcaff
unrolled_symbol_table: 23d793fbaa974bea4557caf161cb9e8e4f653b8513007155c7b6d790e3bdcaff
initial_ast: b868f87536ee7782c8fbeff535d6df882416886dd5dfed4f9363f350c9e55511
unrolled_ast: b868f87536ee7782c8fbeff535d6df882416886dd5dfed4f9363f350c9e55511
ssa_ast: c34387f2e4798e36e23f5b992ef13f39dd128ea4f38bea1fa6d931a8564a3744
flattened_ast: ac00b75d6a02b9d48a1ee2ed807cc12554f0683c2bc74540aa096ad214befeb8
destructured_ast: d8b6e33f700734e18582d78a34073151f830deed7baacef745415ee3e9451879
inlined_ast: d8b6e33f700734e18582d78a34073151f830deed7baacef745415ee3e9451879
dce_ast: d8b6e33f700734e18582d78a34073151f830deed7baacef745415ee3e9451879
- initial_symbol_table: 3171f5ac8aad093c09730a53f7f5ada8e8b5e25706b0ff05ed4a67eb7b3d8687
type_checked_symbol_table: 6f46a917311c5d6fb9bdf0455e4816289bd809e38dc60134b1dc2118f9990287
unrolled_symbol_table: 6f46a917311c5d6fb9bdf0455e4816289bd809e38dc60134b1dc2118f9990287
initial_ast: f1502008e5b4498b687ed7a0b63b248c4ff1c5f1e21e024033dca38a14324c83
unrolled_ast: f1502008e5b4498b687ed7a0b63b248c4ff1c5f1e21e024033dca38a14324c83
ssa_ast: c82555c0635b34c215207b359dce395c597fffb2963b63fe3664211f3ce8ef38
flattened_ast: 5e8bc6c47b2febb8caa4e44cf0e1d2e6d9037d8e1aaac3c813a7f606886747b5
destructured_ast: 3aa022806e5c71ad08091114bcecc324892a3b5108fac744faff1c0692417260
inlined_ast: 3aa022806e5c71ad08091114bcecc324892a3b5108fac744faff1c0692417260
dce_ast: 3aa022806e5c71ad08091114bcecc324892a3b5108fac744faff1c0692417260
bytecode: 3ff716b96c532801f4fa5310f4eedf8f96fe15bd7db3bf087e7b64a161153945
errors: ""
warnings: ""

View File

@ -6,13 +6,13 @@ outputs:
- initial_symbol_table: 4257c099771eba0ebe56caedd81d40740538873eaa91636b4d2ad01ca0c11dee
type_checked_symbol_table: d8240d6895acdb3c1c6f527c87077b41a7ab85a1fc62cda388b51835da6ffa44
unrolled_symbol_table: 02f0a9e26712b0acf1fc296ec9613e364e23254fb0bd0eb162b5404b0bf1dfe3
initial_ast: cdc5af7d6affe7f7b920e862890f7d1243dc796aee21811427c3c4b952888a82
unrolled_ast: 2fc7bc4cc122c854272b545de15d6a96f9b0005c32ab5eb1acd6f367cb758faa
ssa_ast: 2d2ff690858a75e0f0c731a11899732c4902b36d1e73550c443e82a6b988aaae
flattened_ast: 414cedfe3326d0f495725f44686c5a4a456478ca3a9509e031918e86459999a3
destructured_ast: 1c967171bc4c557ea7dccc89efd33436db8b49d606da5df40db2cb88e7bfa4f9
inlined_ast: 1c967171bc4c557ea7dccc89efd33436db8b49d606da5df40db2cb88e7bfa4f9
dce_ast: ef7bf00f2dc81167ba1382fb0f28667b319b44ed4245c4bc29d6f978cdc7cc79
initial_ast: f9aabc0f7708cd84970d5c77520fc0c927e60d1df1138583804824f042bfcb3b
unrolled_ast: 9b86672d24a696edda4727159157aef727ebefab6a9e5c3cdb42d3e3f22596ac
ssa_ast: 9de08203679d8b7ea5d8a73fec645b560a070b26499c50651954f4ed3f3cf7c0
flattened_ast: 04242cf4b153dffbb72765c651e2503b5496139ddd9f440e4b415d65eaab0478
destructured_ast: 306fba1e6c26ab5453605a555e625dee10c24d1f31002e25f4353ac2798394cd
inlined_ast: 306fba1e6c26ab5453605a555e625dee10c24d1f31002e25f4353ac2798394cd
dce_ast: ab9c0b0e4becfe64b47f691deb0c73e2149902c0c29078bd06fbf94255ea95c9
bytecode: acfb8fc365ba153cf8598a04dad8ff4ac65b9df6c6356cb077fcf9dafbead7e9
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 8bdb0f229581daa96817e49fd8d44ccdee0a55ce261ffab7fdc2240f38c55699
type_checked_symbol_table: cb90915ed8f68c317998968f797090ca6e6636de1af45a37352759be994bc6fb
unrolled_symbol_table: 0414309645ab69b22ea14af6d95eedd3efe891575884267b1bd4e8842288eb8b
initial_ast: 7605e29ba9dd5e1fab7cdfb8aa89d2775203f5273b84735a3440c545ebffce03
unrolled_ast: 517bd11485cc6cabac08d36b8d0bb4e6ab7eed9182b10cd04ef6a0f277e0465b
ssa_ast: ab7055ad83cbd497b5561391dee9a179bd4d7b577de91ed9dc72582cd9b72c91
flattened_ast: 703074571d3f3479b96465ca1dca76b05b1e1d34d4783d06dfc04bd1dea0dfe2
destructured_ast: e2ec29080262ba2b3f1be10263b24950edd7920b38c86eb9295ef7e7baea5120
inlined_ast: e2ec29080262ba2b3f1be10263b24950edd7920b38c86eb9295ef7e7baea5120
dce_ast: e2ec29080262ba2b3f1be10263b24950edd7920b38c86eb9295ef7e7baea5120
- initial_symbol_table: 6cf48437edcf63323da5eb034acf28b675cb5d498b90c6b6813c36ada2faf49d
type_checked_symbol_table: 021dc0e9060e127c9baad256547ec6614a642254d8c49972cb6eeed166ea2cf5
unrolled_symbol_table: f0287ad63cc1d887c17928681b29fcf5c85fe377f0ddd2951048e11d6fe8a7bf
initial_ast: 3c93df9e002456e3280997e691a26070059d00b3360aedfa21eadbf6ac874d55
unrolled_ast: c7e2d16c2f3925ca9c070c3c5e732afa2da488bec9913c2c1d60253fb3864e58
ssa_ast: 86d0e28c9fb58f62f297380f63bb1d82dbd31dea4b3bacaf2b78def816cc40f7
flattened_ast: 4a7a83f06568768bd98e016848ed4251137b17893958c0f43f54ba06b9733726
destructured_ast: dbe3ea662e64e6eacfc1575104c0135faa98fe36a0387a7ff3c652e7bb7498b9
inlined_ast: dbe3ea662e64e6eacfc1575104c0135faa98fe36a0387a7ff3c652e7bb7498b9
dce_ast: dbe3ea662e64e6eacfc1575104c0135faa98fe36a0387a7ff3c652e7bb7498b9
bytecode: 34335e40c3ca26e00044d055cc0cb8d262fce1ac49a4940b36b1136e0772d305
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 9d2621a6655c3b4fc488b4303557b99756de606508b19dc917a2d2c004d05b3c
type_checked_symbol_table: 63e4810a08f666b904fa09a6c923ddaed25dcefd5ab69a9dbfb0067f5563c494
unrolled_symbol_table: 6979a1a8c5d4216808b49ffdd08823c90bb7bb453ba0a24f929a4e8a4713f806
initial_ast: 9ebde40ca2971771bf7ff4af11a88482f32aee303723c87cfe5b4a0795a560bb
unrolled_ast: 338b820767e2fc502f9530c16635f6a8589c0c48c18157f3d76c924193b65b03
ssa_ast: c3265796218829ddfdd6e34b50beaefadabdb49695cbf3034330442571766e61
flattened_ast: e86dc2b1a3662842b487fc5f9c1054034cbf24be359b13bc5fb7ea45c38fb3e6
destructured_ast: 2aea0a9aa14833cd1fb59d65618d66326ac3994cfaa72f646ca6e0b0bfdc081c
inlined_ast: 2aea0a9aa14833cd1fb59d65618d66326ac3994cfaa72f646ca6e0b0bfdc081c
dce_ast: 2aea0a9aa14833cd1fb59d65618d66326ac3994cfaa72f646ca6e0b0bfdc081c
- initial_symbol_table: 43cfbbcf860d5d9de4a322d91b06daa023f2eb99220166d40548bb6e836a575a
type_checked_symbol_table: eee54c60b3d52033b5ed886448d2d4d108cfe2915783db073739809022c9eea5
unrolled_symbol_table: d50c622748f8fd2db4e56edb8cbbbb905bb5058be2c524beaee224bce4f630cf
initial_ast: e9cf217a6a0664197404c992a11c006fe485cdb13c8f97fac97835c324a84f6b
unrolled_ast: c4e7fd640b43fe759680f8d08c44997f06578a6cace4043a0d45892fc8671d90
ssa_ast: e1d7ca739b7fdd386ad6e2a59db9340f00ad382e1d2f7dadd6480cecd7767509
flattened_ast: 857c2aec4f3731d4a865a5b6f4a286f76793f4c7845784d2f7c5605bfd287ab2
destructured_ast: 72a57cb424c606c6e6ed74e33736b758879040096893739fb2d5bba29c67cd98
inlined_ast: 72a57cb424c606c6e6ed74e33736b758879040096893739fb2d5bba29c67cd98
dce_ast: 72a57cb424c606c6e6ed74e33736b758879040096893739fb2d5bba29c67cd98
bytecode: a6350aaded46f7047061f7e68a8ae41eb8aa0d29f02560257ecdc582a6c684f9
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 29e97965dc9ebb3ed0ec705736fbdc7dbb9f813faeac344da82d0456e333f874
type_checked_symbol_table: e82c690e31df9895a2e07093511bc47a321ceabb638540d5fba59641db0e8abc
unrolled_symbol_table: 649c16b1edb5c10fc698f4ed9912a0438208546bc8b06f50f004b3176db37f47
initial_ast: 6256a249cbc21507d80bb44e2915179d77485e9c7974b09dad5ac31c80857779
unrolled_ast: 9c4e9b3fa952b1eb43ad69e5374eaa14dd6a7028e993cfef8183f832869d5a5d
ssa_ast: 10a72521616bff5daf9a6086d3c4a86a98abb246ccebe02f62d92ef3885f8138
flattened_ast: 897d8cea1655bbf1e4804e6a163363d6c7ef5f2e4e84cfd437f696ef06585910
destructured_ast: 35be4b9bccb0ca13c97d4f61be13deab1ea78779bee5061248ce27b8e3ad2c76
inlined_ast: 35be4b9bccb0ca13c97d4f61be13deab1ea78779bee5061248ce27b8e3ad2c76
dce_ast: 35be4b9bccb0ca13c97d4f61be13deab1ea78779bee5061248ce27b8e3ad2c76
- initial_symbol_table: c53019722fa027ad8cb8aa7188514416ba8500a9e63e0cbbeb395a871040614e
type_checked_symbol_table: 27ade04f625d124817998872acf120d045dd2d36b47f6520b86f35f8e5e1c0d8
unrolled_symbol_table: 1eb65cea0f4ea2de8d076521184e6c3caef89c03bd5dff05e9bcc78da53dc06f
initial_ast: 668d33da0e362dea15247fc4a9ee6d34af149550255730a325f59bc21635e17d
unrolled_ast: 1ab7154c5ad3469a82a23eaf470226fafc760036058b8fc43b2260f6f77e988d
ssa_ast: cf0ca516b9b423e232497572ccb45e01cb43541381170419575abb5b85ba1f6f
flattened_ast: 15e7325e58e1068264bc519e23b0d057da9b63f97526d55cbbcaacdbae1d91fe
destructured_ast: 430657aab5ae376d582e64df9e843497cda11ff9ae7704005e6e13d3da4cd180
inlined_ast: 430657aab5ae376d582e64df9e843497cda11ff9ae7704005e6e13d3da4cd180
dce_ast: 430657aab5ae376d582e64df9e843497cda11ff9ae7704005e6e13d3da4cd180
bytecode: d9595550f8a3d55b350b4f46059fb01bf63308aa4b4416594c2eb20231f6483a
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 29e97965dc9ebb3ed0ec705736fbdc7dbb9f813faeac344da82d0456e333f874
type_checked_symbol_table: 0d2450e4e9dbdf81f3509cfd8a2ddf47db37aa8980bf1c268305e4e0558772d4
unrolled_symbol_table: 1380d27733d07cc968b92d018486a2c5a7dce3ede1253f4c6694b7ae5e477105
initial_ast: 2edeabb90f14e92b8eeab4396b1ddcc6e707da5e3b3ca9936ba946bbaba68822
unrolled_ast: 305dc314c5c7272d119542345476398ae0e349b6fbc38ea8286e5a53510ea821
ssa_ast: 04080337c157b9b1b50422ee764a6bd8ecb102d6198a48ffc83919f07d339806
flattened_ast: fb85860478a8f0e2411f1efb09cd6d96a8cbcb16141fd128fc617d0da7971d27
destructured_ast: 112941da355e0dc9d9634c10e910d6e9d56e6036e2aea39cfec6363b7e73bb2d
inlined_ast: 112941da355e0dc9d9634c10e910d6e9d56e6036e2aea39cfec6363b7e73bb2d
dce_ast: 0afd58fda006fe98b19f045e698847e04a9aa7b3f9ed2fa9fbb614130b6d7e94
- initial_symbol_table: c53019722fa027ad8cb8aa7188514416ba8500a9e63e0cbbeb395a871040614e
type_checked_symbol_table: 9887e44dff63a40cebb1e46ac2fae6af3658c3294e7f1965852cc5b137de4400
unrolled_symbol_table: d2fc65e15788861066fefaead94043d91f77ea5daa7610d01c2d2f8e46d3d2ab
initial_ast: b8c08780025becb51df63753b189bcbfc4aea1314f39820d3dfac11b40b66662
unrolled_ast: a11926dfe3b4652f7df81911a1778603af4a6c71ec0dfea30fe6628a2f723c6b
ssa_ast: 10a764ea18f1b954df8021bb1f95563fe71bccbeff2f2582dbe33a60ceddac39
flattened_ast: a0e8276dc2963cd1f79e6133521bc37ba65b7a266c765fba0f7faf57d3db5ecb
destructured_ast: 76e4080e791e824787a062599600851316e1b6df4d4d3e79cbde5e084d02bdf9
inlined_ast: 76e4080e791e824787a062599600851316e1b6df4d4d3e79cbde5e084d02bdf9
dce_ast: 1ebfbfe7b08d7659334e33515db61c822546bc57bb4347c975ff3687c4c954c1
bytecode: a5ef8b434b2a8b1939f1d042fd5706c996e0f1905bf2395a0f140cff779ce48a
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 0b53989640055bef15deab2fb1e4d8691b4f1b439f1bdba64f34278be1cb37e0
type_checked_symbol_table: 1ab6493df9354a7e0a097a8f78ad1614dee1166e9de8ab017279fa02bcc1ee28
unrolled_symbol_table: 1ab6493df9354a7e0a097a8f78ad1614dee1166e9de8ab017279fa02bcc1ee28
initial_ast: 14ed8952c476c2b24bf9ad6cd7da7091e8aacd49975682bc4876f9b2d3aedbbe
unrolled_ast: 14ed8952c476c2b24bf9ad6cd7da7091e8aacd49975682bc4876f9b2d3aedbbe
ssa_ast: dcb235411309bf2559c2a427c29e716b2069631a485110e9a82e23994bb3fc52
flattened_ast: 9020e9b164148797cd34c2dc0031396ad860ef0dcdad67762943a00bd7d7d4f7
destructured_ast: 9da93c6eb49d492936f1d950dd4e3a2aaa93dff67b23fd6f8667f4c20b626861
inlined_ast: 9da93c6eb49d492936f1d950dd4e3a2aaa93dff67b23fd6f8667f4c20b626861
dce_ast: 665fb2235b45e4fe8801daa263ced1e9183789878e536c7b8d18e47681937947
- initial_symbol_table: c76280ef8b8dab4d05bd78867d20311f59ccc08ede7a9f225502bca134dab5b8
type_checked_symbol_table: 5cb59e1aef08b326bf04c0c9d683e0c627e0977b5e38e2c328c9edc776d65d6c
unrolled_symbol_table: 5cb59e1aef08b326bf04c0c9d683e0c627e0977b5e38e2c328c9edc776d65d6c
initial_ast: a52fc966556d3628a3a7b2fc6ff2187f17edb2a27146f0a24957686c1d311c01
unrolled_ast: a52fc966556d3628a3a7b2fc6ff2187f17edb2a27146f0a24957686c1d311c01
ssa_ast: b4bdb422367437a635e28af460185f73e59ada4663803e6750729912df4b9e0e
flattened_ast: 799c5a279723c95b12324ce9a97e56f741d1648e3a8bf9510cd9e20278f87964
destructured_ast: cb69389140e2206e5562a54782374da4ba27f60dc23cbb172d0e674701beb003
inlined_ast: cb69389140e2206e5562a54782374da4ba27f60dc23cbb172d0e674701beb003
dce_ast: 0c825971ed1e09525be4e15628a6ae080b89c253954d19be28d0f86004eecb81
bytecode: 03845ec2f54d49f71640659603ead8f68ad067a15fda438e5e13524777d1559b
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 0b53989640055bef15deab2fb1e4d8691b4f1b439f1bdba64f34278be1cb37e0
type_checked_symbol_table: 8e5ad458f96ada8c3cdd6424e864c7a94692cfab224dc16b6941cfd5fc99f883
unrolled_symbol_table: 8e5ad458f96ada8c3cdd6424e864c7a94692cfab224dc16b6941cfd5fc99f883
initial_ast: 4658c53df803f432b94e89b89f9919e362fa9fb1a36cec6a4bfaeef9a7024434
unrolled_ast: 4658c53df803f432b94e89b89f9919e362fa9fb1a36cec6a4bfaeef9a7024434
ssa_ast: d9edec3b6bee6695344a4f8f7c0ef735d02838a800a0d10737083ed7956a919f
flattened_ast: de70fa794947b7c4cd24beac167e076dded5e8325eb95f36b5f906746950deda
destructured_ast: 16c6941986501843ab532ce7750e13b1db6b35b66a2903bce1a81e5d7ac640fd
inlined_ast: 16c6941986501843ab532ce7750e13b1db6b35b66a2903bce1a81e5d7ac640fd
dce_ast: bea3bf327ec7a8509c0b2dd9c08a8ad66f22cb4997a17fed66ff21c362ce4de7
- initial_symbol_table: c76280ef8b8dab4d05bd78867d20311f59ccc08ede7a9f225502bca134dab5b8
type_checked_symbol_table: 634474672336f17251efbb2aef095021bfdedf422f692bc39ee6cdad3c0cd952
unrolled_symbol_table: 634474672336f17251efbb2aef095021bfdedf422f692bc39ee6cdad3c0cd952
initial_ast: 44b3675d66aac368a83549965326c790688001baa363f770fa06db9134d2a469
unrolled_ast: 44b3675d66aac368a83549965326c790688001baa363f770fa06db9134d2a469
ssa_ast: d37735708156634a759749d2a34ffd5b9a8bf8a8002c45fe6850b0d22d438a5c
flattened_ast: f61a01aa36998b0ebe4871b7cd78b13b20ffd54a07f98bc80d1e64e302efadaf
destructured_ast: 716e67c95dc275393b379ec3a2c86db4a4b6ae687082bc5d5c52063b274c5684
inlined_ast: 716e67c95dc275393b379ec3a2c86db4a4b6ae687082bc5d5c52063b274c5684
dce_ast: 676bab05f59261d4649834f5f1a8bcbfd52a366365a698b1b833a9100ae14db9
bytecode: 89209e8d86f847dbf47309d0092ee98ff4c7e72f93c06aa16b185b87931b4163
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: bc00a6f0fa880e2cddf4bc424ff5f9968e43ce903d50d465f4f546e7cd4a2cf2
type_checked_symbol_table: 2b3107f8a94acb12092cb40d6eca58305e01681f8aaf3c4fe128ca80378d5390
unrolled_symbol_table: 2b3107f8a94acb12092cb40d6eca58305e01681f8aaf3c4fe128ca80378d5390
initial_ast: c195cd96cb533417c22ee288a309dc785869aead578882b8de25adaa7138767a
unrolled_ast: c195cd96cb533417c22ee288a309dc785869aead578882b8de25adaa7138767a
ssa_ast: d61f8c38d5972e527ca0774933f12701948204aabf235bcc410234b0cca6ffa7
flattened_ast: c2913b758f62dc5bfb9578736623c6f555e92843ef2640e7b8c4017010bab71e
destructured_ast: 5e47cadb8b30359951bb55d17f62114e21c36cb22909bdd8922d280e205fad79
inlined_ast: 5e47cadb8b30359951bb55d17f62114e21c36cb22909bdd8922d280e205fad79
dce_ast: 32ceba1bad1d48a88a8bec44db7202e2666ee7a1eace8065dfa7e643a04b6922
- initial_symbol_table: 64becc6a57749a4b966792745febbddb9007cb0c9f1bcdd2aa77c0b4ef531482
type_checked_symbol_table: 68ebb4783f19bd9197355774f21441a1515e8b2a5e748c08df8724a97ea66df1
unrolled_symbol_table: 68ebb4783f19bd9197355774f21441a1515e8b2a5e748c08df8724a97ea66df1
initial_ast: 700289f25680ef50171a5007f80db8f3842567c27bc20f3f367f000f98bf318b
unrolled_ast: 700289f25680ef50171a5007f80db8f3842567c27bc20f3f367f000f98bf318b
ssa_ast: 3919f6f189d1388c447b219fc2fed68436e7b929f236e91adcc9cb3bb38edb67
flattened_ast: 918b4ae3dbbe20c4a971f0384d3ef6f78f67340edd986d6de6d11bf7e781abda
destructured_ast: e4ff59af7a2d5748d03de57fbe7f807e490eade87cb82e039dbcd258471d3e6c
inlined_ast: e4ff59af7a2d5748d03de57fbe7f807e490eade87cb82e039dbcd258471d3e6c
dce_ast: 9ba89f2b1cabd3d36a3efe5ad7e70b4d33d40675dd2969ac5e7f7d3bbcebe32b
bytecode: 44723f1147fbb09b330db772453005ab5dae98a53925a9dc45b66daa51584290
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 0b53989640055bef15deab2fb1e4d8691b4f1b439f1bdba64f34278be1cb37e0
type_checked_symbol_table: 7ea97bd3f2f1366697977d015b733d7f70222006a2c318ffd71f85b486683aa0
unrolled_symbol_table: 7ea97bd3f2f1366697977d015b733d7f70222006a2c318ffd71f85b486683aa0
initial_ast: 7e158eb4d35f3576485510266c8bf65e43a8a01e112c893a9b207f22455fff6c
unrolled_ast: 7e158eb4d35f3576485510266c8bf65e43a8a01e112c893a9b207f22455fff6c
ssa_ast: 580070ba6c54295ee57adad120f1e289e0383a9924b33483d418d578984516df
flattened_ast: 9a9f97a65090fb04e4923f03168ff633de8dd8df5d0d77771e0297895327f8ad
destructured_ast: af85d016afeb7bb8f094f29d35efa0d587d7318ab7ddcf0d1e7dcb8c41995e13
inlined_ast: af85d016afeb7bb8f094f29d35efa0d587d7318ab7ddcf0d1e7dcb8c41995e13
dce_ast: 3398f3b5688a2adfd3e1a729066f970183d1cd3d0081a35b566ef5a78025c691
- initial_symbol_table: c76280ef8b8dab4d05bd78867d20311f59ccc08ede7a9f225502bca134dab5b8
type_checked_symbol_table: b348281fa241dbbe4e97d86ae6054a99ed874e2b42138171a8d34cacda486c74
unrolled_symbol_table: b348281fa241dbbe4e97d86ae6054a99ed874e2b42138171a8d34cacda486c74
initial_ast: be7e265fbaf35e6890747f6e75f719336c787424f66b57fd4a140916c341e84a
unrolled_ast: be7e265fbaf35e6890747f6e75f719336c787424f66b57fd4a140916c341e84a
ssa_ast: 683d09e60d6b10a2bfeecf3217f6dbb13061c4b97b1186a392fd1c12e4949f14
flattened_ast: cc2f6760be06ac27cd63cf3e6cf22551798ab1a7f10736c7b450563032650b01
destructured_ast: 42f911b31153e9262e8386cc0b58c5fb7d1d5072214b3a74b9a1cda04cb33909
inlined_ast: 42f911b31153e9262e8386cc0b58c5fb7d1d5072214b3a74b9a1cda04cb33909
dce_ast: bcb33822bcabe69e266a99cdf1255abbadcb5392da4bfce26d4b8d5a8411b3b8
bytecode: 03845ec2f54d49f71640659603ead8f68ad067a15fda438e5e13524777d1559b
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 0b53989640055bef15deab2fb1e4d8691b4f1b439f1bdba64f34278be1cb37e0
type_checked_symbol_table: 857ddcccc8ba5f91784b3dde333bcc63b5883ee12d4110112eda378ac43ccdc5
unrolled_symbol_table: 857ddcccc8ba5f91784b3dde333bcc63b5883ee12d4110112eda378ac43ccdc5
initial_ast: cf0620436443663eee9dd1767bbdba9c2a68b350a02a32df0b203b6c07c28e3d
unrolled_ast: cf0620436443663eee9dd1767bbdba9c2a68b350a02a32df0b203b6c07c28e3d
ssa_ast: ee7a71f44f12f31dbed39bc4db57b50c72012769af87c4ccb24f408d0955f49e
flattened_ast: 64ddd1307acda3369319ec275d0d1a1e2b3c58941bf55da4533f0b4e59815838
destructured_ast: 482ea7d3d89a58dc0167fc45c84d402fb4fb150dd7e583b8edde3f0c93b12a34
inlined_ast: 482ea7d3d89a58dc0167fc45c84d402fb4fb150dd7e583b8edde3f0c93b12a34
dce_ast: 557dcaf33a9988d441fbe85b0fe13bef52bf00e214b9631224765930c8b733b4
- initial_symbol_table: c76280ef8b8dab4d05bd78867d20311f59ccc08ede7a9f225502bca134dab5b8
type_checked_symbol_table: e1129b73e55f87f4532f6ee5f5d3807b61e698ad3d01d33b52d074f350808878
unrolled_symbol_table: e1129b73e55f87f4532f6ee5f5d3807b61e698ad3d01d33b52d074f350808878
initial_ast: 73c24be281da740da3515010509354cae99912083b76cd4aaa97cf5cc5427f87
unrolled_ast: 73c24be281da740da3515010509354cae99912083b76cd4aaa97cf5cc5427f87
ssa_ast: b775e681779c5508439ae7c527fec4642f10028db4de5d586a91adab03e630a9
flattened_ast: 56c9998dec7fbfc3793437b8011d6211e01351ee6956fa0c6fb0b450942560e5
destructured_ast: 813bd3533b7ffcec85297c98fd6cee8bc1303313867ea575bb185803a8b40716
inlined_ast: 813bd3533b7ffcec85297c98fd6cee8bc1303313867ea575bb185803a8b40716
dce_ast: 2a6921d8e21b3a2e44721d4f6ca5b492b77b7a14eb38cdceb620a475367d77c3
bytecode: 1ee04c880a78442953925baa8e3c60e416d77c926da80774db6961188aaba65a
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: bc00a6f0fa880e2cddf4bc424ff5f9968e43ce903d50d465f4f546e7cd4a2cf2
type_checked_symbol_table: 2b3107f8a94acb12092cb40d6eca58305e01681f8aaf3c4fe128ca80378d5390
unrolled_symbol_table: 2b3107f8a94acb12092cb40d6eca58305e01681f8aaf3c4fe128ca80378d5390
initial_ast: 18367bef5242c3d05bf9b634b7c4283827cc2b139dd34321ca7bdf15548ebed4
unrolled_ast: 18367bef5242c3d05bf9b634b7c4283827cc2b139dd34321ca7bdf15548ebed4
ssa_ast: f304a3aa5bfea73165262ef32997e06905caf181a1128dd491901f3e9ab8894d
flattened_ast: d1b14cb4e3e6741c59fd51d1f1d9c7586d0a3b277b988bc23bbf62a5b3205f2a
destructured_ast: 9a60cdb4272353ea39b520c6395ee2728947743ac8f1168a7749b6284f69302b
inlined_ast: 9a60cdb4272353ea39b520c6395ee2728947743ac8f1168a7749b6284f69302b
dce_ast: b251f2c19953b697d980b2ced31dba59d0620b4a82c66f5e0c3895f12bfb4032
- initial_symbol_table: 64becc6a57749a4b966792745febbddb9007cb0c9f1bcdd2aa77c0b4ef531482
type_checked_symbol_table: 68ebb4783f19bd9197355774f21441a1515e8b2a5e748c08df8724a97ea66df1
unrolled_symbol_table: 68ebb4783f19bd9197355774f21441a1515e8b2a5e748c08df8724a97ea66df1
initial_ast: 2883c425a9013990767c3c4b4ad692562406e5463f31912f82c2d8c7f298bddf
unrolled_ast: 2883c425a9013990767c3c4b4ad692562406e5463f31912f82c2d8c7f298bddf
ssa_ast: 5103a36c6d5c2b942ad8a31ffd851cc38f7a42afe680173c6fcc12aa63226bf9
flattened_ast: 61a1dc2ba1d914e1dc4c4c4c970fa5c4a95b0342a0ff1b11a286fbeb0137943e
destructured_ast: f6be79556f619ba754d79821b9070f0b02a124366767fac8a68e7cd91d4a8957
inlined_ast: f6be79556f619ba754d79821b9070f0b02a124366767fac8a68e7cd91d4a8957
dce_ast: 2244ebf8b525314a15d3677678702aaa5f508c7711c53a8f448621b4dd2775ef
bytecode: 6e17954a1a55bf11bcac1b381fc6a82ee849f92a9af06d755ee3d6e3cd3b748d
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 79eed2f6e683aa3a028ae2e9dab1002207743d7b4a651658bbc6a5b8185e0f8c
type_checked_symbol_table: 17abd653b2f3fa7cd1996c2f7675fb6f64a4b5dbdd281c46e8977676e7eb857c
unrolled_symbol_table: 17abd653b2f3fa7cd1996c2f7675fb6f64a4b5dbdd281c46e8977676e7eb857c
initial_ast: e30e680035a999fddf3f6bf727d96a91bcb315e0015e68f06be3bc6a5fea60ee
unrolled_ast: e30e680035a999fddf3f6bf727d96a91bcb315e0015e68f06be3bc6a5fea60ee
ssa_ast: 20eab109b98f072405d4e7491e12625dd8c32912f0744b06c426f0a67e67b636
flattened_ast: c07c880e72d3e0ee980acd278d7e1583a2bb57edb5279c8b8876ff0daf23b411
destructured_ast: 5d6134b5ce819e2425216bb82a34b4d030520031b333d8cfdbde495cfb140a53
inlined_ast: 5d6134b5ce819e2425216bb82a34b4d030520031b333d8cfdbde495cfb140a53
dce_ast: bd6a7668dbd9fb4fb4ee5988d6888995ca9e0fd9c0e3e078bc578162d0321bf6
- initial_symbol_table: 060fc20ea7dd04712b9e2b3488a4a6d3e6281973dd38a8d3e53663648b433ef3
type_checked_symbol_table: 5db93764c7db085c6e9ea6b1537335abad1a01c43b783684a6f11eb8e404fed8
unrolled_symbol_table: 5db93764c7db085c6e9ea6b1537335abad1a01c43b783684a6f11eb8e404fed8
initial_ast: aa4d2720b65d26063107157535b8f878263d32537bf2827527e3192685397238
unrolled_ast: aa4d2720b65d26063107157535b8f878263d32537bf2827527e3192685397238
ssa_ast: 80ad5831fb464b0d6eb2cff966c85a0ef185b28f488d187e2f5f858cb26b4bba
flattened_ast: 014992495f655668637b283c83604f2ceea0041f46c2e8b3a05d9884da3abc05
destructured_ast: 1efb3c58ddfe606d3513297f70c3b197b9f4009f34d3c3d27f40b6b0d7a6b16e
inlined_ast: 1efb3c58ddfe606d3513297f70c3b197b9f4009f34d3c3d27f40b6b0d7a6b16e
dce_ast: ce5337e81f564298a463e462ab95fdadac55e3980b7fa38bc49c9667d5ca931c
bytecode: 16448534dab09040c482f623815abdd0bd2e330d2cb99bc095142027c80e9bf0
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 0b53989640055bef15deab2fb1e4d8691b4f1b439f1bdba64f34278be1cb37e0
type_checked_symbol_table: 1ab6493df9354a7e0a097a8f78ad1614dee1166e9de8ab017279fa02bcc1ee28
unrolled_symbol_table: 1ab6493df9354a7e0a097a8f78ad1614dee1166e9de8ab017279fa02bcc1ee28
initial_ast: c0ca1427cdd60625ce2d8bd7c687a6b7820a2cb690fb99e406b5e84513c1a01f
unrolled_ast: c0ca1427cdd60625ce2d8bd7c687a6b7820a2cb690fb99e406b5e84513c1a01f
ssa_ast: 7f8e1c97b94aa7a8d2935fd64c8c2ad0e043344226e69e1b57d09021644e94d7
flattened_ast: f77d1031edd766b0818fdda872ad8df55cf34c17c24f0dd9c68bc60d625b4237
destructured_ast: 4ba710fd1e4b97e48a60a9934f98af9575d7d889eaa87ff11978b955a49812f6
inlined_ast: 4ba710fd1e4b97e48a60a9934f98af9575d7d889eaa87ff11978b955a49812f6
dce_ast: 47690fcd1ee8d2cdba48c23272c73e8c4a5bb7dcb2ecacb9f88cd75c56d842b1
- initial_symbol_table: c76280ef8b8dab4d05bd78867d20311f59ccc08ede7a9f225502bca134dab5b8
type_checked_symbol_table: 5cb59e1aef08b326bf04c0c9d683e0c627e0977b5e38e2c328c9edc776d65d6c
unrolled_symbol_table: 5cb59e1aef08b326bf04c0c9d683e0c627e0977b5e38e2c328c9edc776d65d6c
initial_ast: 26f71359463a9ba5d2e3f860c8f1eec0ca2d0d5ecb3c70f8281b07e1e632aea7
unrolled_ast: 26f71359463a9ba5d2e3f860c8f1eec0ca2d0d5ecb3c70f8281b07e1e632aea7
ssa_ast: a836c4a6c6c9922f451591336555ae15d716046fe42025dce992214660bef8eb
flattened_ast: 283f7c5838f915a137731f3f7dd12117effcce57a4fdba147c31f4673c932468
destructured_ast: d76c69214141c6d5d1acbf3e84c8f171a8ee8287db8c4b7dfbb143dda46d3028
inlined_ast: d76c69214141c6d5d1acbf3e84c8f171a8ee8287db8c4b7dfbb143dda46d3028
dce_ast: fb79387ab1bc3a2e940b5a7c0951e9740dfd1fbaa8ad85ca6ebe3f786925ba2d
bytecode: 03845ec2f54d49f71640659603ead8f68ad067a15fda438e5e13524777d1559b
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 0b53989640055bef15deab2fb1e4d8691b4f1b439f1bdba64f34278be1cb37e0
type_checked_symbol_table: 8e5ad458f96ada8c3cdd6424e864c7a94692cfab224dc16b6941cfd5fc99f883
unrolled_symbol_table: 8e5ad458f96ada8c3cdd6424e864c7a94692cfab224dc16b6941cfd5fc99f883
initial_ast: ae1a7a56279a9af54fffb6da377fbc46de742e00b3238b2aeba45d09a6632130
unrolled_ast: ae1a7a56279a9af54fffb6da377fbc46de742e00b3238b2aeba45d09a6632130
ssa_ast: 7c0adf4a4225d8c741214ceefaf4a9b56958a913c3ad8eca468e07a2e28bed58
flattened_ast: d9baa25d51c87537ad3a3030d3122c948cd8e3796c164eeb8c6618db2269761f
destructured_ast: d9c5da617aaf0e94e0269fa93f3f2ed1361b49f5f3f454bcc18d4762f91d2c12
inlined_ast: d9c5da617aaf0e94e0269fa93f3f2ed1361b49f5f3f454bcc18d4762f91d2c12
dce_ast: 1cd99533251f8450ee6d930c75909bd831feddedeaf232cf4f6fa0962665ada0
- initial_symbol_table: c76280ef8b8dab4d05bd78867d20311f59ccc08ede7a9f225502bca134dab5b8
type_checked_symbol_table: 634474672336f17251efbb2aef095021bfdedf422f692bc39ee6cdad3c0cd952
unrolled_symbol_table: 634474672336f17251efbb2aef095021bfdedf422f692bc39ee6cdad3c0cd952
initial_ast: 0406cc8c2858aa9da0ef0445afca077968e9b89b98744a32e78276e909e2f2f5
unrolled_ast: 0406cc8c2858aa9da0ef0445afca077968e9b89b98744a32e78276e909e2f2f5
ssa_ast: ba6128306f5170bd3e9c975854495a33c48211eb30405790936bceb98a0b5702
flattened_ast: 4d850d297159ce8d5f36d7086d41cb8723a556524f39d33c780e16ea8de81654
destructured_ast: e928dacde78bcf21bc0251657cb07256f0b9f871542075a99b9e2aa9a22a8159
inlined_ast: e928dacde78bcf21bc0251657cb07256f0b9f871542075a99b9e2aa9a22a8159
dce_ast: e095e993c075e172c8e5d65ee8d7ad78f3a040b687f1d0f9c539ef21ce6a17cd
bytecode: cbaea392a3a5a598090b5c75eebfc840f9fd1f4dd9460704bd82c17acfedcedf
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: bc00a6f0fa880e2cddf4bc424ff5f9968e43ce903d50d465f4f546e7cd4a2cf2
type_checked_symbol_table: 2b3107f8a94acb12092cb40d6eca58305e01681f8aaf3c4fe128ca80378d5390
unrolled_symbol_table: 2b3107f8a94acb12092cb40d6eca58305e01681f8aaf3c4fe128ca80378d5390
initial_ast: 7151a3cf55d1025b247fe69ffd178cd6b2eb0272f922fdb5a5bfde9dcee77e39
unrolled_ast: 7151a3cf55d1025b247fe69ffd178cd6b2eb0272f922fdb5a5bfde9dcee77e39
ssa_ast: 5f4ae844c787a6dd0e58a27ab8a8b32be49811c1475393b4e3cca120a7f45b8b
flattened_ast: bf68c51ba36d68fd77de6b63e5c2e705d712ec6e76c643b8db0eb6fedd6e39d6
destructured_ast: bc219156e10c701d423dc656e5f37eb714cce2d732c69403c7e2375bf9f0525b
inlined_ast: bc219156e10c701d423dc656e5f37eb714cce2d732c69403c7e2375bf9f0525b
dce_ast: 06703771636a36a22de63b460ab2bd73e1a0d25408d315e069251d50f0d8a860
- initial_symbol_table: 64becc6a57749a4b966792745febbddb9007cb0c9f1bcdd2aa77c0b4ef531482
type_checked_symbol_table: 68ebb4783f19bd9197355774f21441a1515e8b2a5e748c08df8724a97ea66df1
unrolled_symbol_table: 68ebb4783f19bd9197355774f21441a1515e8b2a5e748c08df8724a97ea66df1
initial_ast: ab0ea4a8cdb307c4c0bb9c01ec83acabb5d7070176da49f1be8828d9bb838292
unrolled_ast: ab0ea4a8cdb307c4c0bb9c01ec83acabb5d7070176da49f1be8828d9bb838292
ssa_ast: 3437826a129a1b434a083aa55e8a62a80e267d705de5e95c8919d266a18feb87
flattened_ast: 3f7dd86348217407846da98c565599a747913340ab4267e2d88086f9b0577ecd
destructured_ast: b70fe5d772e81ccf3443a31809754ce17df8b2b118ad3f29a7e0bd6acdc774c4
inlined_ast: b70fe5d772e81ccf3443a31809754ce17df8b2b118ad3f29a7e0bd6acdc774c4
dce_ast: a0990b5c0cbf8ccfae6440ea98c16782147ffbd31ce8d2975a8d1f9dde6d10f9
bytecode: 5d5cbe495e958d3762c2656dc336bd9fd903b5e0b8b51684f3556ca4b5281344
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 0b53989640055bef15deab2fb1e4d8691b4f1b439f1bdba64f34278be1cb37e0
type_checked_symbol_table: 7ea97bd3f2f1366697977d015b733d7f70222006a2c318ffd71f85b486683aa0
unrolled_symbol_table: 7ea97bd3f2f1366697977d015b733d7f70222006a2c318ffd71f85b486683aa0
initial_ast: 1c3a76d19f97aad8a0ca74edfdffea0ca87e9a7448c9f0ae766ff51876f236da
unrolled_ast: 1c3a76d19f97aad8a0ca74edfdffea0ca87e9a7448c9f0ae766ff51876f236da
ssa_ast: c19d32e511e4180c00b74a0e881686ca4576e6b1591be75f111e1931bc055bf7
flattened_ast: eeb242c20efc908266d201b4297653ef35628335eb132c89ac3f1e7a93c51c85
destructured_ast: 8f453847d6907238bfc055ecf411cd7c365a106c4d10eff6d16eb39b5f95e0a1
inlined_ast: 8f453847d6907238bfc055ecf411cd7c365a106c4d10eff6d16eb39b5f95e0a1
dce_ast: d9ce04dbd26a1145efc4d2335dc3f9a844fd7cc00260ec2368664c20f2426de6
- initial_symbol_table: c76280ef8b8dab4d05bd78867d20311f59ccc08ede7a9f225502bca134dab5b8
type_checked_symbol_table: b348281fa241dbbe4e97d86ae6054a99ed874e2b42138171a8d34cacda486c74
unrolled_symbol_table: b348281fa241dbbe4e97d86ae6054a99ed874e2b42138171a8d34cacda486c74
initial_ast: f69c4806f3f8d4d4d3a6bfc72f079e376771b2d72098e32850fc13325f2bcf05
unrolled_ast: f69c4806f3f8d4d4d3a6bfc72f079e376771b2d72098e32850fc13325f2bcf05
ssa_ast: 92b4bd13f9ca2bffb61e5b4be4e061b565454af7e14a855dc87129f507d9d750
flattened_ast: c03eb3f88d9660339147e4968cc1750587a5f6cf680d2e1f4c45b746f4b44690
destructured_ast: d8c8c6fc867cd239d5bdb220345047ee45a58e81887f47c7bb9709e1698a83e2
inlined_ast: d8c8c6fc867cd239d5bdb220345047ee45a58e81887f47c7bb9709e1698a83e2
dce_ast: 42630fd65265f6f392be618874bc6e0cadf1dd503d1f7de9901adbf118b30f36
bytecode: 03845ec2f54d49f71640659603ead8f68ad067a15fda438e5e13524777d1559b
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 0b53989640055bef15deab2fb1e4d8691b4f1b439f1bdba64f34278be1cb37e0
type_checked_symbol_table: 857ddcccc8ba5f91784b3dde333bcc63b5883ee12d4110112eda378ac43ccdc5
unrolled_symbol_table: 857ddcccc8ba5f91784b3dde333bcc63b5883ee12d4110112eda378ac43ccdc5
initial_ast: 6df4c8570614329e4e589c187680fd2964b5772a8d98e0ef32ff92d6daef97a8
unrolled_ast: 6df4c8570614329e4e589c187680fd2964b5772a8d98e0ef32ff92d6daef97a8
ssa_ast: bbf8f6a4dc4296fb250b617fb3074f85bb1947d9ea7a1f507354c406dd9a4325
flattened_ast: c6c84f2df0e29009e693b4e4b3a395efd442eaf2aeb907282cefec63b14d25be
destructured_ast: 6145f12e39f63a825d52629100f0ea53b6c3d76f7db328439cd61a1cc1ad6b61
inlined_ast: 6145f12e39f63a825d52629100f0ea53b6c3d76f7db328439cd61a1cc1ad6b61
dce_ast: f863b6df335f3d18826ca425de8fddb296b808c2521ff8f7404e7091c3f00939
- initial_symbol_table: c76280ef8b8dab4d05bd78867d20311f59ccc08ede7a9f225502bca134dab5b8
type_checked_symbol_table: e1129b73e55f87f4532f6ee5f5d3807b61e698ad3d01d33b52d074f350808878
unrolled_symbol_table: e1129b73e55f87f4532f6ee5f5d3807b61e698ad3d01d33b52d074f350808878
initial_ast: 18acb0a05dcd84b99e8a9aeabb8c7919a08271eadd2a111432b57cbc69453294
unrolled_ast: 18acb0a05dcd84b99e8a9aeabb8c7919a08271eadd2a111432b57cbc69453294
ssa_ast: fa17236875bb282a291b627c0c389104ae0e19f7cc37253325790f90712ec5b6
flattened_ast: ca20644da4789d068f5aefdf2c9576de308f65e71c8fb2615d62a5dd328d4334
destructured_ast: 9afd35c200fc77cbe2cdf348f5fc1b9d7da3ad54f3cae9f7f3993a07f6b0758a
inlined_ast: 9afd35c200fc77cbe2cdf348f5fc1b9d7da3ad54f3cae9f7f3993a07f6b0758a
dce_ast: 5c8d4e7b6a6d993fa0d72c0bb962718718ede44bbbd9a0398bc58757d1b06d2c
bytecode: 928ec4195678229549fe7ec5b3291d7c72afb95787099dbfca6118539bcc2fd0
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: bc00a6f0fa880e2cddf4bc424ff5f9968e43ce903d50d465f4f546e7cd4a2cf2
type_checked_symbol_table: 2b3107f8a94acb12092cb40d6eca58305e01681f8aaf3c4fe128ca80378d5390
unrolled_symbol_table: 2b3107f8a94acb12092cb40d6eca58305e01681f8aaf3c4fe128ca80378d5390
initial_ast: ae16202a927a7513e8793f59ede8a55e1278f35769b051d4d2f80c1d482d6d8f
unrolled_ast: ae16202a927a7513e8793f59ede8a55e1278f35769b051d4d2f80c1d482d6d8f
ssa_ast: 1411edd1ebd12dacdf2b04c6623a6b2a8cc607121499ed1bbadfe801ac0f66b2
flattened_ast: 75aa3e8af15ff65010a8058d5212d59451c56fe41c41728910cb9c3072b9281b
destructured_ast: 4f95832c547f3c6654494ae7d08d7a73023c200ecc648e5bff043728987c071e
inlined_ast: 4f95832c547f3c6654494ae7d08d7a73023c200ecc648e5bff043728987c071e
dce_ast: 65eae244c1796e19e73655a4c80af11d605f7ca0cd518945942056901551a9d3
- initial_symbol_table: 64becc6a57749a4b966792745febbddb9007cb0c9f1bcdd2aa77c0b4ef531482
type_checked_symbol_table: 68ebb4783f19bd9197355774f21441a1515e8b2a5e748c08df8724a97ea66df1
unrolled_symbol_table: 68ebb4783f19bd9197355774f21441a1515e8b2a5e748c08df8724a97ea66df1
initial_ast: da6182b0bc6930dff3970b7b05b367e28df13b25367e35a700d6269d8fe6a790
unrolled_ast: da6182b0bc6930dff3970b7b05b367e28df13b25367e35a700d6269d8fe6a790
ssa_ast: b71ded0d7feebc31b8126de2387b334f58bd7d7b5e41a79c51bf40a1d188debf
flattened_ast: d1acc6216ba6894f393419d1da2247ff5fd9d0e14a4849a560d81a052e3d8a47
destructured_ast: 0f44659097e30a3fca8445a34090f719d1e839f2a435ba63b8b79835793076a3
inlined_ast: 0f44659097e30a3fca8445a34090f719d1e839f2a435ba63b8b79835793076a3
dce_ast: 9dd7e5bf2f0880ffacf7d9fced11650041052be2d222823cd218b4b295499b1d
bytecode: c87c15be54d6c1ca80ab86ca735443a949fd9e3bdf7534136ec4c9bb5443fa77
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 79eed2f6e683aa3a028ae2e9dab1002207743d7b4a651658bbc6a5b8185e0f8c
type_checked_symbol_table: 17abd653b2f3fa7cd1996c2f7675fb6f64a4b5dbdd281c46e8977676e7eb857c
unrolled_symbol_table: 17abd653b2f3fa7cd1996c2f7675fb6f64a4b5dbdd281c46e8977676e7eb857c
initial_ast: e86d9034a99b151b3c24e6fa8144c39c364fc7419f6485ef5ff9306003e3380a
unrolled_ast: e86d9034a99b151b3c24e6fa8144c39c364fc7419f6485ef5ff9306003e3380a
ssa_ast: b1b76872d420d374047685a8caa8997573809809fb38c22070202c22a372cdfe
flattened_ast: 17c15ad8def3723dc51bada88cd6993aae173c425aad665b8ed562a5c507ad16
destructured_ast: b6e13af7316132c7f6e50a61b2b3c8c925156bf508d4acbbee7833620ae03b18
inlined_ast: b6e13af7316132c7f6e50a61b2b3c8c925156bf508d4acbbee7833620ae03b18
dce_ast: dd33ed056dbc212a536bb457905d3b97821edf0586948cc23d9b31b32cfeb75c
- initial_symbol_table: 060fc20ea7dd04712b9e2b3488a4a6d3e6281973dd38a8d3e53663648b433ef3
type_checked_symbol_table: 5db93764c7db085c6e9ea6b1537335abad1a01c43b783684a6f11eb8e404fed8
unrolled_symbol_table: 5db93764c7db085c6e9ea6b1537335abad1a01c43b783684a6f11eb8e404fed8
initial_ast: 9985f0d7ac436326f19345a9a34fb9ad1a1bf74fa4adbc5c62eaa68d25987f62
unrolled_ast: 9985f0d7ac436326f19345a9a34fb9ad1a1bf74fa4adbc5c62eaa68d25987f62
ssa_ast: d6d3795b222de077553dd93f43f8105e37aea604e34f14c405fb671f68afff0f
flattened_ast: 9f0a7eb6c5d6b79a5279319aaf3885217862056e9f9099f09aaecd617ad294a8
destructured_ast: 835d0c3c01b7a793d4f97d89d08f65fa6db5fca2acb3895817e881e23f1f7117
inlined_ast: 835d0c3c01b7a793d4f97d89d08f65fa6db5fca2acb3895817e881e23f1f7117
dce_ast: d59fb59c6fc4bf84443a96d9cd77ae82e4a1af85aedca93bd7db06c7f55eae86
bytecode: 39f2fd495ce761fe3a8fb011b05bfe34e50db91dbd7f9a5bec40a8aa8187f0b1
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 0b53989640055bef15deab2fb1e4d8691b4f1b439f1bdba64f34278be1cb37e0
type_checked_symbol_table: 1ab6493df9354a7e0a097a8f78ad1614dee1166e9de8ab017279fa02bcc1ee28
unrolled_symbol_table: 1ab6493df9354a7e0a097a8f78ad1614dee1166e9de8ab017279fa02bcc1ee28
initial_ast: c37c0b5d0f67bef18833c283bf4a4392e4b07e4f5079f3cdfbf02465930da005
unrolled_ast: c37c0b5d0f67bef18833c283bf4a4392e4b07e4f5079f3cdfbf02465930da005
ssa_ast: d781123cfb06fd2c52d52af8dcd875fd2a2ee84510dbd3542107dd66086e5e13
flattened_ast: 8a455b16b66e84ee4bcc4d5c729be7a7a140087e8b7493e730e14c6162489c26
destructured_ast: 931c9e43747079453587bd45577dc7fc1862bbfc9713bb2bb68d0c2c90b3da76
inlined_ast: 931c9e43747079453587bd45577dc7fc1862bbfc9713bb2bb68d0c2c90b3da76
dce_ast: 47690fcd1ee8d2cdba48c23272c73e8c4a5bb7dcb2ecacb9f88cd75c56d842b1
- initial_symbol_table: c76280ef8b8dab4d05bd78867d20311f59ccc08ede7a9f225502bca134dab5b8
type_checked_symbol_table: 5cb59e1aef08b326bf04c0c9d683e0c627e0977b5e38e2c328c9edc776d65d6c
unrolled_symbol_table: 5cb59e1aef08b326bf04c0c9d683e0c627e0977b5e38e2c328c9edc776d65d6c
initial_ast: c233258c5b56dee130ae1f43125e5b936eeb7a93809ee9cfb435fa9355102371
unrolled_ast: c233258c5b56dee130ae1f43125e5b936eeb7a93809ee9cfb435fa9355102371
ssa_ast: 86663caa5b504fe93b457eb2572a68a1c9d2819a86d60c08e5079c5660d695c5
flattened_ast: dfadfbec8a67fa29c52795fe0d880f2786346b9023c2dfb555d0a67fc1797220
destructured_ast: c8bcf5efaf861bac6dea25f48d851f0c6d94c7f5e8d5187c8864f82f67468ddd
inlined_ast: c8bcf5efaf861bac6dea25f48d851f0c6d94c7f5e8d5187c8864f82f67468ddd
dce_ast: fb79387ab1bc3a2e940b5a7c0951e9740dfd1fbaa8ad85ca6ebe3f786925ba2d
bytecode: 03845ec2f54d49f71640659603ead8f68ad067a15fda438e5e13524777d1559b
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 0b53989640055bef15deab2fb1e4d8691b4f1b439f1bdba64f34278be1cb37e0
type_checked_symbol_table: bd3fb93ae9dd388b30bb8647ee075485a8ca91829e9f04ef5f5a5e2680b4b47c
unrolled_symbol_table: bd3fb93ae9dd388b30bb8647ee075485a8ca91829e9f04ef5f5a5e2680b4b47c
initial_ast: 3d995034b8415027cf2fbb928420342a981e7fe13241950c0252d350788c8726
unrolled_ast: 3d995034b8415027cf2fbb928420342a981e7fe13241950c0252d350788c8726
ssa_ast: 4b5a6316b2467b4cd05c44e88ec6ae5a98aae84d73e08115e61356dbfbcd0052
flattened_ast: 11d75c49b6d8f1a0de6a2e293bf7e2a8ddce9594ecacbad87aaddcae504c4486
destructured_ast: 7e4d543983a873c463fec05313bb7e5ac54053a17b50229ccc84322fdccd0ea1
inlined_ast: 7e4d543983a873c463fec05313bb7e5ac54053a17b50229ccc84322fdccd0ea1
dce_ast: a6a7a34c6364b6793e8228679ee81d507156fa805f2aea9522ebed44c28204cf
- initial_symbol_table: c76280ef8b8dab4d05bd78867d20311f59ccc08ede7a9f225502bca134dab5b8
type_checked_symbol_table: 6f29275aa4828e743a52126c9674b4b187f70bb84c7e14e821416ba70b20a977
unrolled_symbol_table: 6f29275aa4828e743a52126c9674b4b187f70bb84c7e14e821416ba70b20a977
initial_ast: 862876a4cd1d64f45b48ff8222b6df004b8e8ce884775547592bff95f5d86e8a
unrolled_ast: 862876a4cd1d64f45b48ff8222b6df004b8e8ce884775547592bff95f5d86e8a
ssa_ast: ff7ccd5a36b65c4e662b9e6380390451a5fa5ee8c1cfc81a5cb09265fa6056b4
flattened_ast: 920fa02d346dcc0fba1df71505c949ebc98a43bdbe7fadf97f3cc5461f4902cd
destructured_ast: acadeb2029e6345afad5b7586525e018c061116af5b2339d430388c7fdc150a7
inlined_ast: acadeb2029e6345afad5b7586525e018c061116af5b2339d430388c7fdc150a7
dce_ast: 5c3d2447a8804dbc17e47dba43512a5f53358e2b988b8fe833b73ba5560b74af
bytecode: 1a32babe51dec0ff82a035139fa96069e6b0f7b9e7ec8f08f0802bd076deffc9
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: bc00a6f0fa880e2cddf4bc424ff5f9968e43ce903d50d465f4f546e7cd4a2cf2
type_checked_symbol_table: 2b3107f8a94acb12092cb40d6eca58305e01681f8aaf3c4fe128ca80378d5390
unrolled_symbol_table: 2b3107f8a94acb12092cb40d6eca58305e01681f8aaf3c4fe128ca80378d5390
initial_ast: c539ad538582bc310e5dc83c3484409030cb54a14fa7bdefb3fe4867cfb044cd
unrolled_ast: c539ad538582bc310e5dc83c3484409030cb54a14fa7bdefb3fe4867cfb044cd
ssa_ast: 8fd24edd0f7697cecd31bc5149bb1d8259846b663baf341613e93ee3e682af3f
flattened_ast: f8967587d712ecdbd2a596face1204c67644e63893f2194698381d16ab7eda31
destructured_ast: 57ee7a5b5961cca69f4d894cbb664947c57b863d9013cea0c8aa086e08dd22d1
inlined_ast: 57ee7a5b5961cca69f4d894cbb664947c57b863d9013cea0c8aa086e08dd22d1
dce_ast: 9055ac8bcc1d34a7bf2bf60586c4573f7299faf6c14948648bbb40c3f35ff04b
- initial_symbol_table: 64becc6a57749a4b966792745febbddb9007cb0c9f1bcdd2aa77c0b4ef531482
type_checked_symbol_table: 68ebb4783f19bd9197355774f21441a1515e8b2a5e748c08df8724a97ea66df1
unrolled_symbol_table: 68ebb4783f19bd9197355774f21441a1515e8b2a5e748c08df8724a97ea66df1
initial_ast: 55f53ec96767137b08632c7810b17c89e39cb37cab1b54477ea0a9d57050b5cc
unrolled_ast: 55f53ec96767137b08632c7810b17c89e39cb37cab1b54477ea0a9d57050b5cc
ssa_ast: 5e45649b70c8e9ece4c023905595071805863b6137f8e39b608b8b4e9a63d8f0
flattened_ast: c4b33de13d4e9432f7288ace4e13a59047d486541e4be04917a991d5fe9b9a7e
destructured_ast: 829e887016a39d6832795e506c286c3d9f4ed645cb50d60861001f9af26f9ada
inlined_ast: 829e887016a39d6832795e506c286c3d9f4ed645cb50d60861001f9af26f9ada
dce_ast: 66b951a661f3b1b368827b1129f2dc750a859e4425ad820025942da8186271a4
bytecode: 834629ba3e42f71f47ce3499d777661c415ac89ad9d797c54ec4267202d48690
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 0b53989640055bef15deab2fb1e4d8691b4f1b439f1bdba64f34278be1cb37e0
type_checked_symbol_table: 7ea97bd3f2f1366697977d015b733d7f70222006a2c318ffd71f85b486683aa0
unrolled_symbol_table: 7ea97bd3f2f1366697977d015b733d7f70222006a2c318ffd71f85b486683aa0
initial_ast: 7409926e4a019e7ef04c6af85542ff75628d54c6c1ba17dfad3d60b508dc8be6
unrolled_ast: 7409926e4a019e7ef04c6af85542ff75628d54c6c1ba17dfad3d60b508dc8be6
ssa_ast: 40e984ee215624760e152c5c932ccb9a6d20e8e66a2a051a2f5e275834b73470
flattened_ast: 371d83d26067317c41d419c56df65315ac282f49b8549b8a3c84109b6ab76d5d
destructured_ast: d07bb98f5d86fcdea06ece5f78416507e92866c13dd15858ec149c2d5577f09e
inlined_ast: d07bb98f5d86fcdea06ece5f78416507e92866c13dd15858ec149c2d5577f09e
dce_ast: d9ce04dbd26a1145efc4d2335dc3f9a844fd7cc00260ec2368664c20f2426de6
- initial_symbol_table: c76280ef8b8dab4d05bd78867d20311f59ccc08ede7a9f225502bca134dab5b8
type_checked_symbol_table: b348281fa241dbbe4e97d86ae6054a99ed874e2b42138171a8d34cacda486c74
unrolled_symbol_table: b348281fa241dbbe4e97d86ae6054a99ed874e2b42138171a8d34cacda486c74
initial_ast: 5d83282cada53080c65de726cf89955317c2b2f8112e6869707cde27c8843f81
unrolled_ast: 5d83282cada53080c65de726cf89955317c2b2f8112e6869707cde27c8843f81
ssa_ast: 76787d9f5ee867480017ba0ffdb7daf38affdf7dd5f06dc63f3450ec2e1ebd40
flattened_ast: 843d520e1bf9f3e9a8682d8124aa9f19bccda15cae64d13dc5f6c0211bb0a340
destructured_ast: b3889576297ada490e4f4f921f4af4e79b9c130f17fefbc572a7ccf3375f4f63
inlined_ast: b3889576297ada490e4f4f921f4af4e79b9c130f17fefbc572a7ccf3375f4f63
dce_ast: 42630fd65265f6f392be618874bc6e0cadf1dd503d1f7de9901adbf118b30f36
bytecode: 03845ec2f54d49f71640659603ead8f68ad067a15fda438e5e13524777d1559b
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 0b53989640055bef15deab2fb1e4d8691b4f1b439f1bdba64f34278be1cb37e0
type_checked_symbol_table: 857ddcccc8ba5f91784b3dde333bcc63b5883ee12d4110112eda378ac43ccdc5
unrolled_symbol_table: 857ddcccc8ba5f91784b3dde333bcc63b5883ee12d4110112eda378ac43ccdc5
initial_ast: 93235f603f7d22ec7f61154848522334bc3301d31f926ceab1fdbb6e5d7c33f1
unrolled_ast: 93235f603f7d22ec7f61154848522334bc3301d31f926ceab1fdbb6e5d7c33f1
ssa_ast: 587181ece4b6a0f834c3da623fccdd02464897f369ffd0a7f64e032d45a3d1b8
flattened_ast: a79a01f18a2b5afc61b965eca26cac425ed3078ea9be0d6d8397f5a4afe6a067
destructured_ast: ffb2d16cc039178d77da212f2c5956351520a1b395adc04de4a8dcac7f9bfe6d
inlined_ast: ffb2d16cc039178d77da212f2c5956351520a1b395adc04de4a8dcac7f9bfe6d
dce_ast: 1176082391cf301fb0321c991b4b89a3e0d0bb9eb6172ac94f9951ce1b6ed568
- initial_symbol_table: c76280ef8b8dab4d05bd78867d20311f59ccc08ede7a9f225502bca134dab5b8
type_checked_symbol_table: e1129b73e55f87f4532f6ee5f5d3807b61e698ad3d01d33b52d074f350808878
unrolled_symbol_table: e1129b73e55f87f4532f6ee5f5d3807b61e698ad3d01d33b52d074f350808878
initial_ast: e2aa933480fa465a1be1df6e6ac3efffeb4e2222e79fc0f4d8842f4e64924513
unrolled_ast: e2aa933480fa465a1be1df6e6ac3efffeb4e2222e79fc0f4d8842f4e64924513
ssa_ast: 596b1c56daaa81a386235a4f0163ca748472f251925c58b61b9d4c5dcfd0ee72
flattened_ast: 6fa4cf158687c8740afd28ff3e853f58a17b810e2f5ef868e4519d558dc84f79
destructured_ast: d618d947c129d874f11424ef66001f55a42122dae176008c0c4aee0797c4749e
inlined_ast: d618d947c129d874f11424ef66001f55a42122dae176008c0c4aee0797c4749e
dce_ast: 75c6925c90ec22506a20027621a0dcacea4945be48c301307de5f5b4d98ff56b
bytecode: c702ea63bc91bf1aff738a0101761c3201a54f29324dfb4fbcfc7cef05017050
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: bc00a6f0fa880e2cddf4bc424ff5f9968e43ce903d50d465f4f546e7cd4a2cf2
type_checked_symbol_table: 2b3107f8a94acb12092cb40d6eca58305e01681f8aaf3c4fe128ca80378d5390
unrolled_symbol_table: 2b3107f8a94acb12092cb40d6eca58305e01681f8aaf3c4fe128ca80378d5390
initial_ast: d763f279b99cef42b3ac7bb57d50942b30e5f8f1a1f769cd9958cef729a8e02b
unrolled_ast: d763f279b99cef42b3ac7bb57d50942b30e5f8f1a1f769cd9958cef729a8e02b
ssa_ast: 5aac0a63dd818a1f6d9d11ea0ed3a131f998ebefbc93edd21c4c299b574ff493
flattened_ast: 92335c0f34665b1e0169f83ba872b2d02454b50c600d4303e67c970751b3d680
destructured_ast: 72b8ddea2711ea11ba41262fccf5dc0badb735a31da24d30d1f4437a3d302868
inlined_ast: 72b8ddea2711ea11ba41262fccf5dc0badb735a31da24d30d1f4437a3d302868
dce_ast: 7bb5f8eef6263b9358cb8865d824a2c3fac6be338a5f34921575392945812617
- initial_symbol_table: 64becc6a57749a4b966792745febbddb9007cb0c9f1bcdd2aa77c0b4ef531482
type_checked_symbol_table: 68ebb4783f19bd9197355774f21441a1515e8b2a5e748c08df8724a97ea66df1
unrolled_symbol_table: 68ebb4783f19bd9197355774f21441a1515e8b2a5e748c08df8724a97ea66df1
initial_ast: d9f62ac4cccef6993f812ecd36036a58d254321239921b9c49de8046289a6e08
unrolled_ast: d9f62ac4cccef6993f812ecd36036a58d254321239921b9c49de8046289a6e08
ssa_ast: 62d1083ae05a6c3dd3afa2eefd11d39d727b3367457cad1dbc775a5ff6e899ca
flattened_ast: 3049dc8e5b0a4c107399fa3eca70d9fbf747c381029cce1d194d667a9b1e5ef5
destructured_ast: 7125db09e0c24a2c418e41c6171a4eff56a7c7abb7d0343d02b3fbf6497fe10c
inlined_ast: 7125db09e0c24a2c418e41c6171a4eff56a7c7abb7d0343d02b3fbf6497fe10c
dce_ast: f432ff8926f5cb1b5f59a321b8c33d2ac164c8227ce17e1fa297ee02386b0d6b
bytecode: a0a563d61716d3c6b3a75384d04fe6227332979ff3fb5d04a672e1db4e6fa8cb
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 79eed2f6e683aa3a028ae2e9dab1002207743d7b4a651658bbc6a5b8185e0f8c
type_checked_symbol_table: 17abd653b2f3fa7cd1996c2f7675fb6f64a4b5dbdd281c46e8977676e7eb857c
unrolled_symbol_table: 17abd653b2f3fa7cd1996c2f7675fb6f64a4b5dbdd281c46e8977676e7eb857c
initial_ast: fdb9831b46e0f0c0e9c19c887416efd0fb94d053626e11e0d3242d99f5032509
unrolled_ast: fdb9831b46e0f0c0e9c19c887416efd0fb94d053626e11e0d3242d99f5032509
ssa_ast: 89fc72ac8702f3766cf73f98ab203f822e35397729b9d7b0c421967b9bc1d002
flattened_ast: 614572fd02f9de4d005d78146f85c35cea3fc346015f7c456de94605009b6446
destructured_ast: 40cf8b9755b69b132e93b5cd866ac747a0ee09743f2614c7c74509b46765e2e2
inlined_ast: 40cf8b9755b69b132e93b5cd866ac747a0ee09743f2614c7c74509b46765e2e2
dce_ast: 6baf0e8647f9536d43287cac033584bcde3b749d81ffd7fd0326ad41de249e68
- initial_symbol_table: 060fc20ea7dd04712b9e2b3488a4a6d3e6281973dd38a8d3e53663648b433ef3
type_checked_symbol_table: 5db93764c7db085c6e9ea6b1537335abad1a01c43b783684a6f11eb8e404fed8
unrolled_symbol_table: 5db93764c7db085c6e9ea6b1537335abad1a01c43b783684a6f11eb8e404fed8
initial_ast: 5f7c85d05c8b058ea2e029513eaa0e8189963b603e82b290f23afd4398517383
unrolled_ast: 5f7c85d05c8b058ea2e029513eaa0e8189963b603e82b290f23afd4398517383
ssa_ast: aac56aa7156d0f00beadf42d4cbd9394185903ba914da6542831dc4cc95ad084
flattened_ast: 7e607fe4860d38601424d22fa6f7659a266b10e1be7cd78932b3743ea3368881
destructured_ast: 5faf7da41ec9855ed0215d52a88e7a93318d53c49d4b52bd0026d16c6b2b1c43
inlined_ast: 5faf7da41ec9855ed0215d52a88e7a93318d53c49d4b52bd0026d16c6b2b1c43
dce_ast: 11d4717838a6750c3264627423ef1911a7d980eceaece3ec056de35a4a46361b
bytecode: 6d1cfc85db8ba9546a0cce9391c99dc153031ab35a86b38ad443df534242c519
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 0b53989640055bef15deab2fb1e4d8691b4f1b439f1bdba64f34278be1cb37e0
type_checked_symbol_table: 1ab6493df9354a7e0a097a8f78ad1614dee1166e9de8ab017279fa02bcc1ee28
unrolled_symbol_table: 1ab6493df9354a7e0a097a8f78ad1614dee1166e9de8ab017279fa02bcc1ee28
initial_ast: 3b725531e4e81fb9ef7fb5c2214a1ff21b4f81d213799cfdfdcb5bd468dae722
unrolled_ast: 3b725531e4e81fb9ef7fb5c2214a1ff21b4f81d213799cfdfdcb5bd468dae722
ssa_ast: 554698d7835001c82dbf10e08ab267047a235154f6ec54f1891bdacacb78f1bd
flattened_ast: a9498e7c4445f9b99298df829b08be8d4ec830535ae338011298e74b37f2e8c0
destructured_ast: 717dbc721e10d2495a94107873a03f4e3bfd6efb5a1680bfeca0bf93a34793ff
inlined_ast: 717dbc721e10d2495a94107873a03f4e3bfd6efb5a1680bfeca0bf93a34793ff
dce_ast: 47690fcd1ee8d2cdba48c23272c73e8c4a5bb7dcb2ecacb9f88cd75c56d842b1
- initial_symbol_table: c76280ef8b8dab4d05bd78867d20311f59ccc08ede7a9f225502bca134dab5b8
type_checked_symbol_table: 5cb59e1aef08b326bf04c0c9d683e0c627e0977b5e38e2c328c9edc776d65d6c
unrolled_symbol_table: 5cb59e1aef08b326bf04c0c9d683e0c627e0977b5e38e2c328c9edc776d65d6c
initial_ast: a6474c79c64d668b3095fa0b8c008e7561058c8c46671777cea8f08850b8b579
unrolled_ast: a6474c79c64d668b3095fa0b8c008e7561058c8c46671777cea8f08850b8b579
ssa_ast: 64de621b1b2ca2f36bd697867b9d1751eb73743604fba2e3047238c4064500eb
flattened_ast: 06bde068b2901e6b4b4f3ce5615d4d90069851d2910b98b6f88c8cb767ba8077
destructured_ast: 6a5a1a036fbd7883f2674772a4c565e78e46904364cc6fe96e0f5c3f78509ba1
inlined_ast: 6a5a1a036fbd7883f2674772a4c565e78e46904364cc6fe96e0f5c3f78509ba1
dce_ast: fb79387ab1bc3a2e940b5a7c0951e9740dfd1fbaa8ad85ca6ebe3f786925ba2d
bytecode: 03845ec2f54d49f71640659603ead8f68ad067a15fda438e5e13524777d1559b
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 0b53989640055bef15deab2fb1e4d8691b4f1b439f1bdba64f34278be1cb37e0
type_checked_symbol_table: 8e5ad458f96ada8c3cdd6424e864c7a94692cfab224dc16b6941cfd5fc99f883
unrolled_symbol_table: 8e5ad458f96ada8c3cdd6424e864c7a94692cfab224dc16b6941cfd5fc99f883
initial_ast: 45b5e75c32023cdef7aab58b99384b5311c9010256a9cfaca51781888fae3495
unrolled_ast: 45b5e75c32023cdef7aab58b99384b5311c9010256a9cfaca51781888fae3495
ssa_ast: 2066bd314a11bc63d536be349e58aa72b89aa0472e40ecfb2c92be92d55bf01a
flattened_ast: 2b0a92d72558c86071293ef91a47e5e2bea76d37a62aaf662c8475cf4658c488
destructured_ast: ab1d8272569899f77a41d0771840b24e2d1dea785ae3116ba2349e34362579ff
inlined_ast: ab1d8272569899f77a41d0771840b24e2d1dea785ae3116ba2349e34362579ff
dce_ast: 84a79017a8b5ac8cb5edac27cfc397b266efef38fb9489b75002abfe65de74bf
- initial_symbol_table: c76280ef8b8dab4d05bd78867d20311f59ccc08ede7a9f225502bca134dab5b8
type_checked_symbol_table: 634474672336f17251efbb2aef095021bfdedf422f692bc39ee6cdad3c0cd952
unrolled_symbol_table: 634474672336f17251efbb2aef095021bfdedf422f692bc39ee6cdad3c0cd952
initial_ast: c8c12c770afbc51c3dd0ca817a6b498ec6ef350c63ebc406df79368c1707ae10
unrolled_ast: c8c12c770afbc51c3dd0ca817a6b498ec6ef350c63ebc406df79368c1707ae10
ssa_ast: b71a41ad1a780bbcb9268f782f21630051092c7ab3adb396ced7401461663c8d
flattened_ast: 9df6854d97b110b6296cdb28d2759ea5a07a0fa3fa67c0071be929fef075fff5
destructured_ast: a76f6a0bd1971adfac5d13dbc42195367957ccc6da726fd197ad4dbc295660b4
inlined_ast: a76f6a0bd1971adfac5d13dbc42195367957ccc6da726fd197ad4dbc295660b4
dce_ast: 2d5452185440d85630a6eba86b27effb18d3b789838eb2d33bc2be014344072a
bytecode: d6282c666e51c8c3f3ce541b16d07701dc4d0900acf44bf392cc235ed79a2484
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: bc00a6f0fa880e2cddf4bc424ff5f9968e43ce903d50d465f4f546e7cd4a2cf2
type_checked_symbol_table: 2b3107f8a94acb12092cb40d6eca58305e01681f8aaf3c4fe128ca80378d5390
unrolled_symbol_table: 2b3107f8a94acb12092cb40d6eca58305e01681f8aaf3c4fe128ca80378d5390
initial_ast: f7856321cae8fc9c709004d0d358fc8aaa6f718db7710f7928885485eb8c57e1
unrolled_ast: f7856321cae8fc9c709004d0d358fc8aaa6f718db7710f7928885485eb8c57e1
ssa_ast: 7f674202bce70e353382ee7ed9163805bae54196e6d5938be5a28a9220f13dbb
flattened_ast: 4ef836f645b5026b6ad06e238b50cc9ed8318aedccac966c731c8371d1db2b35
destructured_ast: a5349365c9d65b51d7b49c627742ebc7cbfd08a76fd5bd2fccd939dd5b16ce87
inlined_ast: a5349365c9d65b51d7b49c627742ebc7cbfd08a76fd5bd2fccd939dd5b16ce87
dce_ast: 3e8f943bb5d518e39b37ceb493934b9d3641c312d5387b840ca1a6a266c71018
- initial_symbol_table: 64becc6a57749a4b966792745febbddb9007cb0c9f1bcdd2aa77c0b4ef531482
type_checked_symbol_table: 68ebb4783f19bd9197355774f21441a1515e8b2a5e748c08df8724a97ea66df1
unrolled_symbol_table: 68ebb4783f19bd9197355774f21441a1515e8b2a5e748c08df8724a97ea66df1
initial_ast: b73e41a36a326ce0d87d2a939decfe93d6e3ce53856ec6dbd364435dccec710f
unrolled_ast: b73e41a36a326ce0d87d2a939decfe93d6e3ce53856ec6dbd364435dccec710f
ssa_ast: b84dd3464f8c901142cf4f4c72e514390f167e498d34ce5e47d8daeed6cc9ddc
flattened_ast: 5b73a34f7a811d8c9bf42b0568f43a15768647152d9abcaeedcd08a38ab7ac2c
destructured_ast: 496760a6f8295562e7286541a510f9df09302890d17d22daf12d2f26a48dfd0f
inlined_ast: 496760a6f8295562e7286541a510f9df09302890d17d22daf12d2f26a48dfd0f
dce_ast: ffa7f6336ed277f0fff20ed14ee35a434b4d10f109757ce4cf1793198513c7e9
bytecode: 229ed43ca637238faed92dd4732941e7c471f274c74ecfe4c2a77beca892bb62
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 0b53989640055bef15deab2fb1e4d8691b4f1b439f1bdba64f34278be1cb37e0
type_checked_symbol_table: 7ea97bd3f2f1366697977d015b733d7f70222006a2c318ffd71f85b486683aa0
unrolled_symbol_table: 7ea97bd3f2f1366697977d015b733d7f70222006a2c318ffd71f85b486683aa0
initial_ast: d36c5fd5ba85678d696d5fbc8b18c696016114f576dd52257383b0ffac433f97
unrolled_ast: d36c5fd5ba85678d696d5fbc8b18c696016114f576dd52257383b0ffac433f97
ssa_ast: ac9a520fa6fcc0816d180b13b4200fd9087c931698185febb2d7620b924c7624
flattened_ast: d5d768ce102839e28a54fea4788ae0cc715e483d15f36342328655911eed3cfb
destructured_ast: dce52deca574b61246864c2231e5ba3139bb221135c4c4ddf0b352a122692547
inlined_ast: dce52deca574b61246864c2231e5ba3139bb221135c4c4ddf0b352a122692547
dce_ast: d9ce04dbd26a1145efc4d2335dc3f9a844fd7cc00260ec2368664c20f2426de6
- initial_symbol_table: c76280ef8b8dab4d05bd78867d20311f59ccc08ede7a9f225502bca134dab5b8
type_checked_symbol_table: b348281fa241dbbe4e97d86ae6054a99ed874e2b42138171a8d34cacda486c74
unrolled_symbol_table: b348281fa241dbbe4e97d86ae6054a99ed874e2b42138171a8d34cacda486c74
initial_ast: fcc0e23a81c1f9be7e1abe627c3cc55f001461adabf4f4f3b70b4dfb58ec229b
unrolled_ast: fcc0e23a81c1f9be7e1abe627c3cc55f001461adabf4f4f3b70b4dfb58ec229b
ssa_ast: 51b7a8ab61c60b6298b3fd0180fe808d325447dae40a7cef9f1834b05f0975fa
flattened_ast: f9426c5dba2b24765ad09d06d04d6acee2d4dd5cd3345870c7f75459c1932892
destructured_ast: c10399b88de47f5ee528baa3e3c976eb379f1c33cec502f11a09d3e9c18b969d
inlined_ast: c10399b88de47f5ee528baa3e3c976eb379f1c33cec502f11a09d3e9c18b969d
dce_ast: 42630fd65265f6f392be618874bc6e0cadf1dd503d1f7de9901adbf118b30f36
bytecode: 03845ec2f54d49f71640659603ead8f68ad067a15fda438e5e13524777d1559b
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 0b53989640055bef15deab2fb1e4d8691b4f1b439f1bdba64f34278be1cb37e0
type_checked_symbol_table: 857ddcccc8ba5f91784b3dde333bcc63b5883ee12d4110112eda378ac43ccdc5
unrolled_symbol_table: 857ddcccc8ba5f91784b3dde333bcc63b5883ee12d4110112eda378ac43ccdc5
initial_ast: 2cb76da9578e7cb2a87db3b00ad67bdb0f45383265e5529cad769dc4afcec1a4
unrolled_ast: 2cb76da9578e7cb2a87db3b00ad67bdb0f45383265e5529cad769dc4afcec1a4
ssa_ast: a578ffdad536647cdd4d909e48e88cdcc957d2c10be70cfebbb8da1ff1115e50
flattened_ast: 8df2ebbd67e7ff4ae6e96d18dec7ce8cce9b6850b9cf931eba85c64e631c402f
destructured_ast: 7f0b39f50b706ece9ca07b2a3ee2e01beb97a714bd25603f709c1962ac891683
inlined_ast: 7f0b39f50b706ece9ca07b2a3ee2e01beb97a714bd25603f709c1962ac891683
dce_ast: 64e8b2de91df2a07931b38697d3adea8e8f0562e0360fcbdffa3af17181954b3
- initial_symbol_table: c76280ef8b8dab4d05bd78867d20311f59ccc08ede7a9f225502bca134dab5b8
type_checked_symbol_table: e1129b73e55f87f4532f6ee5f5d3807b61e698ad3d01d33b52d074f350808878
unrolled_symbol_table: e1129b73e55f87f4532f6ee5f5d3807b61e698ad3d01d33b52d074f350808878
initial_ast: 08e9a497c376d8314e137164f8ef6deb5fd54776f79d993d493302c54924ff6c
unrolled_ast: 08e9a497c376d8314e137164f8ef6deb5fd54776f79d993d493302c54924ff6c
ssa_ast: 820da158cb05bc242d5ef6093e4a51317d19d4ce8b4eb61be597d3d7b5763bbf
flattened_ast: c7de92fbb4c4c5d97f1261488a7f3f836ad0c941930e9ec14958f6f916bb5a83
destructured_ast: bf24c9dfa25e5b9e78e012a6fd76c88c9d2f5763ad20855f0946e8c196dde126
inlined_ast: bf24c9dfa25e5b9e78e012a6fd76c88c9d2f5763ad20855f0946e8c196dde126
dce_ast: f9e0c5caf7f09409a8a144a98b4fa7cbc204c7c5b930d776d2e8e82469729301
bytecode: 7da691d67f81116d91fb60593fa7fbac92c7409ecb5728174beee3fc612716a0
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: bc00a6f0fa880e2cddf4bc424ff5f9968e43ce903d50d465f4f546e7cd4a2cf2
type_checked_symbol_table: 2b3107f8a94acb12092cb40d6eca58305e01681f8aaf3c4fe128ca80378d5390
unrolled_symbol_table: 2b3107f8a94acb12092cb40d6eca58305e01681f8aaf3c4fe128ca80378d5390
initial_ast: d12b88b7946c4dfc252e8502f813c9479ece6bc568ca16c5b7f0d11293329b0e
unrolled_ast: d12b88b7946c4dfc252e8502f813c9479ece6bc568ca16c5b7f0d11293329b0e
ssa_ast: 3cf3e8c309f06ec8b6f8f89faf86030d09ddba6bf44204fc701eb85d0c91c25c
flattened_ast: 38e7543f96afc8ea6e5374d390b5739705193816064f41806a70959dc2b7f370
destructured_ast: fec8bd37d21cb73164b8f46a858bf8ad722152c49d2b01785c0365a533476055
inlined_ast: fec8bd37d21cb73164b8f46a858bf8ad722152c49d2b01785c0365a533476055
dce_ast: 0b5f016d7cf2a1a675f92dfe8abbb1e5655b4dbda20ebbb5bad307abee1b52d9
- initial_symbol_table: 64becc6a57749a4b966792745febbddb9007cb0c9f1bcdd2aa77c0b4ef531482
type_checked_symbol_table: 68ebb4783f19bd9197355774f21441a1515e8b2a5e748c08df8724a97ea66df1
unrolled_symbol_table: 68ebb4783f19bd9197355774f21441a1515e8b2a5e748c08df8724a97ea66df1
initial_ast: 8f9a94949610bb04f358079075d3001d3c4794998fb43df4c8aba0c0248f744c
unrolled_ast: 8f9a94949610bb04f358079075d3001d3c4794998fb43df4c8aba0c0248f744c
ssa_ast: d0ef3791542201ed50f53b456c16431be59ada4da81ff58f0a326c4a5c43c280
flattened_ast: ebee51a116410fa09c04a73fc1b1240e2ba93dbf8261037e10ea371822b4a866
destructured_ast: d3d1887b8633c56a4a7eef5c95666a2b9ab4efe32dc8d2d9f73eb5ed019f6ac3
inlined_ast: d3d1887b8633c56a4a7eef5c95666a2b9ab4efe32dc8d2d9f73eb5ed019f6ac3
dce_ast: 537f0056641a84c417aaed76124abc8a83089c07b27c9fdfa813083f216a2ffc
bytecode: 6d469fd18d4b6f00204c95b4a6f2b98ceecb94947ac706bcba8976d667d9921b
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 79eed2f6e683aa3a028ae2e9dab1002207743d7b4a651658bbc6a5b8185e0f8c
type_checked_symbol_table: 17abd653b2f3fa7cd1996c2f7675fb6f64a4b5dbdd281c46e8977676e7eb857c
unrolled_symbol_table: 17abd653b2f3fa7cd1996c2f7675fb6f64a4b5dbdd281c46e8977676e7eb857c
initial_ast: e86d9034a99b151b3c24e6fa8144c39c364fc7419f6485ef5ff9306003e3380a
unrolled_ast: e86d9034a99b151b3c24e6fa8144c39c364fc7419f6485ef5ff9306003e3380a
ssa_ast: b1b76872d420d374047685a8caa8997573809809fb38c22070202c22a372cdfe
flattened_ast: 17c15ad8def3723dc51bada88cd6993aae173c425aad665b8ed562a5c507ad16
destructured_ast: b6e13af7316132c7f6e50a61b2b3c8c925156bf508d4acbbee7833620ae03b18
inlined_ast: b6e13af7316132c7f6e50a61b2b3c8c925156bf508d4acbbee7833620ae03b18
dce_ast: dd33ed056dbc212a536bb457905d3b97821edf0586948cc23d9b31b32cfeb75c
- initial_symbol_table: 060fc20ea7dd04712b9e2b3488a4a6d3e6281973dd38a8d3e53663648b433ef3
type_checked_symbol_table: 5db93764c7db085c6e9ea6b1537335abad1a01c43b783684a6f11eb8e404fed8
unrolled_symbol_table: 5db93764c7db085c6e9ea6b1537335abad1a01c43b783684a6f11eb8e404fed8
initial_ast: 9985f0d7ac436326f19345a9a34fb9ad1a1bf74fa4adbc5c62eaa68d25987f62
unrolled_ast: 9985f0d7ac436326f19345a9a34fb9ad1a1bf74fa4adbc5c62eaa68d25987f62
ssa_ast: d6d3795b222de077553dd93f43f8105e37aea604e34f14c405fb671f68afff0f
flattened_ast: 9f0a7eb6c5d6b79a5279319aaf3885217862056e9f9099f09aaecd617ad294a8
destructured_ast: 835d0c3c01b7a793d4f97d89d08f65fa6db5fca2acb3895817e881e23f1f7117
inlined_ast: 835d0c3c01b7a793d4f97d89d08f65fa6db5fca2acb3895817e881e23f1f7117
dce_ast: d59fb59c6fc4bf84443a96d9cd77ae82e4a1af85aedca93bd7db06c7f55eae86
bytecode: 39f2fd495ce761fe3a8fb011b05bfe34e50db91dbd7f9a5bec40a8aa8187f0b1
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 6467a63ee1354e95dba9760f5128eb6f561f4c747fe8c581d9785a312b66ea5a
type_checked_symbol_table: eb50a48a6bb864efd915e9b6111ede0fd87b6757561df15ffe022ef380dc3069
unrolled_symbol_table: eb50a48a6bb864efd915e9b6111ede0fd87b6757561df15ffe022ef380dc3069
initial_ast: 0971f4b55068cfe0b74627f9a2e47e81c15a2074456337130aa90761dee41bb1
unrolled_ast: 0971f4b55068cfe0b74627f9a2e47e81c15a2074456337130aa90761dee41bb1
ssa_ast: 8e8da2b3153ba8eead9a826cf34b46ab583a26694cb737bc69fb2a64bf1f56ad
flattened_ast: 827ac90036961af3578f18861b41fa02d963637c99745d37572d40ddd6febe5c
destructured_ast: ccf6063e4f51a1714a1eea4d1678e64365ef2663c10ede673d4f919752c8d018
inlined_ast: ccf6063e4f51a1714a1eea4d1678e64365ef2663c10ede673d4f919752c8d018
dce_ast: 83ad2640cb5a617bffd8aca06931e20c653b63760a24a39ef0baff75ec26459b
- initial_symbol_table: e843b79f66c9f7be987fa7be8eb17f89af3da83b3c17bdcb0c5369563c7c21fb
type_checked_symbol_table: c0d676aee6398c29f2310af23b5abef6143d931a509ad26e07832c31f4449ae3
unrolled_symbol_table: c0d676aee6398c29f2310af23b5abef6143d931a509ad26e07832c31f4449ae3
initial_ast: ca9ca292d888d83ee77864fdab2e6261b4153557ccd7a035da1038c81fa52b0f
unrolled_ast: ca9ca292d888d83ee77864fdab2e6261b4153557ccd7a035da1038c81fa52b0f
ssa_ast: 5e4cee8b5cd1493018481a59f2a7fa71436bb20af72af783433c2e3f9517d4a7
flattened_ast: 12c247f4ad4e3782b046285b3b7ef17a3464128b78b37c7b40b60bae04b549cb
destructured_ast: 6ab18c975130ecd3d59c5767b1c6ab5fdd936e8966e15fd7e90504ac485d4819
inlined_ast: 6ab18c975130ecd3d59c5767b1c6ab5fdd936e8966e15fd7e90504ac485d4819
dce_ast: c07226be00f7ee6e8a85fa60c7b27fd934bc191d0ae229dcdfc2073ac02448bd
bytecode: 291203118efe8ad584e0fe1e5ad940b457fea07bc1833c28dcc64d0f5e380261
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: e276b05db8e6b69ca3ffa88df800e2132553055ec7eeaf1fedbb6c34bf47822a
type_checked_symbol_table: 36e3ba0129fb7ad935fa93867e1d3ce97a8aa25881ead5b6e37c1fc0deef2c7a
unrolled_symbol_table: 36e3ba0129fb7ad935fa93867e1d3ce97a8aa25881ead5b6e37c1fc0deef2c7a
initial_ast: 5dd649055a73546b6239160fb3264054ff9d6603238e87e0b92d62e7989ac6b9
unrolled_ast: 5dd649055a73546b6239160fb3264054ff9d6603238e87e0b92d62e7989ac6b9
ssa_ast: ac1160e437726c0b34a26e7c2ac631757b8668f8bfb444412dbe936991d10871
flattened_ast: 79431ae4be3d2f8c7148ae3d852ac3a48212f0af893c7e4b2207d28e80f4e6b4
destructured_ast: c14102e12e2435fbb25c6def3b6728e69272529539a4084c994aae97f9d3d725
inlined_ast: c14102e12e2435fbb25c6def3b6728e69272529539a4084c994aae97f9d3d725
dce_ast: 9beb94b6f2236420c819174c6e035bb23725e662ee2659b3b0b8893268a23152
- initial_symbol_table: e9376599041e21fade8cd887dcdb2fac09dc6cc6bacccf9a1db45952620e4b1f
type_checked_symbol_table: 75b388c8c7585deaa1fcbb8a7d645ece4b9adda46cda288a55c564d30b567092
unrolled_symbol_table: 75b388c8c7585deaa1fcbb8a7d645ece4b9adda46cda288a55c564d30b567092
initial_ast: 5eb08a37cf1033dd286829b15b1e4bf529ca0459c5bc61388fe63f284d9792df
unrolled_ast: 5eb08a37cf1033dd286829b15b1e4bf529ca0459c5bc61388fe63f284d9792df
ssa_ast: ce7541baa682e23e60bbb8a1362d528d9e90ed7e93c756250c6603259d5de99a
flattened_ast: 02abf65e6031b841faaec3c9ccadf4db9cf1a6c1062d7f8915ccd068bef726ee
destructured_ast: 3144d40f7c94f1c9f7789341648bca49713f54751ba7a209e1bb19098771c7d6
inlined_ast: 3144d40f7c94f1c9f7789341648bca49713f54751ba7a209e1bb19098771c7d6
dce_ast: 42fe6087b3ebbe5308f11f3c32beddec7443e59c8d4a4136a1e046c8124a9c51
bytecode: aabc532da97dad13de4f6538e8b18c6696e0a4e16ba5c50624add1e547aadbb0
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 4cebbf12b1be5edea4f632d15e3fb699ef4935d2ae703091da80fc474c8de9cc
type_checked_symbol_table: 3f0d8599e1e7fee664aa8947d8d7e2aee461702e758a36ad7beec38224a4f521
unrolled_symbol_table: 3f0d8599e1e7fee664aa8947d8d7e2aee461702e758a36ad7beec38224a4f521
initial_ast: 52248e4c0972574fd4af0543a8f095fff09171da9557fa402674bc9490948af8
unrolled_ast: 52248e4c0972574fd4af0543a8f095fff09171da9557fa402674bc9490948af8
ssa_ast: aa3a79e23ea405d1aca0cba0fbdc65e1bcbee8b41079d85b58a53f36d248432e
flattened_ast: 485142a5730ae4bedc2e09a8e83b9c1b0666821ad7cf3da4128ba8b42d0d3e1d
destructured_ast: 74a4265d331ad08a275838139621dc7e21e320cc99b5cb55c77d2590088cf931
inlined_ast: 74a4265d331ad08a275838139621dc7e21e320cc99b5cb55c77d2590088cf931
dce_ast: 0389dcf4bdf36e74f9ebb7bf2b9dd7e9adc4273b63f128deb75a8fa1d613eb3d
- initial_symbol_table: b86fccd35d902190a42e471beb166b0927127188c4f26f0b6c5cdd1e456089ab
type_checked_symbol_table: 4a0bfd3028e401d959c0d38b9c83f6051e2772c5bfc058cc0f2627fcb447085b
unrolled_symbol_table: 4a0bfd3028e401d959c0d38b9c83f6051e2772c5bfc058cc0f2627fcb447085b
initial_ast: 1481ba8b172b6400d56088329484e40b40c988a3a9368bcad8d5fa2d46f79e92
unrolled_ast: 1481ba8b172b6400d56088329484e40b40c988a3a9368bcad8d5fa2d46f79e92
ssa_ast: 5fd4007c21fcab2958d97cbe84c29dec22d513d9bca697ed94bcfaeb4b95bfc0
flattened_ast: 825415daf42230159b6ac82257ae7571b35f602ea5c92e3a238a70ebb5204d1b
destructured_ast: 0962e22169403d2637887280fea8ce502a6c6aee198ac4fb5fa3009a244b306c
inlined_ast: 0962e22169403d2637887280fea8ce502a6c6aee198ac4fb5fa3009a244b306c
dce_ast: dbf0ba0f359c5e375380d85788f3e9c81df86c3dd725b2dad83f7da5b75e6739
bytecode: fb50b455787039d40359e8561b3c38dce51cc9bfd62c06db7cdad7ed77575e4c
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 8ee526275755ac00f4021d83c0910b43dfe778d89a9b648af676aeea6069c7ff
type_checked_symbol_table: 667298b34ede0080d586ea0d33fea24caa30161858ea6b4909bc016307ee4998
unrolled_symbol_table: 667298b34ede0080d586ea0d33fea24caa30161858ea6b4909bc016307ee4998
initial_ast: ae57d7569e4050cfc6a80fdadd0fed609e42151cb3a4fa7ec74d7741918ced99
unrolled_ast: ae57d7569e4050cfc6a80fdadd0fed609e42151cb3a4fa7ec74d7741918ced99
ssa_ast: c71c2648c8e618c3c39408a79ec58ff7e5a3eba25b75af8fa0600b77c22c6d52
flattened_ast: 57b747e7ecd727b837b8ea0fa9b19384268db95b4288336216e1518946a2458b
destructured_ast: 8f29e61b3cd7631b945ca7eb09012ed85ecfde26aae1bb82fa13fd3908d0dbf2
inlined_ast: 8f29e61b3cd7631b945ca7eb09012ed85ecfde26aae1bb82fa13fd3908d0dbf2
dce_ast: 7d2071061fd0550d75c9c31ae9556a9c9b72026a0ac396edbcfc970f61d9c6be
- initial_symbol_table: 3977b105dee73a084001614c024b4602a07478cee7a3ae4524f93b4867183b87
type_checked_symbol_table: dcb5bb730d53086a4c8c4215f0ec179c5e04a728ef5489bdddda46e82e7bed5a
unrolled_symbol_table: dcb5bb730d53086a4c8c4215f0ec179c5e04a728ef5489bdddda46e82e7bed5a
initial_ast: a409fe3997a01cc54148e3f4d8cc58c8a41764a0e8fe840c38e1b494196c8e26
unrolled_ast: a409fe3997a01cc54148e3f4d8cc58c8a41764a0e8fe840c38e1b494196c8e26
ssa_ast: 80c27d0ef412e3682869d854be03c6ab7400555fd96bbeb85cf636d05441622c
flattened_ast: 254346c1b3d55c024ca818ddeacfff090a58ff07e30f15c9a642dd6e34e0f03b
destructured_ast: 7e91553e0125d2f99c774bffcee425e6b0af952e36bf46039675782ce84e0ede
inlined_ast: 7e91553e0125d2f99c774bffcee425e6b0af952e36bf46039675782ce84e0ede
dce_ast: 768583b1f47521fc7634112cdf97d9b156e11d3006d20a394ee6e4da14745985
bytecode: 0f39fde0b1e15ee4f8db0c84a7a280cdeac852cdca4959a14a61776aa661ced5
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 8c22b100668257ba565eeb4bdac218e64a0317a34c8ddd7056b8cac6343c767e
type_checked_symbol_table: 53a5b562cbbfc13ca31fb239ef1d13b13aa55c0e6fa2dacee730726f3ff3510e
unrolled_symbol_table: 53a5b562cbbfc13ca31fb239ef1d13b13aa55c0e6fa2dacee730726f3ff3510e
initial_ast: b723e731f20772efe37c43b350986c826756bd19aeb59ae40f08e23eaa31541c
unrolled_ast: b723e731f20772efe37c43b350986c826756bd19aeb59ae40f08e23eaa31541c
ssa_ast: 39d4c8bfee7ac778f6d384922c9f93fc2c82b0fb7d10c9fc03dea4fe91fb3d24
flattened_ast: 475ae035e87b43e9b0f60964d26ae667cb7cc9939c7beac7f152f84fa9b07c56
destructured_ast: b6198b183b910559858179d121b23b4e47e2f42e04dd4fb85f757f5d06c4bccc
inlined_ast: b6198b183b910559858179d121b23b4e47e2f42e04dd4fb85f757f5d06c4bccc
dce_ast: 536265f96de7c2d17291d6546c3f02d06766094fbe8cf5d7265dc451d1214c75
- initial_symbol_table: e25fe2ee031245388788b883d760b544d92529fb38409f6045f0e36f8ca51c2a
type_checked_symbol_table: 1fda1dc9f4e2d28cb2846fd4af091b7816b77e03dcaba80e596893db208c6e0d
unrolled_symbol_table: 1fda1dc9f4e2d28cb2846fd4af091b7816b77e03dcaba80e596893db208c6e0d
initial_ast: 29fc3537b005d5927fdc9f3a3660312e2e97ed731fdbc4b6f9c5ba07dbfd753d
unrolled_ast: 29fc3537b005d5927fdc9f3a3660312e2e97ed731fdbc4b6f9c5ba07dbfd753d
ssa_ast: 30348b3f8e4fc700994c2b5759ef6f6572754c676c6a590b82ed29fcbd2f4081
flattened_ast: af6b3f221d48900c304640050be1c9895c982edc0cf27dd1f7bf4725aaa5766f
destructured_ast: 5c2ae0e6e13109f7e39e5485cf638d79c22d5166721fd9ded700408d7b17d681
inlined_ast: 5c2ae0e6e13109f7e39e5485cf638d79c22d5166721fd9ded700408d7b17d681
dce_ast: a24c8facc5c0bfea1a46e5611aa8e3b012ec01475e866fcc82f6bf85c16ae34e
bytecode: b267a8888601eb2f66b0e0f9814268308403849dd65f3535cea29bcd4245360e
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 39f3fa8604259aee8964c8ff8d49efd1821694fecd76f0dc9007ca7f75ded146
type_checked_symbol_table: 8f22d66116ac703d735d89143a7ae2148e6f0ef26290a3cfd6337c9558e2949d
unrolled_symbol_table: 8f22d66116ac703d735d89143a7ae2148e6f0ef26290a3cfd6337c9558e2949d
initial_ast: b09690748dbdbd9cfb0be40ddd1169406f1956fe4d014be575eb599edba4b76d
unrolled_ast: b09690748dbdbd9cfb0be40ddd1169406f1956fe4d014be575eb599edba4b76d
ssa_ast: 892a555a85f938ceb45e27b3889fbd1d2782c85f9f6a91f18d16dcbb5df431ed
flattened_ast: afba42c28edf0ff0ac7cf06422d2a5d9b4b14934cd08c7370fd9cceb89c13cf2
destructured_ast: 0d026066e012cbe6a8d6a95a61177f2ce4173ff5cb070de651fff7248ce43c24
inlined_ast: 0d026066e012cbe6a8d6a95a61177f2ce4173ff5cb070de651fff7248ce43c24
dce_ast: 21b26bb25ce96c99a07aa483254c8ae2d6ca3951e1544e320712066789f4175c
- initial_symbol_table: 2098f8ebd0588d99620122d826cadd823f83b41bae8216e6caaab628e727c272
type_checked_symbol_table: d5b873cabddbb1757332e28a7e3ad3fdccda4efc0dc5573eb45d57350a977a2d
unrolled_symbol_table: d5b873cabddbb1757332e28a7e3ad3fdccda4efc0dc5573eb45d57350a977a2d
initial_ast: cde95bc173a71a41b3fae754e80971d3b1226c4715f947b7957e27fa1c9f161c
unrolled_ast: cde95bc173a71a41b3fae754e80971d3b1226c4715f947b7957e27fa1c9f161c
ssa_ast: 7420dc95fb5dbdce22829ee90dfad920badf231e508f8dd5908c0b0848b58659
flattened_ast: 29997cfd7dbd3c0a7db79d50ce9d4d448403296552e97076122b38ef01a9b400
destructured_ast: 505b674d2dc1cfc8aa520560a04171a2c340e2952002db6f9e90a34577a7e684
inlined_ast: 505b674d2dc1cfc8aa520560a04171a2c340e2952002db6f9e90a34577a7e684
dce_ast: 08ac59c40bfe1dc8111876160d3bf6367868f86afef8524ce5764b8fb0aab5a9
bytecode: 82114d77c21652d52ef1000d4f83e8539bcefb03acf8ceec8e75f36e4acb3062
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 0a4365cf4560871d2fcbf3ca79d88a935969d230993bd958d28cedcfddde4c94
type_checked_symbol_table: 652a4b5d0da7be31b390b792b4a6ddcc4da23fdf451975a6f8b0aad0806672ac
unrolled_symbol_table: 652a4b5d0da7be31b390b792b4a6ddcc4da23fdf451975a6f8b0aad0806672ac
initial_ast: 96a0e81cba699d8b9b6d5369f2cc25c5b90d192cfd196189dee2c93e50a3313e
unrolled_ast: 96a0e81cba699d8b9b6d5369f2cc25c5b90d192cfd196189dee2c93e50a3313e
ssa_ast: 538a6fb4f3f166e306e67ac0da79081ed469254af7eed54b3bb9ca4f31e8d54c
flattened_ast: 1f4fa1ec5d2f0de0558c643d1d7d41956dfb72fe6259a2ee14b5230d3185e04b
destructured_ast: e82fa42bec66805a84507e72bd36c172ac9933ea57282ba39f85e8d475932e06
inlined_ast: e82fa42bec66805a84507e72bd36c172ac9933ea57282ba39f85e8d475932e06
dce_ast: 4716e149d43a9343463918287d796b68337a5b40faabbe4202477fc09fabe1c4
- initial_symbol_table: 0a8cdfe6525fbd0f4affcc4e41070522a4e8d46ee262c74ee047dba0de3334cb
type_checked_symbol_table: 09cc08f638ea700b7a8923b2ec2d48e9ec07d93b43d2fdd510b1cad4f40bb51e
unrolled_symbol_table: 09cc08f638ea700b7a8923b2ec2d48e9ec07d93b43d2fdd510b1cad4f40bb51e
initial_ast: eec6d245b4e35a1917c45138d01f180acfb7264bbe100875df556e7296d52daf
unrolled_ast: eec6d245b4e35a1917c45138d01f180acfb7264bbe100875df556e7296d52daf
ssa_ast: 448450c2f99a9e076a25c56dd16eb69a4afd41a7e519bb06e86d257fc98d6e6c
flattened_ast: 0af04b855046af9878d547900e158dfb5e56ac1fa4490b1f90481e434c33dfcb
destructured_ast: b225cd167ffdd9402d0283a549aae170d8ee9703d6c261348109431b824bf7dd
inlined_ast: b225cd167ffdd9402d0283a549aae170d8ee9703d6c261348109431b824bf7dd
dce_ast: f5f602d4bf5b8326ab8e2fae1a0a07b3cd6a810a9f8053a54dc63cceeac019b2
bytecode: 5eeedee42e2476fb270490327599aed56d2d2086addd96030cb733ad90fff082
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 2dc7ad5e83f9c1cba20c56645ec155cb70abd718a81424b366f6c5678c6de77a
type_checked_symbol_table: c149a9b656b0bf41d055568d6d3c38be12cb9e7c46fd669f861d918fc8f86e99
unrolled_symbol_table: c149a9b656b0bf41d055568d6d3c38be12cb9e7c46fd669f861d918fc8f86e99
initial_ast: 0c0a234823cbba6b7ced17284807d06a647befe859bd6de8c1c80e75fda7908a
unrolled_ast: 0c0a234823cbba6b7ced17284807d06a647befe859bd6de8c1c80e75fda7908a
ssa_ast: 76ead1cdd13dcf285c14639c0aa4e42b399bb815d3e68fb480a36a91cc68ba1d
flattened_ast: 99aa4094c6d1628d8858f131e9a8b483fd70ac26adb4ea17db83e63cce6c2e5f
destructured_ast: febf0d45daf44c6e2a716606dc4e59c27a335e0c5efaa9337b325b099b693adb
inlined_ast: febf0d45daf44c6e2a716606dc4e59c27a335e0c5efaa9337b325b099b693adb
dce_ast: 2b2e623cb5deab060f95404eccf329cf12cbd2e9ef8110e7304177bce9eb6d50
- initial_symbol_table: d061675c1ae757b577112bb732e05a3d580cce4c0b1f3851d70fc70abc487015
type_checked_symbol_table: dd6a6f655b9f7836e8ebba12dca1e10573b253720019c7bf67cdcbde86ee4234
unrolled_symbol_table: dd6a6f655b9f7836e8ebba12dca1e10573b253720019c7bf67cdcbde86ee4234
initial_ast: 2def4931ef76ceffa72425931adda94afdf01e5c721ac518ab7c24a9d8e41310
unrolled_ast: 2def4931ef76ceffa72425931adda94afdf01e5c721ac518ab7c24a9d8e41310
ssa_ast: 33b02b203d193783f98e3b27e1e36fc8ae368668b315adf853d0d8cf5856f053
flattened_ast: 59743c7f1d514f70d932d4252a41be7ce7e5f4870b8c497ae713d200e12018bc
destructured_ast: fe2393db1c6223a397dc8458224f41c4d4ac4acdc1a7786a5a90f26db1db14be
inlined_ast: fe2393db1c6223a397dc8458224f41c4d4ac4acdc1a7786a5a90f26db1db14be
dce_ast: dca8dab5e95374cc238019243fd7cef68cab4b5d9129333ae2695df63da281b8
bytecode: 5ec7cc3de6c113f85819e7425d3cba1d1c9d72dbd11bb4dcc38aa93ef89cdf2e
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: d5fd069f6ac8ae6bf3f0312c296b2e8992a55396485d96bcbed914675f614b70
type_checked_symbol_table: d5db26b218aac3755c6d6d30cf6a5599dbdf0efc1e739d355bd4362ee6939481
unrolled_symbol_table: d5db26b218aac3755c6d6d30cf6a5599dbdf0efc1e739d355bd4362ee6939481
initial_ast: fe79bdaceb26d783616c6769727726062a69994a03e23f27c27fef1932017bd0
unrolled_ast: fe79bdaceb26d783616c6769727726062a69994a03e23f27c27fef1932017bd0
ssa_ast: b690e0a65a66428c7e52677d14a93ad0c74c058823e38093cf94227c123a9e87
flattened_ast: da4f22518c826e0a4a600b80d0bd33d0f53177fccae09d53ac11842b8f0cafef
destructured_ast: d208ba75da6f69cf5f0824a419932ee8c1b829b7610769b2f9d776053e22f996
inlined_ast: d208ba75da6f69cf5f0824a419932ee8c1b829b7610769b2f9d776053e22f996
dce_ast: b2c5009707d9a313fa8e4406cae3a8be4278825e2f717e4b38f8e1647be4a31f
- initial_symbol_table: e9e48a0700cfed44835ab006091ceacca0833e1f82a9ef286a763fed6e79dc5b
type_checked_symbol_table: bd4278ba6d86946ca6487d2eeea6b13e03b6dadf393aef426e6dd025f67be10f
unrolled_symbol_table: bd4278ba6d86946ca6487d2eeea6b13e03b6dadf393aef426e6dd025f67be10f
initial_ast: 99304ebc21b5cb7d73e10a3fb835ceb1c46ca9a5c9d44286712c1b81de61c38e
unrolled_ast: 99304ebc21b5cb7d73e10a3fb835ceb1c46ca9a5c9d44286712c1b81de61c38e
ssa_ast: 2100ae37d647bd7381f155e9fe0be7f0e2a202e03f6c496ec63f36cae681dda9
flattened_ast: 567cc8d916840d6585f7e28400dc2279da4f9f4def9bea4e99c167f16f764c03
destructured_ast: 42217684109fe0ab5f3a7b9481d0642c158e09dffd7b3b1bdd03f703b1844adf
inlined_ast: 42217684109fe0ab5f3a7b9481d0642c158e09dffd7b3b1bdd03f703b1844adf
dce_ast: 739a8e7cc0cd33beb22192c02bd9e9b04a2334ba31302143f045702a2959bc18
bytecode: 400dea3099e787d74f8c336d3a7cc2d26e8de8bf52e579bed30244f437aa25f6
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: dd9f4e83f6c323990bf20628ddb73c5db2fbfa246e70a8365e06dbb37bc88ff3
type_checked_symbol_table: 67190d8f33c3f10b6e31b4174b678a5767b21736929d10e1059c656efac2bac7
unrolled_symbol_table: 67190d8f33c3f10b6e31b4174b678a5767b21736929d10e1059c656efac2bac7
initial_ast: b14ad53a09df499f184148a2590794408169384afeccefcc8c10bce499ecf984
unrolled_ast: b14ad53a09df499f184148a2590794408169384afeccefcc8c10bce499ecf984
ssa_ast: b57dd4600d2ee926135eff253390c4cbb3755c6cf4ee75264dc2ca718b6396b7
flattened_ast: 3aaea2c12cf1525b6532761aa007f06611e18ab9378eb71ee2400fcb9c11fc0a
destructured_ast: bc401761d6101b3645ef0b03756f91702260b9df028c709dfbc3843d8f97027d
inlined_ast: bc401761d6101b3645ef0b03756f91702260b9df028c709dfbc3843d8f97027d
dce_ast: 2a624eb50f6967a040918454f40a91e7d240b7781258463d685d25eb2a40b274
- initial_symbol_table: 4eb5c887deb4c5b6d4d22fae5a2e104c70698503d02fddeea0bdf4a79e1e58d3
type_checked_symbol_table: 8de2e812a3afbc48e16e2b6aa85b1d3b5226bad20456b1215c01fcebb64bd3a7
unrolled_symbol_table: 8de2e812a3afbc48e16e2b6aa85b1d3b5226bad20456b1215c01fcebb64bd3a7
initial_ast: aacd82bf414097d2b6bdde476726d203d538f9291c99246e5772d9a86e324d05
unrolled_ast: aacd82bf414097d2b6bdde476726d203d538f9291c99246e5772d9a86e324d05
ssa_ast: 830f2bcd178fb90adaf1434256fca34b32ec861fcd3e7f21f03cf97073c74176
flattened_ast: 20497b5cd38a706d0230101cab620266cc28fa1a8dad09376b2dfbe4ca76b05d
destructured_ast: af264d1471032607977bcde80beb0a2016d100c7f67eab280e283a2d7372115d
inlined_ast: af264d1471032607977bcde80beb0a2016d100c7f67eab280e283a2d7372115d
dce_ast: b9cc01736bfba3dd9f2e83679a7b218619673c4a36f2d9158741954f8e854274
bytecode: 7e364f0f5797c362156d92896d5c0ac0cb8923bdfce720d844550006535bfec9
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 6467a63ee1354e95dba9760f5128eb6f561f4c747fe8c581d9785a312b66ea5a
type_checked_symbol_table: eb50a48a6bb864efd915e9b6111ede0fd87b6757561df15ffe022ef380dc3069
unrolled_symbol_table: eb50a48a6bb864efd915e9b6111ede0fd87b6757561df15ffe022ef380dc3069
initial_ast: 8f7dfe0f52fde5d35db15661a8bace1936fa497ca06930d35a6eb03e64b59645
unrolled_ast: 8f7dfe0f52fde5d35db15661a8bace1936fa497ca06930d35a6eb03e64b59645
ssa_ast: c59a7c20802d36a4be2cb5f1eeff0f8f0357152156192fcb30fb1d6fe4de91e7
flattened_ast: aec51a7f674eac434c58e987d99b188807bb1c3dd0742c473d79b0a3df3fdec9
destructured_ast: b951e40f58f7e9a27b401f1aeee250fcdd89c62d651ac5500d182f5d996b952c
inlined_ast: b951e40f58f7e9a27b401f1aeee250fcdd89c62d651ac5500d182f5d996b952c
dce_ast: 68129eefceec49ae1b1a212b26d9463c7600f1c136ddb9a12ef926b4cfee87df
- initial_symbol_table: e843b79f66c9f7be987fa7be8eb17f89af3da83b3c17bdcb0c5369563c7c21fb
type_checked_symbol_table: c0d676aee6398c29f2310af23b5abef6143d931a509ad26e07832c31f4449ae3
unrolled_symbol_table: c0d676aee6398c29f2310af23b5abef6143d931a509ad26e07832c31f4449ae3
initial_ast: 9f570669440cc8dcbc2cc03321937a271a6f48070ffe7e261b058c881a1cf3fb
unrolled_ast: 9f570669440cc8dcbc2cc03321937a271a6f48070ffe7e261b058c881a1cf3fb
ssa_ast: 6cee7922f11d36915c937740fb0beb64247857ac342b12182b0074fa897492bd
flattened_ast: b4bc91d86373630b3f2d3259aa80d9190383e14a7437f706fd06207cf4fc54e9
destructured_ast: 5059d9b84981473a03b975e1b1e8ddf3c6c208b51b41c419c5c8762a3df4936d
inlined_ast: 5059d9b84981473a03b975e1b1e8ddf3c6c208b51b41c419c5c8762a3df4936d
dce_ast: af086008f57f0edb7e8e3a13352393129841c9eb8e4a86855adbf4cceff12398
bytecode: 6d1f9a3fa30f6b177ef5b8242e1608ab54576a5d82df58c97c2e367270c6d7f9
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: e276b05db8e6b69ca3ffa88df800e2132553055ec7eeaf1fedbb6c34bf47822a
type_checked_symbol_table: 36e3ba0129fb7ad935fa93867e1d3ce97a8aa25881ead5b6e37c1fc0deef2c7a
unrolled_symbol_table: 36e3ba0129fb7ad935fa93867e1d3ce97a8aa25881ead5b6e37c1fc0deef2c7a
initial_ast: 997ea48a95cbe2f352801f0c054f183bdd4ed72be992ade9deba88fca7b9a284
unrolled_ast: 997ea48a95cbe2f352801f0c054f183bdd4ed72be992ade9deba88fca7b9a284
ssa_ast: 1c1270ef1093b9ed6591fe53df4565f969c0353e526d86320f93102edbe2b6eb
flattened_ast: 9e4b985b793c9e9a10eef5ddf7bb2bccac55550cfd951588238392c46ebbc456
destructured_ast: 71f0cd518f391ff256d1c6edf99ad632913ee1528c3146a346b1a9b16a2a8d88
inlined_ast: 71f0cd518f391ff256d1c6edf99ad632913ee1528c3146a346b1a9b16a2a8d88
dce_ast: 70fe5304bb195b3b387374be16e63f3c5c90c0e001018e5e7fe2a528646e03ff
- initial_symbol_table: e9376599041e21fade8cd887dcdb2fac09dc6cc6bacccf9a1db45952620e4b1f
type_checked_symbol_table: 75b388c8c7585deaa1fcbb8a7d645ece4b9adda46cda288a55c564d30b567092
unrolled_symbol_table: 75b388c8c7585deaa1fcbb8a7d645ece4b9adda46cda288a55c564d30b567092
initial_ast: f2d9492ff98a67d402b2a813952554d8c46a5c779240c45dcc25e2e8beb6cddc
unrolled_ast: f2d9492ff98a67d402b2a813952554d8c46a5c779240c45dcc25e2e8beb6cddc
ssa_ast: 8b5cffb385eb1e971b8f03c346d5fe359909dc6c11a5bf39cfeeaa4ceae15758
flattened_ast: 78202e65fc99df06c69546e78f19b80289298e9b041f37a3c8b1a5d41be8359c
destructured_ast: d8ce07cde930e778827dd11f8b6c21f24c908caff607f8de7404ab0215c6f682
inlined_ast: d8ce07cde930e778827dd11f8b6c21f24c908caff607f8de7404ab0215c6f682
dce_ast: 52739a27469654561f89f61dbd1b261f98ad29ca2a9a2e6aed56b39c986eaebb
bytecode: 324982aeedb7f0eb194a3744384b562834062c95c62d9007a74ec8e2a5612c4e
errors: ""
warnings: ""

View File

@ -3,16 +3,16 @@ namespace: Compile
expectation: Pass
outputs:
- - compile:
- initial_symbol_table: 4cebbf12b1be5edea4f632d15e3fb699ef4935d2ae703091da80fc474c8de9cc
type_checked_symbol_table: 3f0d8599e1e7fee664aa8947d8d7e2aee461702e758a36ad7beec38224a4f521
unrolled_symbol_table: 3f0d8599e1e7fee664aa8947d8d7e2aee461702e758a36ad7beec38224a4f521
initial_ast: 33c6668ce859bc2a86d8542a77f04ec22ab9cbbaac09d32c686f26b1e689828b
unrolled_ast: 33c6668ce859bc2a86d8542a77f04ec22ab9cbbaac09d32c686f26b1e689828b
ssa_ast: 2f23a4171534e1d9c62b16a09f75f07f403d82a005b85cfcfe8404f6e6420dc7
flattened_ast: 26cbf0df1606a8c05d0cd4065ea10f9cdf592a01033de1f7c666b1c76567ced6
destructured_ast: 976c7a760fad0e6ae0d1688d32de820bc56de14dcb5aa13ac8486a96681e0abe
inlined_ast: 976c7a760fad0e6ae0d1688d32de820bc56de14dcb5aa13ac8486a96681e0abe
dce_ast: beeaeda2760134a061a7314b024f02f6b93a3702a1de879da009ebfe2e67b77c
- initial_symbol_table: b86fccd35d902190a42e471beb166b0927127188c4f26f0b6c5cdd1e456089ab
type_checked_symbol_table: 4a0bfd3028e401d959c0d38b9c83f6051e2772c5bfc058cc0f2627fcb447085b
unrolled_symbol_table: 4a0bfd3028e401d959c0d38b9c83f6051e2772c5bfc058cc0f2627fcb447085b
initial_ast: e75da3999e98df70cf597d9edb9ac05bd33dfbc96c495abce34cd02e6036fbfb
unrolled_ast: e75da3999e98df70cf597d9edb9ac05bd33dfbc96c495abce34cd02e6036fbfb
ssa_ast: b9f8ee868f5fad8c95aabe9e2890c3d931a97164366afbaa1b373b184c8d924d
flattened_ast: be45e5ae0828aeeac266ff755d322e6298ebcc17e5dfb4fab6f33af2cf2ba515
destructured_ast: 1a609e1811a956a583f0c1af585fe339eb78c408d3afce9eceda39ac063dea66
inlined_ast: 1a609e1811a956a583f0c1af585fe339eb78c408d3afce9eceda39ac063dea66
dce_ast: c2691c7a5f49913585c5d0316a0a40323984f0ec0a9b0396ed17b1a5423c172e
bytecode: ead396ffd0d8084ce5fd2f208f904c27d3df3e0b42a22baef80d5778a0d63b23
errors: ""
warnings: ""

Some files were not shown because too many files have changed in this diff Show More