Name is already always supplied, no need to add it

This commit is contained in:
Tony Garnock-Jones 2021-05-25 11:01:55 +02:00
parent 7d06c7dce0
commit 669d1b480d
5 changed files with 5 additions and 21 deletions

View File

@ -109,7 +109,7 @@ class Checker {
p.entries.forEach((np, key) =>
this.checkNamedPattern(
scope,
M.promoteNamedSimplePattern(M.addNameIfAbsent(np, key)),
M.promoteNamedSimplePattern(np),
`entry ${key.asPreservesText()} in dictionary in ${context}`));
break;
}

View File

@ -222,7 +222,7 @@ function converterForCompound(
ctx.block(() =>
converterFor(
ctx,
M.promoteNamedSimplePattern(M.addNameIfAbsent(n, k)),
M.promoteNamedSimplePattern(n),
tmpSrc,
() => loop(i + 1))))];
} else {

View File

@ -76,8 +76,8 @@ function compoundFields(fs: FieldMap, resolver: RefResolver, p: M.CompoundPatter
gatherFields(fs, resolver, M.promoteNamedSimplePattern(p.variable));
break;
case 'dict':
p.entries.forEach((n, k) =>
gatherFields(fs, resolver, M.promoteNamedSimplePattern(M.addNameIfAbsent(n, k))));
p.entries.forEach((n, _k) =>
gatherFields(fs, resolver, M.promoteNamedSimplePattern(n)));
break;
default:
((_p: never) => {})(p);

View File

@ -101,7 +101,7 @@ function unconverterFor(ctx: FunctionContext, p: M.Pattern, src: string): Item {
brackets(... Array.from(p.entries.entries()).map(([k, n]) =>
brackets(
ctx.mod.literal(k),
unconverterForNamedSimple(ctx, M.addNameIfAbsent(n, k), src))))));
unconverterForNamedSimple(ctx, n, src))))));
}
})(p.value);
}

View File

@ -102,22 +102,6 @@ export function anonymousSimplePattern(p: M.SimplePattern): M.NamedPattern {
return M.NamedPattern.anonymous(M.Pattern.SimplePattern(p));
}
export function addNameIfAbsent(p: M.NamedSimplePattern, k: M._val): M.NamedSimplePattern {
if (p._variant === 'named') {
return p;
} else {
const s = namelike(k);
if (s !== void 0) {
return M.NamedSimplePattern.named(M.NamedSimplePattern_({
name: Symbol.for(s),
pattern: p.value
}));
} else {
return p;
}
}
}
export function namelike(x: Input): string | undefined {
if (typeof x === 'string') return x;
if (typeof x === 'symbol') return x.description!;