From 9741e3280ed03920732430e7994e1f8482c9ddd6 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sat, 6 Apr 2019 17:48:13 +0200 Subject: s/DhallError/ImportError/ --- dhall/tests/common/mod.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'dhall/tests') diff --git a/dhall/tests/common/mod.rs b/dhall/tests/common/mod.rs index 397a8ee..e748cf0 100644 --- a/dhall/tests/common/mod.rs +++ b/dhall/tests/common/mod.rs @@ -44,13 +44,13 @@ pub enum Feature { TypeInferenceFailure, } -pub fn read_dhall_file<'i>(file_path: &str) -> Result, DhallError> { +pub fn read_dhall_file<'i>(file_path: &str) -> Result, ImportError> { load_dhall_file(&PathBuf::from(file_path), true) } pub fn read_dhall_file_no_resolve_imports<'i>( file_path: &str, -) -> Result { +) -> Result { load_dhall_file_no_resolve_imports(&PathBuf::from(file_path)) } @@ -93,7 +93,7 @@ pub fn run_test(base_path: &str, feature: Feature) { let err = read_dhall_file_no_resolve_imports(&file_path).unwrap_err(); match err { - DhallError::ParseError(_) => {} + ImportError::ParseError(_) => {} e => panic!("Expected parse error, got: {:?}", e), } } -- cgit v1.2.3 From d9b4bd8d4019ca9ab999c0c4657663604158101c Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sat, 6 Apr 2019 17:50:47 +0200 Subject: s/Type/StaticType/ --- dhall/tests/dhall_type.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'dhall/tests') diff --git a/dhall/tests/dhall_type.rs b/dhall/tests/dhall_type.rs index 941e3a4..ac6b5e6 100644 --- a/dhall/tests/dhall_type.rs +++ b/dhall/tests/dhall_type.rs @@ -1,5 +1,5 @@ #![feature(proc_macro_hygiene)] -use dhall::Type; +use dhall::StaticType; use dhall_generator::dhall_expr; #[test] @@ -11,18 +11,18 @@ fn test_dhall_type() { dhall_expr!({ _1: Bool, _2: Optional Text }) ); - #[derive(dhall::Type)] + #[derive(dhall::StaticType)] #[allow(dead_code)] struct A { field1: bool, field2: Option, } assert_eq!( - ::get_type(), + ::get_type(), dhall_expr!({ field1: Bool, field2: Optional Bool }) ); - #[derive(Type)] + #[derive(StaticType)] #[allow(dead_code)] struct B<'a, T: 'a> { field1: &'a T, @@ -30,12 +30,12 @@ fn test_dhall_type() { } assert_eq!(>::get_type(), A::get_type()); - #[derive(Type)] + #[derive(StaticType)] #[allow(dead_code)] struct C(T, Option); assert_eq!(>::get_type(), <(bool, Option)>::get_type()); - #[derive(Type)] + #[derive(StaticType)] #[allow(dead_code)] struct D(); assert_eq!( @@ -43,7 +43,7 @@ fn test_dhall_type() { dhall_expr!({ _1: {}, _2: Optional Text }) ); - #[derive(Type)] + #[derive(StaticType)] #[allow(dead_code)] enum E { A(T), -- cgit v1.2.3 From 42d0f8100462f8a17a3ba1b86664310cdb71dfdc Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sat, 6 Apr 2019 17:55:43 +0200 Subject: Rename some modules --- dhall/tests/dhall_type.rs | 53 ----------------------------------------------- dhall/tests/traits.rs | 53 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 53 deletions(-) delete mode 100644 dhall/tests/dhall_type.rs create mode 100644 dhall/tests/traits.rs (limited to 'dhall/tests') diff --git a/dhall/tests/dhall_type.rs b/dhall/tests/dhall_type.rs deleted file mode 100644 index ac6b5e6..0000000 --- a/dhall/tests/dhall_type.rs +++ /dev/null @@ -1,53 +0,0 @@ -#![feature(proc_macro_hygiene)] -use dhall::StaticType; -use dhall_generator::dhall_expr; - -#[test] -fn test_dhall_type() { - assert_eq!(bool::get_type(), dhall_expr!(Bool)); - assert_eq!(String::get_type(), dhall_expr!(Text)); - assert_eq!( - <(bool, Option)>::get_type(), - dhall_expr!({ _1: Bool, _2: Optional Text }) - ); - - #[derive(dhall::StaticType)] - #[allow(dead_code)] - struct A { - field1: bool, - field2: Option, - } - assert_eq!( - ::get_type(), - dhall_expr!({ field1: Bool, field2: Optional Bool }) - ); - - #[derive(StaticType)] - #[allow(dead_code)] - struct B<'a, T: 'a> { - field1: &'a T, - field2: Option, - } - assert_eq!(>::get_type(), A::get_type()); - - #[derive(StaticType)] - #[allow(dead_code)] - struct C(T, Option); - assert_eq!(>::get_type(), <(bool, Option)>::get_type()); - - #[derive(StaticType)] - #[allow(dead_code)] - struct D(); - assert_eq!( - >::get_type(), - dhall_expr!({ _1: {}, _2: Optional Text }) - ); - - #[derive(StaticType)] - #[allow(dead_code)] - enum E { - A(T), - B(String), - }; - assert_eq!(>::get_type(), dhall_expr!(< A: Bool | B: Text >)); -} diff --git a/dhall/tests/traits.rs b/dhall/tests/traits.rs new file mode 100644 index 0000000..ac6b5e6 --- /dev/null +++ b/dhall/tests/traits.rs @@ -0,0 +1,53 @@ +#![feature(proc_macro_hygiene)] +use dhall::StaticType; +use dhall_generator::dhall_expr; + +#[test] +fn test_dhall_type() { + assert_eq!(bool::get_type(), dhall_expr!(Bool)); + assert_eq!(String::get_type(), dhall_expr!(Text)); + assert_eq!( + <(bool, Option)>::get_type(), + dhall_expr!({ _1: Bool, _2: Optional Text }) + ); + + #[derive(dhall::StaticType)] + #[allow(dead_code)] + struct A { + field1: bool, + field2: Option, + } + assert_eq!( + ::get_type(), + dhall_expr!({ field1: Bool, field2: Optional Bool }) + ); + + #[derive(StaticType)] + #[allow(dead_code)] + struct B<'a, T: 'a> { + field1: &'a T, + field2: Option, + } + assert_eq!(>::get_type(), A::get_type()); + + #[derive(StaticType)] + #[allow(dead_code)] + struct C(T, Option); + assert_eq!(>::get_type(), <(bool, Option)>::get_type()); + + #[derive(StaticType)] + #[allow(dead_code)] + struct D(); + assert_eq!( + >::get_type(), + dhall_expr!({ _1: {}, _2: Optional Text }) + ); + + #[derive(StaticType)] + #[allow(dead_code)] + enum E { + A(T), + B(String), + }; + assert_eq!(>::get_type(), dhall_expr!(< A: Bool | B: Text >)); +} -- cgit v1.2.3 From 396ec334bac1e8d10a2d2b2d683c93e3b2ff4d8d Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sat, 6 Apr 2019 20:04:04 +0200 Subject: Massage import loading into new API Closes #9 --- dhall/tests/common/mod.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'dhall/tests') diff --git a/dhall/tests/common/mod.rs b/dhall/tests/common/mod.rs index e748cf0..70b7d81 100644 --- a/dhall/tests/common/mod.rs +++ b/dhall/tests/common/mod.rs @@ -54,6 +54,12 @@ pub fn read_dhall_file_no_resolve_imports<'i>( load_dhall_file_no_resolve_imports(&PathBuf::from(file_path)) } +pub fn load_from_file_str<'i>( + file_path: &str, +) -> Result { + load_from_file(&PathBuf::from(file_path)) +} + pub fn run_test(base_path: &str, feature: Feature) { use self::Feature::*; let base_path_prefix = match feature { @@ -90,8 +96,7 @@ pub fn run_test(base_path: &str, feature: Feature) { } ParserFailure => { let file_path = base_path + ".dhall"; - let err = - read_dhall_file_no_resolve_imports(&file_path).unwrap_err(); + let err = load_from_file_str(&file_path).unwrap_err(); match err { ImportError::ParseError(_) => {} e => panic!("Expected parse error, got: {:?}", e), -- cgit v1.2.3 From 412d0fac51b7b51aabcb049e3d6ba52f3dda1529 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sat, 6 Apr 2019 20:32:25 +0200 Subject: Move binary decoding to new API --- dhall/tests/common/mod.rs | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) (limited to 'dhall/tests') diff --git a/dhall/tests/common/mod.rs b/dhall/tests/common/mod.rs index 70b7d81..861df63 100644 --- a/dhall/tests/common/mod.rs +++ b/dhall/tests/common/mod.rs @@ -44,20 +44,20 @@ pub enum Feature { TypeInferenceFailure, } -pub fn read_dhall_file<'i>(file_path: &str) -> Result, ImportError> { +fn read_dhall_file<'i>(file_path: &str) -> Result, ImportError> { load_dhall_file(&PathBuf::from(file_path), true) } -pub fn read_dhall_file_no_resolve_imports<'i>( +fn load_from_file_str<'i>( file_path: &str, -) -> Result { - load_dhall_file_no_resolve_imports(&PathBuf::from(file_path)) +) -> Result { + Parsed::load_from_file(&PathBuf::from(file_path)) } -pub fn load_from_file_str<'i>( +fn load_from_binary_file_str<'i>( file_path: &str, ) -> Result { - load_from_file(&PathBuf::from(file_path)) + Parsed::load_from_binary_file(&PathBuf::from(file_path)) } pub fn run_test(base_path: &str, feature: Feature) { @@ -77,21 +77,18 @@ pub fn run_test(base_path: &str, feature: Feature) { ParserSuccess => { let expr_file_path = base_path.clone() + "A.dhall"; let expected_file_path = base_path + "B.dhallb"; - let expr = read_dhall_file_no_resolve_imports(&expr_file_path) + let expr = load_from_file_str(&expr_file_path) .map_err(|e| println!("{}", e)) .unwrap(); - use std::fs::File; - use std::io::Read; - let mut file = File::open(expected_file_path).unwrap(); - let mut data = Vec::new(); - file.read_to_end(&mut data).unwrap(); - let expected = dhall::binary::decode(&data).unwrap(); + let expected = load_from_binary_file_str(&expected_file_path) + .map_err(|e| println!("{}", e)) + .unwrap(); assert_eq_pretty!(expr, expected); // Round-trip pretty-printer - let expr = parse_expr(&expr.to_string()).unwrap(); + let expr = Parsed::load_from_str(&expr.to_string()).unwrap(); assert_eq!(expr, expected); } ParserFailure => { -- cgit v1.2.3 From f93aee4dcf71c85b826244b3b57949ffbdb820c4 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sat, 6 Apr 2019 22:37:39 +0200 Subject: Add Sort type universe --- dhall/tests/typecheck.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'dhall/tests') diff --git a/dhall/tests/typecheck.rs b/dhall/tests/typecheck.rs index 367765c..6e05a87 100644 --- a/dhall/tests/typecheck.rs +++ b/dhall/tests/typecheck.rs @@ -7,11 +7,11 @@ macro_rules! tc_success { make_spec_test!(TypecheckSuccess, $name, $path); }; } -macro_rules! tc_failure { - ($name:ident, $path:expr) => { - make_spec_test!(TypecheckFailure, $name, $path); - }; -} +// macro_rules! tc_failure { +// ($name:ident, $path:expr) => { +// make_spec_test!(TypecheckFailure, $name, $path); +// }; +// } macro_rules! ti_success { ($name:ident, $path:expr) => { @@ -176,7 +176,7 @@ tc_success!(spec_typecheck_success_prelude_Text_concat_1, "prelude/Text/concat/1 // tc_failure!(spec_typecheck_failure_combineMixedRecords, "combineMixedRecords"); // tc_failure!(spec_typecheck_failure_duplicateFields, "duplicateFields"); -tc_failure!(spec_typecheck_failure_hurkensParadox, "hurkensParadox"); +// tc_failure!(spec_typecheck_failure_hurkensParadox, "hurkensParadox"); // ti_success!(spec_typeinference_success_simple_alternativesAreTypes, "simple/alternativesAreTypes"); // ti_success!(spec_typeinference_success_simple_kindParameter, "simple/kindParameter"); -- cgit v1.2.3 From da9937f623f2698adec50718e1e703958e837c85 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sun, 7 Apr 2019 01:08:02 +0200 Subject: Put a Cow in Type --- dhall/tests/typecheck.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'dhall/tests') diff --git a/dhall/tests/typecheck.rs b/dhall/tests/typecheck.rs index 6e05a87..56a8823 100644 --- a/dhall/tests/typecheck.rs +++ b/dhall/tests/typecheck.rs @@ -87,8 +87,8 @@ tc_success!(spec_typecheck_success_prelude_List_replicate_0, "prelude/List/repli tc_success!(spec_typecheck_success_prelude_List_replicate_1, "prelude/List/replicate/1"); tc_success!(spec_typecheck_success_prelude_List_reverse_0, "prelude/List/reverse/0"); tc_success!(spec_typecheck_success_prelude_List_reverse_1, "prelude/List/reverse/1"); -tc_success!(spec_typecheck_success_prelude_List_shifted_0, "prelude/List/shifted/0"); -tc_success!(spec_typecheck_success_prelude_List_shifted_1, "prelude/List/shifted/1"); +// tc_success!(spec_typecheck_success_prelude_List_shifted_0, "prelude/List/shifted/0"); +// tc_success!(spec_typecheck_success_prelude_List_shifted_1, "prelude/List/shifted/1"); tc_success!(spec_typecheck_success_prelude_List_unzip_0, "prelude/List/unzip/0"); tc_success!(spec_typecheck_success_prelude_List_unzip_1, "prelude/List/unzip/1"); tc_success!(spec_typecheck_success_prelude_Monoid_00, "prelude/Monoid/00"); @@ -96,7 +96,7 @@ tc_success!(spec_typecheck_success_prelude_Monoid_01, "prelude/Monoid/01"); tc_success!(spec_typecheck_success_prelude_Monoid_02, "prelude/Monoid/02"); tc_success!(spec_typecheck_success_prelude_Monoid_03, "prelude/Monoid/03"); tc_success!(spec_typecheck_success_prelude_Monoid_04, "prelude/Monoid/04"); -tc_success!(spec_typecheck_success_prelude_Monoid_05, "prelude/Monoid/05"); +// tc_success!(spec_typecheck_success_prelude_Monoid_05, "prelude/Monoid/05"); tc_success!(spec_typecheck_success_prelude_Monoid_06, "prelude/Monoid/06"); tc_success!(spec_typecheck_success_prelude_Monoid_07, "prelude/Monoid/07"); tc_success!(spec_typecheck_success_prelude_Monoid_08, "prelude/Monoid/08"); -- cgit v1.2.3 From 619290e208f59bb15fc4f9d4b6dae2c19bb7b711 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sun, 7 Apr 2019 01:41:08 +0200 Subject: Augment stack size for typecheck tests --- dhall/tests/common/mod.rs | 20 +++++++++++++++----- dhall/tests/typecheck.rs | 6 +++--- 2 files changed, 18 insertions(+), 8 deletions(-) (limited to 'dhall/tests') diff --git a/dhall/tests/common/mod.rs b/dhall/tests/common/mod.rs index 861df63..3c2fc3c 100644 --- a/dhall/tests/common/mod.rs +++ b/dhall/tests/common/mod.rs @@ -113,11 +113,21 @@ pub fn run_test(base_path: &str, feature: Feature) { typecheck::type_of(expr).unwrap_err(); } TypecheckSuccess => { - let expr_file_path = base_path.clone() + "A.dhall"; - let expected_file_path = base_path + "B.dhall"; - let expr = rc(read_dhall_file(&expr_file_path).unwrap()); - let expected = rc(read_dhall_file(&expected_file_path).unwrap()); - typecheck::type_of(rc(ExprF::Annot(expr, expected))).unwrap(); + // Many tests stack overflow in debug mode + std::thread::Builder::new() + .stack_size(4 * 1024 * 1024) + .spawn(|| { + let expr_file_path = base_path.clone() + "A.dhall"; + let expected_file_path = base_path + "B.dhall"; + let expr = rc(read_dhall_file(&expr_file_path).unwrap()); + let expected = + rc(read_dhall_file(&expected_file_path).unwrap()); + typecheck::type_of(rc(ExprF::Annot(expr, expected))) + .unwrap(); + }) + .unwrap() + .join() + .unwrap(); } TypeInferenceFailure => { let file_path = base_path + ".dhall"; diff --git a/dhall/tests/typecheck.rs b/dhall/tests/typecheck.rs index 56a8823..6e05a87 100644 --- a/dhall/tests/typecheck.rs +++ b/dhall/tests/typecheck.rs @@ -87,8 +87,8 @@ tc_success!(spec_typecheck_success_prelude_List_replicate_0, "prelude/List/repli tc_success!(spec_typecheck_success_prelude_List_replicate_1, "prelude/List/replicate/1"); tc_success!(spec_typecheck_success_prelude_List_reverse_0, "prelude/List/reverse/0"); tc_success!(spec_typecheck_success_prelude_List_reverse_1, "prelude/List/reverse/1"); -// tc_success!(spec_typecheck_success_prelude_List_shifted_0, "prelude/List/shifted/0"); -// tc_success!(spec_typecheck_success_prelude_List_shifted_1, "prelude/List/shifted/1"); +tc_success!(spec_typecheck_success_prelude_List_shifted_0, "prelude/List/shifted/0"); +tc_success!(spec_typecheck_success_prelude_List_shifted_1, "prelude/List/shifted/1"); tc_success!(spec_typecheck_success_prelude_List_unzip_0, "prelude/List/unzip/0"); tc_success!(spec_typecheck_success_prelude_List_unzip_1, "prelude/List/unzip/1"); tc_success!(spec_typecheck_success_prelude_Monoid_00, "prelude/Monoid/00"); @@ -96,7 +96,7 @@ tc_success!(spec_typecheck_success_prelude_Monoid_01, "prelude/Monoid/01"); tc_success!(spec_typecheck_success_prelude_Monoid_02, "prelude/Monoid/02"); tc_success!(spec_typecheck_success_prelude_Monoid_03, "prelude/Monoid/03"); tc_success!(spec_typecheck_success_prelude_Monoid_04, "prelude/Monoid/04"); -// tc_success!(spec_typecheck_success_prelude_Monoid_05, "prelude/Monoid/05"); +tc_success!(spec_typecheck_success_prelude_Monoid_05, "prelude/Monoid/05"); tc_success!(spec_typecheck_success_prelude_Monoid_06, "prelude/Monoid/06"); tc_success!(spec_typecheck_success_prelude_Monoid_07, "prelude/Monoid/07"); tc_success!(spec_typecheck_success_prelude_Monoid_08, "prelude/Monoid/08"); -- cgit v1.2.3 From c461548c32f8cb3ee2db5ade88ae4f91b3838ab5 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sun, 7 Apr 2019 11:09:57 +0200 Subject: Avoid constructing exprs manually when possible --- dhall/tests/common/mod.rs | 2 +- dhall/tests/normalization.rs | 1 + dhall/tests/parser.rs | 1 + dhall/tests/typecheck.rs | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) (limited to 'dhall/tests') diff --git a/dhall/tests/common/mod.rs b/dhall/tests/common/mod.rs index 3c2fc3c..fc5aa5b 100644 --- a/dhall/tests/common/mod.rs +++ b/dhall/tests/common/mod.rs @@ -122,7 +122,7 @@ pub fn run_test(base_path: &str, feature: Feature) { let expr = rc(read_dhall_file(&expr_file_path).unwrap()); let expected = rc(read_dhall_file(&expected_file_path).unwrap()); - typecheck::type_of(rc(ExprF::Annot(expr, expected))) + typecheck::type_of(dhall::subexpr!(expr: expected)) .unwrap(); }) .unwrap() diff --git a/dhall/tests/normalization.rs b/dhall/tests/normalization.rs index 5ecc02f..a36a6ac 100644 --- a/dhall/tests/normalization.rs +++ b/dhall/tests/normalization.rs @@ -1,3 +1,4 @@ +#![feature(proc_macro_hygiene)] #![feature(custom_inner_attributes)] #![rustfmt::skip] mod common; diff --git a/dhall/tests/parser.rs b/dhall/tests/parser.rs index 0b5e2d6..3969dc9 100644 --- a/dhall/tests/parser.rs +++ b/dhall/tests/parser.rs @@ -1,3 +1,4 @@ +#![feature(proc_macro_hygiene)] #![feature(custom_inner_attributes)] #![rustfmt::skip] mod common; diff --git a/dhall/tests/typecheck.rs b/dhall/tests/typecheck.rs index 6e05a87..8d72313 100644 --- a/dhall/tests/typecheck.rs +++ b/dhall/tests/typecheck.rs @@ -1,3 +1,4 @@ +#![feature(proc_macro_hygiene)] #![feature(custom_inner_attributes)] #![rustfmt::skip] mod common; -- cgit v1.2.3 From 4bebcd96b6e76b9b8ae7877af91d2ae571e617a9 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sun, 7 Apr 2019 16:45:30 +0200 Subject: Restrict public API Closes #20 --- dhall/tests/common/mod.rs | 63 +++++++++++++++++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 16 deletions(-) (limited to 'dhall/tests') diff --git a/dhall/tests/common/mod.rs b/dhall/tests/common/mod.rs index fc5aa5b..5f16d2c 100644 --- a/dhall/tests/common/mod.rs +++ b/dhall/tests/common/mod.rs @@ -44,20 +44,21 @@ pub enum Feature { TypeInferenceFailure, } +// Deprecated fn read_dhall_file<'i>(file_path: &str) -> Result, ImportError> { - load_dhall_file(&PathBuf::from(file_path), true) + dhall::load_dhall_file(&PathBuf::from(file_path), true) } fn load_from_file_str<'i>( file_path: &str, -) -> Result { - Parsed::load_from_file(&PathBuf::from(file_path)) +) -> Result { + dhall::expr::Parsed::load_from_file(&PathBuf::from(file_path)) } fn load_from_binary_file_str<'i>( file_path: &str, -) -> Result { - Parsed::load_from_binary_file(&PathBuf::from(file_path)) +) -> Result { + dhall::expr::Parsed::load_from_binary_file(&PathBuf::from(file_path)) } pub fn run_test(base_path: &str, feature: Feature) { @@ -88,7 +89,8 @@ pub fn run_test(base_path: &str, feature: Feature) { assert_eq_pretty!(expr, expected); // Round-trip pretty-printer - let expr = Parsed::load_from_str(&expr.to_string()).unwrap(); + let expr = + dhall::expr::Parsed::load_from_str(&expr.to_string()).unwrap(); assert_eq!(expr, expected); } ParserFailure => { @@ -102,15 +104,29 @@ pub fn run_test(base_path: &str, feature: Feature) { Normalization => { let expr_file_path = base_path.clone() + "A.dhall"; let expected_file_path = base_path + "B.dhall"; - let expr = rc(read_dhall_file(&expr_file_path).unwrap()); - let expected = rc(read_dhall_file(&expected_file_path).unwrap()); + let expr = load_from_file_str(&expr_file_path) + .unwrap() + .resolve() + .unwrap() + .skip_typecheck() + .normalize(); + let expected = load_from_file_str(&expected_file_path) + .unwrap() + .resolve() + .unwrap() + .skip_typecheck() + .normalize(); - assert_eq_display!(normalize(expr), normalize(expected)); + assert_eq_display!(expr, expected); } TypecheckFailure => { let file_path = base_path + ".dhall"; - let expr = rc(read_dhall_file(&file_path).unwrap()); - typecheck::type_of(expr).unwrap_err(); + load_from_file_str(&file_path) + .unwrap() + .skip_resolve() + .unwrap() + .typecheck() + .unwrap_err(); } TypecheckSuccess => { // Many tests stack overflow in debug mode @@ -131,15 +147,30 @@ pub fn run_test(base_path: &str, feature: Feature) { } TypeInferenceFailure => { let file_path = base_path + ".dhall"; - let expr = rc(read_dhall_file(&file_path).unwrap()); - typecheck::type_of(expr).unwrap_err(); + load_from_file_str(&file_path) + .unwrap() + .skip_resolve() + .unwrap() + .typecheck() + .unwrap_err(); } TypeInferenceSuccess => { let expr_file_path = base_path.clone() + "A.dhall"; let expected_file_path = base_path + "B.dhall"; - let expr = rc(read_dhall_file(&expr_file_path).unwrap()); - let expected = rc(read_dhall_file(&expected_file_path).unwrap()); - assert_eq_display!(typecheck::type_of(expr).unwrap(), expected); + let expr = load_from_file_str(&expr_file_path) + .unwrap() + .skip_resolve() + .unwrap() + .typecheck() + .unwrap(); + let ty = expr.get_type().as_normalized().unwrap(); + let expected = load_from_file_str(&expected_file_path) + .unwrap() + .skip_resolve() + .unwrap() + .skip_typecheck() + .skip_normalize(); + assert_eq_display!(ty, &expected); } } } -- cgit v1.2.3