fix snapshot tests

This commit is contained in:
nora 2022-04-24 20:00:26 +02:00
parent 237fb34d97
commit 61fa5434f9
97 changed files with 821 additions and 1188 deletions

View file

@ -366,58 +366,60 @@ mod test {
type StdString = std::string::String;
fn lex_test(code: &str) {
macro_rules! lex_test {
($code:expr) => {
// SAFETY: we only work in this tiny scope
let mut runtime = unsafe { RtAlloc::new() };
let lexer = Lexer::new(code, &mut runtime);
let lexer = Lexer::new($code, &mut runtime);
let tokens = lexer.map(|token| token.kind).collect::<Vec<_>>();
insta::assert_debug_snapshot!(tokens);
};
}
#[test]
fn smiley_face() {
lex_test(">>.<<");
lex_test!(">>.<<");
}
#[test]
fn greater_than_less_than_equal() {
lex_test(">= <= == < < >=");
lex_test!(">= <= == < < >=");
}
#[test]
fn no_no_no() {
lex_test("!= != = !=");
lex_test!("!= != = !=");
}
#[test]
fn braces_brackets_parens() {
lex_test("{([]]}");
lex_test!("{([]]}");
}
#[test]
fn braces_brackets_parens_whitespace() {
lex_test(
lex_test!(
"{ ( [ ] ]
}",
}"
);
}
#[test]
fn fancy_stuff() {
lex_test(". ,- * -, .");
lex_test!(". ,- * -, .");
}
#[test]
fn comments() {
lex_test("fn # fn");
lex_test!("fn # fn");
}
#[test]
fn long_multiline_comment() {
lex_test(
lex_test!(
"fn ## hello i am something
i span multiple lines
@ -427,13 +429,13 @@ mod test {
pls :) o(**)
i like the indentation here ngl | sneak for -> ## for ## <- sneak for
## and",
## and"
);
}
#[test]
fn terminate_multiline_comment_correctly() {
lex_test(
lex_test!(
"fn ## # no not here :( ## let # ## <- this is commented out
# so no multiline comment
##
@ -442,53 +444,53 @@ pls :) o(* ̄▽ ̄*)ブ
# let #
# # and
## or
",
"
);
}
#[test]
fn greeting() {
lex_test("-.- /%");
lex_test!("-.- /%");
}
#[test]
fn countdown() {
lex_test("3 . . 2 . . 1 . . 0");
lex_test!("3 . . 2 . . 1 . . 0");
}
#[test]
fn underscore_number() {
lex_test("1_000_000");
lex_test!("1_000_000");
}
#[test]
fn trailing_underscore_number() {
lex_test("1_00_");
lex_test!("1_00_");
}
#[test]
fn larger_numbers() {
lex_test("123456789, 123456789.1234, 64785903");
lex_test!("123456789, 123456789.1234, 64785903");
}
#[test]
fn string() {
lex_test(r#""uwu""#);
lex_test!(r#""uwu""#);
}
#[test]
fn strings() {
lex_test(r#"( "hi" "uwu" "\"uwu\"" "no \\ u" )"#);
lex_test!(r#"( "hi" "uwu" "\"uwu\"" "no \\ u" )"#);
}
#[test]
fn keywords() {
lex_test("let fn if else loop while break for true false null and not or print");
lex_test!("let fn if else loop while break for true false null and not or print");
}
#[test]
fn keyword_and_ident() {
lex_test("let variable be a loop if false is true");
lex_test!("let variable be a loop if false is true");
}
#[test]
@ -517,12 +519,12 @@ pls :) o(* ̄▽ ̄*)ブ
.map(|word| format!("{} ", word))
.collect::<StdString>();
lex_test(&sentences);
lex_test!(&sentences);
}
#[test]
fn serious_program() {
lex_test(
lex_test!(
r#"let string = "hallol"
let number = 5
let me out ._.
@ -530,7 +532,7 @@ pls :) o(* ̄▽ ̄*)ブ
if number == 5 or true == false and not false {
println("Hello \\ World!")
}
}"#,
}"#
);
}
}

View file

@ -1,33 +0,0 @@
---
source: src/parse/test.rs
assertion_line: 33
expression: ast
---
BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
lhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
),
),
rhs: Literal(
Number(
4.0,
Span {
start: 0,
end: 0,
},
),
),
kind: Add,
},
)

View file

