From 4ee9f995290e3794bc7bf5d5cb4afb604383ff10 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Fri, 12 Mar 2021 11:33:49 +0100 Subject: [PATCH] Inline single-use function --- .../javascript/packages/schema/src/compiler.ts | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/implementations/javascript/packages/schema/src/compiler.ts b/implementations/javascript/packages/schema/src/compiler.ts index fdff345..3d6a9cf 100644 --- a/implementations/javascript/packages/schema/src/compiler.ts +++ b/implementations/javascript/packages/schema/src/compiler.ts @@ -97,16 +97,6 @@ export function compile(env: Environment, schema: Schema, options: CompilerOptio } } - function applyPredicate(name: Ref, v: string): Item { - return lookup(refPosition(name), name, env, - (_p) => `is${Ref._.name(name).description!}(${v})`, - (p) => predicateFor(v, p), - (mod, modPath, _p) => { - imports.add([mod, modPath]); - return `${mod}.is${Ref._.name(name).description!}(${v})`; - }); - } - function predicateFor(v: string, p: Pattern, recordOkAsTuple = false): Item { switch (p.label) { case M.$atom: @@ -122,7 +112,13 @@ export function compile(env: Environment, schema: Schema, options: CompilerOptio case M.$lit: return `_.is(${v}, ${literal(p[0])})`; case M.$ref: - return applyPredicate(p, v); + return lookup(refPosition(p), p, env, + (_p) => `is${Ref._.name(p).description!}(${v})`, + (pp) => predicateFor(v, pp), + (mod, modPath, _p) => { + imports.add([mod, modPath]); + return `${mod}.is${Ref._.name(p).description!}(${v})`; + }); case M.$or: return opseq('false', ' || ', ... p[0].map(pp => predicateFor(v, pp))); case M.$and: