build(bazel): Turning on strictPropertyInitialization for Angular. (#24572)

All errors for existing fields have been detected and suppressed with a
`!` assertion.

Issue/24571 is tracking proper clean up of those instances.

One-line change required in ivy/compilation.ts, because it appears that
the new syntax causes tsickle emitted node to no longer track their
original sourceFiles.

PR Close #24572
This commit is contained in:
Rado Kirov
2018-06-18 16:38:33 -07:00
committed by Miško Hevery
parent 39c7769c9e
commit c95437f15d
189 changed files with 1273 additions and 632 deletions

View File

@ -33,7 +33,8 @@ class ReflectorModuleModuleResolutionHost implements ts.ModuleResolutionHost, Me
return undefined !;
}
directoryExists: (directoryName: string) => boolean;
// TODO(issue/24571): remove '!'.
directoryExists !: (directoryName: string) => boolean;
getSourceFileMetadata(fileName: string) {
const sf = this.getProgram().getSourceFile(fileName);

View File

@ -61,22 +61,33 @@ export class DummyResourceLoader extends ResourceLoader {
* @experimental
*/
export class TypeScriptServiceHost implements LanguageServiceHost {
private _resolver: CompileMetadataResolver|null;
// TODO(issue/24571): remove '!'.
private _resolver !: CompileMetadataResolver | null;
private _staticSymbolCache = new StaticSymbolCache();
private _summaryResolver: AotSummaryResolver;
private _staticSymbolResolver: StaticSymbolResolver;
private _reflector: StaticReflector|null;
private _reflectorHost: ReflectorHost;
private _checker: ts.TypeChecker|null;
// TODO(issue/24571): remove '!'.
private _summaryResolver !: AotSummaryResolver;
// TODO(issue/24571): remove '!'.
private _staticSymbolResolver !: StaticSymbolResolver;
// TODO(issue/24571): remove '!'.
private _reflector !: StaticReflector | null;
// TODO(issue/24571): remove '!'.
private _reflectorHost !: ReflectorHost;
// TODO(issue/24571): remove '!'.
private _checker !: ts.TypeChecker | null;
private _typeCache: Symbol[] = [];
private context: string|undefined;
private lastProgram: ts.Program|undefined;
private modulesOutOfDate: boolean = true;
private analyzedModules: NgAnalyzedModules|null;
private service: LanguageService;
private fileToComponent: Map<string, StaticSymbol>|null;
private templateReferences: string[]|null;
private collectedErrors: Map<string, any[]>|null;
// TODO(issue/24571): remove '!'.
private analyzedModules !: NgAnalyzedModules | null;
// TODO(issue/24571): remove '!'.
private service !: LanguageService;
// TODO(issue/24571): remove '!'.
private fileToComponent !: Map<string, StaticSymbol>| null;
// TODO(issue/24571): remove '!'.
private templateReferences !: string[] | null;
// TODO(issue/24571): remove '!'.
private collectedErrors !: Map<string, any[]>| null;
private fileVersions = new Map<string, string>();
constructor(private host: ts.LanguageServiceHost, private tsService: ts.LanguageService) {}