From 6b8be61b6e9210a2345e13ec41649ed5cf8aaee3 Mon Sep 17 00:00:00 2001 From: rvcas Date: Tue, 6 Aug 2024 17:04:42 -0400 Subject: [PATCH] test: new snapshots for parsing v3 validators --- .../snapshots/double_validator.snap | 169 ++++++++++-------- .../parser/definition/snapshots/fallback.snap | 140 +++++++++++++++ .../definition/snapshots/validator.snap | 118 +++++++----- 3 files changed, 313 insertions(+), 114 deletions(-) create mode 100644 crates/aiken-lang/src/parser/definition/snapshots/fallback.snap diff --git a/crates/aiken-lang/src/parser/definition/snapshots/double_validator.snap b/crates/aiken-lang/src/parser/definition/snapshots/double_validator.snap index 5235bbdb..dc58908b 100644 --- a/crates/aiken-lang/src/parser/definition/snapshots/double_validator.snap +++ b/crates/aiken-lang/src/parser/definition/snapshots/double_validator.snap @@ -1,78 +1,36 @@ --- source: crates/aiken-lang/src/parser/definition/validator.rs -description: "Code:\n\nvalidator {\n fn foo(datum, rdmr, ctx) {\n True\n }\n\n fn bar(rdmr, ctx) {\n True\n }\n}\n" +description: "Code:\n\nvalidator thing {\n spend (datum, rdmr, ctx) {\n True\n }\n\n mint (rdmr, ctx) {\n True\n }\n}\n" --- Validator( Validator { doc: None, - end_position: 90, - fun: Function { - arguments: [ - UntypedArg { - by: ByName( - Named { - name: "datum", - label: "datum", - location: 21..26, - }, - ), - location: 21..26, - annotation: None, - doc: None, - is_validator_param: false, - }, - UntypedArg { - by: ByName( - Named { - name: "rdmr", - label: "rdmr", - location: 28..32, - }, - ), - location: 28..32, - annotation: None, - doc: None, - is_validator_param: false, - }, - UntypedArg { - by: ByName( - Named { - name: "ctx", - label: "ctx", - location: 34..37, - }, - ), - location: 34..37, - annotation: None, - doc: None, - is_validator_param: false, - }, - ], - body: Var { - location: 45..49, - name: "True", - }, - doc: None, - location: 14..38, - name: "foo", - public: false, - return_annotation: None, - return_type: (), - end_position: 52, - on_test_failure: FailImmediately, - }, - other_fun: Some( + end_position: 95, + handlers: [ Function { arguments: [ UntypedArg { by: ByName( Named { - name: "rdmr", - label: "rdmr", - location: 64..68, + name: "datum", + label: "datum", + location: 27..32, }, ), - location: 64..68, + location: 27..32, + annotation: None, + doc: None, + is_validator_param: false, + }, + UntypedArg { + by: ByName( + Named { + name: "rdmr", + label: "rdmr", + location: 34..38, + }, + ), + location: 34..38, annotation: None, doc: None, is_validator_param: false, @@ -82,30 +40,101 @@ Validator( Named { name: "ctx", label: "ctx", - location: 70..73, + location: 40..43, }, ), - location: 70..73, + location: 40..43, annotation: None, doc: None, is_validator_param: false, }, ], body: Var { - location: 81..85, + location: 51..55, name: "True", }, doc: None, - location: 57..74, - name: "bar", - public: false, + location: 26..44, + name: "spend", + public: true, return_annotation: None, return_type: (), - end_position: 88, + end_position: 58, on_test_failure: FailImmediately, }, - ), + Function { + arguments: [ + UntypedArg { + by: ByName( + Named { + name: "rdmr", + label: "rdmr", + location: 69..73, + }, + ), + location: 69..73, + annotation: None, + doc: None, + is_validator_param: false, + }, + UntypedArg { + by: ByName( + Named { + name: "ctx", + label: "ctx", + location: 75..78, + }, + ), + location: 75..78, + annotation: None, + doc: None, + is_validator_param: false, + }, + ], + body: Var { + location: 86..90, + name: "True", + }, + doc: None, + location: 68..79, + name: "mint", + public: true, + return_annotation: None, + return_type: (), + end_position: 93, + on_test_failure: FailImmediately, + }, + ], location: 0..9, + name: "thing", params: [], + fallback: Function { + arguments: [ + UntypedArg { + by: ByName( + Discarded { + name: "_ctx", + label: "_ctx", + location: 0..0, + }, + ), + location: 0..0, + annotation: None, + doc: None, + is_validator_param: false, + }, + ], + body: ErrorTerm { + location: 0..0, + }, + doc: None, + location: 0..0, + name: "fallback", + public: true, + return_annotation: None, + return_type: (), + end_position: 95, + on_test_failure: FailImmediately, + }, }, ) diff --git a/crates/aiken-lang/src/parser/definition/snapshots/fallback.snap b/crates/aiken-lang/src/parser/definition/snapshots/fallback.snap new file mode 100644 index 00000000..ba40d3b7 --- /dev/null +++ b/crates/aiken-lang/src/parser/definition/snapshots/fallback.snap @@ -0,0 +1,140 @@ +--- +source: crates/aiken-lang/src/parser/definition/validator.rs +description: "Code:\n\nvalidator thing {\n spend (datum, rdmr, ctx) {\n True\n }\n\n mint (rdmr, ctx) {\n True\n }\n\n else (_) {\n fail\n }\n}\n" +--- +Validator( + Validator { + doc: None, + end_position: 122, + handlers: [ + Function { + arguments: [ + UntypedArg { + by: ByName( + Named { + name: "datum", + label: "datum", + location: 27..32, + }, + ), + location: 27..32, + annotation: None, + doc: None, + is_validator_param: false, + }, + UntypedArg { + by: ByName( + Named { + name: "rdmr", + label: "rdmr", + location: 34..38, + }, + ), + location: 34..38, + annotation: None, + doc: None, + is_validator_param: false, + }, + UntypedArg { + by: ByName( + Named { + name: "ctx", + label: "ctx", + location: 40..43, + }, + ), + location: 40..43, + annotation: None, + doc: None, + is_validator_param: false, + }, + ], + body: Var { + location: 51..55, + name: "True", + }, + doc: None, + location: 26..44, + name: "spend", + public: true, + return_annotation: None, + return_type: (), + end_position: 58, + on_test_failure: FailImmediately, + }, + Function { + arguments: [ + UntypedArg { + by: ByName( + Named { + name: "rdmr", + label: "rdmr", + location: 69..73, + }, + ), + location: 69..73, + annotation: None, + doc: None, + is_validator_param: false, + }, + UntypedArg { + by: ByName( + Named { + name: "ctx", + label: "ctx", + location: 75..78, + }, + ), + location: 75..78, + annotation: None, + doc: None, + is_validator_param: false, + }, + ], + body: Var { + location: 86..90, + name: "True", + }, + doc: None, + location: 68..79, + name: "mint", + public: true, + return_annotation: None, + return_type: (), + end_position: 93, + on_test_failure: FailImmediately, + }, + ], + location: 0..9, + name: "thing", + params: [], + fallback: Function { + arguments: [ + UntypedArg { + by: ByName( + Discarded { + name: "_", + label: "_", + location: 104..105, + }, + ), + location: 104..105, + annotation: None, + doc: None, + is_validator_param: false, + }, + ], + body: ErrorTerm { + location: 113..117, + }, + doc: None, + location: 103..106, + name: "temp", + public: true, + return_annotation: None, + return_type: (), + end_position: 120, + on_test_failure: FailImmediately, + }, + }, +) diff --git a/crates/aiken-lang/src/parser/definition/snapshots/validator.snap b/crates/aiken-lang/src/parser/definition/snapshots/validator.snap index fad9a357..25419d58 100644 --- a/crates/aiken-lang/src/parser/definition/snapshots/validator.snap +++ b/crates/aiken-lang/src/parser/definition/snapshots/validator.snap @@ -1,68 +1,98 @@ --- source: crates/aiken-lang/src/parser/definition/validator.rs -description: "Code:\n\nvalidator {\n fn foo(datum, rdmr, ctx) {\n True\n }\n}\n" +description: "Code:\n\nvalidator hello {\n spend (datum, rdmr, ctx) {\n True\n }\n}\n" --- Validator( Validator { doc: None, - end_position: 54, - fun: Function { + end_position: 60, + handlers: [ + Function { + arguments: [ + UntypedArg { + by: ByName( + Named { + name: "datum", + label: "datum", + location: 27..32, + }, + ), + location: 27..32, + annotation: None, + doc: None, + is_validator_param: false, + }, + UntypedArg { + by: ByName( + Named { + name: "rdmr", + label: "rdmr", + location: 34..38, + }, + ), + location: 34..38, + annotation: None, + doc: None, + is_validator_param: false, + }, + UntypedArg { + by: ByName( + Named { + name: "ctx", + label: "ctx", + location: 40..43, + }, + ), + location: 40..43, + annotation: None, + doc: None, + is_validator_param: false, + }, + ], + body: Var { + location: 51..55, + name: "True", + }, + doc: None, + location: 26..44, + name: "spend", + public: true, + return_annotation: None, + return_type: (), + end_position: 58, + on_test_failure: FailImmediately, + }, + ], + location: 0..9, + name: "hello", + params: [], + fallback: Function { arguments: [ UntypedArg { by: ByName( - Named { - name: "datum", - label: "datum", - location: 21..26, + Discarded { + name: "_ctx", + label: "_ctx", + location: 0..0, }, ), - location: 21..26, - annotation: None, - doc: None, - is_validator_param: false, - }, - UntypedArg { - by: ByName( - Named { - name: "rdmr", - label: "rdmr", - location: 28..32, - }, - ), - location: 28..32, - annotation: None, - doc: None, - is_validator_param: false, - }, - UntypedArg { - by: ByName( - Named { - name: "ctx", - label: "ctx", - location: 34..37, - }, - ), - location: 34..37, + location: 0..0, annotation: None, doc: None, is_validator_param: false, }, ], - body: Var { - location: 45..49, - name: "True", + body: ErrorTerm { + location: 0..0, }, doc: None, - location: 14..38, - name: "foo", - public: false, + location: 0..0, + name: "fallback", + public: true, return_annotation: None, return_type: (), - end_position: 52, + end_position: 60, on_test_failure: FailImmediately, }, - other_fun: None, - location: 0..9, - params: [], }, )