diff options
Diffstat (limited to 'dhall/tests')
53 files changed, 177 insertions, 89 deletions
diff --git a/dhall/tests/parser/failure/ProjectionByTypeNeedsParens.txt b/dhall/tests/parser/failure/ProjectionByTypeNeedsParens.txt index 0586abb..3ce3b45 100644 --- a/dhall/tests/parser/failure/ProjectionByTypeNeedsParens.txt +++ b/dhall/tests/parser/failure/ProjectionByTypeNeedsParens.txt @@ -3,4 +3,4 @@ 1 | r.{ x: T }␊ | ^--- | - = expected missing, if_, merge, NaN, Some_, toMap, assert, or forall + = expected missing, if_, merge, NaN, Some_, toMap, assert, or forall_keyword diff --git a/dhall/tests/parser/failure/annotation.txt b/dhall/tests/parser/failure/annotation.txt index 3390d3e..648ef2b 100644 --- a/dhall/tests/parser/failure/annotation.txt +++ b/dhall/tests/parser/failure/annotation.txt @@ -3,4 +3,4 @@ 1 | let a:Natural = 1 in a␊ | ^--- | - = expected missing, if_, merge, NaN, Some_, toMap, assert, or forall + = expected missing, if_, merge, NaN, Some_, toMap, assert, or forall_keyword diff --git a/dhall/tests/parser/failure/spacing/ForallNoSpace.txt b/dhall/tests/parser/failure/spacing/ForallNoSpace.txt index 697d400..6bd7fbc 100644 --- a/dhall/tests/parser/failure/spacing/ForallNoSpace.txt +++ b/dhall/tests/parser/failure/spacing/ForallNoSpace.txt @@ -3,4 +3,4 @@ 1 | forall(x :T) -> x␊ | ^--- | - = expected missing, if_, merge, NaN, Some_, toMap, assert, or forall + = expected missing, if_, merge, NaN, Some_, toMap, assert, or forall_keyword diff --git a/dhall/tests/parser/failure/spacing/LambdaNoSpace.txt b/dhall/tests/parser/failure/spacing/LambdaNoSpace.txt index adb0f1f..e5d1089 100644 --- a/dhall/tests/parser/failure/spacing/LambdaNoSpace.txt +++ b/dhall/tests/parser/failure/spacing/LambdaNoSpace.txt @@ -3,4 +3,4 @@ 1 | \(x :T) -> x␊ | ^--- | - = expected missing, if_, merge, NaN, Some_, toMap, assert, or forall + = expected missing, if_, merge, NaN, Some_, toMap, assert, or forall_keyword diff --git a/dhall/tests/parser/failure/spacing/LetAnnotNoSpace.txt b/dhall/tests/parser/failure/spacing/LetAnnotNoSpace.txt index 577f157..06aef2d 100644 --- a/dhall/tests/parser/failure/spacing/LetAnnotNoSpace.txt +++ b/dhall/tests/parser/failure/spacing/LetAnnotNoSpace.txt @@ -3,4 +3,4 @@ 1 | let x :T = y in e␊ | ^--- | - = expected missing, if_, merge, NaN, Some_, toMap, assert, or forall + = expected missing, if_, merge, NaN, Some_, toMap, assert, or forall_keyword diff --git a/dhall/tests/parser/failure/spacing/MergeNoSpace2.txt b/dhall/tests/parser/failure/spacing/MergeNoSpace2.txt index 77314e0..0fba8c0 100644 --- a/dhall/tests/parser/failure/spacing/MergeNoSpace2.txt +++ b/dhall/tests/parser/failure/spacing/MergeNoSpace2.txt @@ -3,4 +3,4 @@ 1 | merge x(y)␊ | ^--- | - = expected missing, non_empty_list_literal, double_quote_literal, single_quote_literal, if_, merge, NaN, Some_, toMap, assert, forall, numeric_double_literal, minus_infinity_literal, plus_infinity_literal, natural_literal, integer_literal, or import_hashed + = expected missing, non_empty_list_literal, double_quote_literal, single_quote_literal, if_, merge, NaN, Some_, toMap, assert, forall_keyword, numeric_double_literal, minus_infinity_literal, plus_infinity_literal, natural_literal, integer_literal, or import_hashed diff --git a/dhall/tests/parser/failure/spacing/RecordTypeNoSpace.txt b/dhall/tests/parser/failure/spacing/RecordTypeNoSpace.txt index 0e1a879..759dd6f 100644 --- a/dhall/tests/parser/failure/spacing/RecordTypeNoSpace.txt +++ b/dhall/tests/parser/failure/spacing/RecordTypeNoSpace.txt @@ -3,4 +3,4 @@ 1 | { x :T }␊ | ^--- | - = expected missing, if_, merge, NaN, Some_, toMap, assert, forall, empty_record_literal, or record_type_entry + = expected missing, record_type_entry, if_, merge, NaN, Some_, toMap, assert, forall_keyword, or empty_record_literal diff --git a/dhall/tests/parser/failure/spacing/UnionTypeNoSpace.txt b/dhall/tests/parser/failure/spacing/UnionTypeNoSpace.txt index 0a83dc8..8ff406c 100644 --- a/dhall/tests/parser/failure/spacing/UnionTypeNoSpace.txt +++ b/dhall/tests/parser/failure/spacing/UnionTypeNoSpace.txt @@ -3,4 +3,4 @@ 1 | < x :T >␊ | ^--- | - = expected missing, if_, merge, NaN, Some_, toMap, assert, or forall + = expected missing, if_, merge, NaN, Some_, toMap, assert, or forall_keyword diff --git a/dhall/tests/parser/failure/unit/OldUnionLitSyntax.txt b/dhall/tests/parser/failure/unit/OldUnionLitSyntax.txt index 8475bb9..552a7c3 100644 --- a/dhall/tests/parser/failure/unit/OldUnionLitSyntax.txt +++ b/dhall/tests/parser/failure/unit/OldUnionLitSyntax.txt @@ -3,4 +3,4 @@ 1 | < x = 3 | y : Bool >␊ | ^--- | - = expected missing, if_, merge, NaN, Some_, toMap, assert, or forall + = expected missing, if_, merge, NaN, Some_, toMap, assert, or forall_keyword diff --git a/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword00.txt b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword00.txt new file mode 100644 index 0000000..9a8747b --- /dev/null +++ b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword00.txt @@ -0,0 +1,6 @@ + --> 1:3 + | +1 | { if: Text }␊ + | ^--- + | + = expected any_label_or_some or empty_record_literal diff --git a/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword01.txt b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword01.txt new file mode 100644 index 0000000..d041384 --- /dev/null +++ b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword01.txt @@ -0,0 +1,6 @@ + --> 1:3 + | +1 | { then: Text }␊ + | ^--- + | + = expected any_label_or_some or empty_record_literal diff --git a/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword02.txt b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword02.txt new file mode 100644 index 0000000..2cdce47 --- /dev/null +++ b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword02.txt @@ -0,0 +1,6 @@ + --> 1:3 + | +1 | { else: Text }␊ + | ^--- + | + = expected any_label_or_some or empty_record_literal diff --git a/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword03.txt b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword03.txt new file mode 100644 index 0000000..b8dd809 --- /dev/null +++ b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword03.txt @@ -0,0 +1,6 @@ + --> 1:3 + | +1 | { let: Text }␊ + | ^--- + | + = expected any_label_or_some or empty_record_literal diff --git a/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword04.txt b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword04.txt new file mode 100644 index 0000000..4b2df06 --- /dev/null +++ b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword04.txt @@ -0,0 +1,6 @@ + --> 1:3 + | +1 | { in: Text }␊ + | ^--- + | + = expected any_label_or_some or empty_record_literal diff --git a/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword05.txt b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword05.txt new file mode 100644 index 0000000..23d4f75 --- /dev/null +++ b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword05.txt @@ -0,0 +1,6 @@ + --> 1:3 + | +1 | { using: Text }␊ + | ^--- + | + = expected any_label_or_some or empty_record_literal diff --git a/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword06.txt b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword06.txt new file mode 100644 index 0000000..4e715eb --- /dev/null +++ b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword06.txt @@ -0,0 +1,6 @@ + --> 1:3 + | +1 | { missing: Text }␊ + | ^--- + | + = expected any_label_or_some or empty_record_literal diff --git a/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword07.txt b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword07.txt new file mode 100644 index 0000000..420dc77 --- /dev/null +++ b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword07.txt @@ -0,0 +1,6 @@ + --> 1:3 + | +1 | { assert: Text }␊ + | ^--- + | + = expected any_label_or_some or empty_record_literal diff --git a/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword08.txt b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword08.txt new file mode 100644 index 0000000..159e243 --- /dev/null +++ b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword08.txt @@ -0,0 +1,6 @@ + --> 1:3 + | +1 | { as: Text }␊ + | ^--- + | + = expected any_label_or_some or empty_record_literal diff --git a/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword09.txt b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword09.txt new file mode 100644 index 0000000..f5b7130 --- /dev/null +++ b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword09.txt @@ -0,0 +1,6 @@ + --> 1:3 + | +1 | { Infinity: Text }␊ + | ^--- + | + = expected any_label_or_some or empty_record_literal diff --git a/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword10.txt b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword10.txt new file mode 100644 index 0000000..dd6f552 --- /dev/null +++ b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword10.txt @@ -0,0 +1,6 @@ + --> 1:3 + | +1 | { NaN: Text }␊ + | ^--- + | + = expected any_label_or_some or empty_record_literal diff --git a/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword11.txt b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword11.txt new file mode 100644 index 0000000..ccf18aa --- /dev/null +++ b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword11.txt @@ -0,0 +1,6 @@ + --> 1:3 + | +1 | { merge: Text }␊ + | ^--- + | + = expected any_label_or_some or empty_record_literal diff --git a/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword12.txt b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword12.txt new file mode 100644 index 0000000..f91f9dd --- /dev/null +++ b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword12.txt @@ -0,0 +1,6 @@ + --> 1:3 + | +1 | { toMap: Text }␊ + | ^--- + | + = expected any_label_or_some or empty_record_literal diff --git a/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword13.txt b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword13.txt new file mode 100644 index 0000000..be64d1f --- /dev/null +++ b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword13.txt @@ -0,0 +1,6 @@ + --> 1:3 + | +1 | { with: Text }␊ + | ^--- + | + = expected any_label_or_some or empty_record_literal diff --git a/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword14.txt b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword14.txt new file mode 100644 index 0000000..9e2b836 --- /dev/null +++ b/dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword14.txt @@ -0,0 +1,6 @@ + --> 1:3 + | +1 | { forall: Text }␊ + | ^--- + | + = expected any_label_or_some or empty_record_literal diff --git a/dhall/tests/parser/failure/unit/RecordLitPunDotted.txt b/dhall/tests/parser/failure/unit/RecordLitPunDotted.txt index 2e0ac22..429aa05 100644 --- a/dhall/tests/parser/failure/unit/RecordLitPunDotted.txt +++ b/dhall/tests/parser/failure/unit/RecordLitPunDotted.txt @@ -3,4 +3,4 @@ 1 | { x.y.z }␊ | ^--- | - = expected missing, if_, merge, NaN, Some_, toMap, assert, or forall + = expected missing, if_, merge, NaN, Some_, toMap, assert, or forall_keyword diff --git a/dhall/tests/parser/failure/unit/UrlWithQuotedPath.txt b/dhall/tests/parser/failure/unit/UrlWithQuotedPath.txt new file mode 100644 index 0000000..0b51f38 --- /dev/null +++ b/dhall/tests/parser/failure/unit/UrlWithQuotedPath.txt @@ -0,0 +1,6 @@ + --> 1:21 + | +1 | https://example.com/"a%20b"/c␊ + | ^--- + | + = expected EOI, import_alt, bool_or, natural_plus, text_append, list_append, bool_and, natural_times, bool_eq, bool_ne, combine, combine_types, equivalent, prefer, or arrow diff --git a/dhall/tests/parser/failure/unit/WithPrecedence1.txt b/dhall/tests/parser/failure/unit/WithPrecedence1.txt new file mode 100644 index 0000000..a1dfd31 --- /dev/null +++ b/dhall/tests/parser/failure/unit/WithPrecedence1.txt @@ -0,0 +1,6 @@ + --> 1:24 + | +1 | { x = 0 } // { y = 1 } with x = 1␊ + | ^--- + | + = expected EOI, import_alt, bool_or, natural_plus, text_append, list_append, bool_and, natural_times, bool_eq, bool_ne, combine, combine_types, equivalent, prefer, arrow, import_hashed, or primitive_expression diff --git a/dhall/tests/parser/failure/unit/WithPrecedence2.txt b/dhall/tests/parser/failure/unit/WithPrecedence2.txt new file mode 100644 index 0000000..fefd172 --- /dev/null +++ b/dhall/tests/parser/failure/unit/WithPrecedence2.txt @@ -0,0 +1,6 @@ + --> 1:15 + | +1 | foo { x = 0 } with x = 1␊ + | ^--- + | + = expected EOI, import_alt, bool_or, natural_plus, text_append, list_append, bool_and, natural_times, bool_eq, bool_ne, combine, combine_types, equivalent, prefer, arrow, import_hashed, or primitive_expression diff --git a/dhall/tests/parser/failure/unit/WithPrecedence3.txt b/dhall/tests/parser/failure/unit/WithPrecedence3.txt new file mode 100644 index 0000000..418c669 --- /dev/null +++ b/dhall/tests/parser/failure/unit/WithPrecedence3.txt @@ -0,0 +1,6 @@ + --> 1:22 + | +1 | { x = 0 } with x = 1 : T␊ + | ^--- + | + = expected EOI, import_alt, bool_or, natural_plus, text_append, list_append, bool_and, natural_times, bool_eq, bool_ne, combine, combine_types, equivalent, prefer, import_hashed, or primitive_expression diff --git a/dhall/tests/parser/success/builtinsB.txt b/dhall/tests/parser/success/builtinsB.txt index 4e3ed79..1005949 100644 --- a/dhall/tests/parser/success/builtinsB.txt +++ b/dhall/tests/parser/success/builtinsB.txt @@ -1 +1 @@ -λ(x : { field0 : Bool, field1 : Optional (Optional Bool), field2 : Natural, field3 : Integer, field4 : Double, field5 : Text, field6 : List (List Bool) }) → { field00 = Natural/fold, field01 = Natural/build, field02 = Natural/isZero, field03 = Natural/even, field04 = Natural/odd, field05 = Natural/toInteger, field06 = Natural/show, field07 = Integer/show, field08 = Double/show, field09 = List/build, field10 = List/fold, field11 = List/length, field12 = List/head, field13 = List/last, field14 = List/indexed, field15 = List/reverse, field16 = Optional/fold, field17 = Optional/build, field18 = True, field19 = False, field20 = None } +[Natural/fold, Natural/build, Natural/isZero, Natural/even, Natural/odd, Natural/toInteger, Natural/show, Integer/toDouble, Integer/show, Integer/negate, Integer/clamp, Natural/subtract, Double/show, List/build, List/fold, List/length, List/head, List/last, List/indexed, List/reverse, Text/show, Bool, True, False, Optional, None, Natural, Integer, Double, Text, List, Type, Kind, Sort] diff --git a/dhall/tests/parser/success/quotedLabelB.txt b/dhall/tests/parser/success/quotedLabelB.txt index 861ae0b..f8175de 100644 --- a/dhall/tests/parser/success/quotedLabelB.txt +++ b/dhall/tests/parser/success/quotedLabelB.txt @@ -1 +1 @@ -{ example1 = let `let` = 1 in `let`, example2 = let `:.` = 1 in `:.`, example3 = let `$ref` = 1 in `$ref` } +{ example1 = let `let` = 1 in `let`, example2 = let `:.` = 1 in `:.`, example3 = let `$ref` = 1 in `$ref`, example4 = let `` = 1 in `` } diff --git a/dhall/tests/parser/success/quotedRecordLabelB.txt b/dhall/tests/parser/success/quotedRecordLabelB.txt new file mode 100644 index 0000000..6e5a76b --- /dev/null +++ b/dhall/tests/parser/success/quotedRecordLabelB.txt @@ -0,0 +1 @@ +{ `` = 2, ` ` = 3, foo = 1 } diff --git a/dhall/tests/parser/success/quotedUnionLabelB.txt b/dhall/tests/parser/success/quotedUnionLabelB.txt new file mode 100644 index 0000000..1974ec2 --- /dev/null +++ b/dhall/tests/parser/success/quotedUnionLabelB.txt @@ -0,0 +1 @@ +< ``: Natural | ` `: Natural | foo: Natural > diff --git a/dhall/tests/parser/success/unit/DoubleLit16bitB.txt b/dhall/tests/parser/success/unit/DoubleLit16bitB.txt new file mode 100644 index 0000000..9ad974f --- /dev/null +++ b/dhall/tests/parser/success/unit/DoubleLit16bitB.txt @@ -0,0 +1 @@ +5.5 diff --git a/dhall/tests/parser/success/unit/DoubleLit32bitB.txt b/dhall/tests/parser/success/unit/DoubleLit32bitB.txt new file mode 100644 index 0000000..f67efa2 --- /dev/null +++ b/dhall/tests/parser/success/unit/DoubleLit32bitB.txt @@ -0,0 +1 @@ +5555.5 diff --git a/dhall/tests/parser/success/unit/DoubleLit64bitB.txt b/dhall/tests/parser/success/unit/DoubleLit64bitB.txt new file mode 100644 index 0000000..f3714c3 --- /dev/null +++ b/dhall/tests/parser/success/unit/DoubleLit64bitB.txt @@ -0,0 +1 @@ +55555555555.5 diff --git a/dhall/tests/parser/success/unit/WithPrecedenceB.txt b/dhall/tests/parser/success/unit/WithPrecedence1B.txt index 5f22335..5f22335 100644 --- a/dhall/tests/parser/success/unit/WithPrecedenceB.txt +++ b/dhall/tests/parser/success/unit/WithPrecedence1B.txt diff --git a/dhall/tests/parser/success/unit/WithPrecedence2B.txt b/dhall/tests/parser/success/unit/WithPrecedence2B.txt new file mode 100644 index 0000000..f945cc9 --- /dev/null +++ b/dhall/tests/parser/success/unit/WithPrecedence2B.txt @@ -0,0 +1 @@ +{ x = 0 } ⫽ { x = 1 + 1 } diff --git a/dhall/tests/parser/success/unit/WithPrecedence3B.txt b/dhall/tests/parser/success/unit/WithPrecedence3B.txt new file mode 100644 index 0000000..a801b24 --- /dev/null +++ b/dhall/tests/parser/success/unit/WithPrecedence3B.txt @@ -0,0 +1 @@ +foo::{ x = 0 } ⫽ { x = 1 } diff --git a/dhall/tests/parser/success/unit/import/quotedPathsB.txt b/dhall/tests/parser/success/unit/import/quotedPathsB.txt index 4705ca3..373b872 100644 --- a/dhall/tests/parser/success/unit/import/quotedPathsB.txt +++ b/dhall/tests/parser/success/unit/import/quotedPathsB.txt @@ -1 +1 @@ -{ example0 = /foo/bar/"baz qux", example1 = https://example.com/foo/bar%3Fbaz?qux } +/foo/bar/"baz qux" diff --git a/dhall/tests/parser/success/unit/import/urls/quotedPathFakeUrlEncodeB.txt b/dhall/tests/parser/success/unit/import/urls/quotedPathFakeUrlEncodeB.txt deleted file mode 100644 index a8366d2..0000000 --- a/dhall/tests/parser/success/unit/import/urls/quotedPathFakeUrlEncodeB.txt +++ /dev/null @@ -1 +0,0 @@ -https://example.com/a%20b/c diff --git a/dhall/tests/parser/success/unit/operators/PrecedenceEquivalenceB.txt b/dhall/tests/parser/success/unit/operators/PrecedenceEquivalenceB.txt new file mode 100644 index 0000000..717c108 --- /dev/null +++ b/dhall/tests/parser/success/unit/operators/PrecedenceEquivalenceB.txt @@ -0,0 +1 @@ +2 + 3 * 4 ≡ 4 * 3 + 2 diff --git a/dhall/tests/spec.rs b/dhall/tests/spec.rs index 37df91d..77d2aaa 100644 --- a/dhall/tests/spec.rs +++ b/dhall/tests/spec.rs @@ -51,7 +51,7 @@ impl FileType { match self { FileType::Text => TestFile::Source(file), FileType::Binary => TestFile::Binary(file), - FileType::Hash => TestFile::Binary(file), + FileType::Hash => TestFile::UI(file), FileType::UI => TestFile::UI(file), } } @@ -413,11 +413,6 @@ fn define_features() -> Vec<TestFeature> { directory: "parser/success/", variant: SpecTestKind::ParserSuccess, too_slow_path: Rc::new(|path: &str| path == "largeExpression"), - exclude_path: Rc::new(|path: &str| { - false - // Pretty sure the test is incorrect - || path == "unit/import/urls/quotedPathFakeUrlEncode" - }), output_type: FileType::Binary, ..default_feature.clone() }, @@ -445,15 +440,6 @@ fn define_features() -> Vec<TestFeature> { directory: "parser/success/", variant: SpecTestKind::BinaryEncoding, too_slow_path: Rc::new(|path: &str| path == "largeExpression"), - exclude_path: Rc::new(|path: &str| { - false - // Pretty sure the test is incorrect - || path == "unit/import/urls/quotedPathFakeUrlEncode" - // See https://github.com/pyfisch/cbor/issues/109 - || path == "double" - || path == "unit/DoubleLitExponentNoDot" - || path == "unit/DoubleLitSecretelyInt" - }), output_type: FileType::Binary, ..default_feature.clone() }, @@ -493,6 +479,7 @@ fn define_features() -> Vec<TestFeature> { || path == "noHeaderForwarding" // TODO: git changes newlines on windows || (cfg!(windows) && path == "unit/AsText") + || (cfg!(windows) && path == "unit/QuotedPath") // TODO: paths on windows have backslashes; this breaks all the `as Location` tests // See https://github.com/dhall-lang/dhall-lang/issues/1032 || (cfg!(windows) && path.contains("asLocation")) @@ -518,13 +505,8 @@ fn define_features() -> Vec<TestFeature> { directory: "semantic-hash/success/", variant: SpecTestKind::SemanticHash, exclude_path: Rc::new(|path: &str| { - false - // We don't support bignums - || path == "simple/integerToDouble" - // See https://github.com/pyfisch/cbor/issues/109 - || path == "prelude/Integer/toDouble/0" - || path == "prelude/Integer/toDouble/1" - || path == "prelude/Natural/toDouble/0" + // We don't support bignums + path == "simple/integerToDouble" }), output_type: FileType::Hash, ..default_feature.clone() @@ -559,7 +541,9 @@ fn define_features() -> Vec<TestFeature> { module_name: "type_inference_success", directory: "type-inference/success/", variant: SpecTestKind::TypeInferenceSuccess, - too_slow_path: Rc::new(|path: &str| path == "prelude"), + // TODO: this fails because of caching shenanigans + // too_slow_path: Rc::new(|path: &str| path == "prelude"), + exclude_path: Rc::new(|path: &str| path == "prelude"), ..default_feature.clone() }, TestFeature { @@ -614,6 +598,17 @@ fn run_test(test: &SpecTest) -> Result<()> { // Set environment variable for import tests. env::set_var("DHALL_TEST_VAR", "6 * 7"); + // Configure cache for import tests + env::set_var( + "XDG_CACHE_HOME", + root_dir + .join("dhall-lang") + .join("tests") + .join("import") + .join("cache") + .as_path(), + ); + let SpecTest { input: expr, output: expected, @@ -662,16 +657,6 @@ fn run_test(test: &SpecTest) -> Result<()> { expected.compare_ui(parsed)?; } ImportSuccess => { - // Configure cache for import tests - env::set_var( - "XDG_CACHE_HOME", - root_dir - .join("dhall-lang") - .join("tests") - .join("import") - .join("cache") - .as_path(), - ); let expr = expr.normalize()?; expected.compare(expr)?; } diff --git a/dhall/tests/type-inference/failure/mixedUnions.txt b/dhall/tests/type-inference/failure/mixedUnions.txt deleted file mode 100644 index 2b307d0..0000000 --- a/dhall/tests/type-inference/failure/mixedUnions.txt +++ /dev/null @@ -1,6 +0,0 @@ -Type error: error: InvalidVariantType - --> <current file>:1:28 - | -1 | < Left : Natural | Right : Type > - | ^^^^ InvalidVariantType - | diff --git a/dhall/tests/type-inference/failure/unit/LetWithNonterminatingAnnotation.txt b/dhall/tests/type-inference/failure/unit/LetWithNonterminatingAnnotation.txt new file mode 100644 index 0000000..6e360da --- /dev/null +++ b/dhall/tests/type-inference/failure/unit/LetWithNonterminatingAnnotation.txt @@ -0,0 +1,12 @@ +Type error: error: expected function, found `Natural` + --> <current file>:6:25 + | + 1 | -- When you check if an inferred type is equivalent to an annotation, + 2 | -- you must alpha-beta-normalize both sides first. But it is not safe + 3 | -- to beta-normalise an expression which hasn't first been + 4 | -- typechecked. +... +10 | let a +11 | : (λ(x : Natural) → x x) (λ(x : Natural) → x x) + | ^ function application requires a function + | diff --git a/dhall/tests/type-inference/failure/unit/RecordMixedKinds3.txt b/dhall/tests/type-inference/failure/unit/RecordMixedKinds3.txt deleted file mode 100644 index a83bb4f..0000000 --- a/dhall/tests/type-inference/failure/unit/RecordMixedKinds3.txt +++ /dev/null @@ -1,6 +0,0 @@ -Type error: error: InvalidFieldType - --> <current file>:1:17 - | -1 | { x = Type, y = Kind } - | ^^^^ InvalidFieldType - | diff --git a/dhall/tests/type-inference/failure/unit/RemovedBuiltinOptionalBuild.txt b/dhall/tests/type-inference/failure/unit/RemovedBuiltinOptionalBuild.txt new file mode 100644 index 0000000..e4e285c --- /dev/null +++ b/dhall/tests/type-inference/failure/unit/RemovedBuiltinOptionalBuild.txt @@ -0,0 +1,6 @@ +Type error: error: unbound variable ``Optional/build`` + --> <current file>:1:1 + | +1 | Optional/build + | ^^^^^^^^^^^^^^ not found in this scope + | diff --git a/dhall/tests/type-inference/failure/unit/RemovedBuiltinOptionalFold.txt b/dhall/tests/type-inference/failure/unit/RemovedBuiltinOptionalFold.txt new file mode 100644 index 0000000..3d6c6aa --- /dev/null +++ b/dhall/tests/type-inference/failure/unit/RemovedBuiltinOptionalFold.txt @@ -0,0 +1,6 @@ +Type error: error: unbound variable ``Optional/fold`` + --> <current file>:1:1 + | +1 | Optional/fold + | ^^^^^^^^^^^^^ not found in this scope + | diff --git a/dhall/tests/type-inference/failure/unit/RightBiasedRecordMergeMixedKinds2.txt b/dhall/tests/type-inference/failure/unit/RightBiasedRecordMergeMixedKinds2.txt deleted file mode 100644 index 6a6da80..0000000 --- a/dhall/tests/type-inference/failure/unit/RightBiasedRecordMergeMixedKinds2.txt +++ /dev/null @@ -1,6 +0,0 @@ -Type error: error: InvalidFieldType - --> <current file>:1:22 - | -1 | { x = Bool } ⫽ { x = Kind } - | ^^^^ InvalidFieldType - | diff --git a/dhall/tests/type-inference/failure/unit/RightBiasedRecordMergeMixedKinds3.txt b/dhall/tests/type-inference/failure/unit/RightBiasedRecordMergeMixedKinds3.txt deleted file mode 100644 index 322e7f4..0000000 --- a/dhall/tests/type-inference/failure/unit/RightBiasedRecordMergeMixedKinds3.txt +++ /dev/null @@ -1,6 +0,0 @@ -Type error: error: InvalidFieldType - --> <current file>:1:21 - | -1 | { x = {=} } ⫽ { x = Kind } - | ^^^^ InvalidFieldType - | diff --git a/dhall/tests/type-inference/failure/unit/UnionTypeMixedKinds.txt b/dhall/tests/type-inference/failure/unit/UnionTypeMixedKinds.txt deleted file mode 100644 index ae6c845..0000000 --- a/dhall/tests/type-inference/failure/unit/UnionTypeMixedKinds.txt +++ /dev/null @@ -1,6 +0,0 @@ -Type error: error: InvalidVariantType - --> <current file>:1:18 - | -1 | < x : Bool | y : Type > - | ^^^^ InvalidVariantType - | diff --git a/dhall/tests/type-inference/failure/unit/UnionTypeMixedKinds2.txt b/dhall/tests/type-inference/failure/unit/UnionTypeMixedKinds2.txt deleted file mode 100644 index faf81a9..0000000 --- a/dhall/tests/type-inference/failure/unit/UnionTypeMixedKinds2.txt +++ /dev/null @@ -1,6 +0,0 @@ -Type error: error: InvalidVariantType - --> <current file>:1:18 - | -1 | < x : Kind | y : Type > - | ^^^^ InvalidVariantType - | diff --git a/dhall/tests/type-inference/failure/unit/UnionTypeMixedKinds3.txt b/dhall/tests/type-inference/failure/unit/UnionTypeMixedKinds3.txt deleted file mode 100644 index bbfb1f3..0000000 --- a/dhall/tests/type-inference/failure/unit/UnionTypeMixedKinds3.txt +++ /dev/null @@ -1,6 +0,0 @@ -Type error: error: InvalidVariantType - --> <current file>:1:18 - | -1 | < x : Kind | y : Bool > - | ^^^^ InvalidVariantType - | |