mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Co-authored-by: Daniel Rosenwasser <DanielRosenwasser@users.noreply.github.com>
This commit is contained in:
co-authored by
Daniel Rosenwasser
parent
6c7df1f324
commit
e28a76c7e4
@@ -369,6 +369,7 @@ import {
|
||||
tokenIsIdentifierOrKeywordOrGreaterThan,
|
||||
tokenToString,
|
||||
tracing,
|
||||
transferSourceFileChildren,
|
||||
TransformFlags,
|
||||
TryStatement,
|
||||
TupleTypeNode,
|
||||
@@ -9949,6 +9950,7 @@ namespace IncrementalParser {
|
||||
aggressiveChecks,
|
||||
);
|
||||
result.impliedNodeFormat = sourceFile.impliedNodeFormat;
|
||||
transferSourceFileChildren(sourceFile, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -10001,9 +10003,9 @@ namespace IncrementalParser {
|
||||
}
|
||||
}
|
||||
|
||||
function moveElementEntirelyPastChangeRange(element: Node, isArray: false, delta: number, oldText: string, newText: string, aggressiveChecks: boolean): void;
|
||||
function moveElementEntirelyPastChangeRange(element: NodeArray<Node>, isArray: true, delta: number, oldText: string, newText: string, aggressiveChecks: boolean): void;
|
||||
function moveElementEntirelyPastChangeRange(element: Node | NodeArray<Node>, isArray: boolean, delta: number, oldText: string, newText: string, aggressiveChecks: boolean) {
|
||||
function moveElementEntirelyPastChangeRange(element: Node, origSourceFile: SourceFile, isArray: false, delta: number, oldText: string, newText: string, aggressiveChecks: boolean): void;
|
||||
function moveElementEntirelyPastChangeRange(element: NodeArray<Node>, origSourceFile: SourceFile, isArray: true, delta: number, oldText: string, newText: string, aggressiveChecks: boolean): void;
|
||||
function moveElementEntirelyPastChangeRange(element: Node | NodeArray<Node>, origSourceFile: SourceFile, isArray: boolean, delta: number, oldText: string, newText: string, aggressiveChecks: boolean) {
|
||||
if (isArray) {
|
||||
visitArray(element as NodeArray<Node>);
|
||||
}
|
||||
@@ -10020,7 +10022,7 @@ namespace IncrementalParser {
|
||||
|
||||
// Ditch any existing LS children we may have created. This way we can avoid
|
||||
// moving them forward.
|
||||
unsetNodeChildren(node);
|
||||
unsetNodeChildren(node, origSourceFile);
|
||||
|
||||
setTextRangePosEnd(node, node.pos + delta, node.end + delta);
|
||||
|
||||
@@ -10167,7 +10169,7 @@ namespace IncrementalParser {
|
||||
if (child.pos > changeRangeOldEnd) {
|
||||
// Node is entirely past the change range. We need to move both its pos and
|
||||
// end, forward or backward appropriately.
|
||||
moveElementEntirelyPastChangeRange(child, /*isArray*/ false, delta, oldText, newText, aggressiveChecks);
|
||||
moveElementEntirelyPastChangeRange(child, sourceFile, /*isArray*/ false, delta, oldText, newText, aggressiveChecks);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -10177,7 +10179,7 @@ namespace IncrementalParser {
|
||||
const fullEnd = child.end;
|
||||
if (fullEnd >= changeStart) {
|
||||
markAsIntersectingIncrementalChange(child);
|
||||
unsetNodeChildren(child);
|
||||
unsetNodeChildren(child, sourceFile);
|
||||
|
||||
// Adjust the pos or end (or both) of the intersecting element accordingly.
|
||||
adjustIntersectingElement(child, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta);
|
||||
@@ -10200,7 +10202,7 @@ namespace IncrementalParser {
|
||||
if (array.pos > changeRangeOldEnd) {
|
||||
// Array is entirely after the change range. We need to move it, and move any of
|
||||
// its children.
|
||||
moveElementEntirelyPastChangeRange(array, /*isArray*/ true, delta, oldText, newText, aggressiveChecks);
|
||||
moveElementEntirelyPastChangeRange(array, sourceFile, /*isArray*/ true, delta, oldText, newText, aggressiveChecks);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user