From bf568992f4e8da2b17c7bd542809e56f09211b59 Mon Sep 17 00:00:00 2001 From: Gabriel Gonzalez Date: Sat, 20 Jul 2019 17:42:53 -0700 Subject: [PATCH] Add CBOR diagnostic files for ease of code review Fixes https://github.com/dhall-lang/dhall-lang/issues/656 This adds a human-readable `.diag` file containing the CBOR diagnostic representation for the corresponding `.dhallb` file, for ease of reviewing changes to encoded expressions. This also adds: * A new `./scripts/generate-diagnostic-files.sh` script for keeping the `*.diag` files up-to-date * A new CI check to ensure the contributor hasn't forgotten to update those files This also removes the `./tests/diff-binary.sh` script since it's no longer necessary. --- release.nix | 27 ++++++++++-- scripts/generate-diagnostic-files.sh | 5 +++ tests/README.md | 8 ++-- .../failure/unit/ApplyNoArgs.diag | 1 + .../unit/LambdaExplicitlyNamedUnderscore.diag | 1 + .../failure/unit/ListOneWithAnnotation.diag | 1 + .../failure/unit/NaturalNegativeOne.diag | 1 + .../failure/unit/OperatorOrTooFewArgs.diag | 1 + .../failure/unit/OperatorOrTooManyArgs.diag | 1 + .../failure/unit/OperatorUnknownOpcode.diag | 1 + .../unit/PiExplicitlyNamedUnderscore.diag | 1 + .../VariableExplicitlyNamedUnderscore.diag | 1 + .../success/unit/AnnotationA.diag | 1 + .../success/unit/ApplicationA.diag | 1 + .../success/unit/ApplicationMultipleA.diag | 1 + .../success/unit/BoolFalseA.diag | 1 + tests/binary-decode/success/unit/BoolIfA.diag | 1 + .../binary-decode/success/unit/BoolTrueA.diag | 1 + .../success/unit/BuiltinNaturalShowA.diag | 1 + .../success/unit/DoubleDoubleA.diag | 1 + .../success/unit/DoubleHalfA.diag | 1 + .../success/unit/DoubleInfinityA.diag | 1 + .../success/unit/DoubleNegativeInfinityA.diag | 1 + .../success/unit/DoubleSingleA.diag | 1 + .../success/unit/IntegerNegativeOneA.diag | 1 + .../success/unit/IntegerZeroA.diag | 1 + .../success/unit/LambdaNamedXA.diag | 1 + .../success/unit/LambdaUnderscoreA.diag | 1 + .../success/unit/LetMultipleA.diag | 1 + .../success/unit/LetOneTypedA.diag | 1 + .../success/unit/LetOneUntypedA.diag | 1 + .../success/unit/ListEmptyA.diag | 1 + .../binary-decode/success/unit/ListOneA.diag | 1 + .../success/unit/MergeAnnotatedA.diag | 1 + .../success/unit/MergeUnannotatedA.diag | 1 + .../success/unit/NaturalTwentyFourA.diag | 1 + .../success/unit/NaturalZeroA.diag | 1 + .../success/unit/OperatorAndA.diag | 1 + .../success/unit/OperatorCombineA.diag | 1 + .../success/unit/OperatorCombineTypesA.diag | 1 + .../success/unit/OperatorEqA.diag | 1 + .../success/unit/OperatorImportAltA.diag | 1 + .../success/unit/OperatorListAppendA.diag | 1 + .../success/unit/OperatorNeqA.diag | 1 + .../success/unit/OperatorOrA.diag | 1 + .../success/unit/OperatorPlusA.diag | 1 + .../success/unit/OperatorPreferA.diag | 1 + .../success/unit/OperatorTextAppendA.diag | 1 + .../success/unit/OperatorTimesA.diag | 1 + .../binary-decode/success/unit/PiNamedXA.diag | 1 + .../success/unit/PiUnderscoreA.diag | 1 + .../success/unit/RecordFieldAccessA.diag | 1 + .../success/unit/RecordLiteralA.diag | 1 + .../success/unit/RecordProjectFieldsA.diag | 1 + .../success/unit/RecordTypeA.diag | 1 + .../success/unit/SelfDescribeCBORX2A.diag | 1 + .../success/unit/SelfDescribeCBORX3A.diag | 1 + .../success/unit/SelfDescribeCBORXA.diag | 1 + tests/binary-decode/success/unit/SomeA.diag | 1 + .../success/unit/TextInterpolatedA.diag | 1 + .../success/unit/TextSimpleA.diag | 1 + .../success/unit/UnionTypeA.diag | 1 + .../success/unit/VariableNamedA.diag | 1 + .../unit/VariableNamedOversizedIntA.diag | 1 + .../success/unit/VariableUnderscoreA.diag | 1 + .../unit/VariableUnderscoreOversizedIntA.diag | 1 + .../unit/imports/EnvironmentVariableA.diag | 1 + .../unit/imports/HttpImportWithQueryA.diag | 1 + .../unit/imports/HttpImportWithoutQueryA.diag | 1 + .../imports/HttpsImportWithEmptyQueryA.diag | 1 + .../unit/imports/HttpsImportWithQueryA.diag | 1 + .../HttpsImportWithTrickyPathCharsA.diag | 1 + .../HttpsImportWithTrickyQueryCharsA.diag | 1 + .../imports/HttpsImportWithoutQueryA.diag | 1 + .../unit/imports/LocalHereImportA.diag | 1 + .../unit/imports/LocalHomeImportA.diag | 1 + .../unit/imports/LocalParentImportA.diag | 1 + .../unit/imports/LocalRootImportA.diag | 1 + .../success/unit/imports/MissingA.diag | 1 + .../unit/recordProjectionByExpressionA.diag | 1 + tests/diff-binary.sh | 43 ------------------- tests/parser/success/annotationsB.diag | 1 + tests/parser/success/blockCommentB.diag | 1 + tests/parser/success/builtinNameAsFieldB.diag | 1 + tests/parser/success/builtinsB.diag | 1 + .../parser/success/collectionImportTypeB.diag | 1 + tests/parser/success/doubleB.diag | 1 + tests/parser/success/fieldsB.diag | 1 + tests/parser/success/forallB.diag | 1 + tests/parser/success/functionTypeB.diag | 1 + tests/parser/success/identifierB.diag | 1 + tests/parser/success/ifThenElseB.diag | 1 + tests/parser/success/labelB.diag | 1 + tests/parser/success/lambdaB.diag | 1 + tests/parser/success/largeExpressionB.diag | 1 + tests/parser/success/leadingTabsB.diag | 1 + tests/parser/success/letB.diag | 1 + tests/parser/success/lineCommentB.diag | 1 + tests/parser/success/listB.diag | 1 + tests/parser/success/mergeB.diag | 1 + tests/parser/success/multiletB.diag | 1 + tests/parser/success/naturalB.diag | 1 + tests/parser/success/nestedBlockCommentB.diag | 1 + tests/parser/success/operatorsB.diag | 1 + .../parser/success/quotedBoundVariableB.diag | 1 + tests/parser/success/quotedLabelB.diag | 1 + tests/parser/success/recordB.diag | 1 + .../recordProjectionByExpressionB.diag | 1 + tests/parser/success/reservedPrefixB.diag | 1 + .../success/text/doubleQuotedStringB.diag | 1 + tests/parser/success/text/escapeB.diag | 1 + .../text/escapedDoubleQuotedStringB.diag | 1 + .../text/escapedSingleQuotedStringB.diag | 1 + tests/parser/success/text/interestingB.diag | 1 + .../parser/success/text/interiorIndentB.diag | 1 + .../text/interpolatedDoubleQuotedStringB.diag | 1 + .../text/interpolatedSingleQuotedStringB.diag | 1 + tests/parser/success/text/interpolationB.diag | 1 + .../success/text/multilineBlankLineB.diag | 1 + .../success/text/multilineBlankLineCrlfB.diag | 1 + .../multilineCorruptedLeadingWhitespaceB.diag | 1 + .../text/multilineIndentedAndAlignedB.diag | 1 + ...multilineMismatchedLeadingWhitespaceB.diag | 1 + tests/parser/success/text/multilineTabsB.diag | 1 + .../parser/success/text/preserveCommentB.diag | 1 + tests/parser/success/text/singleLineB.diag | 1 + .../success/text/singleQuotedStringB.diag | 1 + tests/parser/success/text/templateB.diag | 1 + tests/parser/success/text/twoLinesB.diag | 1 + .../text/unicodeDoubleQuotedStringB.diag | 1 + tests/parser/success/toMapB.diag | 1 + tests/parser/success/unicodeCommentB.diag | 1 + tests/parser/success/unionB.diag | 1 + tests/parser/success/unit/BoolB.diag | 1 + tests/parser/success/unit/BoolLitTrueB.diag | 1 + tests/parser/success/unit/ForallB.diag | 1 + tests/parser/success/unit/ForallNestedB.diag | 1 + .../success/unit/ForallUnderscoreB.diag | 1 + .../success/unit/IntegerLitNegativeB.diag | 1 + .../success/unit/IntegerLitPositiveB.diag | 1 + tests/parser/success/unit/KindB.diag | 1 + tests/parser/success/unit/LambdaB.diag | 1 + tests/parser/success/unit/LambdaNestedB.diag | 1 + .../success/unit/LambdaUnderscoreB.diag | 1 + tests/parser/success/unit/ListLitEmpty1B.diag | 1 + tests/parser/success/unit/ListLitEmpty2B.diag | 1 + .../parser/success/unit/MergeAnnotationB.diag | 1 + .../unit/MergeAnnotationPrecedenceB.diag | 1 + tests/parser/success/unit/MergeB.diag | 1 + .../success/unit/MergeParenAnnotationB.diag | 1 + tests/parser/success/unit/MergeXYZB.diag | 1 + tests/parser/success/unit/NaturalLitB.diag | 1 + tests/parser/success/unit/QuotedBoolB.diag | 1 + tests/parser/success/unit/QuotedTrueB.diag | 1 + tests/parser/success/unit/QuotedTypeB.diag | 1 + .../parser/success/unit/QuotedVariableB.diag | 1 + .../success/unit/RecordFieldAccessB.diag | 1 + .../success/unit/RecordProjectFieldsB.diag | 1 + .../success/unit/RecordProjectionByTypeB.diag | 1 + .../unit/RecordProjectionByTypeEmptyB.diag | 1 + tests/parser/success/unit/SomeXB.diag | 1 + tests/parser/success/unit/SomeXYZB.diag | 1 + tests/parser/success/unit/SortB.diag | 1 + tests/parser/success/unit/TypeB.diag | 1 + tests/parser/success/unit/UnionLit1B.diag | 1 + tests/parser/success/unit/UnionLit2B.diag | 1 + .../parser/success/unit/UnionTypeEmptyB.diag | 1 + tests/parser/success/unit/UnionTypeXB.diag | 1 + tests/parser/success/unit/UnionTypeXTYB.diag | 1 + tests/parser/success/unit/UnionTypeXTYUB.diag | 1 + tests/parser/success/unit/UnionTypeXYB.diag | 1 + tests/parser/success/unit/UnionTypeXYTB.diag | 1 + tests/parser/success/unit/VariableB.diag | 1 + .../success/unit/VariableUnderscoreB.diag | 1 + .../success/unit/import/asLocationB.diag | 1 + tests/parser/success/unit/import/asTextB.diag | 1 + .../unit/import/environmentVariableBashB.diag | 1 + .../import/environmentVariablePosixB.diag | 1 + tests/parser/success/unit/import/hashB.diag | 1 + .../success/unit/import/importAltB.diag | 1 + .../success/unit/import/inlineUsingB.diag | 1 + .../unit/import/parenthesizeUsingB.diag | 1 + .../success/unit/import/pathAbsoluteB.diag | 1 + .../parser/success/unit/import/pathHereB.diag | 1 + .../parser/success/unit/import/pathHomeB.diag | 1 + .../success/unit/import/pathParentB.diag | 1 + .../unit/import/pathTerminationLambdaB.diag | 1 + .../unit/import/pathTerminationListB.diag | 1 + .../unit/import/pathTerminationRecordB.diag | 1 + .../unit/import/pathTerminationUnionB.diag | 1 + .../success/unit/import/quotedPathsB.diag | 1 + .../success/unit/import/unicodePathsB.diag | 1 + .../success/unit/import/urls/basicHttpB.diag | 1 + .../success/unit/import/urls/basicHttpsB.diag | 1 + .../success/unit/import/urls/emptyPath0B.diag | 1 + .../success/unit/import/urls/emptyPath1B.diag | 1 + .../unit/import/urls/emptyPathSegmentB.diag | 1 + .../success/unit/import/urls/emptyQueryB.diag | 1 + .../unit/import/urls/escapedPathB.diag | 1 + .../unit/import/urls/escapedQueryB.diag | 1 + .../urls/fragmentParsesAsListAppendB.diag | 1 + .../success/unit/import/urls/ipv4B.diag | 1 + .../success/unit/import/urls/ipv6longB.diag | 1 + .../success/unit/import/urls/ipv6mediumB.diag | 1 + .../success/unit/import/urls/ipv6shortB.diag | 1 + .../unit/import/urls/ipv6withipv4B.diag | 1 + .../success/unit/import/urls/portB.diag | 1 + .../success/unit/import/urls/potPourriB.diag | 1 + .../import/urls/quotedPathFakeUrlEncodeB.diag | 1 + .../success/unit/import/urls/userinfoB.diag | 1 + tests/parser/success/whitespaceB.diag | 1 + tests/parser/success/whitespaceBuffetB.diag | 1 + 212 files changed, 242 insertions(+), 49 deletions(-) create mode 100755 scripts/generate-diagnostic-files.sh create mode 100644 tests/binary-decode/failure/unit/ApplyNoArgs.diag create mode 100644 tests/binary-decode/failure/unit/LambdaExplicitlyNamedUnderscore.diag create mode 100644 tests/binary-decode/failure/unit/ListOneWithAnnotation.diag create mode 100644 tests/binary-decode/failure/unit/NaturalNegativeOne.diag create mode 100644 tests/binary-decode/failure/unit/OperatorOrTooFewArgs.diag create mode 100644 tests/binary-decode/failure/unit/OperatorOrTooManyArgs.diag create mode 100644 tests/binary-decode/failure/unit/OperatorUnknownOpcode.diag create mode 100644 tests/binary-decode/failure/unit/PiExplicitlyNamedUnderscore.diag create mode 100644 tests/binary-decode/failure/unit/VariableExplicitlyNamedUnderscore.diag create mode 100644 tests/binary-decode/success/unit/AnnotationA.diag create mode 100644 tests/binary-decode/success/unit/ApplicationA.diag create mode 100644 tests/binary-decode/success/unit/ApplicationMultipleA.diag create mode 100644 tests/binary-decode/success/unit/BoolFalseA.diag create mode 100644 tests/binary-decode/success/unit/BoolIfA.diag create mode 100644 tests/binary-decode/success/unit/BoolTrueA.diag create mode 100644 tests/binary-decode/success/unit/BuiltinNaturalShowA.diag create mode 100644 tests/binary-decode/success/unit/DoubleDoubleA.diag create mode 100644 tests/binary-decode/success/unit/DoubleHalfA.diag create mode 100644 tests/binary-decode/success/unit/DoubleInfinityA.diag create mode 100644 tests/binary-decode/success/unit/DoubleNegativeInfinityA.diag create mode 100644 tests/binary-decode/success/unit/DoubleSingleA.diag create mode 100644 tests/binary-decode/success/unit/IntegerNegativeOneA.diag create mode 100644 tests/binary-decode/success/unit/IntegerZeroA.diag create mode 100644 tests/binary-decode/success/unit/LambdaNamedXA.diag create mode 100644 tests/binary-decode/success/unit/LambdaUnderscoreA.diag create mode 100644 tests/binary-decode/success/unit/LetMultipleA.diag create mode 100644 tests/binary-decode/success/unit/LetOneTypedA.diag create mode 100644 tests/binary-decode/success/unit/LetOneUntypedA.diag create mode 100644 tests/binary-decode/success/unit/ListEmptyA.diag create mode 100644 tests/binary-decode/success/unit/ListOneA.diag create mode 100644 tests/binary-decode/success/unit/MergeAnnotatedA.diag create mode 100644 tests/binary-decode/success/unit/MergeUnannotatedA.diag create mode 100644 tests/binary-decode/success/unit/NaturalTwentyFourA.diag create mode 100644 tests/binary-decode/success/unit/NaturalZeroA.diag create mode 100644 tests/binary-decode/success/unit/OperatorAndA.diag create mode 100644 tests/binary-decode/success/unit/OperatorCombineA.diag create mode 100644 tests/binary-decode/success/unit/OperatorCombineTypesA.diag create mode 100644 tests/binary-decode/success/unit/OperatorEqA.diag create mode 100644 tests/binary-decode/success/unit/OperatorImportAltA.diag create mode 100644 tests/binary-decode/success/unit/OperatorListAppendA.diag create mode 100644 tests/binary-decode/success/unit/OperatorNeqA.diag create mode 100644 tests/binary-decode/success/unit/OperatorOrA.diag create mode 100644 tests/binary-decode/success/unit/OperatorPlusA.diag create mode 100644 tests/binary-decode/success/unit/OperatorPreferA.diag create mode 100644 tests/binary-decode/success/unit/OperatorTextAppendA.diag create mode 100644 tests/binary-decode/success/unit/OperatorTimesA.diag create mode 100644 tests/binary-decode/success/unit/PiNamedXA.diag create mode 100644 tests/binary-decode/success/unit/PiUnderscoreA.diag create mode 100644 tests/binary-decode/success/unit/RecordFieldAccessA.diag create mode 100644 tests/binary-decode/success/unit/RecordLiteralA.diag create mode 100644 tests/binary-decode/success/unit/RecordProjectFieldsA.diag create mode 100644 tests/binary-decode/success/unit/RecordTypeA.diag create mode 100644 tests/binary-decode/success/unit/SelfDescribeCBORX2A.diag create mode 100644 tests/binary-decode/success/unit/SelfDescribeCBORX3A.diag create mode 100644 tests/binary-decode/success/unit/SelfDescribeCBORXA.diag create mode 100644 tests/binary-decode/success/unit/SomeA.diag create mode 100644 tests/binary-decode/success/unit/TextInterpolatedA.diag create mode 100644 tests/binary-decode/success/unit/TextSimpleA.diag create mode 100644 tests/binary-decode/success/unit/UnionTypeA.diag create mode 100644 tests/binary-decode/success/unit/VariableNamedA.diag create mode 100644 tests/binary-decode/success/unit/VariableNamedOversizedIntA.diag create mode 100644 tests/binary-decode/success/unit/VariableUnderscoreA.diag create mode 100644 tests/binary-decode/success/unit/VariableUnderscoreOversizedIntA.diag create mode 100644 tests/binary-decode/success/unit/imports/EnvironmentVariableA.diag create mode 100644 tests/binary-decode/success/unit/imports/HttpImportWithQueryA.diag create mode 100644 tests/binary-decode/success/unit/imports/HttpImportWithoutQueryA.diag create mode 100644 tests/binary-decode/success/unit/imports/HttpsImportWithEmptyQueryA.diag create mode 100644 tests/binary-decode/success/unit/imports/HttpsImportWithQueryA.diag create mode 100644 tests/binary-decode/success/unit/imports/HttpsImportWithTrickyPathCharsA.diag create mode 100644 tests/binary-decode/success/unit/imports/HttpsImportWithTrickyQueryCharsA.diag create mode 100644 tests/binary-decode/success/unit/imports/HttpsImportWithoutQueryA.diag create mode 100644 tests/binary-decode/success/unit/imports/LocalHereImportA.diag create mode 100644 tests/binary-decode/success/unit/imports/LocalHomeImportA.diag create mode 100644 tests/binary-decode/success/unit/imports/LocalParentImportA.diag create mode 100644 tests/binary-decode/success/unit/imports/LocalRootImportA.diag create mode 100644 tests/binary-decode/success/unit/imports/MissingA.diag create mode 100644 tests/binary-decode/success/unit/recordProjectionByExpressionA.diag delete mode 100755 tests/diff-binary.sh create mode 100644 tests/parser/success/annotationsB.diag create mode 100644 tests/parser/success/blockCommentB.diag create mode 100644 tests/parser/success/builtinNameAsFieldB.diag create mode 100644 tests/parser/success/builtinsB.diag create mode 100644 tests/parser/success/collectionImportTypeB.diag create mode 100644 tests/parser/success/doubleB.diag create mode 100644 tests/parser/success/fieldsB.diag create mode 100644 tests/parser/success/forallB.diag create mode 100644 tests/parser/success/functionTypeB.diag create mode 100644 tests/parser/success/identifierB.diag create mode 100644 tests/parser/success/ifThenElseB.diag create mode 100644 tests/parser/success/labelB.diag create mode 100644 tests/parser/success/lambdaB.diag create mode 100644 tests/parser/success/largeExpressionB.diag create mode 100644 tests/parser/success/leadingTabsB.diag create mode 100644 tests/parser/success/letB.diag create mode 100644 tests/parser/success/lineCommentB.diag create mode 100644 tests/parser/success/listB.diag create mode 100644 tests/parser/success/mergeB.diag create mode 100644 tests/parser/success/multiletB.diag create mode 100644 tests/parser/success/naturalB.diag create mode 100644 tests/parser/success/nestedBlockCommentB.diag create mode 100644 tests/parser/success/operatorsB.diag create mode 100644 tests/parser/success/quotedBoundVariableB.diag create mode 100644 tests/parser/success/quotedLabelB.diag create mode 100644 tests/parser/success/recordB.diag create mode 100644 tests/parser/success/recordProjectionByExpressionB.diag create mode 100644 tests/parser/success/reservedPrefixB.diag create mode 100644 tests/parser/success/text/doubleQuotedStringB.diag create mode 100644 tests/parser/success/text/escapeB.diag create mode 100644 tests/parser/success/text/escapedDoubleQuotedStringB.diag create mode 100644 tests/parser/success/text/escapedSingleQuotedStringB.diag create mode 100644 tests/parser/success/text/interestingB.diag create mode 100644 tests/parser/success/text/interiorIndentB.diag create mode 100644 tests/parser/success/text/interpolatedDoubleQuotedStringB.diag create mode 100644 tests/parser/success/text/interpolatedSingleQuotedStringB.diag create mode 100644 tests/parser/success/text/interpolationB.diag create mode 100644 tests/parser/success/text/multilineBlankLineB.diag create mode 100644 tests/parser/success/text/multilineBlankLineCrlfB.diag create mode 100644 tests/parser/success/text/multilineCorruptedLeadingWhitespaceB.diag create mode 100644 tests/parser/success/text/multilineIndentedAndAlignedB.diag create mode 100644 tests/parser/success/text/multilineMismatchedLeadingWhitespaceB.diag create mode 100644 tests/parser/success/text/multilineTabsB.diag create mode 100644 tests/parser/success/text/preserveCommentB.diag create mode 100644 tests/parser/success/text/singleLineB.diag create mode 100644 tests/parser/success/text/singleQuotedStringB.diag create mode 100644 tests/parser/success/text/templateB.diag create mode 100644 tests/parser/success/text/twoLinesB.diag create mode 100644 tests/parser/success/text/unicodeDoubleQuotedStringB.diag create mode 100644 tests/parser/success/toMapB.diag create mode 100644 tests/parser/success/unicodeCommentB.diag create mode 100644 tests/parser/success/unionB.diag create mode 100644 tests/parser/success/unit/BoolB.diag create mode 100644 tests/parser/success/unit/BoolLitTrueB.diag create mode 100644 tests/parser/success/unit/ForallB.diag create mode 100644 tests/parser/success/unit/ForallNestedB.diag create mode 100644 tests/parser/success/unit/ForallUnderscoreB.diag create mode 100644 tests/parser/success/unit/IntegerLitNegativeB.diag create mode 100644 tests/parser/success/unit/IntegerLitPositiveB.diag create mode 100644 tests/parser/success/unit/KindB.diag create mode 100644 tests/parser/success/unit/LambdaB.diag create mode 100644 tests/parser/success/unit/LambdaNestedB.diag create mode 100644 tests/parser/success/unit/LambdaUnderscoreB.diag create mode 100644 tests/parser/success/unit/ListLitEmpty1B.diag create mode 100644 tests/parser/success/unit/ListLitEmpty2B.diag create mode 100644 tests/parser/success/unit/MergeAnnotationB.diag create mode 100644 tests/parser/success/unit/MergeAnnotationPrecedenceB.diag create mode 100644 tests/parser/success/unit/MergeB.diag create mode 100644 tests/parser/success/unit/MergeParenAnnotationB.diag create mode 100644 tests/parser/success/unit/MergeXYZB.diag create mode 100644 tests/parser/success/unit/NaturalLitB.diag create mode 100644 tests/parser/success/unit/QuotedBoolB.diag create mode 100644 tests/parser/success/unit/QuotedTrueB.diag create mode 100644 tests/parser/success/unit/QuotedTypeB.diag create mode 100644 tests/parser/success/unit/QuotedVariableB.diag create mode 100644 tests/parser/success/unit/RecordFieldAccessB.diag create mode 100644 tests/parser/success/unit/RecordProjectFieldsB.diag create mode 100644 tests/parser/success/unit/RecordProjectionByTypeB.diag create mode 100644 tests/parser/success/unit/RecordProjectionByTypeEmptyB.diag create mode 100644 tests/parser/success/unit/SomeXB.diag create mode 100644 tests/parser/success/unit/SomeXYZB.diag create mode 100644 tests/parser/success/unit/SortB.diag create mode 100644 tests/parser/success/unit/TypeB.diag create mode 100644 tests/parser/success/unit/UnionLit1B.diag create mode 100644 tests/parser/success/unit/UnionLit2B.diag create mode 100644 tests/parser/success/unit/UnionTypeEmptyB.diag create mode 100644 tests/parser/success/unit/UnionTypeXB.diag create mode 100644 tests/parser/success/unit/UnionTypeXTYB.diag create mode 100644 tests/parser/success/unit/UnionTypeXTYUB.diag create mode 100644 tests/parser/success/unit/UnionTypeXYB.diag create mode 100644 tests/parser/success/unit/UnionTypeXYTB.diag create mode 100644 tests/parser/success/unit/VariableB.diag create mode 100644 tests/parser/success/unit/VariableUnderscoreB.diag create mode 100644 tests/parser/success/unit/import/asLocationB.diag create mode 100644 tests/parser/success/unit/import/asTextB.diag create mode 100644 tests/parser/success/unit/import/environmentVariableBashB.diag create mode 100644 tests/parser/success/unit/import/environmentVariablePosixB.diag create mode 100644 tests/parser/success/unit/import/hashB.diag create mode 100644 tests/parser/success/unit/import/importAltB.diag create mode 100644 tests/parser/success/unit/import/inlineUsingB.diag create mode 100644 tests/parser/success/unit/import/parenthesizeUsingB.diag create mode 100644 tests/parser/success/unit/import/pathAbsoluteB.diag create mode 100644 tests/parser/success/unit/import/pathHereB.diag create mode 100644 tests/parser/success/unit/import/pathHomeB.diag create mode 100644 tests/parser/success/unit/import/pathParentB.diag create mode 100644 tests/parser/success/unit/import/pathTerminationLambdaB.diag create mode 100644 tests/parser/success/unit/import/pathTerminationListB.diag create mode 100644 tests/parser/success/unit/import/pathTerminationRecordB.diag create mode 100644 tests/parser/success/unit/import/pathTerminationUnionB.diag create mode 100644 tests/parser/success/unit/import/quotedPathsB.diag create mode 100644 tests/parser/success/unit/import/unicodePathsB.diag create mode 100644 tests/parser/success/unit/import/urls/basicHttpB.diag create mode 100644 tests/parser/success/unit/import/urls/basicHttpsB.diag create mode 100644 tests/parser/success/unit/import/urls/emptyPath0B.diag create mode 100644 tests/parser/success/unit/import/urls/emptyPath1B.diag create mode 100644 tests/parser/success/unit/import/urls/emptyPathSegmentB.diag create mode 100644 tests/parser/success/unit/import/urls/emptyQueryB.diag create mode 100644 tests/parser/success/unit/import/urls/escapedPathB.diag create mode 100644 tests/parser/success/unit/import/urls/escapedQueryB.diag create mode 100644 tests/parser/success/unit/import/urls/fragmentParsesAsListAppendB.diag create mode 100644 tests/parser/success/unit/import/urls/ipv4B.diag create mode 100644 tests/parser/success/unit/import/urls/ipv6longB.diag create mode 100644 tests/parser/success/unit/import/urls/ipv6mediumB.diag create mode 100644 tests/parser/success/unit/import/urls/ipv6shortB.diag create mode 100644 tests/parser/success/unit/import/urls/ipv6withipv4B.diag create mode 100644 tests/parser/success/unit/import/urls/portB.diag create mode 100644 tests/parser/success/unit/import/urls/potPourriB.diag create mode 100644 tests/parser/success/unit/import/urls/quotedPathFakeUrlEncodeB.diag create mode 100644 tests/parser/success/unit/import/urls/userinfoB.diag create mode 100644 tests/parser/success/whitespaceB.diag create mode 100644 tests/parser/success/whitespaceBuffetB.diag diff --git a/release.nix b/release.nix index 77b0aff1b..8fe8c3dff 100644 --- a/release.nix +++ b/release.nix @@ -3,9 +3,9 @@ let nixpkgs = builtins.fetchTarball { - url = "https://github.com/NixOS/nixpkgs/archive/804060ff9a79ceb0925fe9ef79ddbf564a225d47.tar.gz"; + url = "https://github.com/NixOS/nixpkgs/archive/55b8860aa209e987f6f15c523811e4861d97d6af.tar.gz"; - sha256 = "0ga345hgw6v2kzyhvf5kw96hf60mx5pbd9c4qj5q4nan4lr7nkxn"; + sha256 = "0ri58704vwv6gnyw33vjirgnvh2f1201vbflk0ydj5ff7vpyy7hf"; }; overlay = pkgsNew: pkgsOld: { @@ -62,6 +62,17 @@ let touch $out ''; + expected-diagnostic-files = + pkgsNew.runCommand "expected-diagnostic-files" {} '' + ${pkgsNew.rsync}/bin/rsync --archive ${./tests}/ "$out" + + ${pkgsNew.coreutils}/bin/chmod --recursive u+w "$out" + + for FILE in $(${pkgsNew.findutils}/bin/find "$out" -type f -name '*.dhallb'); do + ${pkgsNew.cbor-diag}/bin/cbor2diag.rb "$FILE" > "''${FILE%.dhallb}.diag" + done + ''; + expected-prelude = pkgsNew.runCommand "expected-prelude" {} '' ${pkgsNew.rsync}/bin/rsync --archive ${./Prelude}/ "$out" @@ -73,6 +84,15 @@ let done ''; + diagnostic-files-lint = pkgsNew.runCommand "diagnostic-files-lint" {} '' + ${pkgsNew.rsync}/bin/rsync --archive ${pkgsNew.expected-diagnostic-files}/ ./tests.expected + ${pkgsNew.rsync}/bin/rsync --archive ${./tests}/ ./tests.actual + + ${pkgsNew.diffutils}/bin/diff --recursive ./tests.{actual,expected} + + touch $out + ''; + prelude-lint = pkgsNew.runCommand "prelude-lint" {} '' ${pkgsNew.rsync}/bin/rsync --archive ${pkgsNew.expected-prelude}/ ./Prelude.expected ${pkgsNew.rsync}/bin/rsync --archive ${./Prelude}/ ./Prelude.actual @@ -114,9 +134,10 @@ in pkgs.dhall-grammar pkgs.ensure-trailing-newlines pkgs.prelude-lint + pkgs.diagnostic-files-lint rev ]; }; - inherit (pkgs) expected-prelude; + inherit (pkgs) expected-prelude expected-diagnostic-files; } diff --git a/scripts/generate-diagnostic-files.sh b/scripts/generate-diagnostic-files.sh new file mode 100755 index 000000000..81465b7c1 --- /dev/null +++ b/scripts/generate-diagnostic-files.sh @@ -0,0 +1,5 @@ +set -eu + +nix build --file ./release.nix expected-diagnostic-files +rsync --archive --checksum --delete result/ ./tests +chmod -R u+w ./tests diff --git a/tests/README.md b/tests/README.md index f8963660e..4670032b4 100644 --- a/tests/README.md +++ b/tests/README.md @@ -58,9 +58,11 @@ Where `A` and `B` are: - `A`: a Dhall expression as text - `B`: the binary representation of the Dhall-CBOR-encoded expression -*Note*: since the tests are binary-encoded, they are not the friendliest to debug. -For this reason, you might want to look at the `diff-binary.sh` script to help -with the debugging. +*Note*: Each `B.dhallb` file has a matching `B.diag` file containing the +CBOR diagnostic notation for the encoded expression. You can generate +the `.diag` file using the `./scripts/generate-diagnostic-files.sh` script +and our continuous integration will remind you to do so (by failing if you +don't keep the diagnostic file up-to-date). ### Running `normalization` tests diff --git a/tests/binary-decode/failure/unit/ApplyNoArgs.diag b/tests/binary-decode/failure/unit/ApplyNoArgs.diag new file mode 100644 index 000000000..67619de6c --- /dev/null +++ b/tests/binary-decode/failure/unit/ApplyNoArgs.diag @@ -0,0 +1 @@ +[0, ["f", 0]] diff --git a/tests/binary-decode/failure/unit/LambdaExplicitlyNamedUnderscore.diag b/tests/binary-decode/failure/unit/LambdaExplicitlyNamedUnderscore.diag new file mode 100644 index 000000000..d759d83b9 --- /dev/null +++ b/tests/binary-decode/failure/unit/LambdaExplicitlyNamedUnderscore.diag @@ -0,0 +1 @@ +[1, "_", 0, 0] diff --git a/tests/binary-decode/failure/unit/ListOneWithAnnotation.diag b/tests/binary-decode/failure/unit/ListOneWithAnnotation.diag new file mode 100644 index 000000000..65df66ff5 --- /dev/null +++ b/tests/binary-decode/failure/unit/ListOneWithAnnotation.diag @@ -0,0 +1 @@ +[4, 0, 0] diff --git a/tests/binary-decode/failure/unit/NaturalNegativeOne.diag b/tests/binary-decode/failure/unit/NaturalNegativeOne.diag new file mode 100644 index 000000000..9a035d5d4 --- /dev/null +++ b/tests/binary-decode/failure/unit/NaturalNegativeOne.diag @@ -0,0 +1 @@ +[15, -1] diff --git a/tests/binary-decode/failure/unit/OperatorOrTooFewArgs.diag b/tests/binary-decode/failure/unit/OperatorOrTooFewArgs.diag new file mode 100644 index 000000000..aa02cef6a --- /dev/null +++ b/tests/binary-decode/failure/unit/OperatorOrTooFewArgs.diag @@ -0,0 +1 @@ +[3, 0, 0] diff --git a/tests/binary-decode/failure/unit/OperatorOrTooManyArgs.diag b/tests/binary-decode/failure/unit/OperatorOrTooManyArgs.diag new file mode 100644 index 000000000..3c382518c --- /dev/null +++ b/tests/binary-decode/failure/unit/OperatorOrTooManyArgs.diag @@ -0,0 +1 @@ +[3, 0, 0, 0, 0] diff --git a/tests/binary-decode/failure/unit/OperatorUnknownOpcode.diag b/tests/binary-decode/failure/unit/OperatorUnknownOpcode.diag new file mode 100644 index 000000000..95fb48207 --- /dev/null +++ b/tests/binary-decode/failure/unit/OperatorUnknownOpcode.diag @@ -0,0 +1 @@ +[3, 12, 0, 0] diff --git a/tests/binary-decode/failure/unit/PiExplicitlyNamedUnderscore.diag b/tests/binary-decode/failure/unit/PiExplicitlyNamedUnderscore.diag new file mode 100644 index 000000000..a4f6db6c5 --- /dev/null +++ b/tests/binary-decode/failure/unit/PiExplicitlyNamedUnderscore.diag @@ -0,0 +1 @@ +[2, "_", 0, 0] diff --git a/tests/binary-decode/failure/unit/VariableExplicitlyNamedUnderscore.diag b/tests/binary-decode/failure/unit/VariableExplicitlyNamedUnderscore.diag new file mode 100644 index 000000000..ebd368285 --- /dev/null +++ b/tests/binary-decode/failure/unit/VariableExplicitlyNamedUnderscore.diag @@ -0,0 +1 @@ +["_", 0] diff --git a/tests/binary-decode/success/unit/AnnotationA.diag b/tests/binary-decode/success/unit/AnnotationA.diag new file mode 100644 index 000000000..56a94483c --- /dev/null +++ b/tests/binary-decode/success/unit/AnnotationA.diag @@ -0,0 +1 @@ +[26, [15, 5], "Natural"] diff --git a/tests/binary-decode/success/unit/ApplicationA.diag b/tests/binary-decode/success/unit/ApplicationA.diag new file mode 100644 index 000000000..2705769a4 --- /dev/null +++ b/tests/binary-decode/success/unit/ApplicationA.diag @@ -0,0 +1 @@ +[0, "Natural/show", 0] diff --git a/tests/binary-decode/success/unit/ApplicationMultipleA.diag b/tests/binary-decode/success/unit/ApplicationMultipleA.diag new file mode 100644 index 000000000..6cae83b46 --- /dev/null +++ b/tests/binary-decode/success/unit/ApplicationMultipleA.diag @@ -0,0 +1 @@ +[0, ["f", 0], ["x", 0], ["y", 0], ["z", 0]] diff --git a/tests/binary-decode/success/unit/BoolFalseA.diag b/tests/binary-decode/success/unit/BoolFalseA.diag new file mode 100644 index 000000000..c508d5366 --- /dev/null +++ b/tests/binary-decode/success/unit/BoolFalseA.diag @@ -0,0 +1 @@ +false diff --git a/tests/binary-decode/success/unit/BoolIfA.diag b/tests/binary-decode/success/unit/BoolIfA.diag new file mode 100644 index 000000000..93e9e2c57 --- /dev/null +++ b/tests/binary-decode/success/unit/BoolIfA.diag @@ -0,0 +1 @@ +[14, true, ["x", 0], ["y", 0]] diff --git a/tests/binary-decode/success/unit/BoolTrueA.diag b/tests/binary-decode/success/unit/BoolTrueA.diag new file mode 100644 index 000000000..27ba77dda --- /dev/null +++ b/tests/binary-decode/success/unit/BoolTrueA.diag @@ -0,0 +1 @@ +true diff --git a/tests/binary-decode/success/unit/BuiltinNaturalShowA.diag b/tests/binary-decode/success/unit/BuiltinNaturalShowA.diag new file mode 100644 index 000000000..8033c2139 --- /dev/null +++ b/tests/binary-decode/success/unit/BuiltinNaturalShowA.diag @@ -0,0 +1 @@ +"Natural/show" diff --git a/tests/binary-decode/success/unit/DoubleDoubleA.diag b/tests/binary-decode/success/unit/DoubleDoubleA.diag new file mode 100644 index 000000000..cd5ac039d --- /dev/null +++ b/tests/binary-decode/success/unit/DoubleDoubleA.diag @@ -0,0 +1 @@ +2.0 diff --git a/tests/binary-decode/success/unit/DoubleHalfA.diag b/tests/binary-decode/success/unit/DoubleHalfA.diag new file mode 100644 index 000000000..d3827e75a --- /dev/null +++ b/tests/binary-decode/success/unit/DoubleHalfA.diag @@ -0,0 +1 @@ +1.0 diff --git a/tests/binary-decode/success/unit/DoubleInfinityA.diag b/tests/binary-decode/success/unit/DoubleInfinityA.diag new file mode 100644 index 000000000..3c62151db --- /dev/null +++ b/tests/binary-decode/success/unit/DoubleInfinityA.diag @@ -0,0 +1 @@ +Infinity diff --git a/tests/binary-decode/success/unit/DoubleNegativeInfinityA.diag b/tests/binary-decode/success/unit/DoubleNegativeInfinityA.diag new file mode 100644 index 000000000..879e80ee3 --- /dev/null +++ b/tests/binary-decode/success/unit/DoubleNegativeInfinityA.diag @@ -0,0 +1 @@ +-Infinity diff --git a/tests/binary-decode/success/unit/DoubleSingleA.diag b/tests/binary-decode/success/unit/DoubleSingleA.diag new file mode 100644 index 000000000..cd5ac039d --- /dev/null +++ b/tests/binary-decode/success/unit/DoubleSingleA.diag @@ -0,0 +1 @@ +2.0 diff --git a/tests/binary-decode/success/unit/IntegerNegativeOneA.diag b/tests/binary-decode/success/unit/IntegerNegativeOneA.diag new file mode 100644 index 000000000..89140c9bb --- /dev/null +++ b/tests/binary-decode/success/unit/IntegerNegativeOneA.diag @@ -0,0 +1 @@ +[16, -1] diff --git a/tests/binary-decode/success/unit/IntegerZeroA.diag b/tests/binary-decode/success/unit/IntegerZeroA.diag new file mode 100644 index 000000000..d126f58af --- /dev/null +++ b/tests/binary-decode/success/unit/IntegerZeroA.diag @@ -0,0 +1 @@ +[16, 0] diff --git a/tests/binary-decode/success/unit/LambdaNamedXA.diag b/tests/binary-decode/success/unit/LambdaNamedXA.diag new file mode 100644 index 000000000..46df00c1a --- /dev/null +++ b/tests/binary-decode/success/unit/LambdaNamedXA.diag @@ -0,0 +1 @@ +[1, "x", 0, ["x", 0]] diff --git a/tests/binary-decode/success/unit/LambdaUnderscoreA.diag b/tests/binary-decode/success/unit/LambdaUnderscoreA.diag new file mode 100644 index 000000000..2716f14a2 --- /dev/null +++ b/tests/binary-decode/success/unit/LambdaUnderscoreA.diag @@ -0,0 +1 @@ +[1, "Natural", 0] diff --git a/tests/binary-decode/success/unit/LetMultipleA.diag b/tests/binary-decode/success/unit/LetMultipleA.diag new file mode 100644 index 000000000..4b73e1201 --- /dev/null +++ b/tests/binary-decode/success/unit/LetMultipleA.diag @@ -0,0 +1 @@ +[25, "x", "Natural", [15, 1], "y", null, [15, 2], ["x", 0]] diff --git a/tests/binary-decode/success/unit/LetOneTypedA.diag b/tests/binary-decode/success/unit/LetOneTypedA.diag new file mode 100644 index 000000000..b0650708f --- /dev/null +++ b/tests/binary-decode/success/unit/LetOneTypedA.diag @@ -0,0 +1 @@ +[25, "x", "Natural", [15, 1], ["x", 0]] diff --git a/tests/binary-decode/success/unit/LetOneUntypedA.diag b/tests/binary-decode/success/unit/LetOneUntypedA.diag new file mode 100644 index 000000000..826f72f57 --- /dev/null +++ b/tests/binary-decode/success/unit/LetOneUntypedA.diag @@ -0,0 +1 @@ +[25, "x", null, [15, 1], ["x", 0]] diff --git a/tests/binary-decode/success/unit/ListEmptyA.diag b/tests/binary-decode/success/unit/ListEmptyA.diag new file mode 100644 index 000000000..577d33b85 --- /dev/null +++ b/tests/binary-decode/success/unit/ListEmptyA.diag @@ -0,0 +1 @@ +[4, "Natural"] diff --git a/tests/binary-decode/success/unit/ListOneA.diag b/tests/binary-decode/success/unit/ListOneA.diag new file mode 100644 index 000000000..935ccdcdb --- /dev/null +++ b/tests/binary-decode/success/unit/ListOneA.diag @@ -0,0 +1 @@ +[4, null, 0] diff --git a/tests/binary-decode/success/unit/MergeAnnotatedA.diag b/tests/binary-decode/success/unit/MergeAnnotatedA.diag new file mode 100644 index 000000000..3dd0d7311 --- /dev/null +++ b/tests/binary-decode/success/unit/MergeAnnotatedA.diag @@ -0,0 +1 @@ +[6, 0, 1, 2] diff --git a/tests/binary-decode/success/unit/MergeUnannotatedA.diag b/tests/binary-decode/success/unit/MergeUnannotatedA.diag new file mode 100644 index 000000000..f93592c03 --- /dev/null +++ b/tests/binary-decode/success/unit/MergeUnannotatedA.diag @@ -0,0 +1 @@ +[6, 0, 1] diff --git a/tests/binary-decode/success/unit/NaturalTwentyFourA.diag b/tests/binary-decode/success/unit/NaturalTwentyFourA.diag new file mode 100644 index 000000000..84d527c02 --- /dev/null +++ b/tests/binary-decode/success/unit/NaturalTwentyFourA.diag @@ -0,0 +1 @@ +[15, 24] diff --git a/tests/binary-decode/success/unit/NaturalZeroA.diag b/tests/binary-decode/success/unit/NaturalZeroA.diag new file mode 100644 index 000000000..06dadc3b9 --- /dev/null +++ b/tests/binary-decode/success/unit/NaturalZeroA.diag @@ -0,0 +1 @@ +[15, 0] diff --git a/tests/binary-decode/success/unit/OperatorAndA.diag b/tests/binary-decode/success/unit/OperatorAndA.diag new file mode 100644 index 000000000..ffc9076fb --- /dev/null +++ b/tests/binary-decode/success/unit/OperatorAndA.diag @@ -0,0 +1 @@ +[3, 1, 0, 1] diff --git a/tests/binary-decode/success/unit/OperatorCombineA.diag b/tests/binary-decode/success/unit/OperatorCombineA.diag new file mode 100644 index 000000000..fe223f5b6 --- /dev/null +++ b/tests/binary-decode/success/unit/OperatorCombineA.diag @@ -0,0 +1 @@ +[3, 8, 0, 1] diff --git a/tests/binary-decode/success/unit/OperatorCombineTypesA.diag b/tests/binary-decode/success/unit/OperatorCombineTypesA.diag new file mode 100644 index 000000000..4a469af14 --- /dev/null +++ b/tests/binary-decode/success/unit/OperatorCombineTypesA.diag @@ -0,0 +1 @@ +[3, 10, 0, 1] diff --git a/tests/binary-decode/success/unit/OperatorEqA.diag b/tests/binary-decode/success/unit/OperatorEqA.diag new file mode 100644 index 000000000..aabe795f6 --- /dev/null +++ b/tests/binary-decode/success/unit/OperatorEqA.diag @@ -0,0 +1 @@ +[3, 2, 0, 1] diff --git a/tests/binary-decode/success/unit/OperatorImportAltA.diag b/tests/binary-decode/success/unit/OperatorImportAltA.diag new file mode 100644 index 000000000..e3886ca4a --- /dev/null +++ b/tests/binary-decode/success/unit/OperatorImportAltA.diag @@ -0,0 +1 @@ +[3, 11, 0, 1] diff --git a/tests/binary-decode/success/unit/OperatorListAppendA.diag b/tests/binary-decode/success/unit/OperatorListAppendA.diag new file mode 100644 index 000000000..be2590016 --- /dev/null +++ b/tests/binary-decode/success/unit/OperatorListAppendA.diag @@ -0,0 +1 @@ +[3, 7, 0, 1] diff --git a/tests/binary-decode/success/unit/OperatorNeqA.diag b/tests/binary-decode/success/unit/OperatorNeqA.diag new file mode 100644 index 000000000..23a37d0cb --- /dev/null +++ b/tests/binary-decode/success/unit/OperatorNeqA.diag @@ -0,0 +1 @@ +[3, 3, 0, 1] diff --git a/tests/binary-decode/success/unit/OperatorOrA.diag b/tests/binary-decode/success/unit/OperatorOrA.diag new file mode 100644 index 000000000..5c801b663 --- /dev/null +++ b/tests/binary-decode/success/unit/OperatorOrA.diag @@ -0,0 +1 @@ +[3, 0, 0, 1] diff --git a/tests/binary-decode/success/unit/OperatorPlusA.diag b/tests/binary-decode/success/unit/OperatorPlusA.diag new file mode 100644 index 000000000..25167596a --- /dev/null +++ b/tests/binary-decode/success/unit/OperatorPlusA.diag @@ -0,0 +1 @@ +[3, 4, 0, 1] diff --git a/tests/binary-decode/success/unit/OperatorPreferA.diag b/tests/binary-decode/success/unit/OperatorPreferA.diag new file mode 100644 index 000000000..216f1be32 --- /dev/null +++ b/tests/binary-decode/success/unit/OperatorPreferA.diag @@ -0,0 +1 @@ +[3, 9, 0, 1] diff --git a/tests/binary-decode/success/unit/OperatorTextAppendA.diag b/tests/binary-decode/success/unit/OperatorTextAppendA.diag new file mode 100644 index 000000000..119780a6b --- /dev/null +++ b/tests/binary-decode/success/unit/OperatorTextAppendA.diag @@ -0,0 +1 @@ +[3, 6, 0, 1] diff --git a/tests/binary-decode/success/unit/OperatorTimesA.diag b/tests/binary-decode/success/unit/OperatorTimesA.diag new file mode 100644 index 000000000..db35d64d1 --- /dev/null +++ b/tests/binary-decode/success/unit/OperatorTimesA.diag @@ -0,0 +1 @@ +[3, 5, 0, 1] diff --git a/tests/binary-decode/success/unit/PiNamedXA.diag b/tests/binary-decode/success/unit/PiNamedXA.diag new file mode 100644 index 000000000..c279018bd --- /dev/null +++ b/tests/binary-decode/success/unit/PiNamedXA.diag @@ -0,0 +1 @@ +[2, "x", "Natural", 0] diff --git a/tests/binary-decode/success/unit/PiUnderscoreA.diag b/tests/binary-decode/success/unit/PiUnderscoreA.diag new file mode 100644 index 000000000..a30dfd37c --- /dev/null +++ b/tests/binary-decode/success/unit/PiUnderscoreA.diag @@ -0,0 +1 @@ +[2, "Natural", "Text"] diff --git a/tests/binary-decode/success/unit/RecordFieldAccessA.diag b/tests/binary-decode/success/unit/RecordFieldAccessA.diag new file mode 100644 index 000000000..385c43398 --- /dev/null +++ b/tests/binary-decode/success/unit/RecordFieldAccessA.diag @@ -0,0 +1 @@ +[9, 0, "x"] diff --git a/tests/binary-decode/success/unit/RecordLiteralA.diag b/tests/binary-decode/success/unit/RecordLiteralA.diag new file mode 100644 index 000000000..e55d70d1d --- /dev/null +++ b/tests/binary-decode/success/unit/RecordLiteralA.diag @@ -0,0 +1 @@ +[8, {"x": "Natural", "y": "Bool"}] diff --git a/tests/binary-decode/success/unit/RecordProjectFieldsA.diag b/tests/binary-decode/success/unit/RecordProjectFieldsA.diag new file mode 100644 index 000000000..4e443bd9b --- /dev/null +++ b/tests/binary-decode/success/unit/RecordProjectFieldsA.diag @@ -0,0 +1 @@ +[10, ["r", 0], "x", "y", "z"] diff --git a/tests/binary-decode/success/unit/RecordTypeA.diag b/tests/binary-decode/success/unit/RecordTypeA.diag new file mode 100644 index 000000000..bad6d7ca5 --- /dev/null +++ b/tests/binary-decode/success/unit/RecordTypeA.diag @@ -0,0 +1 @@ +[7, {"x": "Natural", "y": "Bool"}] diff --git a/tests/binary-decode/success/unit/SelfDescribeCBORX2A.diag b/tests/binary-decode/success/unit/SelfDescribeCBORX2A.diag new file mode 100644 index 000000000..e8334b3a0 --- /dev/null +++ b/tests/binary-decode/success/unit/SelfDescribeCBORX2A.diag @@ -0,0 +1 @@ +["x", 55799(0)] diff --git a/tests/binary-decode/success/unit/SelfDescribeCBORX3A.diag b/tests/binary-decode/success/unit/SelfDescribeCBORX3A.diag new file mode 100644 index 000000000..c4e2d778c --- /dev/null +++ b/tests/binary-decode/success/unit/SelfDescribeCBORX3A.diag @@ -0,0 +1 @@ +[55799("x"), 0] diff --git a/tests/binary-decode/success/unit/SelfDescribeCBORXA.diag b/tests/binary-decode/success/unit/SelfDescribeCBORXA.diag new file mode 100644 index 000000000..297f8d0ea --- /dev/null +++ b/tests/binary-decode/success/unit/SelfDescribeCBORXA.diag @@ -0,0 +1 @@ +55799(["x", 0]) diff --git a/tests/binary-decode/success/unit/SomeA.diag b/tests/binary-decode/success/unit/SomeA.diag new file mode 100644 index 000000000..949159625 --- /dev/null +++ b/tests/binary-decode/success/unit/SomeA.diag @@ -0,0 +1 @@ +[5, null, 0] diff --git a/tests/binary-decode/success/unit/TextInterpolatedA.diag b/tests/binary-decode/success/unit/TextInterpolatedA.diag new file mode 100644 index 000000000..5ace72dcd --- /dev/null +++ b/tests/binary-decode/success/unit/TextInterpolatedA.diag @@ -0,0 +1 @@ +[18, "foo", 0, "bar"] diff --git a/tests/binary-decode/success/unit/TextSimpleA.diag b/tests/binary-decode/success/unit/TextSimpleA.diag new file mode 100644 index 000000000..8e1262769 --- /dev/null +++ b/tests/binary-decode/success/unit/TextSimpleA.diag @@ -0,0 +1 @@ +[18, "foo"] diff --git a/tests/binary-decode/success/unit/UnionTypeA.diag b/tests/binary-decode/success/unit/UnionTypeA.diag new file mode 100644 index 000000000..43b0c70d5 --- /dev/null +++ b/tests/binary-decode/success/unit/UnionTypeA.diag @@ -0,0 +1 @@ +[11, {"x": "Natural", "y": null}] diff --git a/tests/binary-decode/success/unit/VariableNamedA.diag b/tests/binary-decode/success/unit/VariableNamedA.diag new file mode 100644 index 000000000..2cd576090 --- /dev/null +++ b/tests/binary-decode/success/unit/VariableNamedA.diag @@ -0,0 +1 @@ +["x", 1] diff --git a/tests/binary-decode/success/unit/VariableNamedOversizedIntA.diag b/tests/binary-decode/success/unit/VariableNamedOversizedIntA.diag new file mode 100644 index 000000000..2cd576090 --- /dev/null +++ b/tests/binary-decode/success/unit/VariableNamedOversizedIntA.diag @@ -0,0 +1 @@ +["x", 1] diff --git a/tests/binary-decode/success/unit/VariableUnderscoreA.diag b/tests/binary-decode/success/unit/VariableUnderscoreA.diag new file mode 100644 index 000000000..b8626c4cf --- /dev/null +++ b/tests/binary-decode/success/unit/VariableUnderscoreA.diag @@ -0,0 +1 @@ +4 diff --git a/tests/binary-decode/success/unit/VariableUnderscoreOversizedIntA.diag b/tests/binary-decode/success/unit/VariableUnderscoreOversizedIntA.diag new file mode 100644 index 000000000..d00491fd7 --- /dev/null +++ b/tests/binary-decode/success/unit/VariableUnderscoreOversizedIntA.diag @@ -0,0 +1 @@ +1 diff --git a/tests/binary-decode/success/unit/imports/EnvironmentVariableA.diag b/tests/binary-decode/success/unit/imports/EnvironmentVariableA.diag new file mode 100644 index 000000000..56fa8ca30 --- /dev/null +++ b/tests/binary-decode/success/unit/imports/EnvironmentVariableA.diag @@ -0,0 +1 @@ +[24, null, 0, 6, "FOO"] diff --git a/tests/binary-decode/success/unit/imports/HttpImportWithQueryA.diag b/tests/binary-decode/success/unit/imports/HttpImportWithQueryA.diag new file mode 100644 index 000000000..f1503bf4a --- /dev/null +++ b/tests/binary-decode/success/unit/imports/HttpImportWithQueryA.diag @@ -0,0 +1 @@ +[24, null, 0, 0, null, "foo:bar@baz:123", "path1", "path2", "query"] diff --git a/tests/binary-decode/success/unit/imports/HttpImportWithoutQueryA.diag b/tests/binary-decode/success/unit/imports/HttpImportWithoutQueryA.diag new file mode 100644 index 000000000..8d450d77c --- /dev/null +++ b/tests/binary-decode/success/unit/imports/HttpImportWithoutQueryA.diag @@ -0,0 +1 @@ +[24, null, 0, 0, null, "foo:bar@baz:123", "path1", "path2", null] diff --git a/tests/binary-decode/success/unit/imports/HttpsImportWithEmptyQueryA.diag b/tests/binary-decode/success/unit/imports/HttpsImportWithEmptyQueryA.diag new file mode 100644 index 000000000..55aedd509 --- /dev/null +++ b/tests/binary-decode/success/unit/imports/HttpsImportWithEmptyQueryA.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "foo:bar@baz:123", "path1", "path2", ""] diff --git a/tests/binary-decode/success/unit/imports/HttpsImportWithQueryA.diag b/tests/binary-decode/success/unit/imports/HttpsImportWithQueryA.diag new file mode 100644 index 000000000..6308632fa --- /dev/null +++ b/tests/binary-decode/success/unit/imports/HttpsImportWithQueryA.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "foo:bar@baz:123", "path1", "path2", "query"] diff --git a/tests/binary-decode/success/unit/imports/HttpsImportWithTrickyPathCharsA.diag b/tests/binary-decode/success/unit/imports/HttpsImportWithTrickyPathCharsA.diag new file mode 100644 index 000000000..805b0bc17 --- /dev/null +++ b/tests/binary-decode/success/unit/imports/HttpsImportWithTrickyPathCharsA.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "authority", "path/with?funny-characters", null] diff --git a/tests/binary-decode/success/unit/imports/HttpsImportWithTrickyQueryCharsA.diag b/tests/binary-decode/success/unit/imports/HttpsImportWithTrickyQueryCharsA.diag new file mode 100644 index 000000000..3f75d2efe --- /dev/null +++ b/tests/binary-decode/success/unit/imports/HttpsImportWithTrickyQueryCharsA.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "authority", "path", "a%23b%5Bc"] diff --git a/tests/binary-decode/success/unit/imports/HttpsImportWithoutQueryA.diag b/tests/binary-decode/success/unit/imports/HttpsImportWithoutQueryA.diag new file mode 100644 index 000000000..aa848815c --- /dev/null +++ b/tests/binary-decode/success/unit/imports/HttpsImportWithoutQueryA.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "foo:bar@baz:123", "path1", "path2", null] diff --git a/tests/binary-decode/success/unit/imports/LocalHereImportA.diag b/tests/binary-decode/success/unit/imports/LocalHereImportA.diag new file mode 100644 index 000000000..39d27ea7b --- /dev/null +++ b/tests/binary-decode/success/unit/imports/LocalHereImportA.diag @@ -0,0 +1 @@ +[24, null, 0, 3, "path0", "path1", "path2", "file"] diff --git a/tests/binary-decode/success/unit/imports/LocalHomeImportA.diag b/tests/binary-decode/success/unit/imports/LocalHomeImportA.diag new file mode 100644 index 000000000..c31fd7a83 --- /dev/null +++ b/tests/binary-decode/success/unit/imports/LocalHomeImportA.diag @@ -0,0 +1 @@ +[24, null, 0, 5, "path0", "path1", "path2", "file"] diff --git a/tests/binary-decode/success/unit/imports/LocalParentImportA.diag b/tests/binary-decode/success/unit/imports/LocalParentImportA.diag new file mode 100644 index 000000000..2c9b6839a --- /dev/null +++ b/tests/binary-decode/success/unit/imports/LocalParentImportA.diag @@ -0,0 +1 @@ +[24, null, 0, 4, "path0", "path1", "path2", "file"] diff --git a/tests/binary-decode/success/unit/imports/LocalRootImportA.diag b/tests/binary-decode/success/unit/imports/LocalRootImportA.diag new file mode 100644 index 000000000..5afb75d6b --- /dev/null +++ b/tests/binary-decode/success/unit/imports/LocalRootImportA.diag @@ -0,0 +1 @@ +[24, null, 0, 2, "path0", "path1", "path2", "file"] diff --git a/tests/binary-decode/success/unit/imports/MissingA.diag b/tests/binary-decode/success/unit/imports/MissingA.diag new file mode 100644 index 000000000..64d4aca3a --- /dev/null +++ b/tests/binary-decode/success/unit/imports/MissingA.diag @@ -0,0 +1 @@ +[24, null, 0, 7] diff --git a/tests/binary-decode/success/unit/recordProjectionByExpressionA.diag b/tests/binary-decode/success/unit/recordProjectionByExpressionA.diag new file mode 100644 index 000000000..6b0ed740f --- /dev/null +++ b/tests/binary-decode/success/unit/recordProjectionByExpressionA.diag @@ -0,0 +1 @@ +[10, [8, {"a": [15, 1], "b": [15, 2]}], [[7, {"a": "Natural"}]]] diff --git a/tests/diff-binary.sh b/tests/diff-binary.sh deleted file mode 100755 index 9a3677b0b..000000000 --- a/tests/diff-binary.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env bash - -help_text=$(cat <<-END - -Error! You provided less than two arguments. - -Usage: - -$ ./diff-binary.sh EXPECTED_BINARY_FILE_PATH ACTUAL_BINARY_FILE_PATH - - -This script should help when debugging the "parser" tests. -Since binary is not very readable, it can be very hard to see -what is going on if the binary encoding you provide differs from -the expected one. - -If you run this script by passing in the paths of the two files, -in case the two files differ, the script will print their CBOR -encodings in JSON format, for easier inspection. - - -END -) - -if [ -z "$2" ] - then - echo "$help_text" - exit 1 -fi - -expected=$1 -actual=$2 - -if diff $expected $actual; then - echo "The two files are byte-to-byte equal, all good" -else - printf "\n\nFound difference between the files, rendering in JSON encoding:\n" - printf "\n\nThe expected file is encoded in this way:\n\n" - cat $expected | dhall decode | dhall encode --json - printf "\n\nWhile the actual one encodes like this:\n\n" - cat $actual | dhall decode | dhall encode --json - exit 1 -fi diff --git a/tests/parser/success/annotationsB.diag b/tests/parser/success/annotationsB.diag new file mode 100644 index 000000000..8393620fc --- /dev/null +++ b/tests/parser/success/annotationsB.diag @@ -0,0 +1 @@ +[26, [3, 7, [3, 7, [4, "Natural"], [4, null, [15, 1], [15, 2], [15, 3]]], [26, [4, null, [15, 1], [15, 2], [15, 3]], [0, "List", "Natural"]]], [0, "List", "Natural"]] diff --git a/tests/parser/success/blockCommentB.diag b/tests/parser/success/blockCommentB.diag new file mode 100644 index 000000000..d90353da0 --- /dev/null +++ b/tests/parser/success/blockCommentB.diag @@ -0,0 +1 @@ +[15, 1] diff --git a/tests/parser/success/builtinNameAsFieldB.diag b/tests/parser/success/builtinNameAsFieldB.diag new file mode 100644 index 000000000..00d604d67 --- /dev/null +++ b/tests/parser/success/builtinNameAsFieldB.diag @@ -0,0 +1 @@ +[25, "Prelude", null, [24, null, 0, 1, null, "prelude.dhall-lang.org", "package.dhall", null], [9, [9, ["Prelude", 0], "List"], "map"]] diff --git a/tests/parser/success/builtinsB.diag b/tests/parser/success/builtinsB.diag new file mode 100644 index 000000000..7299f485b --- /dev/null +++ b/tests/parser/success/builtinsB.diag @@ -0,0 +1 @@ +[1, "x", [7, {"field0": "Bool", "field1": [0, "Optional", [0, "Optional", "Bool"]], "field2": "Natural", "field3": "Integer", "field4": "Double", "field5": "Text", "field6": [0, "List", [0, "List", "Bool"]]}], [8, {"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"}]] diff --git a/tests/parser/success/collectionImportTypeB.diag b/tests/parser/success/collectionImportTypeB.diag new file mode 100644 index 000000000..2aee9b7a5 --- /dev/null +++ b/tests/parser/success/collectionImportTypeB.diag @@ -0,0 +1 @@ +[8, {"example0": [0, "None", [24, null, 0, 3, "type.dhall"]], "example1": [4, [24, null, 0, 3, "type.dhall"]]}] diff --git a/tests/parser/success/doubleB.diag b/tests/parser/success/doubleB.diag new file mode 100644 index 000000000..9cb484c25 --- /dev/null +++ b/tests/parser/success/doubleB.diag @@ -0,0 +1 @@ +[4, null, 1.1, -1.1, 10.0, 11.0, NaN, Infinity, -Infinity, 0.0] diff --git a/tests/parser/success/fieldsB.diag b/tests/parser/success/fieldsB.diag new file mode 100644 index 000000000..da9086de1 --- /dev/null +++ b/tests/parser/success/fieldsB.diag @@ -0,0 +1 @@ +[9, [9, [9, [8, {"foo": [8, {"bar": [8, {"baz": [15, 1]}]}]}], "foo"], "bar"], "baz"] diff --git a/tests/parser/success/forallB.diag b/tests/parser/success/forallB.diag new file mode 100644 index 000000000..d47d6fdb2 --- /dev/null +++ b/tests/parser/success/forallB.diag @@ -0,0 +1 @@ +[2, "a", "Type", [2, "b", "Type", ["a", 0]]] diff --git a/tests/parser/success/functionTypeB.diag b/tests/parser/success/functionTypeB.diag new file mode 100644 index 000000000..049f84216 --- /dev/null +++ b/tests/parser/success/functionTypeB.diag @@ -0,0 +1 @@ +[2, "Bool", [2, "Bool", "Bool"]] diff --git a/tests/parser/success/identifierB.diag b/tests/parser/success/identifierB.diag new file mode 100644 index 000000000..5680b1031 --- /dev/null +++ b/tests/parser/success/identifierB.diag @@ -0,0 +1 @@ +[1, "a", "Type", [1, "a", "Type", ["a", 1]]] diff --git a/tests/parser/success/ifThenElseB.diag b/tests/parser/success/ifThenElseB.diag new file mode 100644 index 000000000..dc2b491f9 --- /dev/null +++ b/tests/parser/success/ifThenElseB.diag @@ -0,0 +1 @@ +[14, true, [15, 1], [15, 2]] diff --git a/tests/parser/success/labelB.diag b/tests/parser/success/labelB.diag new file mode 100644 index 000000000..a1449b16a --- /dev/null +++ b/tests/parser/success/labelB.diag @@ -0,0 +1 @@ +[25, "_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-/", null, [15, 1], ["_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-/", 0]] diff --git a/tests/parser/success/lambdaB.diag b/tests/parser/success/lambdaB.diag new file mode 100644 index 000000000..052208ff2 --- /dev/null +++ b/tests/parser/success/lambdaB.diag @@ -0,0 +1 @@ +[1, "a", "Type", [1, "b", "Type", ["a", 0]]] diff --git a/tests/parser/success/largeExpressionB.diag b/tests/parser/success/largeExpressionB.diag new file mode 100644 index 000000000..57be71d1e --- /dev/null +++ b/tests/parser/success/largeExpressionB.diag @@ -0,0 +1 @@ +[1, "xs", [0, "List", [7, {"cores": "Natural", "host": "Text", "key": "Text", "mandatoryFeatures": [0, "List", "Text"], "platforms": [0, "List", [11, {"AArch64_Linux": null, "ARMv5tel_Linux": null, "ARMv7l_Linux": null, "I686_Cygwin": null, "I686_Linux": null, "MIPS64el_Linux": null, "PowerPC_Linux": null, "X86_64_Cygwin": null, "X86_64_Darwin": null, "X86_64_FreeBSD": null, "X86_64_Linux": null, "X86_64_Solaris": null}]], "speedFactor": "Natural", "supportedFeatures": [0, "List", "Text"], "user": [0, "Optional", "Text"]}]], [0, "List/fold", [7, {"cores": "Natural", "host": "Text", "key": "Text", "mandatoryFeatures": [0, "List", "Text"], "platforms": [0, "List", [11, {"AArch64_Linux": null, "ARMv5tel_Linux": null, "ARMv7l_Linux": null, "I686_Cygwin": null, "I686_Linux": null, "MIPS64el_Linux": null, "PowerPC_Linux": null, "X86_64_Cygwin": null, "X86_64_Darwin": null, "X86_64_FreeBSD": null, "X86_64_Linux": null, "X86_64_Solaris": null}]], "speedFactor": "Natural", "supportedFeatures": [0, "List", "Text"], "user": [0, "Optional", "Text"]}], ["xs", 0], "Text", [1, "x", [7, {"cores": "Natural", "host": "Text", "key": "Text", "mandatoryFeatures": [0, "List", "Text"], "platforms": [0, "List", [11, {"AArch64_Linux": null, "ARMv5tel_Linux": null, "ARMv7l_Linux": null, "I686_Cygwin": null, "I686_Linux": null, "MIPS64el_Linux": null, "PowerPC_Linux": null, "X86_64_Cygwin": null, "X86_64_Darwin": null, "X86_64_FreeBSD": null, "X86_64_Linux": null, "X86_64_Solaris": null}]], "speedFactor": "Natural", "supportedFeatures": [0, "List", "Text"], "user": [0, "Optional", "Text"]}], [1, "y", "Text", [3, 6, [3, 6, [3, 6, [3, 6, [3, 6, [3, 6, [3, 6, [3, 6, [3, 6, [3, 6, [3, 6, [3, 6, [3, 6, [3, 6, [0, "Optional/fold", "Text", [9, ["x", 0], "user"], "Text", [1, "user", "Text", [3, 6, [3, 6, [3, 6, ["user", 0], [18, "@"]], [9, ["x", 0], "host"]], [18, ""]]], [9, ["x", 0], "host"]], [18, " "]], [6, [8, {"Empty": [18, ""], "NonEmpty": [1, "result", "Text", ["result", 0]]}], [0, "List/fold", [11, {"AArch64_Linux": null, "ARMv5tel_Linux": null, "ARMv7l_Linux": null, "I686_Cygwin": null, "I686_Linux": null, "MIPS64el_Linux": null, "PowerPC_Linux": null, "X86_64_Cygwin": null, "X86_64_Darwin": null, "X86_64_FreeBSD": null, "X86_64_Linux": null, "X86_64_Solaris": null}], [9, ["x", 0], "platforms"], [11, {"Empty": null, "NonEmpty": "Text"}], [1, "element", [11, {"AArch64_Linux": null, "ARMv5tel_Linux": null, "ARMv7l_Linux": null, "I686_Cygwin": null, "I686_Linux": null, "MIPS64el_Linux": null, "PowerPC_Linux": null, "X86_64_Cygwin": null, "X86_64_Darwin": null, "X86_64_FreeBSD": null, "X86_64_Linux": null, "X86_64_Solaris": null}], [1, "status", [11, {"Empty": null, "NonEmpty": "Text"}], [6, [8, {"Empty": [0, [9, [11, {"Empty": null, "NonEmpty": "Text"}], "NonEmpty"], [6, [8, {"AArch64_Linux": [18, "aarch64-linux"], "ARMv5tel_Linux": [18, "armv5tel-linux"], "ARMv7l_Linux": [18, "armv7l-linux"], "I686_Cygwin": [18, "i686-cygwin"], "I686_Linux": [18, "i686-linux"], "MIPS64el_Linux": [18, "mips64el-linux"], "PowerPC_Linux": [18, "powerpc-linux"], "X86_64_Cygwin": [18, "x86_64-cygwin"], "X86_64_Darwin": [18, "x86_64-darwin"], "X86_64_FreeBSD": [18, "x86_64-freebsd"], "X86_64_Linux": [18, "x86_64-linux"], "X86_64_Solaris": [18, "x86_64-solaris"]}], ["element", 0]]], "NonEmpty": [1, "result", "Text", [0, [9, [11, {"Empty": null, "NonEmpty": "Text"}], "NonEmpty"], [3, 6, [3, 6, [6, [8, {"AArch64_Linux": [18, "aarch64-linux"], "ARMv5tel_Linux": [18, "armv5tel-linux"], "ARMv7l_Linux": [18, "armv7l-linux"], "I686_Cygwin": [18, "i686-cygwin"], "I686_Linux": [18, "i686-linux"], "MIPS64el_Linux": [18, "mips64el-linux"], "PowerPC_Linux": [18, "powerpc-linux"], "X86_64_Cygwin": [18, "x86_64-cygwin"], "X86_64_Darwin": [18, "x86_64-darwin"], "X86_64_FreeBSD": [18, "x86_64-freebsd"], "X86_64_Linux": [18, "x86_64-linux"], "X86_64_Solaris": [18, "x86_64-solaris"]}], ["element", 0]], [18, ","]], ["result", 0]]]]}], ["status", 0], [11, {"Empty": null, "NonEmpty": "Text"}]]]], [9, [11, {"Empty": null, "NonEmpty": "Text"}], "Empty"]], "Text"]], [18, " "]], [9, ["x", 0], "key"]], [18, " "]], [0, "Integer/show", [0, "Natural/toInteger", [9, ["x", 0], "cores"]]]], [18, " "]], [0, "Integer/show", [0, "Natural/toInteger", [9, ["x", 0], "speedFactor"]]]], [18, " "]], [6, [8, {"Empty": [18, ""], "NonEmpty": [1, "result", "Text", ["result", 0]]}], [0, "List/fold", "Text", [9, ["x", 0], "supportedFeatures"], [11, {"Empty": null, "NonEmpty": "Text"}], [1, "element", "Text", [1, "status", [11, {"Empty": null, "NonEmpty": "Text"}], [6, [8, {"Empty": [0, [9, [11, {"Empty": null, "NonEmpty": "Text"}], "NonEmpty"], ["element", 0]], "NonEmpty": [1, "result", "Text", [0, [9, [11, {"Empty": null, "NonEmpty": "Text"}], "NonEmpty"], [3, 6, [3, 6, ["element", 0], [18, ","]], ["result", 0]]]]}], ["status", 0], [11, {"Empty": null, "NonEmpty": "Text"}]]]], [9, [11, {"Empty": null, "NonEmpty": "Text"}], "Empty"]], "Text"]], [18, " "]], [6, [8, {"Empty": [18, ""], "NonEmpty": [1, "result", "Text", ["result", 0]]}], [0, "List/fold", "Text", [9, ["x", 0], "mandatoryFeatures"], [11, {"Empty": null, "NonEmpty": "Text"}], [1, "element", "Text", [1, "status", [11, {"Empty": null, "NonEmpty": "Text"}], [6, [8, {"Empty": [0, [9, [11, {"Empty": null, "NonEmpty": "Text"}], "NonEmpty"], ["element", 0]], "NonEmpty": [1, "result", "Text", [0, [9, [11, {"Empty": null, "NonEmpty": "Text"}], "NonEmpty"], [3, 6, [3, 6, ["element", 0], [18, ","]], ["result", 0]]]]}], ["status", 0], [11, {"Empty": null, "NonEmpty": "Text"}]]]], [9, [11, {"Empty": null, "NonEmpty": "Text"}], "Empty"]], "Text"]], [18, "\n"]], ["y", 0]]]], [18, ""]]] diff --git a/tests/parser/success/leadingTabsB.diag b/tests/parser/success/leadingTabsB.diag new file mode 100644 index 000000000..ee15e0d9c --- /dev/null +++ b/tests/parser/success/leadingTabsB.diag @@ -0,0 +1 @@ +[18, "\n"] diff --git a/tests/parser/success/letB.diag b/tests/parser/success/letB.diag new file mode 100644 index 000000000..f5065bc3d --- /dev/null +++ b/tests/parser/success/letB.diag @@ -0,0 +1 @@ +[25, "x", null, [15, 1], [25, "y", "Natural", [15, 2], ["x", 0]]] diff --git a/tests/parser/success/lineCommentB.diag b/tests/parser/success/lineCommentB.diag new file mode 100644 index 000000000..d90353da0 --- /dev/null +++ b/tests/parser/success/lineCommentB.diag @@ -0,0 +1 @@ +[15, 1] diff --git a/tests/parser/success/listB.diag b/tests/parser/success/listB.diag new file mode 100644 index 000000000..95e4c072b --- /dev/null +++ b/tests/parser/success/listB.diag @@ -0,0 +1 @@ +[4, null, [4, null, [16, 1], [16, 2], [16, 3]], [26, [4, null, [16, 1], [16, 2], [16, 3]], [0, "List", "Integer"]], [4, "Integer"]] diff --git a/tests/parser/success/mergeB.diag b/tests/parser/success/mergeB.diag new file mode 100644 index 000000000..9e8b71400 --- /dev/null +++ b/tests/parser/success/mergeB.diag @@ -0,0 +1 @@ +[1, "x", [11, {}], [8, {"bar": [6, [8, {}], ["x", 0], "Integer"], "foo": [6, [8, {"Left": [1, "b", "Bool", ["b", 0]], "Right": "Natural/even"}], [0, [9, [11, {"Left": "Bool", "Right": "Natural"}], "Left"], true]]}]] diff --git a/tests/parser/success/multiletB.diag b/tests/parser/success/multiletB.diag new file mode 100644 index 000000000..23c03cfa2 --- /dev/null +++ b/tests/parser/success/multiletB.diag @@ -0,0 +1 @@ +[25, "a", null, [15, 1], "b", null, [15, 2], [3, 4, ["a", 0], ["b", 0]]] diff --git a/tests/parser/success/naturalB.diag b/tests/parser/success/naturalB.diag new file mode 100644 index 000000000..31e260ee4 --- /dev/null +++ b/tests/parser/success/naturalB.diag @@ -0,0 +1 @@ +[4, null, [15, 0], [15, 1], [15, 1], [15, 10]] diff --git a/tests/parser/success/nestedBlockCommentB.diag b/tests/parser/success/nestedBlockCommentB.diag new file mode 100644 index 000000000..d90353da0 --- /dev/null +++ b/tests/parser/success/nestedBlockCommentB.diag @@ -0,0 +1 @@ +[15, 1] diff --git a/tests/parser/success/operatorsB.diag b/tests/parser/success/operatorsB.diag new file mode 100644 index 000000000..02bfd9284 --- /dev/null +++ b/tests/parser/success/operatorsB.diag @@ -0,0 +1 @@ +[26, [3, 8, [8, {"foo": [3, 0, [3, 1, false, [0, "Natural/even", [3, 4, [15, 1], [3, 5, [15, 2], [15, 3]]]]], [3, 2, true, [3, 3, false, true]]]}], [3, 9, [8, {"bar": [3, 7, [4, null, [3, 6, [18, "ABC"], [18, "DEF"]]], [4, null, [18, "GHI"]]]}], [8, {"baz": true}]]], [3, 10, [7, {"baz": "Bool", "foo": "Bool"}], [7, {"bar": [0, "List", "Text"]}]]] diff --git a/tests/parser/success/quotedBoundVariableB.diag b/tests/parser/success/quotedBoundVariableB.diag new file mode 100644 index 000000000..5f76c4b93 --- /dev/null +++ b/tests/parser/success/quotedBoundVariableB.diag @@ -0,0 +1 @@ +[0, [1, "Natural/even", [2, "Natural", "Bool"], ["Natural/even", 0]], "Natural/odd", [15, 0]] diff --git a/tests/parser/success/quotedLabelB.diag b/tests/parser/success/quotedLabelB.diag new file mode 100644 index 000000000..75b936c88 --- /dev/null +++ b/tests/parser/success/quotedLabelB.diag @@ -0,0 +1 @@ +[8, {"example1": [25, "let", null, [15, 1], ["let", 0]], "example2": [25, ":.", null, [15, 1], [":.", 0]], "example3": [25, "$ref", null, [15, 1], ["$ref", 0]]}] diff --git a/tests/parser/success/recordB.diag b/tests/parser/success/recordB.diag new file mode 100644 index 000000000..83d8c91e1 --- /dev/null +++ b/tests/parser/success/recordB.diag @@ -0,0 +1 @@ +[26, [8, {"bar": [15, 2], "baz": true, "foo": [16, 1]}], [7, {"bar": "Natural", "baz": "Bool", "foo": "Integer"}]] diff --git a/tests/parser/success/recordProjectionByExpressionB.diag b/tests/parser/success/recordProjectionByExpressionB.diag new file mode 100644 index 000000000..f1775da76 --- /dev/null +++ b/tests/parser/success/recordProjectionByExpressionB.diag @@ -0,0 +1 @@ +[25, "example1", null, [1, "A", "Type", [1, "B", "Type", [1, "C", [7, {"x": ["A", 0], "y": ["B", 0]}], [26, [10, ["C", 0], [[7, {"x": ["A", 0]}]]], [7, {"x": ["A", 0]}]]]]], "example2", null, [1, "A", "Type", [1, "B", "Type", [1, "C", [7, {"p": ["A", 0], "q": ["B", 0]}], [26, [10, ["C", 0], [[25, "r", null, [7, {"p": ["A", 0]}], ["r", 0]]]], [7, {"p": ["A", 0]}]]]]], "A", null, "Natural", "B", null, "Text", [26, [3, 8, [0, ["example1", 0], ["A", 0], ["B", 0], [8, {"x": [15, 10], "y": [18, "Text"]}]], [0, ["example2", 0], ["A", 0], ["B", 0], [8, {"p": [15, 10], "q": [18, "Text"]}]]], [7, {"p": ["A", 0], "x": ["A", 0]}]]] diff --git a/tests/parser/success/reservedPrefixB.diag b/tests/parser/success/reservedPrefixB.diag new file mode 100644 index 000000000..d18760ef3 --- /dev/null +++ b/tests/parser/success/reservedPrefixB.diag @@ -0,0 +1 @@ +[25, "TypeSynonym", null, "Integer", [26, [16, 1], ["TypeSynonym", 0]]] diff --git a/tests/parser/success/text/doubleQuotedStringB.diag b/tests/parser/success/text/doubleQuotedStringB.diag new file mode 100644 index 000000000..273558314 --- /dev/null +++ b/tests/parser/success/text/doubleQuotedStringB.diag @@ -0,0 +1 @@ +[18, "ABC"] diff --git a/tests/parser/success/text/escapeB.diag b/tests/parser/success/text/escapeB.diag new file mode 100644 index 000000000..d50ce4b9f --- /dev/null +++ b/tests/parser/success/text/escapeB.diag @@ -0,0 +1 @@ +[18, "${\n''\n$\n\"\n\\\n"] diff --git a/tests/parser/success/text/escapedDoubleQuotedStringB.diag b/tests/parser/success/text/escapedDoubleQuotedStringB.diag new file mode 100644 index 000000000..3aa5c77b9 --- /dev/null +++ b/tests/parser/success/text/escapedDoubleQuotedStringB.diag @@ -0,0 +1 @@ +[18, "\\\"$\\/\b\f\n\r\t\u{1D11E} \u2200(a : Type) \u2192 a"] diff --git a/tests/parser/success/text/escapedSingleQuotedStringB.diag b/tests/parser/success/text/escapedSingleQuotedStringB.diag new file mode 100644 index 000000000..4ba0a5068 --- /dev/null +++ b/tests/parser/success/text/escapedSingleQuotedStringB.diag @@ -0,0 +1 @@ +[18, "${\n''\n"] diff --git a/tests/parser/success/text/interestingB.diag b/tests/parser/success/text/interestingB.diag new file mode 100644 index 000000000..1b90d76cb --- /dev/null +++ b/tests/parser/success/text/interestingB.diag @@ -0,0 +1 @@ +[1, "x", "Text", [18, "", ["x", 0], " baz\n bar\n foo\n "]] diff --git a/tests/parser/success/text/interiorIndentB.diag b/tests/parser/success/text/interiorIndentB.diag new file mode 100644 index 000000000..0885ad5f3 --- /dev/null +++ b/tests/parser/success/text/interiorIndentB.diag @@ -0,0 +1 @@ +[18, " foo\n bar\n"] diff --git a/tests/parser/success/text/interpolatedDoubleQuotedStringB.diag b/tests/parser/success/text/interpolatedDoubleQuotedStringB.diag new file mode 100644 index 000000000..1c9cb3b63 --- /dev/null +++ b/tests/parser/success/text/interpolatedDoubleQuotedStringB.diag @@ -0,0 +1 @@ +[18, "ABC", [0, "Natural/show", [15, 123]], ""] diff --git a/tests/parser/success/text/interpolatedSingleQuotedStringB.diag b/tests/parser/success/text/interpolatedSingleQuotedStringB.diag new file mode 100644 index 000000000..5c4052eca --- /dev/null +++ b/tests/parser/success/text/interpolatedSingleQuotedStringB.diag @@ -0,0 +1 @@ +[18, "ABC\n", [0, "Natural/show", [15, 123]], "\n"] diff --git a/tests/parser/success/text/interpolationB.diag b/tests/parser/success/text/interpolationB.diag new file mode 100644 index 000000000..dc87cb64c --- /dev/null +++ b/tests/parser/success/text/interpolationB.diag @@ -0,0 +1 @@ +[18, "", [0, "Natural/show", [15, 1]], " foo\n bar\n"] diff --git a/tests/parser/success/text/multilineBlankLineB.diag b/tests/parser/success/text/multilineBlankLineB.diag new file mode 100644 index 000000000..d6f79a62b --- /dev/null +++ b/tests/parser/success/text/multilineBlankLineB.diag @@ -0,0 +1 @@ +[18, "hello\n\nthere\n"] diff --git a/tests/parser/success/text/multilineBlankLineCrlfB.diag b/tests/parser/success/text/multilineBlankLineCrlfB.diag new file mode 100644 index 000000000..d6f79a62b --- /dev/null +++ b/tests/parser/success/text/multilineBlankLineCrlfB.diag @@ -0,0 +1 @@ +[18, "hello\n\nthere\n"] diff --git a/tests/parser/success/text/multilineCorruptedLeadingWhitespaceB.diag b/tests/parser/success/text/multilineCorruptedLeadingWhitespaceB.diag new file mode 100644 index 000000000..cb67b667b --- /dev/null +++ b/tests/parser/success/text/multilineCorruptedLeadingWhitespaceB.diag @@ -0,0 +1 @@ +[18, "\thai\n\tthere\n ok\n\t"] diff --git a/tests/parser/success/text/multilineIndentedAndAlignedB.diag b/tests/parser/success/text/multilineIndentedAndAlignedB.diag new file mode 100644 index 000000000..73835bad6 --- /dev/null +++ b/tests/parser/success/text/multilineIndentedAndAlignedB.diag @@ -0,0 +1 @@ +[18, "hai\nthere\n"] diff --git a/tests/parser/success/text/multilineMismatchedLeadingWhitespaceB.diag b/tests/parser/success/text/multilineMismatchedLeadingWhitespaceB.diag new file mode 100644 index 000000000..a6a1d9d43 --- /dev/null +++ b/tests/parser/success/text/multilineMismatchedLeadingWhitespaceB.diag @@ -0,0 +1 @@ +[18, "\ta\n b\n"] diff --git a/tests/parser/success/text/multilineTabsB.diag b/tests/parser/success/text/multilineTabsB.diag new file mode 100644 index 000000000..09858f3d9 --- /dev/null +++ b/tests/parser/success/text/multilineTabsB.diag @@ -0,0 +1 @@ +[18, "hai\n\tthere\n lol\n"] diff --git a/tests/parser/success/text/preserveCommentB.diag b/tests/parser/success/text/preserveCommentB.diag new file mode 100644 index 000000000..21ae61062 --- /dev/null +++ b/tests/parser/success/text/preserveCommentB.diag @@ -0,0 +1 @@ +[18, "-- Hello\n{- world -}\n"] diff --git a/tests/parser/success/text/singleLineB.diag b/tests/parser/success/text/singleLineB.diag new file mode 100644 index 000000000..8e1262769 --- /dev/null +++ b/tests/parser/success/text/singleLineB.diag @@ -0,0 +1 @@ +[18, "foo"] diff --git a/tests/parser/success/text/singleQuotedStringB.diag b/tests/parser/success/text/singleQuotedStringB.diag new file mode 100644 index 000000000..0d398fa4e --- /dev/null +++ b/tests/parser/success/text/singleQuotedStringB.diag @@ -0,0 +1 @@ +[18, "ABC\nDEF\n"] diff --git a/tests/parser/success/text/templateB.diag b/tests/parser/success/text/templateB.diag new file mode 100644 index 000000000..158fb25d8 --- /dev/null +++ b/tests/parser/success/text/templateB.diag @@ -0,0 +1 @@ +[1, "record", [7, {"in_ca": "Bool", "name": "Text", "taxed_value": "Double", "value": "Double"}], [18, "Hello ", [9, ["record", 0], "name"], "\nYou have just won ", [0, "Double/show", [9, ["record", 0], "value"]], " dollars!\n", [14, [9, ["record", 0], "in_ca"], [18, "Well, ", [0, "Double/show", [9, ["record", 0], "taxed_value"]], " dollars, after taxes"], [18, ""]], "\n"]] diff --git a/tests/parser/success/text/twoLinesB.diag b/tests/parser/success/text/twoLinesB.diag new file mode 100644 index 000000000..313eb6247 --- /dev/null +++ b/tests/parser/success/text/twoLinesB.diag @@ -0,0 +1 @@ +[18, "foo\nbar"] diff --git a/tests/parser/success/text/unicodeDoubleQuotedStringB.diag b/tests/parser/success/text/unicodeDoubleQuotedStringB.diag new file mode 100644 index 000000000..eec4e3723 --- /dev/null +++ b/tests/parser/success/text/unicodeDoubleQuotedStringB.diag @@ -0,0 +1 @@ +[18, "\u2200(a : Type) \u2192 a"] diff --git a/tests/parser/success/toMapB.diag b/tests/parser/success/toMapB.diag new file mode 100644 index 000000000..c672235ad --- /dev/null +++ b/tests/parser/success/toMapB.diag @@ -0,0 +1 @@ +[27, [8, {"bar": [15, 4], "baz": [15, 9], "foo": [15, 1]}]] diff --git a/tests/parser/success/unicodeCommentB.diag b/tests/parser/success/unicodeCommentB.diag new file mode 100644 index 000000000..d90353da0 --- /dev/null +++ b/tests/parser/success/unicodeCommentB.diag @@ -0,0 +1 @@ +[15, 1] diff --git a/tests/parser/success/unionB.diag b/tests/parser/success/unionB.diag new file mode 100644 index 000000000..83780f320 --- /dev/null +++ b/tests/parser/success/unionB.diag @@ -0,0 +1 @@ +[26, [12, "B", [8, {}], {"A": [7, {}], "C": [7, {}]}], [11, {"A": [7, {}], "B": [7, {}], "C": [7, {}]}]] diff --git a/tests/parser/success/unit/BoolB.diag b/tests/parser/success/unit/BoolB.diag new file mode 100644 index 000000000..e4e59fa52 --- /dev/null +++ b/tests/parser/success/unit/BoolB.diag @@ -0,0 +1 @@ +"Bool" diff --git a/tests/parser/success/unit/BoolLitTrueB.diag b/tests/parser/success/unit/BoolLitTrueB.diag new file mode 100644 index 000000000..27ba77dda --- /dev/null +++ b/tests/parser/success/unit/BoolLitTrueB.diag @@ -0,0 +1 @@ +true diff --git a/tests/parser/success/unit/ForallB.diag b/tests/parser/success/unit/ForallB.diag new file mode 100644 index 000000000..caac35db1 --- /dev/null +++ b/tests/parser/success/unit/ForallB.diag @@ -0,0 +1 @@ +[2, "x", ["T", 0], ["x", 0]] diff --git a/tests/parser/success/unit/ForallNestedB.diag b/tests/parser/success/unit/ForallNestedB.diag new file mode 100644 index 000000000..1366a1cc9 --- /dev/null +++ b/tests/parser/success/unit/ForallNestedB.diag @@ -0,0 +1 @@ +[2, "x", ["T", 0], [2, "y", ["U", 0], ["x", 0]]] diff --git a/tests/parser/success/unit/ForallUnderscoreB.diag b/tests/parser/success/unit/ForallUnderscoreB.diag new file mode 100644 index 000000000..04322990a --- /dev/null +++ b/tests/parser/success/unit/ForallUnderscoreB.diag @@ -0,0 +1 @@ +[2, ["T", 0], ["x", 0]] diff --git a/tests/parser/success/unit/IntegerLitNegativeB.diag b/tests/parser/success/unit/IntegerLitNegativeB.diag new file mode 100644 index 000000000..e9abb72e0 --- /dev/null +++ b/tests/parser/success/unit/IntegerLitNegativeB.diag @@ -0,0 +1 @@ +[16, -10] diff --git a/tests/parser/success/unit/IntegerLitPositiveB.diag b/tests/parser/success/unit/IntegerLitPositiveB.diag new file mode 100644 index 000000000..db62ef3d5 --- /dev/null +++ b/tests/parser/success/unit/IntegerLitPositiveB.diag @@ -0,0 +1 @@ +[16, 10] diff --git a/tests/parser/success/unit/KindB.diag b/tests/parser/success/unit/KindB.diag new file mode 100644 index 000000000..baab93f46 --- /dev/null +++ b/tests/parser/success/unit/KindB.diag @@ -0,0 +1 @@ +"Kind" diff --git a/tests/parser/success/unit/LambdaB.diag b/tests/parser/success/unit/LambdaB.diag new file mode 100644 index 000000000..cb3bfc71f --- /dev/null +++ b/tests/parser/success/unit/LambdaB.diag @@ -0,0 +1 @@ +[1, "x", ["T", 0], ["x", 0]] diff --git a/tests/parser/success/unit/LambdaNestedB.diag b/tests/parser/success/unit/LambdaNestedB.diag new file mode 100644 index 000000000..5132d763a --- /dev/null +++ b/tests/parser/success/unit/LambdaNestedB.diag @@ -0,0 +1 @@ +[1, "x", ["T", 0], [1, "y", ["U", 0], ["x", 0]]] diff --git a/tests/parser/success/unit/LambdaUnderscoreB.diag b/tests/parser/success/unit/LambdaUnderscoreB.diag new file mode 100644 index 000000000..80e0c18ab --- /dev/null +++ b/tests/parser/success/unit/LambdaUnderscoreB.diag @@ -0,0 +1 @@ +[1, ["T", 0], ["x", 0]] diff --git a/tests/parser/success/unit/ListLitEmpty1B.diag b/tests/parser/success/unit/ListLitEmpty1B.diag new file mode 100644 index 000000000..d55254de6 --- /dev/null +++ b/tests/parser/success/unit/ListLitEmpty1B.diag @@ -0,0 +1 @@ +[4, ["T", 0]] diff --git a/tests/parser/success/unit/ListLitEmpty2B.diag b/tests/parser/success/unit/ListLitEmpty2B.diag new file mode 100644 index 000000000..dc03ac362 --- /dev/null +++ b/tests/parser/success/unit/ListLitEmpty2B.diag @@ -0,0 +1 @@ +[28, ["T", 0]] diff --git a/tests/parser/success/unit/MergeAnnotationB.diag b/tests/parser/success/unit/MergeAnnotationB.diag new file mode 100644 index 000000000..8487c4076 --- /dev/null +++ b/tests/parser/success/unit/MergeAnnotationB.diag @@ -0,0 +1 @@ +[6, ["x", 0], ["y", 0], ["t", 0]] diff --git a/tests/parser/success/unit/MergeAnnotationPrecedenceB.diag b/tests/parser/success/unit/MergeAnnotationPrecedenceB.diag new file mode 100644 index 000000000..a8b2b4933 --- /dev/null +++ b/tests/parser/success/unit/MergeAnnotationPrecedenceB.diag @@ -0,0 +1 @@ +[6, ["x", 0], ["y", 0], [0, ["t", 0], ["a", 0]]] diff --git a/tests/parser/success/unit/MergeB.diag b/tests/parser/success/unit/MergeB.diag new file mode 100644 index 000000000..65b6cba5b --- /dev/null +++ b/tests/parser/success/unit/MergeB.diag @@ -0,0 +1 @@ +[6, ["x", 0], ["y", 0]] diff --git a/tests/parser/success/unit/MergeParenAnnotationB.diag b/tests/parser/success/unit/MergeParenAnnotationB.diag new file mode 100644 index 000000000..4339544aa --- /dev/null +++ b/tests/parser/success/unit/MergeParenAnnotationB.diag @@ -0,0 +1 @@ +[26, [6, ["x", 0], ["y", 0]], ["t", 0]] diff --git a/tests/parser/success/unit/MergeXYZB.diag b/tests/parser/success/unit/MergeXYZB.diag new file mode 100644 index 000000000..0cffc8354 --- /dev/null +++ b/tests/parser/success/unit/MergeXYZB.diag @@ -0,0 +1 @@ +[0, [6, ["x", 0], ["y", 0]], ["z", 0]] diff --git a/tests/parser/success/unit/NaturalLitB.diag b/tests/parser/success/unit/NaturalLitB.diag new file mode 100644 index 000000000..414312b7e --- /dev/null +++ b/tests/parser/success/unit/NaturalLitB.diag @@ -0,0 +1 @@ +[15, 42] diff --git a/tests/parser/success/unit/QuotedBoolB.diag b/tests/parser/success/unit/QuotedBoolB.diag new file mode 100644 index 000000000..e5411cb50 --- /dev/null +++ b/tests/parser/success/unit/QuotedBoolB.diag @@ -0,0 +1 @@ +["Bool", 0] diff --git a/tests/parser/success/unit/QuotedTrueB.diag b/tests/parser/success/unit/QuotedTrueB.diag new file mode 100644 index 000000000..f1fe9499b --- /dev/null +++ b/tests/parser/success/unit/QuotedTrueB.diag @@ -0,0 +1 @@ +["True", 0] diff --git a/tests/parser/success/unit/QuotedTypeB.diag b/tests/parser/success/unit/QuotedTypeB.diag new file mode 100644 index 000000000..9751cddaf --- /dev/null +++ b/tests/parser/success/unit/QuotedTypeB.diag @@ -0,0 +1 @@ +["Type", 0] diff --git a/tests/parser/success/unit/QuotedVariableB.diag b/tests/parser/success/unit/QuotedVariableB.diag new file mode 100644 index 000000000..fdff1fa21 --- /dev/null +++ b/tests/parser/success/unit/QuotedVariableB.diag @@ -0,0 +1 @@ +["x+y", 0] diff --git a/tests/parser/success/unit/RecordFieldAccessB.diag b/tests/parser/success/unit/RecordFieldAccessB.diag new file mode 100644 index 000000000..74e45a677 --- /dev/null +++ b/tests/parser/success/unit/RecordFieldAccessB.diag @@ -0,0 +1 @@ +[9, ["r", 0], "x"] diff --git a/tests/parser/success/unit/RecordProjectFieldsB.diag b/tests/parser/success/unit/RecordProjectFieldsB.diag new file mode 100644 index 000000000..4e443bd9b --- /dev/null +++ b/tests/parser/success/unit/RecordProjectFieldsB.diag @@ -0,0 +1 @@ +[10, ["r", 0], "x", "y", "z"] diff --git a/tests/parser/success/unit/RecordProjectionByTypeB.diag b/tests/parser/success/unit/RecordProjectionByTypeB.diag new file mode 100644 index 000000000..6b0ed740f --- /dev/null +++ b/tests/parser/success/unit/RecordProjectionByTypeB.diag @@ -0,0 +1 @@ +[10, [8, {"a": [15, 1], "b": [15, 2]}], [[7, {"a": "Natural"}]]] diff --git a/tests/parser/success/unit/RecordProjectionByTypeEmptyB.diag b/tests/parser/success/unit/RecordProjectionByTypeEmptyB.diag new file mode 100644 index 000000000..5063ec20d --- /dev/null +++ b/tests/parser/success/unit/RecordProjectionByTypeEmptyB.diag @@ -0,0 +1 @@ +[10, [8, {"a": [15, 1], "b": [15, 2]}], [[7, {}]]] diff --git a/tests/parser/success/unit/SomeXB.diag b/tests/parser/success/unit/SomeXB.diag new file mode 100644 index 000000000..8da2f1c25 --- /dev/null +++ b/tests/parser/success/unit/SomeXB.diag @@ -0,0 +1 @@ +[5, null, ["x", 0]] diff --git a/tests/parser/success/unit/SomeXYZB.diag b/tests/parser/success/unit/SomeXYZB.diag new file mode 100644 index 000000000..e1e07f8df --- /dev/null +++ b/tests/parser/success/unit/SomeXYZB.diag @@ -0,0 +1 @@ +[0, [5, null, ["x", 0]], ["y", 0], ["z", 0]] diff --git a/tests/parser/success/unit/SortB.diag b/tests/parser/success/unit/SortB.diag new file mode 100644 index 000000000..a0399ef7e --- /dev/null +++ b/tests/parser/success/unit/SortB.diag @@ -0,0 +1 @@ +"Sort" diff --git a/tests/parser/success/unit/TypeB.diag b/tests/parser/success/unit/TypeB.diag new file mode 100644 index 000000000..0bfea227a --- /dev/null +++ b/tests/parser/success/unit/TypeB.diag @@ -0,0 +1 @@ +"Type" diff --git a/tests/parser/success/unit/UnionLit1B.diag b/tests/parser/success/unit/UnionLit1B.diag new file mode 100644 index 000000000..05c7b1aa4 --- /dev/null +++ b/tests/parser/success/unit/UnionLit1B.diag @@ -0,0 +1 @@ +[12, "x", ["t", 0], {"w": ["T", 0], "y": ["T", 0], "z": null}] diff --git a/tests/parser/success/unit/UnionLit2B.diag b/tests/parser/success/unit/UnionLit2B.diag new file mode 100644 index 000000000..a4517ca27 --- /dev/null +++ b/tests/parser/success/unit/UnionLit2B.diag @@ -0,0 +1 @@ +[12, "y", ["t", 0], {"w": ["T", 0], "x": ["T", 0], "z": null}] diff --git a/tests/parser/success/unit/UnionTypeEmptyB.diag b/tests/parser/success/unit/UnionTypeEmptyB.diag new file mode 100644 index 000000000..02f44a9ac --- /dev/null +++ b/tests/parser/success/unit/UnionTypeEmptyB.diag @@ -0,0 +1 @@ +[11, {}] diff --git a/tests/parser/success/unit/UnionTypeXB.diag b/tests/parser/success/unit/UnionTypeXB.diag new file mode 100644 index 000000000..f44422a66 --- /dev/null +++ b/tests/parser/success/unit/UnionTypeXB.diag @@ -0,0 +1 @@ +[11, {"x": null}] diff --git a/tests/parser/success/unit/UnionTypeXTYB.diag b/tests/parser/success/unit/UnionTypeXTYB.diag new file mode 100644 index 000000000..1d4f5af26 --- /dev/null +++ b/tests/parser/success/unit/UnionTypeXTYB.diag @@ -0,0 +1 @@ +[11, {"x": ["T", 0], "y": null}] diff --git a/tests/parser/success/unit/UnionTypeXTYUB.diag b/tests/parser/success/unit/UnionTypeXTYUB.diag new file mode 100644 index 000000000..a152e1872 --- /dev/null +++ b/tests/parser/success/unit/UnionTypeXTYUB.diag @@ -0,0 +1 @@ +[11, {"x": ["T", 0], "y": ["U", 0]}] diff --git a/tests/parser/success/unit/UnionTypeXYB.diag b/tests/parser/success/unit/UnionTypeXYB.diag new file mode 100644 index 000000000..44c1ca70b --- /dev/null +++ b/tests/parser/success/unit/UnionTypeXYB.diag @@ -0,0 +1 @@ +[11, {"x": null, "y": null}] diff --git a/tests/parser/success/unit/UnionTypeXYTB.diag b/tests/parser/success/unit/UnionTypeXYTB.diag new file mode 100644 index 000000000..5b52dade0 --- /dev/null +++ b/tests/parser/success/unit/UnionTypeXYTB.diag @@ -0,0 +1 @@ +[11, {"x": null, "y": ["T", 0]}] diff --git a/tests/parser/success/unit/VariableB.diag b/tests/parser/success/unit/VariableB.diag new file mode 100644 index 000000000..77e83384c --- /dev/null +++ b/tests/parser/success/unit/VariableB.diag @@ -0,0 +1 @@ +["x", 0] diff --git a/tests/parser/success/unit/VariableUnderscoreB.diag b/tests/parser/success/unit/VariableUnderscoreB.diag new file mode 100644 index 000000000..573541ac9 --- /dev/null +++ b/tests/parser/success/unit/VariableUnderscoreB.diag @@ -0,0 +1 @@ +0 diff --git a/tests/parser/success/unit/import/asLocationB.diag b/tests/parser/success/unit/import/asLocationB.diag new file mode 100644 index 000000000..cdf9189a7 --- /dev/null +++ b/tests/parser/success/unit/import/asLocationB.diag @@ -0,0 +1 @@ +[8, {"_1": [24, null, 2, 3, "some", "import.dhall"], "_2": [24, h'1220F9340BADF94A684E652E0A384F64363293D8B632D971F3453F7EE22F10AB6E75', 2, 2, "absolute", "import"], "_3": [24, null, 2, 1, null, "prelude.dhall-lang.org", "package.dhall", null], "_4": [24, null, 2, 6, "HOME"], "_5": [24, null, 2, 7]}] diff --git a/tests/parser/success/unit/import/asTextB.diag b/tests/parser/success/unit/import/asTextB.diag new file mode 100644 index 000000000..4f217cac1 --- /dev/null +++ b/tests/parser/success/unit/import/asTextB.diag @@ -0,0 +1 @@ +[24, null, 1, 1, null, "example.com", "foo", null] diff --git a/tests/parser/success/unit/import/environmentVariableBashB.diag b/tests/parser/success/unit/import/environmentVariableBashB.diag new file mode 100644 index 000000000..56fa8ca30 --- /dev/null +++ b/tests/parser/success/unit/import/environmentVariableBashB.diag @@ -0,0 +1 @@ +[24, null, 0, 6, "FOO"] diff --git a/tests/parser/success/unit/import/environmentVariablePosixB.diag b/tests/parser/success/unit/import/environmentVariablePosixB.diag new file mode 100644 index 000000000..a5ca49763 --- /dev/null +++ b/tests/parser/success/unit/import/environmentVariablePosixB.diag @@ -0,0 +1 @@ +[24, null, 0, 6, "\"\\\a\b\f\n\r\t\v"] diff --git a/tests/parser/success/unit/import/hashB.diag b/tests/parser/success/unit/import/hashB.diag new file mode 100644 index 000000000..0cde31db8 --- /dev/null +++ b/tests/parser/success/unit/import/hashB.diag @@ -0,0 +1 @@ +[24, h'122016173E984D35EE3FFD8B6B79167DF89480E67D1CD03EA5D0FC93689E4D928E61', 0, 3, "a.dhall"] diff --git a/tests/parser/success/unit/import/importAltB.diag b/tests/parser/success/unit/import/importAltB.diag new file mode 100644 index 000000000..bef2a8898 --- /dev/null +++ b/tests/parser/success/unit/import/importAltB.diag @@ -0,0 +1 @@ +[3, 11, [3, 11, [3, 11, [3, 11, [24, null, 1, 6, "UNSET1"], [24, null, 0, 6, "UNSET2"]], [24, null, 0, 7]], [24, null, 0, 6, "UNSET3"]], [15, 2]] diff --git a/tests/parser/success/unit/import/inlineUsingB.diag b/tests/parser/success/unit/import/inlineUsingB.diag new file mode 100644 index 000000000..dc2829de9 --- /dev/null +++ b/tests/parser/success/unit/import/inlineUsingB.diag @@ -0,0 +1 @@ +[24, null, 0, 1, [4, null, [8, {"mapKey": [18, "Authorization"], "mapValue": [18, "token 5199831f4dd3b79e7c5b7e0ebe75d67aa66e79d4"]}]], "example.com", "foo", null] diff --git a/tests/parser/success/unit/import/parenthesizeUsingB.diag b/tests/parser/success/unit/import/parenthesizeUsingB.diag new file mode 100644 index 000000000..761f82e0f --- /dev/null +++ b/tests/parser/success/unit/import/parenthesizeUsingB.diag @@ -0,0 +1 @@ +[24, h'1220B0E3EC1797B32C80C0BCB7E8254B08C7E9E35E75E6B410C7AC21477AB90167AD', 0, 1, [24, h'122016173E984D35EE3FFD8B6B79167DF89480E67D1CD03EA5D0FC93689E4D928E61', 0, 3, "a.dhall"], "raw.githubusercontent.com", "dhall-lang", "Prelude", "c79c2bc3c46f129cc5b6d594ce298a381bcae92c", "List", "replicate", null] diff --git a/tests/parser/success/unit/import/pathAbsoluteB.diag b/tests/parser/success/unit/import/pathAbsoluteB.diag new file mode 100644 index 000000000..ec4c31628 --- /dev/null +++ b/tests/parser/success/unit/import/pathAbsoluteB.diag @@ -0,0 +1 @@ +[24, null, 0, 2, "absolute", "path"] diff --git a/tests/parser/success/unit/import/pathHereB.diag b/tests/parser/success/unit/import/pathHereB.diag new file mode 100644 index 000000000..45e59dc1d --- /dev/null +++ b/tests/parser/success/unit/import/pathHereB.diag @@ -0,0 +1 @@ +[24, null, 0, 3, "relative", "path"] diff --git a/tests/parser/success/unit/import/pathHomeB.diag b/tests/parser/success/unit/import/pathHomeB.diag new file mode 100644 index 000000000..62ae38825 --- /dev/null +++ b/tests/parser/success/unit/import/pathHomeB.diag @@ -0,0 +1 @@ +[24, null, 0, 5, "home", "anchored", "path"] diff --git a/tests/parser/success/unit/import/pathParentB.diag b/tests/parser/success/unit/import/pathParentB.diag new file mode 100644 index 000000000..2ed69506d --- /dev/null +++ b/tests/parser/success/unit/import/pathParentB.diag @@ -0,0 +1 @@ +[24, null, 0, 4, "parent", "path"] diff --git a/tests/parser/success/unit/import/pathTerminationLambdaB.diag b/tests/parser/success/unit/import/pathTerminationLambdaB.diag new file mode 100644 index 000000000..5ff4f02fb --- /dev/null +++ b/tests/parser/success/unit/import/pathTerminationLambdaB.diag @@ -0,0 +1 @@ +[1, "x", [24, null, 0, 3, "example"], ["x", 0]] diff --git a/tests/parser/success/unit/import/pathTerminationListB.diag b/tests/parser/success/unit/import/pathTerminationListB.diag new file mode 100644 index 000000000..6c8493da0 --- /dev/null +++ b/tests/parser/success/unit/import/pathTerminationListB.diag @@ -0,0 +1 @@ +[4, null, [24, null, 0, 3, "example"], [24, null, 0, 3, "example"], [24, null, 0, 3, "example"]] diff --git a/tests/parser/success/unit/import/pathTerminationRecordB.diag b/tests/parser/success/unit/import/pathTerminationRecordB.diag new file mode 100644 index 000000000..09f525c1c --- /dev/null +++ b/tests/parser/success/unit/import/pathTerminationRecordB.diag @@ -0,0 +1 @@ +[8, {"bar": [24, null, 0, 3, "example"], "foo": [24, null, 0, 3, "example"]}] diff --git a/tests/parser/success/unit/import/pathTerminationUnionB.diag b/tests/parser/success/unit/import/pathTerminationUnionB.diag new file mode 100644 index 000000000..0cd1f7a13 --- /dev/null +++ b/tests/parser/success/unit/import/pathTerminationUnionB.diag @@ -0,0 +1 @@ +[12, "foo", [26, [0, [24, null, 0, 3, "example|"], ["bar", 0]], [24, null, 0, 3, "example"]], {}] diff --git a/tests/parser/success/unit/import/quotedPathsB.diag b/tests/parser/success/unit/import/quotedPathsB.diag new file mode 100644 index 000000000..ade595680 --- /dev/null +++ b/tests/parser/success/unit/import/quotedPathsB.diag @@ -0,0 +1 @@ +[8, {"example0": [24, null, 0, 2, "foo", "bar", "baz qux"], "example1": [24, null, 0, 1, null, "example.com", "foo", "bar?baz", "qux"]}] diff --git a/tests/parser/success/unit/import/unicodePathsB.diag b/tests/parser/success/unit/import/unicodePathsB.diag new file mode 100644 index 000000000..b01e7b54a --- /dev/null +++ b/tests/parser/success/unit/import/unicodePathsB.diag @@ -0,0 +1 @@ +[24, null, 0, 3, "families", "\u79BA.dhall"] diff --git a/tests/parser/success/unit/import/urls/basicHttpB.diag b/tests/parser/success/unit/import/urls/basicHttpB.diag new file mode 100644 index 000000000..29f06931b --- /dev/null +++ b/tests/parser/success/unit/import/urls/basicHttpB.diag @@ -0,0 +1 @@ +[24, null, 0, 0, null, "example.com", "someFile.dhall", null] diff --git a/tests/parser/success/unit/import/urls/basicHttpsB.diag b/tests/parser/success/unit/import/urls/basicHttpsB.diag new file mode 100644 index 000000000..8bc557148 --- /dev/null +++ b/tests/parser/success/unit/import/urls/basicHttpsB.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "raw.githubusercontent.com", "dhall-lang", "dhall-haskell", "18e4e9a18dc53271146df3ccf5b4177c3552236b", "examples", "True", null] diff --git a/tests/parser/success/unit/import/urls/emptyPath0B.diag b/tests/parser/success/unit/import/urls/emptyPath0B.diag new file mode 100644 index 000000000..e004f9744 --- /dev/null +++ b/tests/parser/success/unit/import/urls/emptyPath0B.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "example.com", "", null] diff --git a/tests/parser/success/unit/import/urls/emptyPath1B.diag b/tests/parser/success/unit/import/urls/emptyPath1B.diag new file mode 100644 index 000000000..e004f9744 --- /dev/null +++ b/tests/parser/success/unit/import/urls/emptyPath1B.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "example.com", "", null] diff --git a/tests/parser/success/unit/import/urls/emptyPathSegmentB.diag b/tests/parser/success/unit/import/urls/emptyPathSegmentB.diag new file mode 100644 index 000000000..2497b607b --- /dev/null +++ b/tests/parser/success/unit/import/urls/emptyPathSegmentB.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "example.com", "foo", "", "bar", null] diff --git a/tests/parser/success/unit/import/urls/emptyQueryB.diag b/tests/parser/success/unit/import/urls/emptyQueryB.diag new file mode 100644 index 000000000..58739330a --- /dev/null +++ b/tests/parser/success/unit/import/urls/emptyQueryB.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "example.com", "foo", ""] diff --git a/tests/parser/success/unit/import/urls/escapedPathB.diag b/tests/parser/success/unit/import/urls/escapedPathB.diag new file mode 100644 index 000000000..490f2688a --- /dev/null +++ b/tests/parser/success/unit/import/urls/escapedPathB.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "example.com", "a b", "c/d", "e+f", null] diff --git a/tests/parser/success/unit/import/urls/escapedQueryB.diag b/tests/parser/success/unit/import/urls/escapedQueryB.diag new file mode 100644 index 000000000..bf41136b1 --- /dev/null +++ b/tests/parser/success/unit/import/urls/escapedQueryB.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "example.com", "foo", "a%20b=c%2fd&e+f/?"] diff --git a/tests/parser/success/unit/import/urls/fragmentParsesAsListAppendB.diag b/tests/parser/success/unit/import/urls/fragmentParsesAsListAppendB.diag new file mode 100644 index 000000000..36221f077 --- /dev/null +++ b/tests/parser/success/unit/import/urls/fragmentParsesAsListAppendB.diag @@ -0,0 +1 @@ +[3, 7, [24, null, 0, 1, null, "example.com", "foo", null], ["bar", 0]] diff --git a/tests/parser/success/unit/import/urls/ipv4B.diag b/tests/parser/success/unit/import/urls/ipv4B.diag new file mode 100644 index 000000000..4569512ef --- /dev/null +++ b/tests/parser/success/unit/import/urls/ipv4B.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "127.0.0.1", "index.dhall", null] diff --git a/tests/parser/success/unit/import/urls/ipv6longB.diag b/tests/parser/success/unit/import/urls/ipv6longB.diag new file mode 100644 index 000000000..930bb5360 --- /dev/null +++ b/tests/parser/success/unit/import/urls/ipv6longB.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "[2001:db8:85a3:0:0:8a2e:370:7334]", "tutorial.dhall", null] diff --git a/tests/parser/success/unit/import/urls/ipv6mediumB.diag b/tests/parser/success/unit/import/urls/ipv6mediumB.diag new file mode 100644 index 000000000..e41b34afc --- /dev/null +++ b/tests/parser/success/unit/import/urls/ipv6mediumB.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "[2001:db8:85a3::8a2e:370:7334]", "tutorial.dhall", null] diff --git a/tests/parser/success/unit/import/urls/ipv6shortB.diag b/tests/parser/success/unit/import/urls/ipv6shortB.diag new file mode 100644 index 000000000..727fe6433 --- /dev/null +++ b/tests/parser/success/unit/import/urls/ipv6shortB.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "[::]", "index.dhall", null] diff --git a/tests/parser/success/unit/import/urls/ipv6withipv4B.diag b/tests/parser/success/unit/import/urls/ipv6withipv4B.diag new file mode 100644 index 000000000..fd16108ae --- /dev/null +++ b/tests/parser/success/unit/import/urls/ipv6withipv4B.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "[2001:db8:85a3::8a2e:3.112.115.52]", "tutorial.dhall", null] diff --git a/tests/parser/success/unit/import/urls/portB.diag b/tests/parser/success/unit/import/urls/portB.diag new file mode 100644 index 000000000..bc23101c0 --- /dev/null +++ b/tests/parser/success/unit/import/urls/portB.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "example.com:1234", "foo", null] diff --git a/tests/parser/success/unit/import/urls/potPourriB.diag b/tests/parser/success/unit/import/urls/potPourriB.diag new file mode 100644 index 000000000..54e0479c5 --- /dev/null +++ b/tests/parser/success/unit/import/urls/potPourriB.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "-._~%2C!$&'*+;=:@0abc1--12a------a-a--a-0", "foo", "/-._~%2C!$&%27*+;=:@/?"] diff --git a/tests/parser/success/unit/import/urls/quotedPathFakeUrlEncodeB.diag b/tests/parser/success/unit/import/urls/quotedPathFakeUrlEncodeB.diag new file mode 100644 index 000000000..ba7cc35dd --- /dev/null +++ b/tests/parser/success/unit/import/urls/quotedPathFakeUrlEncodeB.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "example.com", "a%20b", "c", null] diff --git a/tests/parser/success/unit/import/urls/userinfoB.diag b/tests/parser/success/unit/import/urls/userinfoB.diag new file mode 100644 index 000000000..2fc7168c7 --- /dev/null +++ b/tests/parser/success/unit/import/urls/userinfoB.diag @@ -0,0 +1 @@ +[24, null, 0, 1, null, "john:doe@example.com", "foo", null] diff --git a/tests/parser/success/whitespaceB.diag b/tests/parser/success/whitespaceB.diag new file mode 100644 index 000000000..d90353da0 --- /dev/null +++ b/tests/parser/success/whitespaceB.diag @@ -0,0 +1 @@ +[15, 1] diff --git a/tests/parser/success/whitespaceBuffetB.diag b/tests/parser/success/whitespaceBuffetB.diag new file mode 100644 index 000000000..e3070b740 --- /dev/null +++ b/tests/parser/success/whitespaceBuffetB.diag @@ -0,0 +1 @@ +[0, "Natural/even", [15, 2]]