Avoid double-translation of positions (?)

This commit is contained in:
Tony Garnock-Jones 2023-02-14 12:05:51 +01:00
parent a761e7a5b7
commit 8a51e87f38
1 changed files with 4 additions and 2 deletions

View File

@ -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<T extends ts.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);
}