@ -1,33 +0,0 @@
---
source: src/parse/test.rs
assertion_line: 33
expression: ast
---
BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
lhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
),
),
rhs: Literal(
Number(
4.0,
Span {
start: 0,
end: 0,
},
),
),
kind: And,
},
)

View file

@ -1,33 +0,0 @@
---
source: src/parse/test.rs
assertion_line: 47
expression: ast
---
BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
lhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
),
),
rhs: Literal(
Number(
4.0,
Span {
start: 0,
end: 0,
},
),
),
kind: And,
},
)

View file

@ -1,63 +1,54 @@
---
source: src/parse/test.rs
assertion_line: 72
expression: ast
---
Assignment(
Assignment {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
lhs: Call(
Call {
callee: Ident(
Ident {
sym: "hugo",
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
),
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
kind: Field(
Ident {
sym: "age",
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
),
},
),
rhs: BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
lhs: Literal(
Number(
2021.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
rhs: Literal(
Number(
1986.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
kind: Sub,

View file

@ -1,31 +1,26 @@
---
source: src/parse/test.rs
assertion_line: 54
expression: ast
---
Assignment(
Assignment {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
lhs: Ident(
Ident {
sym: "hugo",
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
),
rhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
},

View file

@ -1,13 +1,10 @@
---
source: src/parse/test.rs
assertion_line: 249
expression: ast
---
Block {
stmts: [],
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
}

View file

@ -1,23 +1,19 @@
---
source: src/parse/test.rs
assertion_line: 265
expression: ast
---
Block {
stmts: [
Block(
Block {
stmts: [],
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
),
],
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
}

View file

@ -1,8 +1,6 @@
---
source: src/parse/test.rs
assertion_line: 258
expression: ast
---
Block {
stmts: [
@ -10,10 +8,9 @@ Block {
Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
),
@ -21,16 +18,14 @@ Block {
Literal(
Number(
20.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
),
],
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
}

View file

@ -1,31 +1,26 @@
---
source: src/parse/test.rs
assertion_line: 517
expression: ast
---
Call(
Call {
callee: Ident(
Ident {
sym: "hugo",
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
),
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
kind: Field(
Ident {
sym: "name",
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
),
},

View file

@ -1,42 +1,36 @@
---
source: src/parse/test.rs
assertion_line: 541
expression: ast
---
Call(
Call {
callee: Ident(
Ident {
sym: "print",
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
),
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
kind: Fn(
[
Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
Literal(
Number(
5.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
],

View file

@ -1,8 +1,6 @@
---
source: src/parse/test.rs
assertion_line: 558
expression: ast
---
Call(
Call {
@ -13,46 +11,40 @@ Call(
callee: Ident(
Ident {
sym: "hugo",
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
),
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
kind: Field(
Ident {
sym: "name",
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
),
},
),
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
kind: Field(
Ident {
sym: "print",
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
),
},
),
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
kind: Fn(
[],
),

View file

@ -1,24 +1,20 @@
---
source: src/parse/test.rs
assertion_line: 524
expression: ast
---
Call(
Call {
callee: Ident(
Ident {
sym: "print",
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
),
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
kind: Fn(
[],
),

View file

@ -1,24 +1,20 @@
---
source: src/parse/test.rs
assertion_line: 581
expression: ast
---
Call(
Call {
callee: Ident(
Ident {
sym: "print",
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
),
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
kind: Fn(
[
Call(
@ -27,50 +23,44 @@ Call(
Call {
callee: BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
lhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
rhs: Literal(
Number(
5.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
kind: Add,
},
),
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
kind: Field(
Ident {
sym: "abs",
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
),
},
),
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
kind: Fn(
[],
),

View file

@ -1,33 +0,0 @@
---
source: src/parse/test.rs
assertion_line: 33
expression: ast
---
BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
lhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
),
),
rhs: Literal(
Number(
4.0,
Span {
start: 0,
end: 0,
},
),
),
kind: Div,
},
)

View file

@ -1,33 +0,0 @@
---
source: src/parse/test.rs
assertion_line: 33
expression: ast
---
BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
lhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
),
),
rhs: Literal(
Number(
4.0,
Span {
start: 0,
end: 0,
},
),
),
kind: Equal,
},
)

View file

@ -1,46 +1,39 @@
---
source: src/parse/test.rs
assertion_line: 298
expression: ast
---
BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
lhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
rhs: BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
lhs: Literal(
Number(
20.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
rhs: Literal(
Number(
100.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
kind: Mul,

View file

@ -1,37 +1,31 @@
---
source: src/parse/test.rs
assertion_line: 307
expression: ast
---
BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
lhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
rhs: UnaryOp(
UnaryOp {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
expr: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
kind: Neg,

View file

@ -1,46 +1,39 @@
---
source: src/parse/test.rs
assertion_line: 324
expression: ast
---
BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
lhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
rhs: BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
lhs: Literal(
Number(
20.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
rhs: Literal(
Number(
30.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
kind: Add,

View file

@ -1,33 +0,0 @@
---
source: src/parse/test.rs
assertion_line: 33
expression: ast
---
BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
lhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
),
),
rhs: Literal(
Number(
4.0,
Span {
start: 0,
end: 0,
},
),
),
kind: Greater,
},
)

View file

@ -1,33 +0,0 @@
---
source: src/parse/test.rs
assertion_line: 33
expression: ast
---
BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
lhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
),
),
rhs: Literal(
Number(
4.0,
Span {
start: 0,
end: 0,
},
),
),
kind: GreaterEqual,
},
)

View file

@ -1,33 +0,0 @@
---
source: src/parse/test.rs
assertion_line: 33
expression: ast
---
BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
lhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
),
),
rhs: Literal(
Number(
4.0,
Span {
start: 0,
end: 0,
},
),
),
kind: Less,
},
)

View file

@ -1,33 +0,0 @@
---
source: src/parse/test.rs
assertion_line: 33
expression: ast
---
BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
lhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
),
),
rhs: Literal(
Number(
4.0,
Span {
start: 0,
end: 0,
},
),
),
kind: LessEqual,
},
)

View file

@ -0,0 +1,28 @@
---
source: src/parse/test.rs
expression: ast
---
BinaryOp(
BinaryOp {
span: Span(
0..0,
),
lhs: Literal(
Number(
10.0,
Span(
0..0,
),
),
),
rhs: Literal(
Number(
4.0,
Span(
0..0,
),
),
),
kind: Mul,
},
)

View file

@ -0,0 +1,28 @@
---
source: src/parse/test.rs
expression: ast
---
BinaryOp(
BinaryOp {
span: Span(
0..0,
),
lhs: Literal(
Number(
10.0,
Span(
0..0,
),
),
),
rhs: Literal(
Number(
4.0,
Span(
0..0,
),
),
),
kind: Or,
},
)

View file

@ -0,0 +1,28 @@
---
source: src/parse/test.rs
expression: ast
---
BinaryOp(
BinaryOp {
span: Span(
0..0,
),
lhs: Literal(
Number(
10.0,
Span(
0..0,
),
),
),
rhs: Literal(
Number(
4.0,
Span(
0..0,
),
),
),
kind: Add,
},
)

View file

@ -0,0 +1,28 @@
---
source: src/parse/test.rs
expression: ast
---
BinaryOp(
BinaryOp {
span: Span(
0..0,
),
lhs: Literal(
Number(
10.0,
Span(
0..0,
),
),
),
rhs: Literal(
Number(
4.0,
Span(
0..0,
),
),
),
kind: Sub,
},
)

View file

@ -0,0 +1,28 @@
---
source: src/parse/test.rs
expression: ast
---
BinaryOp(
BinaryOp {
span: Span(
0..0,
),
lhs: Literal(
Number(
10.0,
Span(
0..0,
),
),
),
rhs: Literal(
Number(
4.0,
Span(
0..0,
),
),
),
kind: Greater,
},
)

View file

@ -0,0 +1,28 @@
---
source: src/parse/test.rs
expression: ast
---
BinaryOp(
BinaryOp {
span: Span(
0..0,
),
lhs: Literal(
Number(
10.0,
Span(
0..0,
),
),
),
rhs: Literal(
Number(
4.0,
Span(
0..0,
),
),
),
kind: LessEqual,
},
)

View file

@ -0,0 +1,28 @@
---
source: src/parse/test.rs
expression: ast
---
BinaryOp(
BinaryOp {
span: Span(
0..0,
),
lhs: Literal(
Number(
10.0,
Span(
0..0,
),
),
),
rhs: Literal(
Number(
4.0,
Span(
0..0,
),
),
),
kind: Less,
},
)

View file

@ -0,0 +1,28 @@
---
source: src/parse/test.rs
expression: ast
---
BinaryOp(
BinaryOp {
span: Span(
0..0,
),
lhs: Literal(
Number(
10.0,
Span(
0..0,
),
),
),
rhs: Literal(
Number(
4.0,
Span(
0..0,
),
),
),
kind: Equal,
},
)

View file

@ -0,0 +1,28 @@
---
source: src/parse/test.rs
expression: ast
---
BinaryOp(
BinaryOp {
span: Span(
0..0,
),
lhs: Literal(
Number(
10.0,
Span(
0..0,
),
),
),
rhs: Literal(
Number(
4.0,
Span(
0..0,
),
),
),
kind: NotEqual,
},
)

View file

@ -0,0 +1,28 @@
---
source: src/parse/test.rs
expression: ast
---
BinaryOp(
BinaryOp {
span: Span(
0..0,
),
lhs: Literal(
Number(
10.0,
Span(
0..0,
),
),
),
rhs: Literal(
Number(
4.0,
Span(
0..0,
),
),
),
kind: Mod,
},
)

View file

@ -0,0 +1,28 @@
---
source: src/parse/test.rs
expression: ast
---
BinaryOp(
BinaryOp {
span: Span(
0..0,
),
lhs: Literal(
Number(
10.0,
Span(
0..0,
),
),
),
rhs: Literal(
Number(
4.0,
Span(
0..0,
),
),
),
kind: And,
},
)

View file

@ -0,0 +1,28 @@
---
source: src/parse/test.rs
expression: ast
---
BinaryOp(
BinaryOp {
span: Span(
0..0,
),
lhs: Literal(
Number(
10.0,
Span(
0..0,
),
),
),
rhs: Literal(
Number(
4.0,
Span(
0..0,
),
),
),
kind: Div,
},
)

View file

@ -0,0 +1,28 @@
---
source: src/parse/test.rs
expression: ast
---
BinaryOp(
BinaryOp {
span: Span(
0..0,
),
lhs: Literal(
Number(
10.0,
Span(
0..0,
),
),
),
rhs: Literal(
Number(
4.0,
Span(
0..0,
),
),
),
kind: GreaterEqual,
},
)

View file

@ -1,33 +0,0 @@
---
source: src/parse/test.rs
assertion_line: 33
expression: ast
---
BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
lhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
),
),
rhs: Literal(
Number(
4.0,
Span {
start: 0,
end: 0,
},
),
),
kind: Mod,
},
)

View file

@ -1,33 +0,0 @@
---
source: src/parse/test.rs
assertion_line: 33
expression: ast
---
BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
lhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
),
),
rhs: Literal(
Number(
4.0,
Span {
start: 0,
end: 0,
},
),
),
kind: Mul,
},
)

View file

@ -1,33 +0,0 @@
---
source: src/parse/test.rs
assertion_line: 33
expression: ast
---
BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
lhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
),
),
rhs: Literal(
Number(
4.0,
Span {
start: 0,
end: 0,
},
),
),
kind: NotEqual,
},
)

View file

@ -1,15 +1,12 @@
---
source: src/parse/test.rs
assertion_line: 39
expression: ast
---
Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,15 +1,12 @@
---
source: src/parse/test.rs
assertion_line: 39
expression: ast
---
Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,15 +1,12 @@
---
source: src/parse/test.rs
assertion_line: 39
expression: ast
---
Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,15 +1,12 @@
---
source: src/parse/test.rs
assertion_line: 39
expression: ast
---
Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,15 +1,12 @@
---
source: src/parse/test.rs
assertion_line: 39
expression: ast
---
Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,15 +1,12 @@
---
source: src/parse/test.rs
assertion_line: 39
expression: ast
---
Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,15 +1,12 @@
---
source: src/parse/test.rs
assertion_line: 39
expression: ast
---
Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,15 +1,12 @@
---
source: src/parse/test.rs
assertion_line: 39
expression: ast
---
Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,33 +0,0 @@
---
source: src/parse/test.rs
assertion_line: 47
expression: ast
---
BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
lhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
),
),
rhs: Literal(
Number(
4.0,
Span {
start: 0,
end: 0,
},
),
),
kind: Or,
},
)

View file

@ -1,15 +1,12 @@
---
source: src/parse/test.rs
assertion_line: 625
expression: ast
---
Literal(
Array(
[],
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,15 +1,12 @@
---
source: src/parse/test.rs
assertion_line: 653
expression: ast
---
Literal(
Array(
[],
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,14 +1,11 @@
---
source: src/parse/test.rs
assertion_line: 618
expression: ast
---
Literal(
Object(
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,15 +1,12 @@
---
source: src/parse/test.rs
assertion_line: 632
expression: ast
---
Literal(
Boolean(
false,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,15 +1,12 @@
---
source: src/parse/test.rs
assertion_line: 597
expression: ast
---
Ident(
Ident {
sym: "tokens",
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
)

View file

@ -1,14 +1,11 @@
---
source: src/parse/test.rs
assertion_line: 646
expression: ast
---
Literal(
Null(
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,15 +1,12 @@
---
source: src/parse/test.rs
assertion_line: 611
expression: ast
---
Literal(
String(
"uwu",
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,8 +1,6 @@
---
source: src/parse/test.rs
assertion_line: 660
expression: ast
---
Literal(
Array(
@ -10,16 +8,14 @@ Literal(
Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
],
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,8 +1,6 @@
---
source: src/parse/test.rs
assertion_line: 667
expression: ast
---
Literal(
Array(
@ -10,16 +8,14 @@ Literal(
Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
],
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,15 +1,12 @@
---
source: src/parse/test.rs
assertion_line: 604
expression: ast
---
Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,15 +1,12 @@
---
source: src/parse/test.rs
assertion_line: 639
expression: ast
---
Literal(
Boolean(
true,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,8 +1,6 @@
---
source: src/parse/test.rs
assertion_line: 676
expression: ast
---
Literal(
Array(
@ -10,25 +8,22 @@ Literal(
Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
],
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,8 +1,6 @@
---
source: src/parse/test.rs
assertion_line: 685
expression: ast
---
Literal(
Array(
@ -10,25 +8,22 @@ Literal(
Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
],
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
)

View file

@ -1,21 +1,17 @@
---
source: src/parse/test.rs
assertion_line: 175
expression: ast
---
Print(
Literal(
Boolean(
true,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
Span {
start: 0,
end: 0,
},
),
Span(
0..0,
),
)

View file

@ -1,29 +1,24 @@
---
source: src/parse/test.rs
assertion_line: 90
expression: ast
---
FnDecl(
FnDecl {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
name: Ident {
sym: "empty",
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
params: [],
body: Block {
stmts: [],
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
},
)

View file

@ -1,36 +1,30 @@
---
source: src/parse/test.rs
assertion_line: 113
expression: ast
---
FnDecl(
FnDecl {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
name: Ident {
sym: "empty",
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
params: [
Ident {
sym: "a",
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
Ident {
sym: "b",
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
],
body: Block {
@ -38,26 +32,23 @@ FnDecl(
Expr(
BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
lhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
rhs: Literal(
Number(
20.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
kind: Add,
@ -65,10 +56,9 @@ FnDecl(
),
),
],
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
},
)

View file

@ -1,29 +1,24 @@
---
source: src/parse/test.rs
assertion_line: 130
expression: ast
---
IfStmt {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
cond: Literal(
Boolean(
true,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
body: Block {
stmts: [],
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
else_part: None,
}

View file

@ -1,43 +1,36 @@
---
source: src/parse/test.rs
assertion_line: 139
expression: ast
---
IfStmt {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
cond: Literal(
Boolean(
true,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
body: Block {
stmts: [],
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
else_part: Some(
Else(
Block {
stmts: [],
span: Span {
start: 0,
end: 0,
},
},
Span {
start: 0,
end: 0,
span: Span(
0..0,
),
},
Span(
0..0,
),
),
),
}

View file

@ -1,59 +1,50 @@
---
source: src/parse/test.rs
assertion_line: 148
expression: ast
---
IfStmt {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
cond: Literal(
Boolean(
true,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
body: Block {
stmts: [],
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
else_part: Some(
ElseIf(
IfStmt {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
cond: Literal(
Boolean(
true,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
body: Block {
stmts: [],
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
else_part: None,
},
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
}

View file

@ -1,73 +1,62 @@
---
source: src/parse/test.rs
assertion_line: 159
expression: ast
---
IfStmt {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
cond: Literal(
Boolean(
true,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
body: Block {
stmts: [],
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
else_part: Some(
ElseIf(
IfStmt {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
cond: Literal(
Boolean(
true,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
body: Block {
stmts: [],
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
else_part: Some(
Else(
Block {
stmts: [],
span: Span {
start: 0,
end: 0,
},
},
Span {
start: 0,
end: 0,
span: Span(
0..0,
),
},
Span(
0..0,
),
),
),
},
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
}

View file

@ -1,8 +1,6 @@
---
source: src/parse/test.rs
assertion_line: 232
expression: ast
---
Loop(
Block {
@ -10,30 +8,25 @@ Loop(
Loop(
Block {
stmts: [],
span: Span {
start: 0,
end: 0,
},
},
Span {
start: 0,
end: 0,
span: Span(
0..0,
),
},
Span(
0..0,
),
),
Break(
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
],
span: Span {
start: 0,
end: 0,
},
},
Span {
start: 0,
end: 0,
span: Span(
0..0,
),
},
Span(
0..0,
),
)

View file

@ -1,19 +1,15 @@
---
source: src/parse/test.rs
assertion_line: 216
expression: ast
---
Loop(
Block {
stmts: [],
span: Span {
start: 0,
end: 0,
},
},
Span {
start: 0,
end: 0,
span: Span(
0..0,
),
},
Span(
0..0,
),
)

View file

@ -1,26 +1,21 @@
---
source: src/parse/test.rs
assertion_line: 223
expression: ast
---
Loop(
Block {
stmts: [
Break(
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
],
span: Span {
start: 0,
end: 0,
},
},
Span {
start: 0,
end: 0,
span: Span(
0..0,
),
},
Span(
0..0,
),
)

View file

@ -1,30 +1,25 @@
---
source: src/parse/test.rs
assertion_line: 191
expression: ast
---
While(
WhileStmt {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
cond: Literal(
Boolean(
true,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
body: Block {
stmts: [],
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
},
)

View file

@ -1,37 +1,31 @@
---
source: src/parse/test.rs
assertion_line: 200
expression: ast
---
While(
WhileStmt {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
cond: BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
lhs: Literal(
Boolean(
false,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
rhs: Literal(
Boolean(
true,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
kind: Or,
@ -40,16 +34,14 @@ While(
body: Block {
stmts: [
Break(
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
],
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
},
},
)

View file

@ -1,33 +0,0 @@
---
source: src/parse/test.rs
assertion_line: 33
expression: ast
---
BinaryOp(
BinaryOp {
span: Span {
start: 0,
end: 0,
},
lhs: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
),
),
rhs: Literal(
Number(
4.0,
Span {
start: 0,
end: 0,
},
),
),
kind: Sub,
},
)

View file

@ -1,22 +1,18 @@
---
source: src/parse/test.rs
assertion_line: 501
expression: ast
---
UnaryOp(
UnaryOp {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
expr: Literal(
Number(
10.0,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
kind: Neg,

View file

@ -1,22 +1,18 @@
---
source: src/parse/test.rs
assertion_line: 494
expression: ast
---
UnaryOp(
UnaryOp {
span: Span {
start: 0,
end: 0,
},
span: Span(
0..0,
),
expr: Literal(
Boolean(
true,
Span {
start: 0,
end: 0,
},
Span(
0..0,
),
),
),
kind: Not,

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 370
expression: tokens
---
[
BraceO,

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 370
expression: tokens
---
[
BraceO,

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 370
expression: tokens
---
[
Fn,

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 370
expression: tokens
---
[
Number(

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 370
expression: tokens
---
[
Dot,

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 370
expression: tokens
---
[
GreaterEqual,

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 370
expression: tokens
---
[
Minus,

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 370
expression: tokens
---
[
Let,

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 370
expression: tokens
---
[
Let,

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 370
expression: tokens
---
[
Number(

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 370
expression: tokens
---
[
Fn,

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 370
expression: tokens
---
[
BangEqual,

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 370
expression: tokens
---
[
Ident(

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 370
expression: tokens
---
[
Let,

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 370
expression: tokens
---
[
Greater,

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 370
expression: tokens
---
[
String(

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 370
expression: tokens
---
[
ParenO,

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 370
expression: tokens
---
[
Fn,

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 375
expression: tokens
---
[
Number(

View file

@ -1,8 +1,6 @@
---
source: src/lex.rs
assertion_line: 375
expression: tokens
---
[
Number(

View file

@ -0,0 +1,5 @@
---
source: tests/functions.rs
expression: output
---
"correct1\ncorrect2\n"