diff --git a/packages/ts-plugin/src/index.ts b/packages/ts-plugin/src/index.ts index ecbc0ac..6084aa2 100644 --- a/packages/ts-plugin/src/index.ts +++ b/packages/ts-plugin/src/index.ts @@ -55,20 +55,22 @@ const boot: tslib.server.PluginModuleFactory = ({ typescript: ts }) => { span(s: undefined): undefined; span(s: ts.TextSpan | undefined): ts.TextSpan | undefined; span(s: ts.TextSpan | undefined): ts.TextSpan | undefined { - if (s !== void 0) { + if (s !== void 0 && !('__syndicate_translated__' in s)) { const newStart = this.loc(s.start); if (newStart === void 0) throw new Error("Source position unavailable for TextSpan " + JSON.stringify(s)); s.start = newStart; + (s as any).__syndicate_translated__ = true; } return s; } diagnostic(d: T, ds: T[]) { - if (d.start !== void 0) { + if (d.start !== void 0 && !('__syndicate_translated__' in d)) { const p = this.info.targetToSourceMap.get(d.start); if (p === null) return; if (p.firstItem.synthetic) return; d.start = p.firstItem.start.pos + p.offset; + (d as any).__syndicate_translated__ = true; } ds.push(d); }