From b931ba5b176dd2e00a14f3258edcd35e74f7ccf6 Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Sat, 17 Jun 2023 17:34:45 -0700 Subject: [PATCH] Add a quick check of our cast validation. --- src/syntax/validate.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/syntax/validate.rs b/src/syntax/validate.rs index 1c933da..9223e97 100644 --- a/src/syntax/validate.rs +++ b/src/syntax/validate.rs @@ -158,3 +158,19 @@ impl Expression { } } } + +#[test] +fn cast_checks_are_reasonable() { + let good_stmt = Statement::parse(0, "x = 4u8;").expect("valid test case"); + let (good_errs, good_warns) = good_stmt.validate(&mut HashMap::new()); + + assert!(good_errs.is_empty()); + assert!(good_warns.is_empty()); + + let bad_stmt = Statement::parse(0, "x = 4u8;").expect("valid test case"); + let (bad_errs, bad_warns) = bad_stmt.validate(&mut HashMap::new()); + + assert!(bad_warns.is_empty()); + assert_eq!(bad_errs.len(), 1); + assert!(matches!(bad_errs[0], Error::UnknownType(_, ref x) if x == "apple")); +} \ No newline at end of file