mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
refactor(compiler-cli): move ExtendedTemplateChecker to LazyCompilationState (#43134)
Create the `ExtendedTemplateChecker` during `makeCompilation`, that way it's avaiblable in the whole compiler. Refs #42966 PR Close #43134
This commit is contained in:
committed by
Alex Rickabaugh
parent
3cf8f66f3a
commit
e196311e5c
@@ -38,6 +38,7 @@ ts_library(
|
||||
"//packages/compiler-cli/src/ngtsc/typecheck/api",
|
||||
"//packages/compiler-cli/src/ngtsc/typecheck/diagnostics",
|
||||
"//packages/compiler-cli/src/ngtsc/typecheck/extended",
|
||||
"//packages/compiler-cli/src/ngtsc/typecheck/extended/api",
|
||||
"//packages/compiler-cli/src/ngtsc/typecheck/extended/src/template_checks/invalid_banana_in_box",
|
||||
"//packages/compiler-cli/src/ngtsc/util",
|
||||
"//packages/compiler-cli/src/ngtsc/xi18n",
|
||||
|
||||
@@ -31,6 +31,7 @@ import {aliasTransformFactory, CompilationMode, declarationTransformFactory, Dec
|
||||
import {TemplateTypeCheckerImpl} from '../../typecheck';
|
||||
import {OptimizeFor, TemplateTypeChecker, TypeCheckingConfig} from '../../typecheck/api';
|
||||
import {ExtendedTemplateCheckerImpl} from '../../typecheck/extended';
|
||||
import {ExtendedTemplateChecker} from '../../typecheck/extended/api';
|
||||
import {InvalidBananaInBoxCheck} from '../../typecheck/extended/src/template_checks/invalid_banana_in_box';
|
||||
import {getSourceFileOrNull, isDtsPath, resolveModuleName, toUnredirectedSourceFile} from '../../util/src/typescript';
|
||||
import {Xi18nContext} from '../../xi18n';
|
||||
@@ -54,6 +55,7 @@ interface LazyCompilationState {
|
||||
refEmitter: ReferenceEmitter;
|
||||
templateTypeChecker: TemplateTypeChecker;
|
||||
resourceRegistry: ResourceRegistry;
|
||||
extendedTemplateChecker: ExtendedTemplateChecker;
|
||||
}
|
||||
|
||||
|
||||
@@ -917,10 +919,7 @@ export class NgCompiler {
|
||||
private getExtendedTemplateDiagnostics(sf?: ts.SourceFile): ts.Diagnostic[] {
|
||||
const diagnostics: ts.Diagnostic[] = [];
|
||||
const compilation = this.ensureAnalyzed();
|
||||
const typeChecker = this.inputProgram.getTypeChecker();
|
||||
const templateChecks = [new InvalidBananaInBoxCheck()];
|
||||
const extendedTemplateChecker = new ExtendedTemplateCheckerImpl(
|
||||
compilation.templateTypeChecker, typeChecker, templateChecks);
|
||||
const extendedTemplateChecker = compilation.extendedTemplateChecker;
|
||||
if (sf !== undefined) {
|
||||
return compilation.traitCompiler.extendedTemplateCheck(sf, extendedTemplateChecker);
|
||||
}
|
||||
@@ -1095,6 +1094,10 @@ export class NgCompiler {
|
||||
reflector, this.adapter, this.incrementalCompilation, scopeRegistry, typeCheckScopeRegistry,
|
||||
this.delegatingPerfRecorder);
|
||||
|
||||
const templateChecks = [new InvalidBananaInBoxCheck()];
|
||||
const extendedTemplateChecker =
|
||||
new ExtendedTemplateCheckerImpl(templateTypeChecker, checker, templateChecks);
|
||||
|
||||
return {
|
||||
isCore,
|
||||
traitCompiler,
|
||||
@@ -1109,6 +1112,7 @@ export class NgCompiler {
|
||||
refEmitter,
|
||||
templateTypeChecker,
|
||||
resourceRegistry,
|
||||
extendedTemplateChecker
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user