dhall 1.31.0 → 1.31.1
raw patch · 256 files changed
+345/−54 lines, 256 filesdep ~replinedep ~template-haskellbinary-addedPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: repline, template-haskell
API changes (from Hackage documentation)
Files
- CHANGELOG.md +20/−0
- dhall-lang/tests/alpha-normalization/success/regression/preludeBoolFoldA.dhall +6/−0
- dhall-lang/tests/alpha-normalization/success/regression/preludeBoolFoldB.dhall +1/−0
- dhall-lang/tests/binary-decode/success/unit/imports/EnvironmentVariableA.dhallb binary
- dhall-lang/tests/binary-decode/success/unit/imports/EnvironmentVariableB.dhall +1/−0
- dhall-lang/tests/binary-decode/success/unit/imports/HttpImportWithQueryA.dhallb binary
- dhall-lang/tests/binary-decode/success/unit/imports/HttpImportWithQueryB.dhall +1/−0
- dhall-lang/tests/binary-decode/success/unit/imports/HttpImportWithoutQueryA.dhallb binary
- dhall-lang/tests/binary-decode/success/unit/imports/HttpImportWithoutQueryB.dhall +1/−0
- dhall-lang/tests/binary-decode/success/unit/imports/HttpsImportWithEmptyQueryA.dhallb binary
- dhall-lang/tests/binary-decode/success/unit/imports/HttpsImportWithEmptyQueryB.dhall +2/−0
- dhall-lang/tests/binary-decode/success/unit/imports/HttpsImportWithQueryA.dhallb binary
- dhall-lang/tests/binary-decode/success/unit/imports/HttpsImportWithQueryB.dhall +1/−0
- dhall-lang/tests/binary-decode/success/unit/imports/HttpsImportWithTrickyPathCharsA.dhallb binary
- dhall-lang/tests/binary-decode/success/unit/imports/HttpsImportWithTrickyPathCharsB.dhall +1/−0
- dhall-lang/tests/binary-decode/success/unit/imports/HttpsImportWithTrickyQueryCharsA.dhallb binary
- dhall-lang/tests/binary-decode/success/unit/imports/HttpsImportWithTrickyQueryCharsB.dhall +1/−0
- dhall-lang/tests/binary-decode/success/unit/imports/HttpsImportWithoutQueryA.dhallb binary
- dhall-lang/tests/binary-decode/success/unit/imports/HttpsImportWithoutQueryB.dhall +1/−0
- dhall-lang/tests/binary-decode/success/unit/imports/LocalHereImportA.dhallb binary
- dhall-lang/tests/binary-decode/success/unit/imports/LocalHereImportB.dhall +1/−0
- dhall-lang/tests/binary-decode/success/unit/imports/LocalHomeImportA.dhallb binary
- dhall-lang/tests/binary-decode/success/unit/imports/LocalHomeImportB.dhall +1/−0
- dhall-lang/tests/binary-decode/success/unit/imports/LocalParentImportA.dhallb binary
- dhall-lang/tests/binary-decode/success/unit/imports/LocalParentImportB.dhall +1/−0
- dhall-lang/tests/binary-decode/success/unit/imports/LocalRootImportA.dhallb binary
- dhall-lang/tests/binary-decode/success/unit/imports/LocalRootImportB.dhall +1/−0
- dhall-lang/tests/binary-decode/success/unit/imports/MissingA.dhallb binary
- dhall-lang/tests/binary-decode/success/unit/imports/MissingB.dhall +1/−0
- dhall-lang/tests/import/failure/unit/EnvUnset.dhall +1/−0
- dhall-lang/tests/import/failure/unit/EnvUnsetAsText.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeChain1A.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeChain1B.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeChain2A.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeChain2B.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeEnvA.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeEnvB.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeHashMismatchA.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeHashMismatchB.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeImportErrorA.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeImportErrorB.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeNestedImportErrorA.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeNestedImportErrorB.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeNoError1A.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeNoError1B.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeNoError2A.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeNoError2B.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeNoError3A.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeNoError3B.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeParseErrorA.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeParseErrorB.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeSubExprA.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeSubExprB.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeTypeErrorA.dhall +1/−0
- dhall-lang/tests/import/success/unit/AlternativeTypeErrorB.dhall +1/−0
- dhall-lang/tests/import/success/unit/AsTextA.dhall +1/−0
- dhall-lang/tests/import/success/unit/AsTextB.dhall +3/−0
- dhall-lang/tests/import/success/unit/EnvSetA.dhall +1/−0
- dhall-lang/tests/import/success/unit/EnvSetAsTextA.dhall +1/−0
- dhall-lang/tests/import/success/unit/EnvSetAsTextB.dhall +1/−0
- dhall-lang/tests/import/success/unit/EnvSetB.dhall +1/−0
- dhall-lang/tests/import/success/unit/NormalizeA.dhall +1/−0
- dhall-lang/tests/import/success/unit/NormalizeB.dhall +1/−0
- dhall-lang/tests/import/success/unit/RemoteAsTextA.dhall +1/−0
- dhall-lang/tests/import/success/unit/RemoteAsTextB.dhall +3/−0
- dhall-lang/tests/import/success/unit/SimpleA.dhall +1/−0
- dhall-lang/tests/import/success/unit/SimpleB.dhall +1/−0
- dhall-lang/tests/import/success/unit/SimpleHashA.dhall +1/−0
- dhall-lang/tests/import/success/unit/SimpleHashB.dhall +1/−0
- dhall-lang/tests/import/success/unit/SimpleRemoteA.dhall +1/−0
- dhall-lang/tests/import/success/unit/SimpleRemoteB.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/AbsoluteA.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/AbsoluteB.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/Canonicalize1A.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/Canonicalize1B.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/Canonicalize2A.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/Canonicalize2B.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/Canonicalize3A.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/Canonicalize3B.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/Canonicalize4A.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/Canonicalize4B.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/Canonicalize5A.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/Canonicalize5B.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/Chain1A.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/Chain1B.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/Chain2A.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/Chain2B.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/Chain3A.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/Chain3B.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/DontTryResolvingA.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/DontTryResolvingB.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/EnvA.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/EnvB.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/HashA.dhall +6/−0
- dhall-lang/tests/import/success/unit/asLocation/HashB.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/HomeA.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/HomeB.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/MissingA.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/MissingB.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/Relative1A.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/Relative1B.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/Relative2A.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/Relative2B.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteA.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteB.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteCanonicalize1A.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteCanonicalize1B.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteCanonicalize2A.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteCanonicalize2B.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteCanonicalize3A.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteCanonicalize3B.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteCanonicalize4A.dhall +4/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteCanonicalize4B.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteChain1A.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteChain1B.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteChain2A.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteChain2B.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteChain3A.dhall +1/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteChain3B.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteChainEnvA.dhall +5/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteChainEnvB.dhall +2/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteChainMissingA.dhall +6/−0
- dhall-lang/tests/import/success/unit/asLocation/RemoteChainMissingB.dhall +1/−0
- dhall-lang/tests/normalization/success/regression/NaturalFoldExtraArgA.dhall +2/−0
- dhall-lang/tests/normalization/success/regression/NaturalFoldExtraArgB.dhall +1/−0
- dhall-lang/tests/normalization/success/regression/TrickyBinderIdentityA.dhall +1/−0
- dhall-lang/tests/normalization/success/regression/TrickyBinderIdentityB.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/AnnotationNoSpace.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/ApplicationNoSpace1.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/ApplicationNoSpace2.dhall +2/−0
- dhall-lang/tests/parser/failure/spacing/AssertNoSpace.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/ForallNoSpace.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/HeadersNoSpace.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/IfNoSpace1.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/IfNoSpace2.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/IfNoSpace3.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/ImportAltNoSpace.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/ImportHashedNoSpace.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/LambdaNoSpace.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/LetAnnotNoSpace.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/LetNoSpace1.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/LetNoSpace2.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/ListLitEmptyNoSpace.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/MergeAnnotationNoSpace3.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/MergeNoSpace1.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/MergeNoSpace2.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/NaturalPlusNoSpace.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/RecordTypeNoSpace.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/SomeNoSpace.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/ToMapAnnotNoSpace.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/ToMapNoSpace.dhall +1/−0
- dhall-lang/tests/parser/failure/spacing/UnionTypeNoSpace.dhall +1/−0
- dhall-lang/tests/parser/failure/unit/AssertNoAnnotation.dhall +1/−0
- dhall-lang/tests/parser/failure/unit/BoolLitTrueWithIndex.dhall +1/−0
- dhall-lang/tests/parser/failure/unit/BuiltinBoolWithIndex.dhall +1/−0
- dhall-lang/tests/parser/failure/unit/BuiltinTypeWithIndex.dhall +1/−0
- dhall-lang/tests/parser/failure/unit/ImportEnvWrongEscape.dhall +1/−0
- dhall-lang/tests/parser/failure/unit/ListLitEmptyAnnotation.dhall +1/−0
- dhall-lang/tests/parser/failure/unit/ListLitEmptyMissingAnnotation.dhall +1/−0
- dhall-lang/tests/parser/failure/unit/MergeAlone.dhall +1/−0
- dhall-lang/tests/parser/failure/unit/MergeOneArgument.dhall +1/−0
- dhall-lang/tests/parser/failure/unit/NaturalLitLeadingZero.dhall +1/−0
- dhall-lang/tests/parser/failure/unit/OldUnionLitSyntax.dhall +1/−0
- dhall-lang/tests/parser/failure/unit/RecordLitPunDotted.dhall +1/−0
- dhall-lang/tests/parser/failure/unit/RecordTypeTrailingComma.dhall +1/−0
- dhall-lang/tests/parser/failure/unit/SomeAlone.dhall +1/−0
- dhall-lang/tests/parser/failure/unit/UsingToMap.dhall +8/−0
- dhall-lang/tests/parser/success/unit/operators/BoolAndA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/BoolAndAssocA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/BoolAndAssocB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/BoolAndB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/BoolEQA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/BoolEQAssocA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/BoolEQAssocB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/BoolEQB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/BoolNEA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/BoolNEAssocA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/BoolNEAssocB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/BoolNEB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/BoolOrA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/BoolOrAssocA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/BoolOrAssocB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/BoolOrB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/EquivalenceA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/EquivalenceB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/ImportAltA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/ImportAltAssocA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/ImportAltAssocB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/ImportAltB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/ListAppendA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/ListAppendAssocA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/ListAppendAssocB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/ListAppendB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/NaturalPlusA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/NaturalPlusAssocA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/NaturalPlusAssocB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/NaturalPlusB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/NaturalTimesA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/NaturalTimesAssocA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/NaturalTimesAssocB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/NaturalTimesB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/PrecedenceBoolA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/PrecedenceBoolB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/PrecedenceNatA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/PrecedenceNatB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/PrecedenceRecordA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/PrecedenceRecordB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/RecursiveRecordMergeA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/RecursiveRecordMergeAssocA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/RecursiveRecordMergeAssocB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/RecursiveRecordMergeB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/RecursiveRecordMergeUnicodeA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/RecursiveRecordMergeUnicodeAssocA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/RecursiveRecordMergeUnicodeAssocB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/RecursiveRecordMergeUnicodeB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/RecursiveRecordTypeMergeA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/RecursiveRecordTypeMergeAssocA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/RecursiveRecordTypeMergeAssocB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/RecursiveRecordTypeMergeB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/RecursiveRecordTypeMergeUnicodeA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/RecursiveRecordTypeMergeUnicodeAssocA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/RecursiveRecordTypeMergeUnicodeAssocB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/RecursiveRecordTypeMergeUnicodeB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/RightBiasedRecordMergeA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/RightBiasedRecordMergeAssocA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/RightBiasedRecordMergeAssocB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/RightBiasedRecordMergeB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/RightBiasedRecordMergeUnicodeA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/RightBiasedRecordMergeUnicodeAssocA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/RightBiasedRecordMergeUnicodeAssocB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/RightBiasedRecordMergeUnicodeB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/TextAppendA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/TextAppendAssocA.dhall +1/−0
- dhall-lang/tests/parser/success/unit/operators/TextAppendAssocB.dhallb binary
- dhall-lang/tests/parser/success/unit/operators/TextAppendB.dhallb binary
- dhall-lang/tests/type-inference/success/regression/LambdaInLetScoping1A.dhall +1/−0
- dhall-lang/tests/type-inference/success/regression/LambdaInLetScoping1B.dhall +1/−0
- dhall-lang/tests/type-inference/success/regression/LambdaInLetScoping2A.dhall +1/−0
- dhall-lang/tests/type-inference/success/regression/LambdaInLetScoping2B.dhall +1/−0
- dhall-lang/tests/type-inference/success/regression/RecursiveRecordTypeMergeTripleCollisionA.dhall +1/−0
- dhall-lang/tests/type-inference/success/regression/RecursiveRecordTypeMergeTripleCollisionB.dhall +1/−0
- dhall-lang/tests/type-inference/success/regression/TodoA.dhall +1/−0
- dhall-lang/tests/type-inference/success/regression/TodoB.dhall +1/−0
- dhall.cabal +16/−4
- src/Dhall.hs +3/−0
- src/Dhall/Map.hs +3/−9
- src/Dhall/Parser/Expression.hs +1/−3
- src/Dhall/Pretty/Internal.hs +9/−2
- src/Dhall/Repl.hs +17/−13
- src/Dhall/Syntax.hs +8/−20
- src/Dhall/Util.hs +1/−1
- tests/Dhall/Test/Regression.hs +8/−0
- tests/format/ipfsB.dhall +2/−2
- tests/format/punA.dhall +1/−0
- tests/format/punB.dhall +1/−0
- tests/regression/issue1732.dhall +1/−0
@@ -1,3 +1,23 @@+1.31.1++* BUG FIX: [Allow whitespace after record pun entry](https://github.com/dhall-lang/dhall-haskell/pull/1733)+ * The record pun feature introduced in the previous release did not+ correctly parse record puns with trailing whitespace, which this change+ fixes.+* [Expose `{default,}InputNormalizer`](https://github.com/dhall-lang/dhall-haskell/pull/1727)+ * The previous version introduced a breaking change to the `autoWith` type+ that required access to the implementation of `InputNormalizer`, which was+ not exported. This change fixes that.+* Build against latest dependencies+ * [`QuickCheck-2.14`](https://github.com/dhall-lang/dhall-haskell/pull/1721)+ * [`haskell-lsp-0.21`](https://github.com/dhall-lang/dhall-haskell/pull/1730)+ * [`repline-0.3` / `haskeline-0.8`](https://github.com/dhall-lang/dhall-haskell/pull/1717)+ * [`template-haskell-2.16`](https://github.com/dhall-lang/dhall-haskell/pull/1719)+* [Prefer to format using record puns when possible](https://github.com/dhall-lang/dhall-haskell/pull/1729)+ * `dhall format` will now reformat code to use record puns when applicable+* Fixes and improvements to error messages:+ * [#1721](https://github.com/dhall-lang/dhall-haskell/pull/1724)+ 1.31.0 * [Supports version 15.0.0 of the standard](https://github.com/dhall-lang/dhall-lang/releases/tag/v15.0.0)
@@ -0,0 +1,6 @@+-- For https://github.com/dhall-lang/dhall-haskell/issues/929+ λ(b : Bool)+→ λ(bool : Type)+→ λ(true : bool)+→ λ(false : bool)+→ if b then true else false
@@ -0,0 +1,1 @@+λ(_ : Bool) → λ(_ : Type) → λ(_ : _) → λ(_ : _@1) → if _@3 then _@1 else _
binary file changed (absent → 10 bytes)
@@ -0,0 +1,1 @@+env:FOO
binary file changed (absent → 41 bytes)
@@ -0,0 +1,1 @@+http://foo:bar@baz:123/path1/path2?query
binary file changed (absent → 36 bytes)
@@ -0,0 +1,1 @@+http://foo:bar@baz:123/path1/path2
binary file changed (absent → 36 bytes)
@@ -0,0 +1,2 @@+{- an empty query string is not the same as an absent query string -}+https://foo:bar@baz:123/path1/path2?
binary file changed (absent → 41 bytes)
@@ -0,0 +1,1 @@+https://foo:bar@baz:123/path1/path2?query
binary file changed (absent → 46 bytes)
@@ -0,0 +1,1 @@+https://authority/path:with!funny-characters
binary file changed (absent → 32 bytes)
@@ -0,0 +1,1 @@+https://authority/path?a%23b%5Bc
binary file changed (absent → 36 bytes)
@@ -0,0 +1,1 @@+https://foo:bar@baz:123/path1/path2
binary file changed (absent → 29 bytes)
@@ -0,0 +1,1 @@+./path0/path1/path2/file
binary file changed (absent → 29 bytes)
@@ -0,0 +1,1 @@+~/path0/path1/path2/file
binary file changed (absent → 29 bytes)
@@ -0,0 +1,1 @@+../path0/path1/path2/file
binary file changed (absent → 29 bytes)
@@ -0,0 +1,1 @@+/path0/path1/path2/file
binary file changed (absent → 6 bytes)
@@ -0,0 +1,1 @@+missing
@@ -0,0 +1,1 @@+env:DHALL_TEST_UNSET
@@ -0,0 +1,1 @@+env:DHALL_TEST_UNSET as Text
@@ -0,0 +1,1 @@+missing ? missing ? 42
@@ -0,0 +1,1 @@+42
@@ -0,0 +1,1 @@+missing ? 42 ? 10
@@ -0,0 +1,1 @@+42
@@ -0,0 +1,1 @@+env:DHALL_TEST_UNSET ? 42
@@ -0,0 +1,1 @@+42
@@ -0,0 +1,1 @@+../../data/simple.dhall sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ? 42
@@ -0,0 +1,1 @@+42
@@ -0,0 +1,1 @@+missing ? 42
@@ -0,0 +1,1 @@+42
@@ -0,0 +1,1 @@+../../failure/missing.dhall ? 42
@@ -0,0 +1,1 @@+42
@@ -0,0 +1,1 @@+42 ? 10
@@ -0,0 +1,1 @@+42
@@ -0,0 +1,1 @@+42 ? missing
@@ -0,0 +1,1 @@+42
@@ -0,0 +1,1 @@+env:DHALL_TEST_VAR ? 10
@@ -0,0 +1,1 @@+42
@@ -0,0 +1,1 @@+../../data/example.txt ? 42
@@ -0,0 +1,1 @@+42
@@ -0,0 +1,1 @@+missing + 10 ? 42
@@ -0,0 +1,1 @@+42
@@ -0,0 +1,1 @@+../../data/doesNotTypecheck.dhall ? 42
@@ -0,0 +1,1 @@+42
@@ -0,0 +1,1 @@+../../data/example.txt as Text
@@ -0,0 +1,3 @@+''+Hello, world!+''
@@ -0,0 +1,1 @@+env:DHALL_TEST_VAR
@@ -0,0 +1,1 @@+env:DHALL_TEST_VAR as Text
@@ -0,0 +1,1 @@+"6 * 7"
@@ -0,0 +1,1 @@+42
@@ -0,0 +1,1 @@+../../../../../dhall-lang/tests/normalization/success/unit/OperatorPlusOneAndOneA.dhall
@@ -0,0 +1,1 @@+2
@@ -0,0 +1,1 @@+https://raw.githubusercontent.com/dhall-lang/dhall-lang/0b983b92aa2222dc3e292c20550ee37dea3f41df/tests/import/data/example.txt as Text
@@ -0,0 +1,3 @@+''+Hello, world!+''
@@ -0,0 +1,1 @@+../../data/simple.dhall
@@ -0,0 +1,1 @@+3
@@ -0,0 +1,1 @@+../../data/simple.dhall sha256:15f52ecf91c94c1baac02d5a4964b2ed8fa401641a2c8a95e8306ec7c1e3b8d2
@@ -0,0 +1,1 @@+3
@@ -0,0 +1,1 @@+https://raw.githubusercontent.com/dhall-lang/dhall-lang/0b983b92aa2222dc3e292c20550ee37dea3f41df/tests/import/data/simple.dhall
@@ -0,0 +1,1 @@+3
@@ -0,0 +1,1 @@+/absolute/import as Location
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Local+ "/absolute/import"
@@ -0,0 +1,1 @@+./foo/./bar/import.dhall as Location
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Local+ "./dhall-lang/tests/import/success/unit/asLocation/foo/bar/import.dhall"
@@ -0,0 +1,1 @@+./foo/baz/../bar/import.dhall as Location
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Local+ "./dhall-lang/tests/import/success/unit/asLocation/foo/bar/import.dhall"
@@ -0,0 +1,1 @@+./../bar/import.dhall as Location
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Local+ "./dhall-lang/tests/import/success/unit/bar/import.dhall"
@@ -0,0 +1,1 @@+../../bar/import.dhall as Location
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Local+ "./dhall-lang/tests/import/success/bar/import.dhall"
@@ -0,0 +1,1 @@+./foo/../../bar/import.dhall as Location
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Local+ "./dhall-lang/tests/import/success/unit/bar/import.dhall"
@@ -0,0 +1,1 @@+./Relative1A.dhall
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Local+ "./dhall-lang/tests/import/success/unit/asLocation/some/import.dhall"
@@ -0,0 +1,1 @@+./Canonicalize4A.dhall
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Local+ "./dhall-lang/tests/import/success/bar/import.dhall"
@@ -0,0 +1,1 @@+../asLocation/Canonicalize4A.dhall
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Local+ "./dhall-lang/tests/import/success/bar/import.dhall"
@@ -0,0 +1,1 @@+(missing as Location) ? 42 -- `missing` fails as an import, but definitely resolves as Location
@@ -0,0 +1,1 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Missing
@@ -0,0 +1,1 @@+env:DHALL_TEST_VAR as Location
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Environment+ "DHALL_TEST_VAR"
@@ -0,0 +1,6 @@+{-+ If you have set XDG_CACHE_HOME as described in tests/README.md, this hash will+ be available in the cache. Since this is an `as Location` test however, you+ mustn't use the cache value here.+-}+./some/import.dhall sha256:efc43103e49b56c5bf089db8e0365bbfc455b8a2f0dc6ee5727a3586f85969fd as Location
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Local+ "./dhall-lang/tests/import/success/unit/asLocation/some/import.dhall"
@@ -0,0 +1,1 @@+~/some/import.dhall as Location
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Local+ "~/some/import.dhall"
@@ -0,0 +1,1 @@+missing as Location
@@ -0,0 +1,1 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Missing
@@ -0,0 +1,1 @@+./some/import.dhall as Location
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Local+ "./dhall-lang/tests/import/success/unit/asLocation/some/import.dhall"
@@ -0,0 +1,1 @@+../some/import.dhall as Location
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Local+ "./dhall-lang/tests/import/success/unit/some/import.dhall"
@@ -0,0 +1,1 @@+https://example.com/foo/import.dhall as Location
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Remote+ "https://example.com/foo/import.dhall"
@@ -0,0 +1,1 @@+https://example.com/foo/./bar/import.dhall as Location
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Remote+ "https://example.com/foo/bar/import.dhall"
@@ -0,0 +1,1 @@+https://example.com/foo/bar/../baz/import.dhall as Location
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Remote+ "https://example.com/foo/baz/import.dhall"
@@ -0,0 +1,1 @@+https://example.com/foo/bar/../../baz/import.dhall as Location
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Remote+ "https://example.com/baz/import.dhall"
@@ -0,0 +1,4 @@+{-+ The standardized behaviour does not respect https://tools.ietf.org/html/rfc3986#section-5.2 .+-}+https://example.com/../bar/import.dhall as Location
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Remote+ "https://example.com/../bar/import.dhall"
@@ -0,0 +1,1 @@+https://raw.githubusercontent.com/dhall-lang/dhall-lang/0b983b92aa2222dc3e292c20550ee37dea3f41df/tests/import/data/simpleLocation.dhall
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Remote+ "https://raw.githubusercontent.com/dhall-lang/dhall-lang/0b983b92aa2222dc3e292c20550ee37dea3f41df/tests/import/data/simple.dhall"
@@ -0,0 +1,1 @@+https://raw.githubusercontent.com/Nadrieril/dhall-rust/f7d8c64a9799f139ad65427c2518376adb9e2e2f/dhall/tests/import/success/unit/asLocation/Canonicalize3A.dhall
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Remote+ "https://raw.githubusercontent.com/Nadrieril/dhall-rust/f7d8c64a9799f139ad65427c2518376adb9e2e2f/dhall/tests/import/success/unit/bar/import.dhall"
@@ -0,0 +1,1 @@+https://raw.githubusercontent.com/Nadrieril/dhall-rust/f7d8c64a9799f139ad65427c2518376adb9e2e2f/dhall/tests/import/success/unit/asLocation/Canonicalize5A.dhall
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Remote+ "https://raw.githubusercontent.com/Nadrieril/dhall-rust/f7d8c64a9799f139ad65427c2518376adb9e2e2f/dhall/tests/import/success/unit/bar/import.dhall"
@@ -0,0 +1,5 @@+{-+ This test verifies that `env:VAR as Location` isn't rejected as referentially opaque,+ as `env:VAR` on its own would.+-}+https://raw.githubusercontent.com/Nadrieril/dhall-rust/f7d8c64a9799f139ad65427c2518376adb9e2e2f/dhall/tests/import/success/unit/asLocation/EnvA.dhall
@@ -0,0 +1,2 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Environment+ "HOME"
@@ -0,0 +1,6 @@+{- This test verifies that `missing as Location` succeeds when chained since:+ * The `missing` is never actually resolved (due to the `as Location`)+ * The `missing` should be treated as referentially transparent (and therefore+ be a valid transitive dependency of a remote import)+-}+https://raw.githubusercontent.com/Nadrieril/dhall-rust/f7d8c64a9799f139ad65427c2518376adb9e2e2f/dhall/tests/import/success/unit/asLocation/MissingA.dhall
@@ -0,0 +1,1 @@+< Environment : Text | Local : Text | Missing | Remote : Text >.Missing
@@ -0,0 +1,2 @@+{- Checks that builtins don't accidentally discard further arguments than their arity -}+Natural/fold 0 (Bool -> Bool) (λ(_ : (Bool -> Bool)) → λ(_ : Bool) → True) (λ(_ : Bool) → False) True
@@ -0,0 +1,1 @@+False
@@ -0,0 +1,1 @@+let T = Natural let ap = λ(f : T → List T) -> λ(x : T) -> f x in ap (λ(x : T) -> ap (λ(y : T) -> [x, y]) 1) 0
@@ -0,0 +1,1 @@+[ 0, 1 ]
@@ -0,0 +1,1 @@+x :T
@@ -0,0 +1,1 @@+f(x)
@@ -0,0 +1,2 @@+-- There needs to be a space between a function and its argument+./example.dhall[1]
@@ -0,0 +1,1 @@+assert :T
@@ -0,0 +1,1 @@+forall(x :T) -> x
@@ -0,0 +1,1 @@+https://example.com/foo using(x)
@@ -0,0 +1,1 @@+if(b) then x else y
@@ -0,0 +1,1 @@+if b then(x) else y
@@ -0,0 +1,1 @@+if b then x else(y)
@@ -0,0 +1,1 @@+x ?y
@@ -0,0 +1,1 @@+missingsha256:0000000000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,1 @@+\(x :T) -> x
@@ -0,0 +1,1 @@+let x :T = y in e
@@ -0,0 +1,1 @@+letx = y in e
@@ -0,0 +1,1 @@+let x = y in(e)
@@ -0,0 +1,1 @@+[] :T
@@ -0,0 +1,1 @@+merge x y :T
@@ -0,0 +1,1 @@+merge(x) y
@@ -0,0 +1,1 @@+merge x(y)
@@ -0,0 +1,1 @@+x +y
@@ -0,0 +1,1 @@+{ x :T }
@@ -0,0 +1,1 @@+Some(x)
@@ -0,0 +1,1 @@+toMap x :T
@@ -0,0 +1,1 @@+toMap(x)
@@ -0,0 +1,1 @@+< x :T >
@@ -0,0 +1,1 @@+assert
@@ -0,0 +1,1 @@+True@0
@@ -0,0 +1,1 @@+Bool@1
@@ -0,0 +1,1 @@+Type@0
@@ -0,0 +1,1 @@+env:"\$"
@@ -0,0 +1,1 @@+([]) : List T
@@ -0,0 +1,1 @@+[]
@@ -0,0 +1,1 @@+merge
@@ -0,0 +1,1 @@+merge x
@@ -0,0 +1,1 @@+042
@@ -0,0 +1,1 @@+< x = 3 | y : Bool >
@@ -0,0 +1,1 @@+{ x.y.z }
@@ -0,0 +1,1 @@+{ x: T, }
@@ -0,0 +1,1 @@+Some
@@ -0,0 +1,8 @@+{- At one point the Haskell implementation permitted this idiom, which was not+ standards-compliant++ The problem with the following expression is that the argument to `using`+ is parsed as a `completionExpression`, which means that any use of `toMap`+ within a `using` clause must be parenthesized+-}+https://example.com using toMap { Foo = "Bar" }
@@ -0,0 +1,1 @@+x && y
@@ -0,0 +1,1 @@+w && x && y && z
binary file changed (absent → 25 bytes)
binary file changed (absent → 11 bytes)
@@ -0,0 +1,1 @@+x == y
@@ -0,0 +1,1 @@+w == x == y == z
binary file changed (absent → 25 bytes)
binary file changed (absent → 11 bytes)
@@ -0,0 +1,1 @@+x != y
@@ -0,0 +1,1 @@+w != x != y != z
binary file changed (absent → 25 bytes)
binary file changed (absent → 11 bytes)
@@ -0,0 +1,1 @@+x || y
@@ -0,0 +1,1 @@+w || x || y || z
binary file changed (absent → 25 bytes)
binary file changed (absent → 11 bytes)
@@ -0,0 +1,1 @@+x === y
binary file changed (absent → 11 bytes)
@@ -0,0 +1,1 @@+x ? y
@@ -0,0 +1,1 @@+w ? x ? y ? z
binary file changed (absent → 25 bytes)
binary file changed (absent → 11 bytes)
@@ -0,0 +1,1 @@+x # y
@@ -0,0 +1,1 @@+w # x # y # z
binary file changed (absent → 25 bytes)
binary file changed (absent → 11 bytes)
@@ -0,0 +1,1 @@+x + y
@@ -0,0 +1,1 @@+w + x + y + z
binary file changed (absent → 25 bytes)
binary file changed (absent → 11 bytes)
@@ -0,0 +1,1 @@+x * y
@@ -0,0 +1,1 @@+w * x * y * z
binary file changed (absent → 25 bytes)
binary file changed (absent → 11 bytes)
@@ -0,0 +1,1 @@+a && b || c d == e || f != g && h || i
binary file changed (absent → 59 bytes)
@@ -0,0 +1,1 @@+a + b * d + e f * (g + h)
binary file changed (absent → 45 bytes)
@@ -0,0 +1,1 @@+a // b c /\ d ⫽ e.{x} ∧ f
binary file changed (absent → 42 bytes)
@@ -0,0 +1,1 @@+x //\\ y
@@ -0,0 +1,1 @@+w //\\ x //\\ y //\\ z
binary file changed (absent → 25 bytes)
binary file changed (absent → 11 bytes)
@@ -0,0 +1,1 @@+x ∧ y
@@ -0,0 +1,1 @@+w ∧ x /\ y ∧ z
binary file changed (absent → 25 bytes)
binary file changed (absent → 11 bytes)
@@ -0,0 +1,1 @@+x /\ y
@@ -0,0 +1,1 @@+w /\ x /\ y /\ z
binary file changed (absent → 25 bytes)
binary file changed (absent → 11 bytes)
@@ -0,0 +1,1 @@+x ⩓ y
@@ -0,0 +1,1 @@+w ⩓ x //\\ y ⩓ z
binary file changed (absent → 25 bytes)
binary file changed (absent → 11 bytes)
@@ -0,0 +1,1 @@+x // y
@@ -0,0 +1,1 @@+w // x // y // z
binary file changed (absent → 25 bytes)
binary file changed (absent → 11 bytes)
@@ -0,0 +1,1 @@+x ⫽ y
@@ -0,0 +1,1 @@+w ⫽ x // y ⫽ z
binary file changed (absent → 25 bytes)
binary file changed (absent → 11 bytes)
@@ -0,0 +1,1 @@+x ++ y
@@ -0,0 +1,1 @@+w ++ x ++ y ++ z
binary file changed (absent → 25 bytes)
binary file changed (absent → 11 bytes)
@@ -0,0 +1,1 @@+let T = 0 in λ(T : Type) → λ(x : T) → 1
@@ -0,0 +1,1 @@+∀(T : Type) → ∀(x : T) → Natural
@@ -0,0 +1,1 @@+(λ(T : Type) → let x = 0 in λ(x : T) → x) : ∀(T : Type) → ∀(x : T) → T
@@ -0,0 +1,1 @@+∀(T : Type) → ∀(x : T) → T
@@ -0,0 +1,1 @@+{ x : { a : Bool } } ⩓ { x : { b : Bool } } ⩓ { x : { c : Bool } }
@@ -0,0 +1,1 @@+Type
@@ -0,0 +1,1 @@+λ(todo : ∀(a : Type) → a) → todo
@@ -0,0 +1,1 @@+∀(todo : ∀(a : Type) → a) → ∀(a : Type) → a
@@ -1,5 +1,5 @@ Name: dhall-Version: 1.31.0+Version: 1.31.1 Cabal-Version: >=1.10 Build-Type: Simple Tested-With: GHC == 8.2.2, GHC == 8.4.3, GHC == 8.6.1@@ -178,29 +178,40 @@ dhall-lang/Prelude/XML/text dhall-lang/Prelude/package.dhall dhall-lang/tests/alpha-normalization/success/unit/*.dhall+ dhall-lang/tests/alpha-normalization/success/regression/*.dhall dhall-lang/tests/binary-decode/failure/unit/*.dhallb dhall-lang/tests/binary-decode/success/unit/*.dhall dhall-lang/tests/binary-decode/success/unit/*.dhallb+ dhall-lang/tests/binary-decode/success/unit/imports/*.dhall+ dhall-lang/tests/binary-decode/success/unit/imports/*.dhallb dhall-lang/tests/import/cache/dhall/1220efc43103e49b56c5bf089db8e0365bbfc455b8a2f0dc6ee5727a3586f85969fd dhall-lang/tests/import/data/*.dhall dhall-lang/tests/import/data/*.txt dhall-lang/tests/import/failure/*.dhall+ dhall-lang/tests/import/failure/unit/*.dhall dhall-lang/tests/import/success/*.dhall+ dhall-lang/tests/import/success/unit/*.dhall+ dhall-lang/tests/import/success/unit/asLocation/*.dhall dhall-lang/tests/normalization/success/*.dhall dhall-lang/tests/normalization/success/haskell-tutorial/access/*.dhall dhall-lang/tests/normalization/success/haskell-tutorial/combineTypes/*.dhall dhall-lang/tests/normalization/success/haskell-tutorial/prefer/*.dhall dhall-lang/tests/normalization/success/haskell-tutorial/projection/*.dhall+ dhall-lang/tests/normalization/success/regression/*.dhall dhall-lang/tests/normalization/success/simple/*.dhall dhall-lang/tests/normalization/success/simplifications/*.dhall dhall-lang/tests/normalization/success/unit/*.dhall dhall-lang/tests/parser/failure/*.dhall+ dhall-lang/tests/parser/failure/spacing/*.dhall+ dhall-lang/tests/parser/failure/unit/*.dhall dhall-lang/tests/parser/success/*.dhall dhall-lang/tests/parser/success/*.dhallb dhall-lang/tests/parser/success/text/*.dhall dhall-lang/tests/parser/success/text/*.dhallb dhall-lang/tests/parser/success/unit/*.dhall dhall-lang/tests/parser/success/unit/*.dhallb+ dhall-lang/tests/parser/success/unit/operators/*.dhall+ dhall-lang/tests/parser/success/unit/operators/*.dhallb dhall-lang/tests/parser/success/unit/import/*.dhall dhall-lang/tests/parser/success/unit/import/*.dhallb dhall-lang/tests/parser/success/unit/import/urls/*.dhall@@ -398,6 +409,7 @@ dhall-lang/tests/type-inference/success/prelude/Text/concatMap/*.dhall dhall-lang/tests/type-inference/success/prelude/Text/concatMapSep/*.dhall dhall-lang/tests/type-inference/success/prelude/Text/concatSep/*.dhall+ dhall-lang/tests/type-inference/success/regression/*.dhall dhall-lang/tests/type-inference/success/simple/*.dhall dhall-lang/tests/type-inference/success/simple/access/*.dhall dhall-lang/tests/type-inference/success/unit/*.dhall@@ -462,10 +474,10 @@ prettyprinter-ansi-terminal >= 1.1.1 && < 1.2 , pretty-simple < 4 , profunctors >= 3.1.2 && < 5.6 ,- repline >= 0.2.1.0 && < 0.3 ,+ repline >= 0.2.1.0 && < 0.4 , serialise >= 0.2.0.0 && < 0.3 , scientific >= 0.3.0.0 && < 0.4 ,- template-haskell >= 2.11.1.0 && < 2.16,+ template-haskell >= 2.11.1.0 && < 2.17, text >= 0.11.1.0 && < 1.3 , text-manipulate >= 0.2.0.1 && < 0.3 , th-lift-instances >= 0.1.13 && < 0.2 ,@@ -622,7 +634,7 @@ lens-family-core , megaparsec , prettyprinter ,- QuickCheck >= 2.10 && < 2.14,+ QuickCheck >= 2.10 && < 2.15, quickcheck-instances >= 0.3.12 && < 0.4 , scientific , semigroups ,
@@ -61,6 +61,8 @@ , genericAuto , genericAutoWith , InterpretOptions(..)+ , InputNormalizer(..)+ , defaultInputNormalizer , SingletonConstructors(..) , defaultInterpretOptions , bool@@ -1346,6 +1348,7 @@ newtype InputNormalizer = InputNormalizer { getInputNormalizer :: Dhall.Core.ReifiedNormalizer Void } +-- | Default normalization-related settings (no custom normalization) defaultInputNormalizer :: InputNormalizer defaultInputNormalizer = InputNormalizer { getInputNormalizer = Dhall.Core.ReifiedNormalizer (const (pure Nothing)) }
@@ -2,6 +2,7 @@ {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DeriveLift #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-}@@ -80,7 +81,6 @@ import qualified Data.Map import qualified Data.Set import qualified GHC.Exts-import qualified Language.Haskell.TH.Syntax as Syntax import qualified Prelude {-| A `Map` that remembers the original ordering of keys@@ -91,18 +91,12 @@ and also to improve performance -} data Map k v = Map (Data.Map.Map k v) (Keys k)- deriving (Data, Generic, NFData)--instance (Data k, Data v, Lift k, Lift v, Ord k) => Lift (Map k v) where- lift = Syntax.liftData+ deriving (Data, Generic, Lift, NFData) data Keys a = Sorted | Original [a]- deriving (Data, Generic, NFData)--instance (Data a, Lift a) => Lift (Keys a) where- lift = Syntax.liftData+ deriving (Data, Generic, Lift, NFData) instance (Ord k, Eq v) => Eq (Map k v) where m1 == m2 =
@@ -772,8 +772,6 @@ value <- expression - whitespace- let cons key (key', values) = (key, RecordLit [ (key', values) ]) @@ -786,7 +784,7 @@ x :| [] -> return (x, Var (V x 0)) _ -> empty - normalRecordEntry <|> punnedEntry+ (normalRecordEntry <|> punnedEntry) <* whitespace let nonEmptyRecordLiteral = do as <- Text.Megaparsec.sepBy1 keysValue (_comma *> whitespace)
@@ -64,7 +64,7 @@ ) where import Data.Foldable-import Data.List.NonEmpty (NonEmpty)+import Data.List.NonEmpty (NonEmpty(..)) import Data.Monoid ((<>)) import Data.Text (Text) import Data.Text.Prettyprint.Doc (Doc, Pretty, space)@@ -1324,7 +1324,14 @@ where consolidated = consolidateRecordLiteral a - prettyRecordEntry = prettyKeyValue prettyAnyLabels equals+ prettyRecordEntry (keys, value) =+ case keys of+ key :| []+ | Var (V key' 0) <- Dhall.Syntax.shallowDenote value+ , key == key' ->+ duplicate (prettyAnyLabel key)+ _ ->+ prettyKeyValue prettyAnyLabels equals (keys, value) prettyCompletionLit :: Pretty a => Int -> Map Text (Expr Src a) -> Doc Ann
@@ -1,5 +1,6 @@ -- | This module contains the implementation of the @dhall repl@ subcommand +{-# language CPP #-} {-# language FlexibleContexts #-} {-# language NamedFieldPuns #-} {-# language OverloadedStrings #-}@@ -55,11 +56,16 @@ import qualified Dhall.Version as Meta import qualified System.Console.ANSI import qualified System.Console.Haskeline.Completion as Haskeline-import qualified System.Console.Haskeline.MonadException as Haskeline import qualified System.Console.Repline as Repline import qualified System.IO import qualified Text.Megaparsec as Megaparsec +#if MIN_VERSION_haskeline(0,8,0)+import qualified Control.Monad.Catch+#else+import qualified System.Console.Haskeline.MonadException+#endif+ type Repl = Repline.HaskelineT (State.StateT Env IO) -- | Implementation of the @dhall repl@ subcommand@@ -293,9 +299,7 @@ pure $ saveFilePrefix <> "-" <> show nextIndex -loadBinding- :: ( MonadFail m, MonadIO m, MonadState Env m, Haskeline.MonadException m )- => [String] -> m ()+loadBinding :: [String] -> Repl () loadBinding [] = do mFile <- currentSaveFile @@ -402,7 +406,7 @@ liftIO (throwIO Interrupt) help- :: ( Haskeline.MonadException m, MonadFail m, MonadIO m, MonadState Env m )+ :: ( MonadFail m, MonadIO m, MonadState Env m ) => HelpOptions m -> [String] -> m () help hs _ = do liftIO (putStrLn "Type any expression to normalize it or use one of the following commands:")@@ -425,9 +429,7 @@ type HelpOptions m = [HelpOption m] -helpOptions- :: ( Haskeline.MonadException m, MonadFail m, MonadIO m, MonadState Env m )- => HelpOptions m+helpOptions :: HelpOptions Repl helpOptions = [ HelpOption "help"@@ -481,9 +483,7 @@ cmdQuit ] -options- :: ( Haskeline.MonadException m, MonadFail m, MonadIO m, MonadState Env m )- => Repline.Options m+options :: Repline.Options Repl options = (\h -> (helpOptionName h, helpOptionFunction h)) <$> helpOptions completer@@ -579,9 +579,13 @@ in liftIO (putStrLn message) -dontCrash :: ( MonadIO m, Haskeline.MonadException m ) => m () -> m ()+dontCrash :: Repl () -> Repl () dontCrash m =- Haskeline.catch+#if MIN_VERSION_haskeline(0,8,0)+ Control.Monad.Catch.catch+#else+ System.Console.Haskeline.MonadException.catch+#endif m ( \ e@SomeException{} -> liftIO ( putStrLn ( displayException e ) ) )
@@ -3,6 +3,7 @@ {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DeriveLift #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedLists #-}@@ -101,7 +102,6 @@ import qualified Data.Text.Prettyprint.Doc as Pretty import qualified Dhall.Crypto import qualified Dhall.Optics as Optics-import qualified Language.Haskell.TH.Syntax as Syntax import qualified Network.URI as URI {-| Constants for a pure type system@@ -124,10 +124,7 @@ Dhall is not a dependently typed language -} data Const = Type | Kind | Sort- deriving (Show, Eq, Ord, Data, Bounded, Enum, Generic, NFData)--instance Lift Const where- lift = Syntax.liftData+ deriving (Show, Eq, Ord, Data, Bounded, Enum, Generic, Lift, NFData) instance Pretty Const where pretty = Pretty.unAnnotate . prettyConst@@ -165,10 +162,7 @@ appear as a numeric suffix. -} data Var = V Text !Int- deriving (Data, Generic, Eq, Ord, Show, NFData)--instance Lift Var where- lift = Syntax.liftData+ deriving (Data, Generic, Eq, Ord, Show, Lift, NFData) instance IsString Var where fromString str = V (fromString str) 0@@ -196,7 +190,7 @@ , annotation :: Maybe (Maybe s, Expr s a) , bindingSrc2 :: Maybe s , value :: Expr s a- } deriving (Data, Eq, Foldable, Functor, Generic, NFData, Ord, Show, Traversable)+ } deriving (Data, Eq, Foldable, Functor, Generic, Lift, NFData, Ord, Show, Traversable) instance Bifunctor Binding where first k (Binding src0 a src1 b src2 c) =@@ -214,7 +208,7 @@ -- | This wrapper around 'Prelude.Double' exists for its 'Eq' instance which is -- defined via the binary encoding of Dhall @Double@s. newtype DhallDouble = DhallDouble { getDhallDouble :: Double }- deriving (Show, Data, NFData, Generic)+ deriving (Show, Data, Lift, NFData, Generic) -- | This instance satisfies all the customary 'Eq' laws except substitutivity. --@@ -245,10 +239,7 @@ -- | The body of an interpolated @Text@ literal data Chunks s a = Chunks [(Text, Expr s a)] Text- deriving (Functor, Foldable, Generic, Traversable, Show, Eq, Ord, Data, NFData)--instance (Lift s, Lift a, Data s, Data a) => Lift (Chunks s a) where- lift = Syntax.liftData+ deriving (Functor, Foldable, Generic, Traversable, Show, Eq, Ord, Data, Lift, NFData) instance Data.Semigroup.Semigroup (Chunks s a) where Chunks xysL zL <> Chunks [] zR =@@ -273,7 +264,7 @@ | PreferFromWith (Expr s a) -- ^ Stores the original @with@ expression | PreferFromCompletion- deriving (Data, Eq, Foldable, Functor, Generic, NFData, Ord, Show, Traversable)+ deriving (Data, Eq, Foldable, Functor, Generic, Lift, NFData, Ord, Show, Traversable) instance Bifunctor PreferAnnotation where first _ PreferFromSource = PreferFromSource@@ -480,7 +471,7 @@ | ImportAlt (Expr s a) (Expr s a) -- | > Embed import ~ import | Embed a- deriving (Foldable, Generic, Traversable, Show, Data, NFData)+ deriving (Foldable, Generic, Traversable, Show, Data, Lift, NFData) -- NB: If you add a constructor to Expr, please also update the Arbitrary -- instance in Dhall.Test.QuickCheck. @@ -496,9 +487,6 @@ -- | Note that this 'Ord' instance inherits `DhallDouble`'s defects. deriving instance (Ord s, Ord a) => Ord (Expr s a)--instance (Lift s, Lift a, Data s, Data a) => Lift (Expr s a) where- lift = Syntax.liftData -- This instance is hand-written due to the fact that deriving -- it does not give us an INLINABLE pragma. We annotate this fmap
@@ -69,7 +69,7 @@ preview = Data.Text.unlines header- <> separator <> "\n"+ <> Data.Text.take 80 separator <> "\n" <> Data.Text.unlines footer {-| Like `snip`, but for `Doc`s
@@ -44,6 +44,7 @@ , issue1341 , issue1584 , issue1646+ , issue1732 , parsing0 , typeChecking0 , typeChecking1@@ -194,6 +195,13 @@ -- This test ensures that the parser doesn't eagerly consume trailing -- whitespace after a `Double` _ <- Util.code "./tests/regression/issue1646.dhall"+ return () )++issue1732 :: TestTree+issue1732 = Test.Tasty.HUnit.testCase "Issue #1732" (do+ -- This test ensures that the parser allows whitespace after a record pun+ -- entry+ _ <- Util.code "./tests/regression/issue1732.dhall" return () ) parsing0 :: TestTree
@@ -50,13 +50,13 @@ [ toRule { host = "localhost" , path = "/"- , serviceName = serviceName+ , serviceName , servicePort = gatewayPort } , toRule { host = "localhost" , path = "/"- , serviceName = serviceName+ , serviceName , servicePort = apiPort } ]
@@ -0,0 +1,1 @@+{ x = x, y = 1, z = z }
@@ -0,0 +1,1 @@+{ x, y = 1, z }
@@ -0,0 +1,1 @@+let x = 0 in { x , a = 0 }