Merge branch 'master' of github.com:AleoHQ/leo into bug/shadowing-fixes

This commit is contained in:
gluaxspeed 2021-09-06 00:07:44 -07:00
commit a1f3108512
353 changed files with 650 additions and 460 deletions

45
Cargo.lock generated
View File

@ -395,9 +395,9 @@ checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b"
[[package]]
name = "cpufeatures"
version = "0.1.5"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71ef"
checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469"
dependencies = [
"libc",
]
@ -1246,7 +1246,6 @@ name = "leo-compiler"
version = "1.5.3"
dependencies = [
"bincode",
"hex",
"indexmap",
"leo-asg",
"leo-asg-passes",
@ -1465,9 +1464,9 @@ dependencies = [
[[package]]
name = "libc"
version = "0.2.98"
version = "0.2.101"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "320cfe77175da3a483efed4bc0adc1968ca050b098ce4f2f1c13a56626128790"
checksum = "3cb00336871be5ed2c8ed44b60ae9959dc5b9f08539422ed43f09e34ecaeba21"
[[package]]
name = "libz-sys"
@ -1710,9 +1709,9 @@ dependencies = [
[[package]]
name = "num-bigint"
version = "0.4.0"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e0d047c1062aa51e256408c560894e5251f08925980e53cf1aa5bd00eec6512"
checksum = "76e97c412795abf6c24ba30055a8f20642ea57ca12875220b854cfa501bf1e48"
dependencies = [
"autocfg",
"num-integer",
@ -2375,9 +2374,9 @@ dependencies = [
[[package]]
name = "serde"
version = "1.0.128"
version = "1.0.130"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1056a0db1978e9dbf0f6e4fca677f6f9143dc1c19de346f22cac23e422196834"
checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913"
dependencies = [
"serde_derive",
]
@ -2394,9 +2393,9 @@ dependencies = [
[[package]]
name = "serde_derive"
version = "1.0.128"
version = "1.0.130"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13af2fbb8b60a8950d6c72a56d2095c28870367cc8e10c55e9745bac4995a2c4"
checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
@ -2428,9 +2427,9 @@ dependencies = [
[[package]]
name = "serde_yaml"
version = "0.8.19"
version = "0.8.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6375dbd828ed6964c3748e4ef6d18e7a175d408ffe184bca01698d0c73f915a9"
checksum = "ad104641f3c958dab30eb3010e834c2622d1f3f4c530fef1dee20ad9485f3c09"
dependencies = [
"dtoa",
"indexmap",
@ -2452,9 +2451,9 @@ dependencies = [
[[package]]
name = "sha2"
version = "0.9.5"
version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b362ae5752fd2137731f9fa25fd4d9058af34666ca1966fb969119cc35719f12"
checksum = "9204c41a1597a8c5af23c82d1c921cb01ec0a4c59e07a9c7306062829a3903f3"
dependencies = [
"block-buffer 0.9.0",
"cfg-if 1.0.0",
@ -2733,9 +2732,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
[[package]]
name = "structopt"
version = "0.3.22"
version = "0.3.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69b041cdcb67226aca307e6e7be44c8806423d83e018bd662360a93dabce4d71"
checksum = "bf9d950ef167e25e0bdb073cf1d68e9ad2795ac826f2f3f59647817cf23c0bfa"
dependencies = [
"clap",
"lazy_static",
@ -2744,9 +2743,9 @@ dependencies = [
[[package]]
name = "structopt-derive"
version = "0.4.15"
version = "0.4.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7813934aecf5f51a54775e00068c237de98489463968231a51746bbbc03f9c10"
checksum = "134d838a2c9943ac3125cf6df165eda53493451b719f3255b2a26b85f772d0ba"
dependencies = [
"heck",
"proc-macro-error",
@ -2865,18 +2864,18 @@ dependencies = [
[[package]]
name = "thiserror"
version = "1.0.26"
version = "1.0.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93119e4feac1cbe6c798c34d3a53ea0026b0b1de6a120deef895137c0529bfe2"
checksum = "283d5230e63df9608ac7d9691adc1dfb6e701225436eb64d0b9a7f0a5a04f6ec"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.26"
version = "1.0.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "060d69a0afe7796bf42e9e2ff91f5ee691fb15c53d38b4b62a9a53eb23164745"
checksum = "fa3884228611f5cd3608e2d409bf7dce832e4eb3135e3f11addbd7e41bd68e71"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",

View File

@ -91,7 +91,8 @@ impl<'a> FromAst<'a, leo_ast::ArrayAccessExpression> for ArrayAccessExpression<'
Some(PartialType::Array(expected_type.map(Box::new), None)),
)?;
let array_len = match array.get_type() {
Some(Type::Array(_, len)) => len,
Some(Type::Array(_, len)) => Some(len),
Some(Type::ArrayWithoutSize(_)) => None,
type_ => {
return Err(AsgError::unexpected_type(
"array",
@ -113,10 +114,14 @@ impl<'a> FromAst<'a, leo_ast::ArrayAccessExpression> for ArrayAccessExpression<'
.map(|x| x.int().map(|x| x.to_usize()).flatten())
.flatten()
{
if index >= array_len {
return Err(
AsgError::array_index_out_of_bounds(index, &array.span().cloned().unwrap_or_default()).into(),
);
// Only check index if array size is known.
// Array out of bounds will be caught later if it really happens.
if let Some(array_len) = array_len {
if index >= array_len {
return Err(
AsgError::array_index_out_of_bounds(index, &array.span().cloned().unwrap_or_default()).into(),
);
}
}
}

View File

@ -107,6 +107,7 @@ impl<'a> FromAst<'a, leo_ast::ArrayInlineExpression> for ArrayInlineExpression<'
) -> Result<ArrayInlineExpression<'a>> {
let (mut expected_item, expected_len) = match expected_type {
Some(PartialType::Array(item, dims)) => (item.map(|x| *x), dims),
Some(PartialType::Type(Type::ArrayWithoutSize(item))) => (Some(item.partial()), None),
None => (None, None),
Some(type_) => {
return Err(AsgError::unexpected_type(type_, "array", &value.span).into());

View File

@ -183,13 +183,19 @@ impl<'a> Scope<'a> {
IntegerType(int_type) => Type::Integer(int_type.clone()),
Array(sub_type, dimensions) => {
let mut item = Box::new(self.resolve_ast_type(&*sub_type, span)?);
for dimension in dimensions.0.iter().rev() {
let dimension = dimension
.value
.parse::<usize>()
.map_err(|_| AsgError::parse_index_error(span))?;
item = Box::new(Type::Array(item, dimension));
if let Some(dimensions) = dimensions {
for dimension in dimensions.0.iter().rev() {
let dimension = dimension
.value
.parse::<usize>()
.map_err(|_| AsgError::parse_index_error(span))?;
item = Box::new(Type::Array(item, dimension));
}
} else {
item = Box::new(Type::ArrayWithoutSize(item));
}
*item
}
Tuple(sub_types) => Type::Tuple(

View File

@ -32,6 +32,7 @@ pub enum Type<'a> {
// Data type wrappers
Array(Box<Type<'a>>, usize),
ArrayWithoutSize(Box<Type<'a>>),
Tuple(Vec<Type<'a>>),
Circuit(&'a Circuit<'a>),
}
@ -71,6 +72,14 @@ impl<'a> PartialType<'a> {
(PartialType::Integer(self_sub_type, _), Type::Integer(sub_type)) => {
self_sub_type.as_ref().map(|x| x == sub_type).unwrap_or(true)
}
(PartialType::Array(element, _len), Type::ArrayWithoutSize(other_element)) => {
if let Some(element) = element {
if !element.matches(&*other_element) {
return false;
}
}
true
}
(PartialType::Array(element, len), Type::Array(other_element, other_len)) => {
if let Some(element) = element {
if !element.matches(&*other_element) {
@ -114,7 +123,11 @@ impl<'a> Into<PartialType<'a>> for Type<'a> {
impl<'a> Type<'a> {
pub fn is_assignable_from(&self, from: &Type<'a>) -> bool {
self == from
match (self, from) {
(Type::Array(_, _), Type::ArrayWithoutSize(_)) => true,
(Type::ArrayWithoutSize(_), Type::Array(_, _)) => true,
_ => self == from,
}
}
pub fn partial(self) -> PartialType<'a> {
@ -140,6 +153,7 @@ impl<'a> fmt::Display for Type<'a> {
Type::Group => write!(f, "group"),
Type::Integer(sub_type) => sub_type.fmt(f),
Type::Array(sub_type, len) => write!(f, "[{}; {}]", sub_type, len),
Type::ArrayWithoutSize(sub_type) => write!(f, "[{}; _]", sub_type),
Type::Tuple(sub_types) => {
write!(f, "(")?;
for (i, sub_type) in sub_types.iter().enumerate() {
@ -207,10 +221,11 @@ impl<'a> Into<leo_ast::Type> for &Type<'a> {
Integer(int_type) => leo_ast::Type::IntegerType(int_type.clone()),
Array(type_, len) => leo_ast::Type::Array(
Box::new(type_.as_ref().into()),
leo_ast::ArrayDimensions(vec![leo_ast::PositiveNumber {
Some(leo_ast::ArrayDimensions(vec![leo_ast::PositiveNumber {
value: len.to_string().into(),
}]),
}])),
),
ArrayWithoutSize(type_) => leo_ast::Type::Array(Box::new(type_.as_ref().into()), None),
Tuple(subtypes) => leo_ast::Type::Tuple(subtypes.iter().map(Into::into).collect()),
Circuit(circuit) => leo_ast::Type::CircuitOrAlias(circuit.name.borrow().clone()),
}

View File

@ -481,24 +481,31 @@ impl ReconstructingReducer for Canonicalizer {
fn reduce_type(&mut self, _type_: &Type, new: Type, span: &Span) -> Result<Type> {
match new {
Type::Array(type_, mut dimensions) => {
if dimensions.is_zero() {
return Err(AstError::invalid_array_dimension_size(span).into());
}
let mut next = Type::Array(type_, ArrayDimensions(vec![dimensions.remove_last().unwrap()]));
let mut array = next.clone();
loop {
if dimensions.is_empty() {
break;
Type::Array(type_, dimensions) => {
if let Some(mut dimensions) = dimensions {
if dimensions.is_zero() {
return Err(AstError::invalid_array_dimension_size(span).into());
}
array = Type::Array(Box::new(next), ArrayDimensions(vec![dimensions.remove_last().unwrap()]));
next = array.clone();
}
let mut next = Type::Array(type_, Some(ArrayDimensions(vec![dimensions.remove_last().unwrap()])));
let mut array = next.clone();
Ok(array)
loop {
if dimensions.is_empty() {
break;
}
array = Type::Array(
Box::new(next),
Some(ArrayDimensions(vec![dimensions.remove_last().unwrap()])),
);
next = array.clone();
}
Ok(array)
} else {
Ok(Type::Array(type_, None))
}
}
Type::SelfType if !self.in_circuit => Err(AstError::big_self_outside_of_circuit(span).into()),
_ => Ok(new.clone()),

View File

@ -14,12 +14,12 @@
// 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::{ArrayDimensions, Identifier, IntegerType};
use crate::{ArrayDimensions, Identifier, IntegerType, PositiveNumber};
use leo_input::types::{
ArrayType as InputArrayType, DataType as InputDataType, TupleType as InputTupleType, Type as InputType,
};
use serde::{Deserialize, Serialize};
use serde::{ser::SerializeSeq, Deserialize, Serialize, Serializer};
use std::fmt;
/// Explicit type used for defining a variable or expression type
@ -34,7 +34,8 @@ pub enum Type {
IntegerType(IntegerType),
// Data type wrappers
Array(Box<Type>, ArrayDimensions),
#[serde(serialize_with = "serialize_array")]
Array(Box<Type>, Option<ArrayDimensions>),
Tuple(Vec<Type>),
CircuitOrAlias(Identifier),
SelfType,
@ -72,8 +73,17 @@ impl Type {
(Type::SelfType, Type::SelfType) => true,
(Type::Array(left_type, left_dim), Type::Array(right_type, right_dim)) => {
// Convert array dimensions to owned.
let mut left_dim_owned = left_dim.to_owned();
let mut right_dim_owned = right_dim.to_owned();
let left_dim_owned = left_dim.to_owned();
let right_dim_owned = right_dim.to_owned();
// Unable to compare arrays with unspecified sizes.
if left_dim_owned.is_none() || right_dim_owned.is_none() {
return false;
}
// We know that values are Some, safe to unwrap.
let mut left_dim_owned = left_dim_owned.unwrap();
let mut right_dim_owned = right_dim_owned.unwrap();
// Remove the first element from both dimensions.
let left_first = left_dim_owned.remove_first();
@ -120,7 +130,7 @@ impl<'ast> From<InputArrayType<'ast>> for Type {
let element_type = Box::new(Type::from(*array_type.type_));
let dimensions = ArrayDimensions::from(array_type.dimensions);
Type::Array(element_type, dimensions)
Type::Array(element_type, Some(dimensions))
}
}
@ -153,7 +163,13 @@ impl fmt::Display for Type {
Type::IntegerType(ref integer_type) => write!(f, "{}", integer_type),
Type::CircuitOrAlias(ref variable) => write!(f, "circuit {}", variable),
Type::SelfType => write!(f, "SelfType"),
Type::Array(ref array, ref dimensions) => write!(f, "[{}; {}]", *array, dimensions),
Type::Array(ref array, ref dimensions) => {
if let Some(dimensions) = dimensions {
write!(f, "[{}; {}]", *array, dimensions)
} else {
write!(f, "[{}; _]", *array)
}
}
Type::Tuple(ref tuple) => {
let types = tuple.iter().map(|x| x.to_string()).collect::<Vec<_>>().join(", ");
@ -179,6 +195,25 @@ pub fn inner_array_type(element_type: Type, dimensions: ArrayDimensions) -> Type
element_type
} else {
// The array has multiple dimensions.
Type::Array(Box::new(element_type), dimensions)
Type::Array(Box::new(element_type), Some(dimensions))
}
}
///
/// Custom Serializer for Type::Array. Handles the case when ArrayDimensions are None and turns it into
/// a Vec<PositiveNumber>, where the only element is "0".
///
fn serialize_array<S>(type_: &Type, dimensions: &Option<ArrayDimensions>, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
let mut seq = serializer.serialize_seq(Some(2))?;
seq.serialize_element(type_)?;
// seq.serialize_element(dimensions)?;
if let Some(dimensions) = dimensions {
seq.serialize_element(&dimensions)?;
} else {
seq.serialize_element(&ArrayDimensions(vec![PositiveNumber { value: "0".into() }]))?;
}
seq.end()
}

View File

@ -91,9 +91,6 @@ version = "0.7.6"
[dependencies.bincode]
version = "1.3"
[dependencies.hex]
version = "0.4.2"
[dependencies.indexmap]
version = "1.7.0"
features = [ "serde-1" ]

View File

@ -255,7 +255,7 @@ impl<'a, F: PrimeField, G: GroupType<F>> Compiler<'a, F, G> {
)?;
if self.ast_snapshot_options.imports_resolved {
ast.to_json_file(self.output_directory.clone(), "imports_resolved.json")?;
ast.to_json_file(self.output_directory.clone(), "imports_resolved_ast.json")?;
}
// Preform canonicalization of AST always.
@ -339,7 +339,7 @@ impl<'a, F: PrimeField, G: GroupType<F>> Compiler<'a, F, G> {
hasher.update(unparsed_file.as_bytes());
let hash = hasher.finalize();
Ok(hex::encode(hash))
Ok(format!("{:x}", hash))
}
/// TODO (howardwu): Incorporate this for real program executions and intentionally-real

View File

@ -76,9 +76,9 @@ impl<R: ReconstructingReducer, O: CombinerOptions> CombineAstAsgDirector<R, O> {
if self.options.type_inference_enabled() {
AstType::Array(
Box::new(self.reduce_type(ast_type, asg_type, span)?),
ArrayDimensions(vec![PositiveNumber {
Some(ArrayDimensions(vec![PositiveNumber {
value: StrTendril::from(format!("{}", asg_dimensions)),
}]),
}])),
)
} else {
AstType::Array(

View File

@ -16,11 +16,11 @@
use std::{
collections::HashMap,
fs,
path::{Path, PathBuf},
};
use leo_asg::*;
use leo_ast::{Ast, Program};
use leo_errors::Result;
use leo_synthesizer::{CircuitSynthesizer, SerializedCircuit, SummarizedCircuit};
@ -45,7 +45,7 @@ pub(crate) fn make_test_context() -> AsgContext<'static> {
fn new_compiler(path: PathBuf, theorem_options: Option<AstSnapshotOptions>) -> EdwardsTestCompiler {
let program_name = "test".to_string();
let output_dir = PathBuf::from("/tmp/output/");
std::fs::create_dir_all(output_dir.clone()).unwrap();
fs::create_dir_all(output_dir.clone()).unwrap();
EdwardsTestCompiler::new(
program_name,
@ -58,13 +58,14 @@ fn new_compiler(path: PathBuf, theorem_options: Option<AstSnapshotOptions>) -> E
)
}
fn hash(input: String) -> String {
fn hash_file(path: &str) -> String {
use sha2::{Digest, Sha256};
let mut file = fs::File::open(&Path::new(path)).unwrap();
let mut hasher = Sha256::new();
hasher.update(input.as_bytes());
let output = hasher.finalize();
hex::encode(&output[..])
std::io::copy(&mut file, &mut hasher).unwrap();
let hash = hasher.finalize();
format!("{:x}", hash)
}
pub(crate) fn parse_program(
@ -151,7 +152,7 @@ impl Namespace for CompileNamespace {
input_file.push(input.as_str().expect("input_file was not a string or array"));
inputs.push((
name.to_string(),
std::fs::read_to_string(&input_file).expect("failed to read test input file"),
fs::read_to_string(&input_file).expect("failed to read test input file"),
));
} else if let Some(seq) = input.as_sequence() {
for name in seq {
@ -159,7 +160,7 @@ impl Namespace for CompileNamespace {
input_file.push(name.as_str().expect("input_file was not a string"));
inputs.push((
name.as_str().expect("input_file item was not a string").to_string(),
std::fs::read_to_string(&input_file).expect("failed to read test input file"),
fs::read_to_string(&input_file).expect("failed to read test input file"),
));
}
}
@ -171,7 +172,7 @@ impl Namespace for CompileNamespace {
let state = if let Some(input) = test.config.get("state_file") {
let mut input_file: PathBuf = test.path.parent().expect("no test parent dir").into();
input_file.push(input.as_str().expect("state_file was not a string"));
std::fs::read_to_string(&input_file).expect("failed to read test state file")
fs::read_to_string(&input_file).expect("failed to read test state file")
} else {
"".to_string()
};
@ -213,33 +214,13 @@ impl Namespace for CompileNamespace {
});
}
let initial_ast: String = hash(
Ast::from_json_file("/tmp/output/initial_ast.json".into())
.unwrap_or_else(|_| Ast::new(Program::new("Error reading initial snapshot.".to_string())))
.to_json_string()
.unwrap_or_else(|_| "Error converting ast to string.".to_string()),
);
let imports_resolved_ast: String = hash(
Ast::from_json_file("/tmp/output/imports_resolved_ast.json".into())
.unwrap_or_else(|_| Ast::new(Program::new("Error reading imports resolved snapshot.".to_string())))
.to_json_string()
.unwrap_or_else(|_| "Error converting ast to string.".to_string()),
);
let canonicalized_ast: String = hash(
Ast::from_json_file("/tmp/output/canonicalization_ast.json".into())
.unwrap_or_else(|_| Ast::new(Program::new("Error reading canonicalized snapshot.".to_string())))
.to_json_string()
.unwrap_or_else(|_| "Error converting ast to string.".to_string()),
);
let type_inferenced_ast = hash(
Ast::from_json_file("/tmp/output/type_inferenced_ast.json".into())
.unwrap_or_else(|_| Ast::new(Program::new("Error reading type inferenced snapshot.".to_string())))
.to_json_string()
.unwrap_or_else(|_| "Error converting ast to string.".to_string()),
);
let initial_ast = hash_file("/tmp/output/initial_ast.json");
let imports_resolved_ast = hash_file("/tmp/output/imports_resolved_ast.json");
let canonicalized_ast = hash_file("/tmp/output/canonicalization_ast.json");
let type_inferenced_ast = hash_file("/tmp/output/type_inferenced_ast.json");
if std::fs::read_dir("/tmp/output").is_ok() {
std::fs::remove_dir_all(std::path::Path::new("/tmp/output")).expect("Error failed to clean up output dir.");
if fs::read_dir("/tmp/output").is_ok() {
fs::remove_dir_all(Path::new("/tmp/output")).expect("Error failed to clean up output dir.");
}
let final_output = CompileOutput {

View File

@ -45,7 +45,7 @@ The ABNF grammar changes as follows:
```
; modified rule:
keyword = ...
/ %s"true"
/ %s"string"
/ %s"type" ; new
/ %s"u8"
/ ...

View File

@ -41,11 +41,11 @@ version = "0.3.61"
version = "2.0"
[dependencies.serde]
version = "1.0.128"
version = "1.0.130"
features = [ "derive", "rc" ]
[dependencies.tendril]
version = "0.4.2"
[dependencies.thiserror]
version = "1.0.26"
version = "1.0.28"

View File

@ -32,7 +32,7 @@ create_errors!(
help: None,
}
/// For when the parser encoutnered an invalid address literal.
/// For when the parser encountered an invalid address literal.
@formatted
invalid_address_lit {
args: (token: impl Display),
@ -40,7 +40,7 @@ create_errors!(
help: None,
}
/// For when the parser encoutnered an empty import list.
/// For when the parser encountered an empty import list.
@formatted
invalid_import_list {
args: (),
@ -48,7 +48,7 @@ create_errors!(
help: None,
}
/// For when the parser encoutnered an unexpected End of File.
/// For when the parser encountered an unexpected End of File.
@formatted
unexpected_eof {
args: (),
@ -56,7 +56,7 @@ create_errors!(
help: None,
}
/// For when the parser encoutnered an unexpected whitespace.
/// For when the parser encountered an unexpected whitespace.
@formatted
unexpected_whitespace {
args: (left: impl Display, right: impl Display),
@ -64,7 +64,7 @@ create_errors!(
help: None,
}
/// For when the parser encoutnered an unexpected list of tokens.
/// For when the parser encountered an unexpected list of tokens.
@formatted
unexpected {
args: (got: impl Display, expected: impl Display),
@ -72,7 +72,7 @@ create_errors!(
help: None,
}
/// For when the parser encoutnered a mix of commas and semi-colons in circuit member variables.
/// For when the parser encountered a mix of commas and semi-colons in circuit member variables.
@formatted
mixed_commas_and_semicolons {
args: (),
@ -80,7 +80,7 @@ create_errors!(
help: None,
}
/// For when the parser encoutnered an unexpected identifier.
/// For when the parser encountered an unexpected identifier.
@formatted
unexpected_ident {
args: (got: impl Display, expected: &[impl Display]),
@ -96,7 +96,7 @@ create_errors!(
help: None,
}
/// For when the parser encoutnered an unexpected statement.
/// For when the parser encountered an unexpected statement.
@formatted
unexpected_statement {
args: (got: impl Display, expected: impl Display),
@ -104,7 +104,7 @@ create_errors!(
help: None,
}
/// For when the parser encoutnered an unexpected string.
/// For when the parser encountered an unexpected string.
@formatted
unexpected_str {
args: (got: impl Display, expected: impl Display),
@ -112,7 +112,7 @@ create_errors!(
help: None,
}
/// For when the parser encoutnered an unexpected spread in an array init expression.
/// For when the parser encountered an unexpected spread in an array init expression.
@formatted
spread_in_array_init {
args: (),
@ -120,7 +120,7 @@ create_errors!(
help: None,
}
/// For when the parser encoutnered an invalid assignment target.
/// For when the parser encountered an invalid assignment target.
@formatted
invalid_assignment_target {
args: (),
@ -128,7 +128,7 @@ create_errors!(
help: None,
}
/// For when the parser encoutnered an invalid package name.
/// For when the parser encountered an invalid package name.
@formatted
invalid_package_name {
args: (),
@ -136,7 +136,7 @@ create_errors!(
help: None,
}
/// For when the parser encoutnered an illegal `const self` argument.
/// For when the parser encountered an illegal `const self` argument.
@formatted
illegal_self_const {
args: (),
@ -144,7 +144,7 @@ create_errors!(
help: None,
}
/// For when the parser encoutnered a deprecated `mut` argument in a function.
/// For when the parser encountered a deprecated `mut` argument in a function.
@formatted
mut_function_input {
args: (),
@ -152,7 +152,7 @@ create_errors!(
help: None,
}
/// For when the parser encoutnered a deprecated `mut` argument in a let statement.
/// For when the parser encountered a deprecated `mut` argument in a let statement.
@formatted
let_mut_statement {
args: (),
@ -160,7 +160,7 @@ create_errors!(
help: None,
}
/// For when the parser encoutnered a deprecated `test function`.
/// For when the parser encountered a deprecated `test function`.
@formatted
test_function {
args: (),
@ -168,11 +168,19 @@ create_errors!(
help: None,
}
/// For when the parser encoutnered a deprecated `@context(...)` annotation.
/// For when the parser encountered a deprecated `@context(...)` annotation.
@formatted
context_annotation {
args: (),
msg: "\"@context(...)\" is deprecated. Did you mean @test annotation?",
help: None,
}
/// For when the parser failed to parse array dimensions.
@formatted
unable_to_parse_array_dimensions {
args: (),
msg: "unable to parse array dimensions",
help: None,
}
);

Binary file not shown.

View File

@ -395,7 +395,6 @@ keyword = %s"address"
/ %s"console"
/ %s"const"
/ %s"else"
/ %s"false"
/ %s"field"
/ %s"for"
/ %s"function"
@ -416,7 +415,6 @@ keyword = %s"address"
/ %s"self"
/ %s"static"
/ %s"string"
/ %s"true"
/ %s"type"
/ %s"u8"
/ %s"u16"
@ -680,8 +678,10 @@ tuple-type = "(" [ type 1*( "," type ) ] ")"
array-type = "[" type ";" array-dimensions "]"
array-dimensions = natural
/ "(" natural *( "," natural ) ")"
array-dimension = natural / "_"
array-dimensions = array-dimension
/ "(" array-dimension *( "," array-dimension ) ")"
; Scalar and the remaining types form all the types.

View File

@ -65,6 +65,7 @@ impl Command for Clean {
// Remove AST snapshots from the output directory
SnapshotFile::new(&package_name, Snapshot::Initial).remove(&path)?;
SnapshotFile::new(&package_name, Snapshot::ImportsResolved).remove(&path)?;
SnapshotFile::new(&package_name, Snapshot::TypeInference).remove(&path)?;
SnapshotFile::new(&package_name, Snapshot::Canonicalization).remove(&path)?;

View File

@ -26,6 +26,7 @@ use std::{borrow::Cow, fmt, fs, path::Path};
#[derive(Deserialize)]
pub enum Snapshot {
Initial,
ImportsResolved,
TypeInference,
Canonicalization,
}
@ -37,6 +38,7 @@ impl fmt::Display for Snapshot {
"{}",
match self {
Self::Initial => "initial_ast",
Self::ImportsResolved => "imports_resolved_ast",
Self::TypeInference => "type_inferenced_ast",
Self::Canonicalization => "canonicalization_ast",
}

View File

@ -604,7 +604,9 @@ impl ParserContext {
}
let first = self.parse_spread_or_expression()?;
if self.eat(Token::Semicolon).is_some() {
let dimensions = self.parse_array_dimensions()?;
let dimensions = self
.parse_array_dimensions()?
.ok_or_else(|| ParserError::unable_to_parse_array_dimensions(span))?;
let end = self.expect(Token::RightSquare)?;
let first = match first {
SpreadOrExpression::Spread(first) => {

View File

@ -58,9 +58,11 @@ impl ParserContext {
///
/// Returns an [`ArrayDimensions`] AST node if the next tokens represent dimensions for an array type.
///
pub fn parse_array_dimensions(&mut self) -> Result<ArrayDimensions> {
pub fn parse_array_dimensions(&mut self) -> Result<Option<ArrayDimensions>> {
Ok(if let Some((int, _)) = self.eat_int() {
ArrayDimensions(vec![int])
Some(ArrayDimensions(vec![int]))
} else if self.eat(Token::Underscore).is_some() {
None
} else {
self.expect(Token::LeftParen)?;
let mut dimensions = Vec::new();
@ -76,7 +78,7 @@ impl ParserContext {
}
}
self.expect(Token::RightParen)?;
ArrayDimensions(dimensions)
Some(ArrayDimensions(dimensions))
})
}

View File

@ -110,13 +110,20 @@ fn run_with_args(opt: Opt) -> Result<(), Box<dyn Error>> {
})
.unwrap_or_else(|| PathBuf::from(path));
let end_of_header = text.find("*/").expect("failed to find header block in test");
// Do this to match test-framework ast bc of spans
let text = &text[end_of_header + 2..];
// Write all files into the directory.
let (initial, canonicalized, type_inferenced) = generate_asts(cwd, text)?;
let (initial, imports_resolved, canonicalized, type_inferenced) = generate_asts(cwd, text)?;
target.push("initial_ast.json");
fs::write(target.clone(), initial)?;
target.pop();
target.push("imports_resolved_ast.json");
fs::write(target.clone(), imports_resolved)?;
target.pop();
target.push("canonicalization_ast.json");
fs::write(target.clone(), canonicalized)?;
target.pop();
@ -130,23 +137,31 @@ fn run_with_args(opt: Opt) -> Result<(), Box<dyn Error>> {
}
/// Do what Compiler does - prepare 3 stages of AST: initial, canonicalized and type_inferenced
fn generate_asts(path: PathBuf, text: &str) -> Result<(String, String, String), Box<dyn Error>> {
fn generate_asts(path: PathBuf, text: &str) -> Result<(String, String, String, String), Box<dyn Error>> {
std::env::set_var("LEO_TESTFRAMEWORK", "true");
let mut ast = leo_parser::parse_ast(path.clone().into_os_string().into_string().unwrap(), text)?;
let initial = ast.to_json_string()?;
ast = leo_ast_passes::Importer::do_pass(ast.into_repr(), ImportParser::new(path, Default::default()))?;
let imports_resolved = ast.to_json_string()?;
ast = leo_ast_passes::Canonicalizer::do_pass(ast.into_repr())?;
let canonicalized = ast.to_json_string()?;
let asg = Asg::new(thread_leaked_context(), &ast)?;
let mut ti_ast = ast.into_repr();
ti_ast.name = "test".to_string(); // Do this to match test-framework ast
let asg = Asg::new(thread_leaked_context(), &ti_ast)?;
let type_inferenced = TypeInferencePhase::default()
.phase_ast(&ast.into_repr(), &asg.clone().into_repr())
.phase_ast(&ti_ast, &asg.clone().into_repr())
.expect("Failed to produce type inference ast.")
.to_json_string()?;
Ok((initial, canonicalized, type_inferenced))
std::env::remove_var("LEO_TESTFRAMEWORK");
Ok((initial, imports_resolved, canonicalized, type_inferenced))
}
fn handle_error(res: Result<(), Box<dyn Error>>) {

View File

@ -1,6 +1,8 @@
/*
namespace: Compile
expectation: Fail
input_file:
- inputs/dummy.in
*/
type int = u32;

View File

@ -20,4 +20,4 @@ function main(y: bool) -> bool {
let b: [int; 3] = return_int_array();
return y;
}
}

View File

@ -0,0 +1,11 @@
/*
namespace: Compile
expectation: Pass
input_file: input/dummy.in
*/
function main(y: bool) -> bool {
let d: [u8; _] = [1,2,3,4];
return d == [1,2,3,4];
}

View File

@ -0,0 +1,13 @@
/*
namespace: Compile
expectation: Pass
input_file: input/dummy.in
*/
function main(y: bool) -> bool {
return (first_el([1,2,3,4]) == 1) == y;
}
function first_el(arr: [u8; _]) -> u8 {
return arr[0];
}

View File

@ -0,0 +1,6 @@
[main]
y: bool = true;
n: bool = false;
[registers]
r0: bool = false;

View File

@ -0,0 +1,16 @@
/*
namespace: Compile
expectation: Pass
input_file: input/dummy.in
*/
type str = [char; _];
function main(y: bool) -> bool {
let s = "abc";
return (first_el(s) == 'a') == y;
}
function first_el(s: str) -> char {
return s[0];
}

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 32dcc6719d7d1214782cd1ffe02f067eec8adbf1f3820546e539887d4f1334c8
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 32dcc6719d7d1214782cd1ffe02f067eec8adbf1f3820546e539887d4f1334c8
canonicalized_ast: 32dcc6719d7d1214782cd1ffe02f067eec8adbf1f3820546e539887d4f1334c8
type_inferenced_ast: 996f46f1dba11bdde037a8e033ca97870871eb89d4e3e402b59f99fcc0c35323

View File

@ -23,6 +23,6 @@ outputs:
type: bool
value: "false"
initial_ast: d9d5346dff8f825d58daabb3a4fe2fcd1471a3fb3c80e46e5583c4f6cdb12b2b
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: d9d5346dff8f825d58daabb3a4fe2fcd1471a3fb3c80e46e5583c4f6cdb12b2b
canonicalized_ast: d9d5346dff8f825d58daabb3a4fe2fcd1471a3fb3c80e46e5583c4f6cdb12b2b
type_inferenced_ast: 32a303da117b08aebfb74f7454cd80dfe28b07fd464a61b6d6a3ce23d451f135

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 9961e21337ff8eed0a27fff91fc442c2530a1bfaf80da6d497a93a371896b1f8
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 9961e21337ff8eed0a27fff91fc442c2530a1bfaf80da6d497a93a371896b1f8
canonicalized_ast: 9961e21337ff8eed0a27fff91fc442c2530a1bfaf80da6d497a93a371896b1f8
type_inferenced_ast: cc47000b2cf462f5cb891467cc99f2d21c44ced2198e988dc3de59f166aa1603

View File

@ -23,6 +23,6 @@ outputs:
type: bool
value: "false"
initial_ast: 6f8e7a94ccb702790204360959a2673abf6b53027fccaaa9feed8a4e41ee05c1
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 6f8e7a94ccb702790204360959a2673abf6b53027fccaaa9feed8a4e41ee05c1
canonicalized_ast: 6f8e7a94ccb702790204360959a2673abf6b53027fccaaa9feed8a4e41ee05c1
type_inferenced_ast: 91e597663c88fbfd0c6ff787d109f5a71d5357c44d5306f7149714cda86475ae

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: a4a3b4b30742544a6dae3d76794504173c1cc64f217bd3feda033ce51512a670
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: a4a3b4b30742544a6dae3d76794504173c1cc64f217bd3feda033ce51512a670
canonicalized_ast: a4a3b4b30742544a6dae3d76794504173c1cc64f217bd3feda033ce51512a670
type_inferenced_ast: 508686ddeb2f8fad60d9ad58639b5a761e6c5f5b61e105803eb8a98d8065a2ad

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: d83b33119db295fa2ed7795c8e17d4073cabba5e90e9438cd53f3a9a77585f19
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: d83b33119db295fa2ed7795c8e17d4073cabba5e90e9438cd53f3a9a77585f19
canonicalized_ast: d83b33119db295fa2ed7795c8e17d4073cabba5e90e9438cd53f3a9a77585f19
type_inferenced_ast: 77be8ec74bc15f2a45e8bf29e7973bc0c721008fe5508dcc6d02b91aae3d84ee

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: d9b0b6772317f0e2d1042dba26c19b4eb71a7e902c643cbeb0a4f62630f0f1bc
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: d9b0b6772317f0e2d1042dba26c19b4eb71a7e902c643cbeb0a4f62630f0f1bc
canonicalized_ast: d9b0b6772317f0e2d1042dba26c19b4eb71a7e902c643cbeb0a4f62630f0f1bc
type_inferenced_ast: e384fbed9e161b04c6c9e85f45788e5047385f289ef89d20fdacee00a8fb3e5c

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 7feac3e33e75789d3b532a7cc857f324cd7abed380d578791803b3162edcfdec
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 7feac3e33e75789d3b532a7cc857f324cd7abed380d578791803b3162edcfdec
canonicalized_ast: 7feac3e33e75789d3b532a7cc857f324cd7abed380d578791803b3162edcfdec
type_inferenced_ast: bc54ad21e90ab297b40ff570dfc379cbca61fdc9e20bd6899f4b964f726954b0

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 671704ed30a8c68ebffe2a58ff4799f626badf975d2d0dded3b06f5264e5c0db
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 671704ed30a8c68ebffe2a58ff4799f626badf975d2d0dded3b06f5264e5c0db
canonicalized_ast: 671704ed30a8c68ebffe2a58ff4799f626badf975d2d0dded3b06f5264e5c0db
type_inferenced_ast: eb525f7c227207a1037b96838d2f0cf597968c14117b3fae30564f3cd5a3a27b

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: cd2e85ff29ee11d30e73dbba0a612223a8a26dff125069ad7ac05697fd4c9829
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: cd2e85ff29ee11d30e73dbba0a612223a8a26dff125069ad7ac05697fd4c9829
canonicalized_ast: cd2e85ff29ee11d30e73dbba0a612223a8a26dff125069ad7ac05697fd4c9829
type_inferenced_ast: 1e73226b2cbbd5c7a36ffe70b778e0e544976d2e09a1f0ba3f2b486d1b604d58

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 843884ddf198fe566cea0f8e84a2902f720d6211c9d8bad98299eea4da846870
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 843884ddf198fe566cea0f8e84a2902f720d6211c9d8bad98299eea4da846870
canonicalized_ast: c30721e60523bc31af9a9bf342d9b89bf92a26e3886394cc0c1a574560715bdf
type_inferenced_ast: c37f209961a9acff1d942af1e4a9a332123676f2bc581ca94604314f9d738a1e

View File

@ -23,6 +23,6 @@ outputs:
type: bool
value: "false"
initial_ast: aa24022f240400d709b97a44c143ce481109bb0a66926aa5c97cf2e2d06dea2a
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: aa24022f240400d709b97a44c143ce481109bb0a66926aa5c97cf2e2d06dea2a
canonicalized_ast: ace5006c27d2e3784fb73d52adc641f6285a041452ba0d23de5983c5eede1139
type_inferenced_ast: 611bc2fab64e417c9cfad3c59ca333561b8167a6fc7be957d972d96125e040ba

View File

@ -23,6 +23,6 @@ outputs:
type: bool
value: "true"
initial_ast: 307b6817fa2a5005462686901129e97bf75c00bf14568fafbe1de2c8afc1804d
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 307b6817fa2a5005462686901129e97bf75c00bf14568fafbe1de2c8afc1804d
canonicalized_ast: cbaa304ba210d8155762701d8e6a2ddca3eaffb008a813ed7a60db1fb0043f10
type_inferenced_ast: 47e371ce112ac17fd65bfd100d24829e8c4819e1f96cc715b8c6245f01d608bb

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 6d5be1a3d383ecafa89b5327d3a4b9bce9a459f6c0241cb01f408566ec4a1cc4
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 6d5be1a3d383ecafa89b5327d3a4b9bce9a459f6c0241cb01f408566ec4a1cc4
canonicalized_ast: eb64230be87deb03ac7f076961a82194a15afd964aa6966a10314b38def69684
type_inferenced_ast: e7985a24db781a3e42c9b2a67d1e8febc78fc2ad4e388a90207d00eb89734ffd

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: aa24022f240400d709b97a44c143ce481109bb0a66926aa5c97cf2e2d06dea2a
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: aa24022f240400d709b97a44c143ce481109bb0a66926aa5c97cf2e2d06dea2a
canonicalized_ast: ace5006c27d2e3784fb73d52adc641f6285a041452ba0d23de5983c5eede1139
type_inferenced_ast: 611bc2fab64e417c9cfad3c59ca333561b8167a6fc7be957d972d96125e040ba

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 0724c81ae70c56ff047b5d28ef949b72c4b581ce0bb443957064efa1636a3cab
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 0724c81ae70c56ff047b5d28ef949b72c4b581ce0bb443957064efa1636a3cab
canonicalized_ast: ed0b7200a455978fed9b1df0c9e3ab9bf4815d79048f28f4205c69b420ee02df
type_inferenced_ast: 1e5c78e15d8c9328190e95ccbc2e4e105d9ce430b98704a12472e2c3cc870526

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 60d0b81c9f3631aca3c9607df74cfb8e4dbc0d387836398dea86f016fa4210fd
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 60d0b81c9f3631aca3c9607df74cfb8e4dbc0d387836398dea86f016fa4210fd
canonicalized_ast: 6570de0e96b21780ed7793a860948b2c6ff7a92da7ce7f3dd7775ff30d70656f
type_inferenced_ast: ace51ab56a61b988bd2c3f65431e87234a96fa92554d36d4e83d7235832506f6

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 754eca05d485d80c4b710db30efc66f91c0eafdc02c2707f854238863b6c6c02
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 754eca05d485d80c4b710db30efc66f91c0eafdc02c2707f854238863b6c6c02
canonicalized_ast: e5554c42dc9a45ab57ea5ac28996969640fb6f8da1ad8db805f65f5d555c8cf4
type_inferenced_ast: aa30bccd05b7386ffb8a7df7cad89ec39117c6b5fc51a9e68624064832b4f225

View File

@ -23,6 +23,6 @@ outputs:
type: "[u8; 3]"
value: "\"123\""
initial_ast: 4e74124bc410534941ef9b79ffb64656d14e145b5a79fbd14419c1aef2f0ef69
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 4e74124bc410534941ef9b79ffb64656d14e145b5a79fbd14419c1aef2f0ef69
canonicalized_ast: 4e74124bc410534941ef9b79ffb64656d14e145b5a79fbd14419c1aef2f0ef69
type_inferenced_ast: f5cb6326028b3cf9187889be6ac5ed5bd095a570d45ae63c7285a09366fc6803

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 0e4761ba1228f0a490b51ff2c31df33f623a08d32f62833d64859ca103689f4a
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 0e4761ba1228f0a490b51ff2c31df33f623a08d32f62833d64859ca103689f4a
canonicalized_ast: 0e4761ba1228f0a490b51ff2c31df33f623a08d32f62833d64859ca103689f4a
type_inferenced_ast: 1494bb64c16ec2dc03bfb2e37b89f93e02a70860ced1ce0b42b5ee5ead31b0d5

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 1bf9b30e052d9ecc042a0b20bbc195a98d463ab206963469b9199de462b8be15
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 1bf9b30e052d9ecc042a0b20bbc195a98d463ab206963469b9199de462b8be15
canonicalized_ast: 1bf9b30e052d9ecc042a0b20bbc195a98d463ab206963469b9199de462b8be15
type_inferenced_ast: 6d2531af8ed5b04b23039d0b508cf388135a0fc6e1dc0de3befb4d49ce360fbc

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 140097342b7a16fae8542da5d13eb9c2cb4e1b743fa226e345d815f62d0781bb
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 140097342b7a16fae8542da5d13eb9c2cb4e1b743fa226e345d815f62d0781bb
canonicalized_ast: 140097342b7a16fae8542da5d13eb9c2cb4e1b743fa226e345d815f62d0781bb
type_inferenced_ast: a2442e72c5010224894e46a1c6f245356c0d86428ce617eb31faaf57806ca2df

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 002cb467a5c1357617b45f955944bb4a79ab465dc13f3eb5eb8db4c158b8c745
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 002cb467a5c1357617b45f955944bb4a79ab465dc13f3eb5eb8db4c158b8c745
canonicalized_ast: 002cb467a5c1357617b45f955944bb4a79ab465dc13f3eb5eb8db4c158b8c745
type_inferenced_ast: 323fc99ac247b37bb395eb08691d451a3b6b563a15bb94b5af6a0193ccc0bd34

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 97fd9b78f7912a7627e2b2f5615ae35e39304af6122fab85f9b49fcf6a85d8f2
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 97fd9b78f7912a7627e2b2f5615ae35e39304af6122fab85f9b49fcf6a85d8f2
canonicalized_ast: cf8a8faae5f2847199324cbef87583e9af1249c03891ae31f3ce0093879326d5
type_inferenced_ast: 731117b4aa8260da475471088df325cb540d84c536ce60f3488e01a4428e84ae

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 9f2080fab6a85294afa2423cd79482fb3d944c4afab7363e66a4086a120ad34d
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 9f2080fab6a85294afa2423cd79482fb3d944c4afab7363e66a4086a120ad34d
canonicalized_ast: 9f2080fab6a85294afa2423cd79482fb3d944c4afab7363e66a4086a120ad34d
type_inferenced_ast: f8c6b9a9ac418220c87bbd1a99a5eb15817cfa289d822624f2d3cc41e10718b4

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: f61370b311806223d351c6dd611a178362cf8ad6de976d7b0ed709b51fadbecb
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: f61370b311806223d351c6dd611a178362cf8ad6de976d7b0ed709b51fadbecb
canonicalized_ast: f61370b311806223d351c6dd611a178362cf8ad6de976d7b0ed709b51fadbecb
type_inferenced_ast: 54531d6afced0deaa59c93b9270768a5e89ea8ea1df34365eb4e440bdf725904

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 6bacdd1d42bfa807910c0455c68213007d5ca8f15ee1f3c743d946bfbbff79b7
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 6bacdd1d42bfa807910c0455c68213007d5ca8f15ee1f3c743d946bfbbff79b7
canonicalized_ast: 6bacdd1d42bfa807910c0455c68213007d5ca8f15ee1f3c743d946bfbbff79b7
type_inferenced_ast: 1b2a08879a8d42fafc9eecc12b89f0f36719e02205ee48bf6075475e71942132

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: c3c30cd2e66f21abef8c49e0ac3d49ed3b607097815c354b14ea9e44d41c0a69
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: c3c30cd2e66f21abef8c49e0ac3d49ed3b607097815c354b14ea9e44d41c0a69
canonicalized_ast: c3c30cd2e66f21abef8c49e0ac3d49ed3b607097815c354b14ea9e44d41c0a69
type_inferenced_ast: 557825e28344c8313d9961f9551eabe9c32ee85c524b9b9a6b0fc202c22fa9f3

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 6c062f01a78d515f780a4c13de65d466edda274a2cb519af47a319ed165db0fa
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 6c062f01a78d515f780a4c13de65d466edda274a2cb519af47a319ed165db0fa
canonicalized_ast: 382e9b8b4a635b0be6f62409a20bbdc10d37d08c17658414d1ddef8e6eb00749
type_inferenced_ast: 13d8af6038fbc63ae76be51f23e43152ab473b895d206160716008da87da3416

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 228ba794b578de8828d761676c15059c51455aff96b02ef3cfafbef53c35454b
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 228ba794b578de8828d761676c15059c51455aff96b02ef3cfafbef53c35454b
canonicalized_ast: 7869bd9531ba014bc2515e13bcafdfed2f9566e7008c1e015d43bb749d8d1d4a
type_inferenced_ast: 84b8976993f08b1b46fef6012018ad050eed6df1e34ae83fc0b57799a1acb395

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 0ea5856bbe7ad96107544e2b12c7ca54c279c4cd1c8b9610083430600ffa86f9
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 0ea5856bbe7ad96107544e2b12c7ca54c279c4cd1c8b9610083430600ffa86f9
canonicalized_ast: 0083c78a81a6ec44627ca89fe949a5301ccaa54ead7104b9a2a3fbd979cf9a2c
type_inferenced_ast: a8b44ce543535e16db5d93df805dc5693d3a1140798cb336d573986de8dfdbca

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: db7e9050580f794aa657700225126e8033c0241240874f6e35df0507469be247
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: db7e9050580f794aa657700225126e8033c0241240874f6e35df0507469be247
canonicalized_ast: 55304d82a024ad2418e156ad661224040904775f070995bf1b828d1264c3487f
type_inferenced_ast: db99dd94ad4ef9de46304df000494eeda3e8b51835c46e6a3988ee87f91457fa

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 2730f954bc76f81d29b02a15f8025d75ca963234716112745b806789bb8eb297
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 2730f954bc76f81d29b02a15f8025d75ca963234716112745b806789bb8eb297
canonicalized_ast: 4e07d5e399fa0f60ab84796ecc6195b2a8da0b3a9e725152465512e98f0ca753
type_inferenced_ast: ea0f726ce456c52c62b73aae38afb74b160ae527480d05f3254c0fdaefdad58e

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 445b35e7d287dc14a77b2c1c4c77d9b7b4fbd6e7c31f6f35c91a446eeca29775
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 445b35e7d287dc14a77b2c1c4c77d9b7b4fbd6e7c31f6f35c91a446eeca29775
canonicalized_ast: 48590d7afce08e9e0cd4a45048faa360c18109098b5a9074dfc21b252a47d3e8
type_inferenced_ast: 0cc5d17973908631180a791f151bdc42aa3e8394b3fbc7607f717bc61baaf904

View File

@ -0,0 +1,22 @@
---
namespace: Compile
expectation: Pass
outputs:
- circuit:
num_public_variables: 0
num_private_variables: 1
num_constraints: 1
at: 042610d0fd1fe6d6ac112138f8755752f44c7d2a00f1b5960574d6da5cda393f
bt: e97756698880ab7555a959a5fb5c6b4e15bd64612aa677adbfe2d0bd91f0a83c
ct: cf1cbb66a638b4860a516671fb74850e6ccf787fe6c4c8d29e9c04efe880bd05
output:
- input_file: input/dummy.in
output:
registers:
r0:
type: bool
value: "true"
initial_ast: edf8a3b7372af353b99830752d41d8c04d1863a4d03c754f41aac3545649c644
imports_resolved_ast: edf8a3b7372af353b99830752d41d8c04d1863a4d03c754f41aac3545649c644
canonicalized_ast: edf8a3b7372af353b99830752d41d8c04d1863a4d03c754f41aac3545649c644
type_inferenced_ast: 5479f110a1cbd68040560f64a09663207e756630aa2621a4bb424c48a3cab64d

View File

@ -0,0 +1,22 @@
---
namespace: Compile
expectation: Pass
outputs:
- circuit:
num_public_variables: 0
num_private_variables: 1
num_constraints: 1
at: 042610d0fd1fe6d6ac112138f8755752f44c7d2a00f1b5960574d6da5cda393f
bt: e97756698880ab7555a959a5fb5c6b4e15bd64612aa677adbfe2d0bd91f0a83c
ct: cf1cbb66a638b4860a516671fb74850e6ccf787fe6c4c8d29e9c04efe880bd05
output:
- input_file: input/dummy.in
output:
registers:
r0:
type: bool
value: "true"
initial_ast: 5ae730ffb3671acde08944aaa8450a54bb9ce436c92d5c21e7a2a7b9c8d404a7
imports_resolved_ast: 5ae730ffb3671acde08944aaa8450a54bb9ce436c92d5c21e7a2a7b9c8d404a7
canonicalized_ast: 5ae730ffb3671acde08944aaa8450a54bb9ce436c92d5c21e7a2a7b9c8d404a7
type_inferenced_ast: c2b15c1e0644a4af597019f7a56d1c8485723e43089ff0aa8951e3ec31729f1f

View File

@ -0,0 +1,22 @@
---
namespace: Compile
expectation: Pass
outputs:
- circuit:
num_public_variables: 0
num_private_variables: 1
num_constraints: 1
at: 042610d0fd1fe6d6ac112138f8755752f44c7d2a00f1b5960574d6da5cda393f
bt: e97756698880ab7555a959a5fb5c6b4e15bd64612aa677adbfe2d0bd91f0a83c
ct: cf1cbb66a638b4860a516671fb74850e6ccf787fe6c4c8d29e9c04efe880bd05
output:
- input_file: input/dummy.in
output:
registers:
r0:
type: bool
value: "true"
initial_ast: 1695abb58931812bfe65ffdb967c9e8e36abbab771bfd8a20e289e3e1b102b5a
imports_resolved_ast: 1695abb58931812bfe65ffdb967c9e8e36abbab771bfd8a20e289e3e1b102b5a
canonicalized_ast: 637eaabe62c318b0c9f9d6d26936c11aa8804022866ce356e14dc02e29a34251
type_inferenced_ast: 1540899195a176d1b1d0e1d886a671f07f063dd10fea15f853e67ffcfc0ae9ce

View File

@ -35,6 +35,6 @@ outputs:
type: bool
value: "true"
initial_ast: 2f7c3b9c806a873b6445200eb78a8e0e546ffe64c90fe2133355dd37a342b11b
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 2f7c3b9c806a873b6445200eb78a8e0e546ffe64c90fe2133355dd37a342b11b
canonicalized_ast: 2f7c3b9c806a873b6445200eb78a8e0e546ffe64c90fe2133355dd37a342b11b
type_inferenced_ast: 87b86a66fc6e60502be0b0fb7cf677d5128390aec53f6893827a1bf02fca8370

View File

@ -35,6 +35,6 @@ outputs:
type: bool
value: "true"
initial_ast: 5316ba00882aa3f9b538d349ed7141c4ee7c77ec01f6af9911b2652b6cd3e659
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 5316ba00882aa3f9b538d349ed7141c4ee7c77ec01f6af9911b2652b6cd3e659
canonicalized_ast: 5316ba00882aa3f9b538d349ed7141c4ee7c77ec01f6af9911b2652b6cd3e659
type_inferenced_ast: 7933d0a8f47892e42c3c670bc6433e8d820042a7396e10b6a63d22bd5b740f96

View File

@ -35,6 +35,6 @@ outputs:
type: bool
value: "true"
initial_ast: 08f026e24cab51634a7a2a6f1f3b082eace1d4be649cd9ff7c244194891d7d78
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 08f026e24cab51634a7a2a6f1f3b082eace1d4be649cd9ff7c244194891d7d78
canonicalized_ast: 08f026e24cab51634a7a2a6f1f3b082eace1d4be649cd9ff7c244194891d7d78
type_inferenced_ast: 2112e9f631a77bb16ba1561bbe1028a415413f23fd32d21bfe086e071938c845

View File

@ -35,6 +35,6 @@ outputs:
type: bool
value: "false"
initial_ast: 094effa7fe12695679a571f560e1d3e8c299cde8de280f9309010c85f48bab95
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 094effa7fe12695679a571f560e1d3e8c299cde8de280f9309010c85f48bab95
canonicalized_ast: 094effa7fe12695679a571f560e1d3e8c299cde8de280f9309010c85f48bab95
type_inferenced_ast: ab25cb7bf7d8fe3ec64be183550ba8d6acfaf17464cf70ec45c6497fc065ac29

View File

@ -35,6 +35,6 @@ outputs:
type: bool
value: "true"
initial_ast: e2facdce5f7cdbed4a3215cc258e54418aac4f4b846349b35e1da67b577b76c9
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: e2facdce5f7cdbed4a3215cc258e54418aac4f4b846349b35e1da67b577b76c9
canonicalized_ast: e2facdce5f7cdbed4a3215cc258e54418aac4f4b846349b35e1da67b577b76c9
type_inferenced_ast: fb43dcb50c9822e2d4e4f35e9cc73f0893e508161296be5666cd90c4f7a971bc

View File

@ -101,6 +101,6 @@ outputs:
type: char
value: "'\\u{1f62d}'"
initial_ast: 0c2aeb5b47fc21f5aded4e3aebcdf55eb98c10c6b51a2a6dcb98490a96da0c97
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 0c2aeb5b47fc21f5aded4e3aebcdf55eb98c10c6b51a2a6dcb98490a96da0c97
canonicalized_ast: 0c2aeb5b47fc21f5aded4e3aebcdf55eb98c10c6b51a2a6dcb98490a96da0c97
type_inferenced_ast: 84977d828c2988392d85d4156d34d168a3265aca3c3516b3ddb974d3d9eee2dc

View File

@ -101,6 +101,6 @@ outputs:
type: char
value: "'a'"
initial_ast: ac56e34b2a2cb282d36133df39d80947dfdfc56b5655b3ba9f408ba529c8f505
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: ac56e34b2a2cb282d36133df39d80947dfdfc56b5655b3ba9f408ba529c8f505
canonicalized_ast: ac56e34b2a2cb282d36133df39d80947dfdfc56b5655b3ba9f408ba529c8f505
type_inferenced_ast: 2eecf906226893c46f526a72f272a3f11eb34ada7cc4cd573439ebfed44ba170

View File

@ -20,6 +20,6 @@ outputs:
type: bool
value: "true"
initial_ast: da8550065db88bba8f0a982612194f6122ec97025c4af5d3007d3a4d42519cb9
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: da8550065db88bba8f0a982612194f6122ec97025c4af5d3007d3a4d42519cb9
canonicalized_ast: da8550065db88bba8f0a982612194f6122ec97025c4af5d3007d3a4d42519cb9
type_inferenced_ast: b3ea99e7660209825c5bb1abcba8c1835cf96b79c8707e616513122ab10ac0d5

View File

@ -101,6 +101,6 @@ outputs:
type: char
value: "'\\u{1f62d}'"
initial_ast: 6e1cf86d47e056682c6e51dcf0390eb34505b60d50de60970a688f237525bedf
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 6e1cf86d47e056682c6e51dcf0390eb34505b60d50de60970a688f237525bedf
canonicalized_ast: 6e1cf86d47e056682c6e51dcf0390eb34505b60d50de60970a688f237525bedf
type_inferenced_ast: feb16e72f13a884e3303b336f7f20ff8ff4066a8f9861860e28b9c6901215b76

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 58f66e3a45b1752bb5dbb454adbbe6136394a7a87bc7b812d154aec1d5eac816
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 58f66e3a45b1752bb5dbb454adbbe6136394a7a87bc7b812d154aec1d5eac816
canonicalized_ast: f7359bbb8cecd0923c0aa7dd7fd6b01cb2c64e45f1e777709fb14d4e6ba0ee5a
type_inferenced_ast: f3a0378b8b60f66ca164be498224592907216262a54a92d878e52f0a85f53389

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 50c0f7261d879373f4e01ec3d140a2067ca4e78622c8340e8312d717f6effb05
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 50c0f7261d879373f4e01ec3d140a2067ca4e78622c8340e8312d717f6effb05
canonicalized_ast: 50c0f7261d879373f4e01ec3d140a2067ca4e78622c8340e8312d717f6effb05
type_inferenced_ast: 161edd5d1900f2902bd8cc972308ce7fb0afe7c6cf64ab7cfe952c3f1b3189c0

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: bfd7751e8ea64c6d41af36d968f194a18a5411ac71932a67766f40448ce755f5
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: bfd7751e8ea64c6d41af36d968f194a18a5411ac71932a67766f40448ce755f5
canonicalized_ast: bfd7751e8ea64c6d41af36d968f194a18a5411ac71932a67766f40448ce755f5
type_inferenced_ast: 910b51f962861da6011f214a5379bc9296034e3fecda347b17c7db97df833a25

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: d8a66347f480161a2215c92d2cf6ded2d0b49fd76b7eb0036d4fa33de371925a
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: d8a66347f480161a2215c92d2cf6ded2d0b49fd76b7eb0036d4fa33de371925a
canonicalized_ast: d8a66347f480161a2215c92d2cf6ded2d0b49fd76b7eb0036d4fa33de371925a
type_inferenced_ast: d5bb87130d78bb39fa948ce868999184f90c78ada176cf08c49051517de3351c

View File

@ -17,6 +17,6 @@ outputs:
type: u32
value: "100"
initial_ast: c40a1d60f872fdb03ab7379a3abf43439a100b8f1546b76ffeac60c8739e0d68
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: c40a1d60f872fdb03ab7379a3abf43439a100b8f1546b76ffeac60c8739e0d68
canonicalized_ast: c40a1d60f872fdb03ab7379a3abf43439a100b8f1546b76ffeac60c8739e0d68
type_inferenced_ast: 3d56ffd95d1b84970e24f10a48f52053717876f062db72d8be93f413f7b2c9a3

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: cf642f2f983cd8bcd6cbca2d2920f5234d79375601c1da3c06f97b6185a5629d
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: cf642f2f983cd8bcd6cbca2d2920f5234d79375601c1da3c06f97b6185a5629d
canonicalized_ast: f99560385252ad2965e39b19402e7c56db402458206187eeb54adc26effd9bb5
type_inferenced_ast: c7c5cd5ed24fd3967f19a5ad895aeb7778b3dfadc7965c3f5bc1d44c61448083

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 5273a592b167cfe040b2bca7337521084d7a6640651bca584545e9eeb2e4fa88
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 5273a592b167cfe040b2bca7337521084d7a6640651bca584545e9eeb2e4fa88
canonicalized_ast: 5273a592b167cfe040b2bca7337521084d7a6640651bca584545e9eeb2e4fa88
type_inferenced_ast: 6d1bef6ecbba4533266f9478b06e52acc56f04850e99a658abffe39e7e463cdf

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 241f1a42877b012b2e2062cefbd83523a5c719557cb422cf1fbd7efb0f7b1796
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 241f1a42877b012b2e2062cefbd83523a5c719557cb422cf1fbd7efb0f7b1796
canonicalized_ast: 241f1a42877b012b2e2062cefbd83523a5c719557cb422cf1fbd7efb0f7b1796
type_inferenced_ast: 2982ee6fda2fcbd00f64d2c0c75ccacf58ab05961f85e9a64cc0ddec12bb5209

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 11dfbfa2561534a1c965d8f8862b23ed56be50986903c139b763f88a1ba3ad8d
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 11dfbfa2561534a1c965d8f8862b23ed56be50986903c139b763f88a1ba3ad8d
canonicalized_ast: 11dfbfa2561534a1c965d8f8862b23ed56be50986903c139b763f88a1ba3ad8d
type_inferenced_ast: 6aab6f0cf6a9237ec02b5ce3f4ad8f24c8faa8ec5ccbc7f3af1023d0269dceea

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 42f603efbf7ee8ca53394266f33fbf09110420c822385179d656861e8ceb4a32
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 42f603efbf7ee8ca53394266f33fbf09110420c822385179d656861e8ceb4a32
canonicalized_ast: 92d91209d7675fc14ae1fd44c28d1384f1c56c5852654b4dac46dd123340d9c0
type_inferenced_ast: 0527005fb0925ac29af65bb0c12c39991d466c20def41ce7e4a2ded51ae233fc

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: cf41b78f9435c6555014db8aeebe662556f4f8547ee0f3a204d6f522fcf72644
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: cf41b78f9435c6555014db8aeebe662556f4f8547ee0f3a204d6f522fcf72644
canonicalized_ast: cf41b78f9435c6555014db8aeebe662556f4f8547ee0f3a204d6f522fcf72644
type_inferenced_ast: d947fa6d8fa1b34cc9822ade386062dbd6ebc2cb5987479d4263bcfa554586cd

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 622baae85ab7776fc38cff17465e8e0dbcdb98f4ba74e734ca494b696cea8ccd
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 622baae85ab7776fc38cff17465e8e0dbcdb98f4ba74e734ca494b696cea8ccd
canonicalized_ast: 622baae85ab7776fc38cff17465e8e0dbcdb98f4ba74e734ca494b696cea8ccd
type_inferenced_ast: c604cecb0efbae6b8ea3d69909c5decbb06d6a2e95ff67661f5936ef8fd951a5

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: ba91ea172a2f753bf4a338f29fff05c358d4dc0cb1c2ef461d492ee4fe2a1114
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: ba91ea172a2f753bf4a338f29fff05c358d4dc0cb1c2ef461d492ee4fe2a1114
canonicalized_ast: 8d1beaecc785aa79a5a6bec47cf10426b9d3d87ccc15c359f12c7d3ee2a95561
type_inferenced_ast: 520a83004a666274e62958b6e2025d11ed5e24d888b6bc0ded6d01ee9a3bc634

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: fe7ca41c29d33107a4316b9c6788898217129937cbf1de0f2ea7566a360245f0
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: fe7ca41c29d33107a4316b9c6788898217129937cbf1de0f2ea7566a360245f0
canonicalized_ast: d2b30a9485e7166a0efde9d179432e481a4d40540e1b3eeec043b84d993e66df
type_inferenced_ast: 2c666d0e878095617bc562aa74de4fe069401b4a80ba8dba28a47a789f517ab5

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 659e5fcdd16752c6e3504f821a5afd6f0756bd6b8641f127ba049c2a4c83a088
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 659e5fcdd16752c6e3504f821a5afd6f0756bd6b8641f127ba049c2a4c83a088
canonicalized_ast: 8cf6113b757cfeee53554c67dd3f380f0f417032b8835259bf30076b19349f61
type_inferenced_ast: d4106eb006385de5bf2a56a1ebaa25a65b048f77dda6fb9585c86a9260073585

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 8c4a98dec3d2e9e826e3419c91a251e821861a146325b025c52ff15b5edefe1c
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 8c4a98dec3d2e9e826e3419c91a251e821861a146325b025c52ff15b5edefe1c
canonicalized_ast: 8c4a98dec3d2e9e826e3419c91a251e821861a146325b025c52ff15b5edefe1c
type_inferenced_ast: 2497671092bacab8cb5d75177298a700100bfa8412a48a7115d178e5d9816a6b

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 1f7de14429213b2b3b564d664c33e9cea134e1a157b861a1cf0ea1abc90b32f6
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 1f7de14429213b2b3b564d664c33e9cea134e1a157b861a1cf0ea1abc90b32f6
canonicalized_ast: 94752f37ca7553267f341d2f96e657eb2fe6b5e403a4d3fb7d66d1662b81eb00
type_inferenced_ast: e675411217f3465fdc23bab3c2f50c2264452d198ab3dd2e8059e546e54312a4

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: c341e62f8a3940ddc9527bcd01c814f8d496a1f02ca903b080b6228d155af02b
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: c341e62f8a3940ddc9527bcd01c814f8d496a1f02ca903b080b6228d155af02b
canonicalized_ast: 60cd9f24460e06522814151af817c9d394c779477091aab2c77c77dfe228b611
type_inferenced_ast: 876f075ed034c8914b9f74f46f07bd6c2ed3e7d7f1ffb15e756da10e9ec9abf8

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 5da09287f1d3a5e4ab57f8da2c8094df25c3b35614791e2f6e84a77b609f29b0
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 5da09287f1d3a5e4ab57f8da2c8094df25c3b35614791e2f6e84a77b609f29b0
canonicalized_ast: de5114bff3425e0c67e9e70e3a0d02bdf2d6c3ed9108dac43a00b79d4db9b3d2
type_inferenced_ast: 9a6f5ee1784a1af0a04736e1b3bc886107bbddc5d45bbabd59812d083acacdea

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 1dce719e850f6ca6a091fea163d5d6bb069bcdafeeed0a10fb332ba8837e6e5c
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 1dce719e850f6ca6a091fea163d5d6bb069bcdafeeed0a10fb332ba8837e6e5c
canonicalized_ast: 3bd96f7e9530f426db4a2e12d5a93a5ebcafedbcb7b4549d08ad387fa15918d9
type_inferenced_ast: 6bbb246f57aa199b9ef31b61b6e858004617455efe22393892bf0c22f552d69a

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: c2f6d0da67de691b14cffbdbe20eba613f2ea274c45aba4347045da2446b6af6
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: c2f6d0da67de691b14cffbdbe20eba613f2ea274c45aba4347045da2446b6af6
canonicalized_ast: c2f6d0da67de691b14cffbdbe20eba613f2ea274c45aba4347045da2446b6af6
type_inferenced_ast: 3bf3d109f59519ecbfd601c36a8cb89cfb36e1ace395e361860023b8f93fc220

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: bd23695040d06dbd59426b363ea66da8c9344aad064615d1b5beb6326933acbc
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: bd23695040d06dbd59426b363ea66da8c9344aad064615d1b5beb6326933acbc
canonicalized_ast: bd23695040d06dbd59426b363ea66da8c9344aad064615d1b5beb6326933acbc
type_inferenced_ast: 198e2817e4d6d454d7e1d1eba8226757d7f044b20e6dd4f6962530b177c469c5

View File

@ -17,6 +17,6 @@ outputs:
output:
registers: {}
initial_ast: a7b374e2c0a97af2160b5f6faeadb17a12e8908c1a7b3d251194e6867fd98f07
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: a7b374e2c0a97af2160b5f6faeadb17a12e8908c1a7b3d251194e6867fd98f07
canonicalized_ast: ebd1a1f28fafd6fc55c13f4c362ae9a13dee4717e41d99c23fd0d32c5fcdc526
type_inferenced_ast: eb15aba7bdb3c3a2f776af8cb80f52f44d6d6ab60e5ee3c032ab4ec8a90a2436

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 2496cb4a0f1486bbacccee48e3b8b93999916e585e238a5c7d63c34235d15a36
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 2496cb4a0f1486bbacccee48e3b8b93999916e585e238a5c7d63c34235d15a36
canonicalized_ast: 2496cb4a0f1486bbacccee48e3b8b93999916e585e238a5c7d63c34235d15a36
type_inferenced_ast: aa056968c0d635d56e2ad011db4df7fec65b62eb7b0ca8ec5c75ca8fca0f33eb

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: 8421d5ef70b41b773b771cb1991a5120a556d13127fb1c6cf7bbd6328150c7d5
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 8421d5ef70b41b773b771cb1991a5120a556d13127fb1c6cf7bbd6328150c7d5
canonicalized_ast: 8421d5ef70b41b773b771cb1991a5120a556d13127fb1c6cf7bbd6328150c7d5
type_inferenced_ast: 34e28d45203ffd3ec760af7baf8db09cfb14584107951fc5803122c0fc13f0e2

View File

@ -23,6 +23,6 @@ outputs:
type: bool
value: "true"
initial_ast: 389c0d4a68bf27db627b83d460a2947a2321a76fc73e727806a9fe8c7f63fe88
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: 389c0d4a68bf27db627b83d460a2947a2321a76fc73e727806a9fe8c7f63fe88
canonicalized_ast: 389c0d4a68bf27db627b83d460a2947a2321a76fc73e727806a9fe8c7f63fe88
type_inferenced_ast: d5fe9155615c6ca70430e6b33661214f14844a61d5064ad56d388fea147abfd7

View File

@ -17,6 +17,6 @@ outputs:
type: bool
value: "true"
initial_ast: de5d7719988638c095aba736ca2e09c2037be42e22c3b29bc2c07705e7bfd6ee
imports_resolved_ast: 4ca172d902f797a1d225223900fbf3f01a68c44ad5a0cf402e719f9e5961988b
imports_resolved_ast: de5d7719988638c095aba736ca2e09c2037be42e22c3b29bc2c07705e7bfd6ee
canonicalized_ast: de5d7719988638c095aba736ca2e09c2037be42e22c3b29bc2c07705e7bfd6ee
type_inferenced_ast: 8e6fed7036467ea6116184b59b25589393393308a1c1fe963dc0ac4a9e76481a

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