summaryrefslogtreecommitdiff
path: root/dhall/tests
diff options
context:
space:
mode:
Diffstat (limited to 'dhall/tests')
-rw-r--r--dhall/tests/parser/failure/ProjectionByTypeNeedsParens.txt2
-rw-r--r--dhall/tests/parser/failure/annotation.txt2
-rw-r--r--dhall/tests/parser/failure/spacing/ForallNoSpace.txt2
-rw-r--r--dhall/tests/parser/failure/spacing/LambdaNoSpace.txt2
-rw-r--r--dhall/tests/parser/failure/spacing/LetAnnotNoSpace.txt2
-rw-r--r--dhall/tests/parser/failure/spacing/MergeNoSpace2.txt2
-rw-r--r--dhall/tests/parser/failure/spacing/RecordTypeNoSpace.txt2
-rw-r--r--dhall/tests/parser/failure/spacing/UnionTypeNoSpace.txt2
-rw-r--r--dhall/tests/parser/failure/unit/OldUnionLitSyntax.txt2
-rw-r--r--dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword00.txt6
-rw-r--r--dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword01.txt6
-rw-r--r--dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword02.txt6
-rw-r--r--dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword03.txt6
-rw-r--r--dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword04.txt6
-rw-r--r--dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword05.txt6
-rw-r--r--dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword06.txt6
-rw-r--r--dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword07.txt6
-rw-r--r--dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword08.txt6
-rw-r--r--dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword09.txt6
-rw-r--r--dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword10.txt6
-rw-r--r--dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword11.txt6
-rw-r--r--dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword12.txt6
-rw-r--r--dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword13.txt6
-rw-r--r--dhall/tests/parser/failure/unit/RecordFieldMustNotBeKeyword14.txt6
-rw-r--r--dhall/tests/parser/failure/unit/RecordLitPunDotted.txt2
-rw-r--r--dhall/tests/parser/failure/unit/UrlWithQuotedPath.txt6
-rw-r--r--dhall/tests/parser/failure/unit/WithPrecedence1.txt6
-rw-r--r--dhall/tests/parser/failure/unit/WithPrecedence2.txt6
-rw-r--r--dhall/tests/parser/failure/unit/WithPrecedence3.txt6
-rw-r--r--dhall/tests/parser/success/builtinsB.txt2
-rw-r--r--dhall/tests/parser/success/quotedLabelB.txt2
-rw-r--r--dhall/tests/parser/success/quotedRecordLabelB.txt1
-rw-r--r--dhall/tests/parser/success/quotedUnionLabelB.txt1
-rw-r--r--dhall/tests/parser/success/unit/DoubleLit16bitB.txt1
-rw-r--r--dhall/tests/parser/success/unit/DoubleLit32bitB.txt1
-rw-r--r--dhall/tests/parser/success/unit/DoubleLit64bitB.txt1
-rw-r--r--dhall/tests/parser/success/unit/WithPrecedence1B.txt (renamed from dhall/tests/parser/success/unit/WithPrecedenceB.txt)0
-rw-r--r--dhall/tests/parser/success/unit/WithPrecedence2B.txt1
-rw-r--r--dhall/tests/parser/success/unit/WithPrecedence3B.txt1
-rw-r--r--dhall/tests/parser/success/unit/import/quotedPathsB.txt2
-rw-r--r--dhall/tests/parser/success/unit/import/urls/quotedPathFakeUrlEncodeB.txt1
-rw-r--r--dhall/tests/parser/success/unit/operators/PrecedenceEquivalenceB.txt1
-rw-r--r--dhall/tests/spec.rs51
-rw-r--r--dhall/tests/type-inference/failure/mixedUnions.txt6
-rw-r--r--dhall/tests/type-inference/failure/unit/LetWithNonterminatingAnnotation.txt12
-rw-r--r--dhall/tests/type-inference/failure/unit/RecordMixedKinds3.txt6
-rw-r--r--dhall/tests/type-inference/failure/unit/RemovedBuiltinOptionalBuild.txt6
-rw-r--r--dhall/tests/type-inference/failure/unit/RemovedBuiltinOptionalFold.txt6
-rw-r--r--dhall/tests/type-inference/failure/unit/RightBiasedRecordMergeMixedKinds2.txt6
-rw-r--r--dhall/tests/type-inference/failure/unit/RightBiasedRecordMergeMixedKinds3.txt6
-rw-r--r--dhall/tests/type-inference/failure/unit/UnionTypeMixedKinds.txt6
-rw-r--r--dhall/tests/type-inference/failure/unit/UnionTypeMixedKinds2.txt6
-rw-r--r--dhall/tests/type-inference/failure/unit/UnionTypeMixedKinds3.txt6
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
- |