mirror of
https://github.com/openharmony/developtools_ace-ets2bundle.git
synced 2026-07-21 03:55:23 -04:00
!998 修复tschecker增量检查无限循环问题
Merge pull request !998 from houhaoyu/master22
This commit is contained in:
@@ -449,12 +449,19 @@ function updateErrorFileCache(diagnostic: ts.Diagnostic): void {
|
||||
function filterInput(rootFileNames: string[]): string[] {
|
||||
return rootFileNames.filter((file: string) => {
|
||||
const needUpdate: NeedUpdateFlag = { flag: false };
|
||||
checkNeedUpdateFiles(path.resolve(file), needUpdate);
|
||||
const alreadyCheckedFiles: Set<string> = new Set();
|
||||
checkNeedUpdateFiles(path.resolve(file), needUpdate, alreadyCheckedFiles);
|
||||
return needUpdate.flag;
|
||||
});
|
||||
}
|
||||
|
||||
function checkNeedUpdateFiles(file: string, needUpdate: NeedUpdateFlag): void {
|
||||
function checkNeedUpdateFiles(file: string, needUpdate: NeedUpdateFlag, alreadyCheckedFiles: Set<string>): void {
|
||||
if (alreadyCheckedFiles.has(file)) {
|
||||
return;
|
||||
} else {
|
||||
alreadyCheckedFiles.add(file);
|
||||
}
|
||||
|
||||
if (needUpdate.flag) {
|
||||
return;
|
||||
}
|
||||
@@ -467,7 +474,7 @@ function checkNeedUpdateFiles(file: string, needUpdate: NeedUpdateFlag): void {
|
||||
return;
|
||||
}
|
||||
for (let i = 0; i < value.children.length; ++i) {
|
||||
checkNeedUpdateFiles(value.children[i], needUpdate);
|
||||
checkNeedUpdateFiles(value.children[i], needUpdate, alreadyCheckedFiles);
|
||||
}
|
||||
} else {
|
||||
cache[file] = { mtimeMs, children: [], error: false };
|
||||
|
||||
@@ -232,7 +232,10 @@ export function processComponentChild(node: ts.Block | ts.SourceFile, newStateme
|
||||
const name: string = getName(item);
|
||||
switch (getComponentType(item, log, name, parent)) {
|
||||
case ComponentType.innerComponent:
|
||||
parent = name;
|
||||
const etsExpression: ts.EtsComponentExpression = getEtsComponentExpression(item);
|
||||
if (ts.isIdentifier(etsExpression.expression)) {
|
||||
parent = etsExpression.expression.escapedText.toString();
|
||||
}
|
||||
processInnerComponent(item, newStatements, log, parent);
|
||||
break;
|
||||
case ComponentType.customComponent:
|
||||
|
||||
Reference in New Issue
Block a user