/** * `${{Name}}` written into an attribute that does not read it. * * Interpolation reaches exactly two places: the TEXT inside ``, and * ``, where a path may be finished by another * column. Everywhere else the braces are eight literal characters — and the * generator that receives them complains about whatever it happens to be * parsing, which is true and tells the reader nothing: * * TDC081 invalid number range * TDC151 invalid date * TDC097 quantifier must start with a number * TDC099 unknown alphabet * nothing at all — emits ${{N}} literally * * Five messages and one silence for one mistake, and none of them names it. The * reader has seen `${{}}` work in a `template` value and moves it one generator * across, which is the most natural thing in the world. * * So the cause is named once, here, before the generator ever sees the value. * The check is deliberately blind to WHICH attribute: a list of "attributes that * do not interpolate" would be every attribute but one, and would have to be * kept in step with every generator added later. * * It REPLACES the generator's own complaint rather than sitting beside it — the * same choice the XML-entity check in an `if=` makes, and for the same reason: * two messages for one mistake, one of them naming the wrong thing, is worse * than one that is right. */ import type { Diagnostic } from '../errors/index.js'; import type { AttrContext } from '../generated/TDCParser.js'; /** * Report `${{…}}` in any attribute of this `` that will not expand it. * * `template value=` is the one exception and is skipped by name; everything * else — including `value=` on any other type — is reported. */ export declare function checkAttrInterpolation(attrs: readonly AttrContext[], diagnostics: Diagnostic[]): boolean; //# sourceMappingURL=interpolation.d.ts.map