test: adjust snapshots
This commit is contained in:
parent
8a7df7f66b
commit
da0b969865
|
@ -1,65 +1,79 @@
|
||||||
use crate::{ast, parser};
|
use crate::{ast, parser};
|
||||||
|
|
||||||
macro_rules! assert_parse {
|
macro_rules! assert_parse {
|
||||||
($name:ident, $code:expr) => {
|
($code:expr) => {
|
||||||
#[test]
|
let (module, _) =
|
||||||
fn $name() {
|
parser::module(indoc::indoc!{ $code }, ast::ModuleKind::Validator).expect("Failed to parse code");
|
||||||
let (module, _) =
|
|
||||||
parser::module(indoc::indoc!{ $code }, ast::ModuleKind::Validator).expect("Failed to parse code");
|
|
||||||
|
|
||||||
insta::with_settings!({
|
insta::with_settings!({
|
||||||
info => &stringify!($name),
|
description => concat!("Code:\n\n", indoc::indoc! { $code }),
|
||||||
description => $code,
|
prepend_module_to_snapshot => false,
|
||||||
omit_expression => true
|
omit_expression => true
|
||||||
}, {
|
}, {
|
||||||
insta::assert_debug_snapshot!(module);
|
insta::assert_debug_snapshot!(module);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
assert_parse!(windows_newline, "use aiken/list\r\n");
|
#[test]
|
||||||
assert_parse!(
|
fn windows_newline() {
|
||||||
can_handle_comments_at_end_of_file,
|
assert_parse!("use aiken/list\r\n");
|
||||||
r#"
|
}
|
||||||
use aiken
|
|
||||||
|
|
||||||
// some comment
|
#[test]
|
||||||
// more comments"#
|
fn can_handle_comments_at_end_of_file() {
|
||||||
);
|
assert_parse!(
|
||||||
assert_parse!(
|
r#"
|
||||||
type_annotation_with_module_prefix,
|
use aiken
|
||||||
r#"
|
|
||||||
use aiken
|
|
||||||
|
|
||||||
pub fn go() -> aiken.Option<Int> {
|
// some comment
|
||||||
False
|
// more comments"#
|
||||||
}
|
);
|
||||||
"#
|
}
|
||||||
);
|
|
||||||
assert_parse!(
|
|
||||||
test_fail,
|
|
||||||
r#"
|
|
||||||
!test invalid_inputs() {
|
|
||||||
expect True = False
|
|
||||||
|
|
||||||
False
|
#[test]
|
||||||
}
|
fn type_annotation_with_module_prefix() {
|
||||||
"#
|
assert_parse!(
|
||||||
);
|
r#"
|
||||||
assert_parse!(
|
use aiken
|
||||||
validator,
|
|
||||||
r#"
|
pub fn go() -> aiken.Option<Int> {
|
||||||
|
False
|
||||||
|
}
|
||||||
|
"#
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_fail() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
|
!test invalid_inputs() {
|
||||||
|
expect True = False
|
||||||
|
|
||||||
|
False
|
||||||
|
}
|
||||||
|
"#
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn validator() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
validator {
|
validator {
|
||||||
fn foo(datum, rdmr, ctx) {
|
fn foo(datum, rdmr, ctx) {
|
||||||
True
|
True
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
double_validator,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn double_validator() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
validator {
|
validator {
|
||||||
fn foo(datum, rdmr, ctx) {
|
fn foo(datum, rdmr, ctx) {
|
||||||
True
|
True
|
||||||
|
@ -69,92 +83,128 @@ assert_parse!(
|
||||||
True
|
True
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
import,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn import() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
use std/list
|
use std/list
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
unqualified_imports,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn unqualified_imports() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
use std/address.{Address as A, thing as w}
|
use std/address.{Address as A, thing as w}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
import_alias,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn import_alias() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
use std/tx as t
|
use std/tx as t
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
custom_type,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn custom_type() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
type Option<a> {
|
type Option<a> {
|
||||||
Some(a, Int)
|
Some(a, Int)
|
||||||
None
|
None
|
||||||
Wow { name: Int, age: Int }
|
Wow { name: Int, age: Int }
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
opaque_type,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn opaque_type() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
pub opaque type User {
|
pub opaque type User {
|
||||||
name: _w
|
name: _w
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
type_alias,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn type_alias() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
type Thing = Option<Int>
|
type Thing = Option<Int>
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
pub_type_alias,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn pub_type_alias() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
pub type Me = Option<String>
|
pub type Me = Option<String>
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
empty_function,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn empty_function() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
pub fn run() {}
|
pub fn run() {}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
expect,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn expect() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
pub fn run() {
|
pub fn run() {
|
||||||
expect Some(x) = something.field
|
expect Some(x) = something.field
|
||||||
x.other_field
|
x.other_field
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
plus_binop,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn plus_binop() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
pub fn add_one(a) -> Int {
|
pub fn add_one(a) -> Int {
|
||||||
a + 1
|
a + 1
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
pipeline,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn pipeline() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
pub fn thing(thing a: Int) {
|
pub fn thing(thing a: Int) {
|
||||||
a + 2
|
a + 2
|
||||||
|> add_one
|
|> add_one
|
||||||
|> add_one
|
|> add_one
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
if_expression,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn if_expression() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
fn ifs() {
|
fn ifs() {
|
||||||
if True {
|
if True {
|
||||||
1 + 1
|
1 + 1
|
||||||
|
@ -167,10 +217,13 @@ assert_parse!(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
let_bindings,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn let_bindings() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
pub fn wow(a: Int) {
|
pub fn wow(a: Int) {
|
||||||
let x =
|
let x =
|
||||||
a + 2
|
a + 2
|
||||||
|
@ -183,11 +236,14 @@ assert_parse!(
|
||||||
|
|
||||||
y
|
y
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
block,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn block() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
pub fn wow2(a: Int){
|
pub fn wow2(a: Int){
|
||||||
let b = {
|
let b = {
|
||||||
let x = 4
|
let x = 4
|
||||||
|
@ -197,11 +253,14 @@ assert_parse!(
|
||||||
|
|
||||||
b
|
b
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
when,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn when() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
pub fn wow2(a: Int){
|
pub fn wow2(a: Int){
|
||||||
when a is {
|
when a is {
|
||||||
2 -> 3
|
2 -> 3
|
||||||
|
@ -213,29 +272,38 @@ assert_parse!(
|
||||||
_ -> 4
|
_ -> 4
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
anonymous_function,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn anonymous_function() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
pub fn such() -> Int {
|
pub fn such() -> Int {
|
||||||
let add_one = fn (a: Int) -> Int { a + 1 }
|
let add_one = fn (a: Int) -> Int { a + 1 }
|
||||||
|
|
||||||
2 |> add_one
|
2 |> add_one
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
field_access,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn field_access() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
fn name(user: User) {
|
fn name(user: User) {
|
||||||
user.name
|
user.name
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
call,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn call() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
fn calls() {
|
fn calls() {
|
||||||
let x = add_one(3)
|
let x = add_one(3)
|
||||||
|
|
||||||
|
@ -243,138 +311,183 @@ assert_parse!(
|
||||||
|
|
||||||
map_add_x([ 1, 2, 3 ])
|
map_add_x([ 1, 2, 3 ])
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
record_update,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn record_update() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
fn update_name(user: User, name: ByteArray) -> User {
|
fn update_name(user: User, name: ByteArray) -> User {
|
||||||
User { ..user, name: "Aiken", age }
|
User { ..user, name: "Aiken", age }
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
record_create_labeled,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn record_create_labeled() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
fn create() {
|
fn create() {
|
||||||
User { name: "Aiken", age, thing: 2 }
|
User { name: "Aiken", age, thing: 2 }
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
record_create_labeled_with_field_access,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn record_create_labeled_with_field_access() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
fn create() {
|
fn create() {
|
||||||
some_module.User { name: "Aiken", age, thing: 2 }
|
some_module.User { name: "Aiken", age, thing: 2 }
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
cargo_create_unlabeled,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn cargo_create_unlabeled() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
fn create() {
|
fn create() {
|
||||||
some_module.Thing(1, a)
|
some_module.Thing(1, a)
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
parse_tuple,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn parse_tuple() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
fn foo() {
|
fn foo() {
|
||||||
let tuple = (1, 2, 3, 4)
|
let tuple = (1, 2, 3, 4)
|
||||||
tuple.1st + tuple.2nd + tuple.3rd + tuple.4th
|
tuple.1st + tuple.2nd + tuple.3rd + tuple.4th
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
parse_tuple2,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn parse_tuple2() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
fn foo() {
|
fn foo() {
|
||||||
let a = foo(14)
|
let a = foo(14)
|
||||||
(a, 42)
|
(a, 42)
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
plain_bytearray_literals,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn plain_bytearray_literals() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
pub const my_policy_id = #[0, 170, 255]
|
pub const my_policy_id = #[0, 170, 255]
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
base16_bytearray_literals,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn base16_bytearray_literals() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
pub const my_policy_id = #"00aaff"
|
pub const my_policy_id = #"00aaff"
|
||||||
|
|
||||||
pub fn foo() {
|
pub fn foo() {
|
||||||
my_policy_id == #"00aaff"
|
my_policy_id == #"00aaff"
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
function_def,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn function_def() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
fn foo() {}
|
fn foo() {}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
function_invoke,
|
|
||||||
r#"
|
#[test]
|
||||||
|
fn function_invoke() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
fn foo() {
|
fn foo() {
|
||||||
let a = bar(42)
|
let a = bar(42)
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
assert_parse!(
|
}
|
||||||
function_ambiguous_sequence,
|
|
||||||
r#"
|
|
||||||
fn foo_1() {
|
|
||||||
let a = bar
|
|
||||||
(40)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn foo_2() {
|
#[test]
|
||||||
let a = bar
|
fn function_ambiguous_sequence() {
|
||||||
{40}
|
assert_parse!(
|
||||||
}
|
r#"
|
||||||
|
fn foo_1() {
|
||||||
fn foo_3() {
|
let a = bar
|
||||||
let a = (40+2)
|
(40)
|
||||||
}
|
|
||||||
|
|
||||||
fn foo_4() {
|
|
||||||
let a = bar(42)
|
|
||||||
(a + 14) * 42
|
|
||||||
}
|
|
||||||
"#
|
|
||||||
);
|
|
||||||
assert_parse!(
|
|
||||||
tuple_type_alias,
|
|
||||||
r#"
|
|
||||||
type RoyaltyToken = (PolicyId, AssetName)
|
|
||||||
"#
|
|
||||||
);
|
|
||||||
assert_parse!(
|
|
||||||
int_parsing_hex_bytes,
|
|
||||||
r#"
|
|
||||||
fn foo() {
|
|
||||||
#[ 0x01, 0xa2, 0x03 ]
|
|
||||||
}
|
|
||||||
"#
|
|
||||||
);
|
|
||||||
assert_parse!(
|
|
||||||
test_parsing_numeric_underscore,
|
|
||||||
r#"
|
|
||||||
fn foo() {
|
|
||||||
let i = 1_234_567
|
|
||||||
let j = 1_000_000
|
|
||||||
let k = -10_000
|
|
||||||
}
|
}
|
||||||
"#
|
|
||||||
);
|
fn foo_2() {
|
||||||
assert_parse!(
|
let a = bar
|
||||||
first_class_binop,
|
{40}
|
||||||
r#"
|
}
|
||||||
|
|
||||||
|
fn foo_3() {
|
||||||
|
let a = (40+2)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn foo_4() {
|
||||||
|
let a = bar(42)
|
||||||
|
(a + 14) * 42
|
||||||
|
}
|
||||||
|
"#
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn tuple_type_alias() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
|
type RoyaltyToken = (PolicyId, AssetName)
|
||||||
|
"#
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn int_parsing_hex_bytes() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
|
fn foo() {
|
||||||
|
#[ 0x01, 0xa2, 0x03 ]
|
||||||
|
}
|
||||||
|
"#
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_parsing_numeric_underscore() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
|
fn foo() {
|
||||||
|
let i = 1_234_567
|
||||||
|
let j = 1_000_000
|
||||||
|
let k = -10_000
|
||||||
|
}
|
||||||
|
"#
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn first_class_binop() {
|
||||||
|
assert_parse!(
|
||||||
|
r#"
|
||||||
fn foo() {
|
fn foo() {
|
||||||
compare_with(a, >, b)
|
compare_with(a, >, b)
|
||||||
compare_with(a, >=, b)
|
compare_with(a, >=, b)
|
||||||
|
@ -391,7 +504,8 @@ assert_parse!(
|
||||||
compute_with(a, %, b)
|
compute_with(a, %, b)
|
||||||
}
|
}
|
||||||
"#
|
"#
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn parse_unicode_offset_1() {
|
fn parse_unicode_offset_1() {
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n pub fn such() -> Int {\n let add_one = fn (a: Int) -> Int { a + 1 }\n\n 2 |> add_one\n }\n "
|
description: "Code:\n\npub fn such() -> Int {\n let add_one = fn (a: Int) -> Int { a + 1 }\n\n 2 |> add_one\n}\n"
|
||||||
info: anonymous_function
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n pub const my_policy_id = #\"00aaff\"\n\n pub fn foo() {\n my_policy_id == #\"00aaff\"\n }\n "
|
description: "Code:\n\npub const my_policy_id = #\"00aaff\"\n\npub fn foo() {\n my_policy_id == #\"00aaff\"\n}\n"
|
||||||
info: base16_bytearray_literals
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n pub fn wow2(a: Int){\n let b = {\n let x = 4\n\n x + 5\n }\n\n b\n }\n "
|
description: "Code:\n\npub fn wow2(a: Int){\n let b = {\n let x = 4\n\n x + 5\n }\n\n b\n}\n"
|
||||||
info: block
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n fn calls() {\n let x = add_one(3)\n\n let map_add_x = list.map(_, fn (y) { x + y })\n\n map_add_x([ 1, 2, 3 ])\n }\n "
|
description: "Code:\n\nfn calls() {\n let x = add_one(3)\n\n let map_add_x = list.map(_, fn (y) { x + y })\n\n map_add_x([ 1, 2, 3 ])\n}\n"
|
||||||
info: call
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n use aiken\n\n // some comment\n // more comments"
|
description: "Code:\n\nuse aiken\n\n// some comment\n// more comments"
|
||||||
info: can_handle_comments_at_end_of_file
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n fn create() {\n some_module.Thing(1, a)\n }\n "
|
description: "Code:\n\nfn create() {\n some_module.Thing(1, a)\n}\n"
|
||||||
info: cargo_create_unlabeled
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n type Option<a> {\n Some(a, Int)\n None\n Wow { name: Int, age: Int }\n }\n "
|
description: "Code:\n\ntype Option<a> {\n Some(a, Int)\n None\n Wow { name: Int, age: Int }\n}\n"
|
||||||
info: custom_type
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n validator {\n fn foo(datum, rdmr, ctx) {\n True\n }\n\n fn bar(rdmr, ctx) {\n True\n }\n }\n "
|
description: "Code:\n\nvalidator {\n fn foo(datum, rdmr, ctx) {\n True\n }\n\n fn bar(rdmr, ctx) {\n True\n }\n}\n"
|
||||||
info: double_validator
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n pub fn run() {}\n "
|
description: "Code:\n\npub fn run() {}\n"
|
||||||
info: empty_function
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n pub fn run() {\n expect Some(x) = something.field\n x.other_field\n }\n "
|
description: "Code:\n\npub fn run() {\n expect Some(x) = something.field\n x.other_field\n}\n"
|
||||||
info: expect
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n !test invalid_inputs() {\n expect True = False\n\n False\n }\n "
|
description: "Code:\n\n!test invalid_inputs() {\n expect True = False\n\n False\n}\n"
|
||||||
info: test_fail
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n fn name(user: User) {\n user.name\n }\n "
|
description: "Code:\n\nfn name(user: User) {\n user.name\n}\n"
|
||||||
info: field_access
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n fn foo() {\n compare_with(a, >, b)\n compare_with(a, >=, b)\n compare_with(a, <, b)\n compare_with(a, <=, b)\n compare_with(a, ==, b)\n compare_with(a, !=, b)\n combine_with(a, &&, b)\n combine_with(a, ||, b)\n compute_with(a, +, b)\n compute_with(a, -, b)\n compute_with(a, /, b)\n compute_with(a, *, b)\n compute_with(a, %, b)\n }\n "
|
description: "Code:\n\nfn foo() {\n compare_with(a, >, b)\n compare_with(a, >=, b)\n compare_with(a, <, b)\n compare_with(a, <=, b)\n compare_with(a, ==, b)\n compare_with(a, !=, b)\n combine_with(a, &&, b)\n combine_with(a, ||, b)\n compute_with(a, +, b)\n compute_with(a, -, b)\n compute_with(a, /, b)\n compute_with(a, *, b)\n compute_with(a, %, b)\n}\n"
|
||||||
info: first_class_binop
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n fn foo_1() {\n let a = bar\n (40)\n }\n\n fn foo_2() {\n let a = bar\n {40}\n }\n\n fn foo_3() {\n let a = (40+2)\n }\n\n fn foo_4() {\n let a = bar(42)\n (a + 14) * 42\n }\n "
|
description: "Code:\n\nfn foo_1() {\n let a = bar\n (40)\n}\n\nfn foo_2() {\n let a = bar\n {40}\n}\n\nfn foo_3() {\n let a = (40+2)\n}\n\nfn foo_4() {\n let a = bar(42)\n (a + 14) * 42\n}\n"
|
||||||
info: function_ambiguous_sequence
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n fn foo() {}\n "
|
description: "Code:\n\nfn foo() {}\n"
|
||||||
info: function_def
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n fn foo() {\n let a = bar(42)\n }\n "
|
description: "Code:\n\nfn foo() {\n let a = bar(42)\n}\n"
|
||||||
info: function_invoke
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n fn ifs() {\n if True {\n 1 + 1\n } else if a < 4 {\n 5\n } else if a || b {\n 6\n } else {\n 3\n }\n }\n "
|
description: "Code:\n\nfn ifs() {\n if True {\n 1 + 1\n } else if a < 4 {\n 5\n } else if a || b {\n 6\n } else {\n 3\n }\n}\n"
|
||||||
info: if_expression
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n use std/list\n "
|
description: "Code:\n\nuse std/list\n"
|
||||||
info: import
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n use std/tx as t\n "
|
description: "Code:\n\nuse std/tx as t\n"
|
||||||
info: import_alias
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n fn foo() {\n #[ 0x01, 0xa2, 0x03 ]\n }\n "
|
description: "Code:\n\nfn foo() {\n #[ 0x01, 0xa2, 0x03 ]\n}\n"
|
||||||
info: int_parsing_hex_bytes
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n pub fn wow(a: Int) {\n let x =\n a + 2\n |> add_one\n |> add_one\n\n let thing = [ 1, 2, a ]\n\n let idk = thing\n\n y\n }\n "
|
description: "Code:\n\npub fn wow(a: Int) {\n let x =\n a + 2\n |> add_one\n |> add_one\n\n let thing = [ 1, 2, a ]\n\n let idk = thing\n\n y\n}\n"
|
||||||
info: let_bindings
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n pub opaque type User {\n name: _w\n }\n "
|
description: "Code:\n\npub opaque type User {\n name: _w\n}\n"
|
||||||
info: opaque_type
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n fn foo() {\n let tuple = (1, 2, 3, 4)\n tuple.1st + tuple.2nd + tuple.3rd + tuple.4th\n }\n "
|
description: "Code:\n\nfn foo() {\n let tuple = (1, 2, 3, 4)\n tuple.1st + tuple.2nd + tuple.3rd + tuple.4th\n}\n"
|
||||||
info: parse_tuple
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n fn foo() {\n let a = foo(14)\n (a, 42)\n }\n "
|
description: "Code:\n\nfn foo() {\n let a = foo(14)\n (a, 42)\n}\n"
|
||||||
info: parse_tuple2
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n fn foo() {\n let i = 1_234_567\n let j = 1_000_000\n let k = -10_000\n }\n "
|
description: "Code:\n\nfn foo() {\n let i = 1_234_567\n let j = 1_000_000\n let k = -10_000\n}\n"
|
||||||
info: test_parsing_numeric_underscore
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
||||||
|
@ -12,47 +11,47 @@ Module {
|
||||||
Function {
|
Function {
|
||||||
arguments: [],
|
arguments: [],
|
||||||
body: Sequence {
|
body: Sequence {
|
||||||
location: 17..76,
|
location: 13..68,
|
||||||
expressions: [
|
expressions: [
|
||||||
Assignment {
|
Assignment {
|
||||||
location: 17..34,
|
location: 13..30,
|
||||||
value: Int {
|
value: Int {
|
||||||
location: 25..34,
|
location: 21..30,
|
||||||
value: "1234567",
|
value: "1234567",
|
||||||
base: Decimal {
|
base: Decimal {
|
||||||
numeric_underscore: true,
|
numeric_underscore: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
pattern: Var {
|
pattern: Var {
|
||||||
location: 21..22,
|
location: 17..18,
|
||||||
name: "i",
|
name: "i",
|
||||||
},
|
},
|
||||||
kind: Let,
|
kind: Let,
|
||||||
annotation: None,
|
annotation: None,
|
||||||
},
|
},
|
||||||
Assignment {
|
Assignment {
|
||||||
location: 39..56,
|
location: 33..50,
|
||||||
value: Int {
|
value: Int {
|
||||||
location: 47..56,
|
location: 41..50,
|
||||||
value: "1000000",
|
value: "1000000",
|
||||||
base: Decimal {
|
base: Decimal {
|
||||||
numeric_underscore: true,
|
numeric_underscore: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
pattern: Var {
|
pattern: Var {
|
||||||
location: 43..44,
|
location: 37..38,
|
||||||
name: "j",
|
name: "j",
|
||||||
},
|
},
|
||||||
kind: Let,
|
kind: Let,
|
||||||
annotation: None,
|
annotation: None,
|
||||||
},
|
},
|
||||||
Assignment {
|
Assignment {
|
||||||
location: 61..76,
|
location: 53..68,
|
||||||
value: UnOp {
|
value: UnOp {
|
||||||
op: Negate,
|
op: Negate,
|
||||||
location: 69..76,
|
location: 61..68,
|
||||||
value: Int {
|
value: Int {
|
||||||
location: 70..76,
|
location: 62..68,
|
||||||
value: "10000",
|
value: "10000",
|
||||||
base: Decimal {
|
base: Decimal {
|
||||||
numeric_underscore: true,
|
numeric_underscore: true,
|
||||||
|
@ -60,7 +59,7 @@ Module {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
pattern: Var {
|
pattern: Var {
|
||||||
location: 65..66,
|
location: 57..58,
|
||||||
name: "k",
|
name: "k",
|
||||||
},
|
},
|
||||||
kind: Let,
|
kind: Let,
|
||||||
|
@ -69,12 +68,12 @@ Module {
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
doc: None,
|
doc: None,
|
||||||
location: 2..10,
|
location: 0..8,
|
||||||
name: "foo",
|
name: "foo",
|
||||||
public: false,
|
public: false,
|
||||||
return_annotation: None,
|
return_annotation: None,
|
||||||
return_type: (),
|
return_type: (),
|
||||||
end_position: 77,
|
end_position: 69,
|
||||||
can_error: true,
|
can_error: true,
|
||||||
},
|
},
|
||||||
),
|
),
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n pub fn thing(thing a: Int) {\n a + 2\n |> add_one\n |> add_one\n }\n "
|
description: "Code:\n\npub fn thing(thing a: Int) {\n a + 2\n |> add_one\n |> add_one\n}\n"
|
||||||
info: pipeline
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n pub const my_policy_id = #[0, 170, 255]\n "
|
description: "Code:\n\npub const my_policy_id = #[0, 170, 255]\n"
|
||||||
info: plain_bytearray_literals
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n pub fn add_one(a) -> Int {\n a + 1\n }\n "
|
description: "Code:\n\npub fn add_one(a) -> Int {\n a + 1\n}\n"
|
||||||
info: plus_binop
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n pub type Me = Option<String>\n "
|
description: "Code:\n\npub type Me = Option<String>\n"
|
||||||
info: pub_type_alias
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n fn create() {\n User { name: \"Aiken\", age, thing: 2 }\n }\n "
|
description: "Code:\n\nfn create() {\n User { name: \"Aiken\", age, thing: 2 }\n}\n"
|
||||||
info: record_create_labeled
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n fn create() {\n some_module.User { name: \"Aiken\", age, thing: 2 }\n }\n "
|
description: "Code:\n\nfn create() {\n some_module.User { name: \"Aiken\", age, thing: 2 }\n}\n"
|
||||||
info: record_create_labeled_with_field_access
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n fn update_name(user: User, name: ByteArray) -> User {\n User { ..user, name: \"Aiken\", age }\n }\n "
|
description: "Code:\n\nfn update_name(user: User, name: ByteArray) -> User {\n User { ..user, name: \"Aiken\", age }\n}\n"
|
||||||
info: record_update
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n type RoyaltyToken = (PolicyId, AssetName)\n "
|
description: "Code:\n\ntype RoyaltyToken = (PolicyId, AssetName)\n"
|
||||||
info: tuple_type_alias
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n type Thing = Option<Int>\n "
|
description: "Code:\n\ntype Thing = Option<Int>\n"
|
||||||
info: type_alias
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n use aiken\n\n pub fn go() -> aiken.Option<Int> {\n False\n }\n "
|
description: "Code:\n\nuse aiken\n\npub fn go() -> aiken.Option<Int> {\n False\n}\n"
|
||||||
info: type_annotation_with_module_prefix
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n use std/address.{Address as A, thing as w}\n "
|
description: "Code:\n\nuse std/address.{Address as A, thing as w}\n"
|
||||||
info: unqualified_imports
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n validator {\n fn foo(datum, rdmr, ctx) {\n True\n }\n }\n "
|
description: "Code:\n\nvalidator {\n fn foo(datum, rdmr, ctx) {\n True\n }\n}\n"
|
||||||
info: validator
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "\n pub fn wow2(a: Int){\n when a is {\n 2 -> 3\n 1 | 4 | 5 -> {\n let amazing = 5\n amazing\n }\n 3 -> 9\n _ -> 4\n }\n }\n "
|
description: "Code:\n\npub fn wow2(a: Int){\n when a is {\n 2 -> 3\n 1 | 4 | 5 -> {\n let amazing = 5\n amazing\n }\n 3 -> 9\n _ -> 4\n }\n}\n"
|
||||||
info: when
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
|
@ -1,7 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/aiken-lang/src/tests/parser.rs
|
source: crates/aiken-lang/src/tests/parser.rs
|
||||||
description: "use aiken/list\r\n"
|
description: "Code:\n\nuse aiken/list\r\n"
|
||||||
info: windows_newline
|
|
||||||
---
|
---
|
||||||
Module {
|
Module {
|
||||||
name: "",
|
name: "",
|
Loading…
Reference in New Issue