diff --git a/packages/quicktype-core/src/language/Haskell/HaskellRenderer.ts b/packages/quicktype-core/src/language/Haskell/HaskellRenderer.ts index df24ab19ef..7d52f19ca0 100644 --- a/packages/quicktype-core/src/language/Haskell/HaskellRenderer.ts +++ b/packages/quicktype-core/src/language/Haskell/HaskellRenderer.ts @@ -109,7 +109,7 @@ export class HaskellRenderer extends ConvenienceRenderer { private haskellType(t: Type, noOptional = false): MultiWord { return matchType( t, - (_anyType) => multiWord(" ", "Maybe", "Text"), + (_anyType) => singleWord("Value"), (_nullType) => multiWord(" ", "Maybe", "Text"), (_boolType) => singleWord("Bool"), (_integerType) => singleWord("Int"), diff --git a/test/inputs/schema/any.1.json b/test/inputs/schema/any.1.json index 6465e11c40..697eb545b5 100644 --- a/test/inputs/schema/any.1.json +++ b/test/inputs/schema/any.1.json @@ -1 +1,8 @@ -{ "foo": 123 } +{ + "foo": 123, + "values": { + "number": 42, + "object": { "a": 1 }, + "array": [1, 2, 3] + } +} diff --git a/test/inputs/schema/any.2.json b/test/inputs/schema/any.2.json index 2ff04ea90e..5a35b97628 100644 --- a/test/inputs/schema/any.2.json +++ b/test/inputs/schema/any.2.json @@ -1 +1,7 @@ -{ "foo": [1, 2, 3] } +{ + "foo": [1, 2, 3], + "values": { + "boolean": true, + "null": null + } +} diff --git a/test/inputs/schema/any.3.json b/test/inputs/schema/any.3.json index fefd2e6dea..9fb43de4a2 100644 --- a/test/inputs/schema/any.3.json +++ b/test/inputs/schema/any.3.json @@ -1 +1,6 @@ -{ "foo": { "bar": "abc" } } +{ + "foo": { "bar": "abc" }, + "values": { + "string": "text" + } +} diff --git a/test/inputs/schema/any.schema b/test/inputs/schema/any.schema index a7067ed754..166aa4aaf2 100644 --- a/test/inputs/schema/any.schema +++ b/test/inputs/schema/any.schema @@ -1,7 +1,11 @@ { "type": "object", "properties": { - "foo": {} + "foo": {}, + "values": { + "type": "object", + "additionalProperties": true + } }, - "required": ["foo"] + "required": ["foo", "values"] } diff --git a/test/languages.ts b/test/languages.ts index 4e2cf42083..5ffbc5c63f 100644 --- a/test/languages.ts +++ b/test/languages.ts @@ -1882,7 +1882,6 @@ export const HaskellLanguage: Language = { skipMiscJSON: false, skipSchema: [ "integer-before-number.schema", // Python-specific union-order regression. - "any.schema", ...skipsUntypedUnions, // The test driver encodes the Maybe result, so a failed decode prints // "null" and exits 0 — expected-failure samples cannot be detected.