Support constructor func calls, more integration tests
parent
69b5d76a9b
commit
08eb97cf38
@ -0,0 +1,77 @@
|
||||
////////////////////////////
|
||||
// Automatically Generated//
|
||||
////////////////////////////
|
||||
use crate::logger::messages::Message;
|
||||
use crate::parsing::lexer::lex;
|
||||
use crate::parsing::lexer::lex_tokens::LexToken;
|
||||
use crate::parsing::parser::parse;
|
||||
use crate::parsing::parser::parsed_statement::ParsedStatement;
|
||||
use crate::span::Span;
|
||||
|
||||
fn ignore_error(_msg: Message, _: Span) {
|
||||
}
|
||||
|
||||
fn panic_on_error(msg: Message, _: Span) {
|
||||
std::panic::panic_any(msg.stringify());
|
||||
}
|
||||
#[test]
|
||||
fn integration_class_with_many_statements() {
|
||||
let script = "final shared class Foobar {
|
||||
int _a;
|
||||
int _b;
|
||||
|
||||
Foobar(int a, int b) {
|
||||
_a = a;
|
||||
_b = b;
|
||||
}
|
||||
|
||||
int GetA(){
|
||||
return _a;
|
||||
}
|
||||
|
||||
int Add() {
|
||||
return _a + _b;
|
||||
}
|
||||
|
||||
class Inner {
|
||||
int a;
|
||||
}
|
||||
}";
|
||||
let lexed_tokens = lex(script, &mut panic_on_error);
|
||||
println!("Lexed tokens JSON: {}", serde_json::to_string(&lexed_tokens).unwrap());
|
||||
|
||||
let parsed_tree = parse(lexed_tokens, &mut panic_on_error);
|
||||
println!("Parsed Tree JSON: {}", serde_json::to_string(&parsed_tree).unwrap());
|
||||
}
|
||||
// A substring of a script should never panic, even though it might be completely invalid.
|
||||
#[test]
|
||||
fn integration_class_with_many_statements_substring() {
|
||||
let mut script = "final shared class Foobar {
|
||||
int _a;
|
||||
int _b;
|
||||
|
||||
Foobar(int a, int b) {
|
||||
_a = a;
|
||||
_b = b;
|
||||
}
|
||||
|
||||
int GetA(){
|
||||
return _a;
|
||||
}
|
||||
|
||||
int Add() {
|
||||
return _a + _b;
|
||||
}
|
||||
|
||||
class Inner {
|
||||
int a;
|
||||
}
|
||||
}".to_string();
|
||||
for _ in 0..script.len() {
|
||||
script.pop();
|
||||
let lexed_tokens = lex(script.as_str(), &mut ignore_error);
|
||||
let _parsed_tree = parse(lexed_tokens, &mut ignore_error);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,21 @@
|
||||
final shared class Foobar {
|
||||
int _a;
|
||||
int _b;
|
||||
|
||||
Foobar(int a, int b) {
|
||||
_a = a;
|
||||
_b = b;
|
||||
}
|
||||
|
||||
int GetA(){
|
||||
return _a;
|
||||
}
|
||||
|
||||
int Add() {
|
||||
return _a + _b;
|
||||
}
|
||||
|
||||
class Inner {
|
||||
int a;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue