Avoid double-translation of positions (?)
This commit is contained in:
parent
a761e7a5b7
commit
8a51e87f38
|
@ -55,20 +55,22 @@ const boot: tslib.server.PluginModuleFactory = ({ typescript: ts }) => {
|
||||||
span(s: undefined): undefined;
|
span(s: undefined): undefined;
|
||||||
span(s: ts.TextSpan | undefined): ts.TextSpan | undefined;
|
span(s: ts.TextSpan | undefined): ts.TextSpan | 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);
|
const newStart = this.loc(s.start);
|
||||||
if (newStart === void 0) throw new Error("Source position unavailable for TextSpan " + JSON.stringify(s));
|
if (newStart === void 0) throw new Error("Source position unavailable for TextSpan " + JSON.stringify(s));
|
||||||
s.start = newStart;
|
s.start = newStart;
|
||||||
|
(s as any).__syndicate_translated__ = true;
|
||||||
}
|
}
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
diagnostic<T extends ts.Diagnostic>(d: T, ds: T[]) {
|
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);
|
const p = this.info.targetToSourceMap.get(d.start);
|
||||||
if (p === null) return;
|
if (p === null) return;
|
||||||
if (p.firstItem.synthetic) return;
|
if (p.firstItem.synthetic) return;
|
||||||
d.start = p.firstItem.start.pos + p.offset;
|
d.start = p.firstItem.start.pos + p.offset;
|
||||||
|
(d as any).__syndicate_translated__ = true;
|
||||||
}
|
}
|
||||||
ds.push(d);
|
ds.push(d);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue