fix(language-service): initialize static reflector correctly
Fixes #15768
This commit is contained in:
parent
7b005aadc1
commit
fe0d02fc47
|
@ -6,7 +6,7 @@
|
||||||
* found in the LICENSE file at https://angular.io/license
|
* found in the LICENSE file at https://angular.io/license
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {AotSummaryResolver, CompileDirectiveMetadata, CompileMetadataResolver, CompilerConfig, DEFAULT_INTERPOLATION_CONFIG, DirectiveNormalizer, DirectiveResolver, DomElementSchemaRegistry, HtmlParser, InterpolationConfig, NgAnalyzedModules, NgModuleResolver, ParseTreeResult, Parser, PipeResolver, ResourceLoader, StaticReflector, StaticSymbol, StaticSymbolCache, StaticSymbolResolver, SummaryResolver, UrlResolver, analyzeNgModules, componentModuleUrl, createOfflineCompileUrlResolver, extractProgramSymbols} from '@angular/compiler';
|
import {AotSummaryResolver, CompileDirectiveMetadata, CompileMetadataResolver, CompilerConfig, DEFAULT_INTERPOLATION_CONFIG, DirectiveNormalizer, DirectiveResolver, DomElementSchemaRegistry, HtmlParser, InterpolationConfig, NgAnalyzedModules, NgModuleResolver, ParseTreeResult, Parser, PipeResolver, ResourceLoader, StaticAndDynamicReflectionCapabilities, StaticReflector, StaticSymbol, StaticSymbolCache, StaticSymbolResolver, SummaryResolver, UrlResolver, analyzeNgModules, componentModuleUrl, createOfflineCompileUrlResolver, extractProgramSymbols} from '@angular/compiler';
|
||||||
import {Type, ViewEncapsulation, ɵConsole as Console} from '@angular/core';
|
import {Type, ViewEncapsulation, ɵConsole as Console} from '@angular/core';
|
||||||
import * as fs from 'fs';
|
import * as fs from 'fs';
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
|
@ -428,6 +428,7 @@ export class TypeScriptServiceHost implements LanguageServiceHost {
|
||||||
const ssr = this.staticSymbolResolver;
|
const ssr = this.staticSymbolResolver;
|
||||||
result = this._reflector = new StaticReflector(
|
result = this._reflector = new StaticReflector(
|
||||||
this._summaryResolver, ssr, [], [], (e, filePath) => this.collectError(e, filePath));
|
this._summaryResolver, ssr, [], [], (e, filePath) => this.collectError(e, filePath));
|
||||||
|
StaticAndDynamicReflectionCapabilities.install(result);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
@ -201,7 +201,6 @@ describe('diagnostics', () => {
|
||||||
expect(diagnostic).toEqual([]);
|
expect(diagnostic).toEqual([]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
it('should report an error for invalid providers', () => {
|
it('should report an error for invalid providers', () => {
|
||||||
addCode(
|
addCode(
|
||||||
`
|
`
|
||||||
|
@ -220,6 +219,23 @@ describe('diagnostics', () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Issue #15768
|
||||||
|
it('should be able to parse a template reference', () => {
|
||||||
|
addCode(
|
||||||
|
`
|
||||||
|
@Component({
|
||||||
|
selector: 'my-component',
|
||||||
|
template: \`
|
||||||
|
<div *ngIf="comps | async; let comps; else loading">
|
||||||
|
</div>
|
||||||
|
<ng-template #loading>Loading comps...</ng-template>
|
||||||
|
\`
|
||||||
|
})
|
||||||
|
export class MyComponent {}
|
||||||
|
`,
|
||||||
|
fileName => onlyModuleDiagnostics(ngService.getDiagnostics(fileName)));
|
||||||
|
});
|
||||||
|
|
||||||
function addCode(code: string, cb: (fileName: string, content?: string) => void) {
|
function addCode(code: string, cb: (fileName: string, content?: string) => void) {
|
||||||
const fileName = '/app/app.component.ts';
|
const fileName = '/app/app.component.ts';
|
||||||
const originalContent = mockHost.getFileContent(fileName);
|
const originalContent = mockHost.getFileContent(fileName);
|
||||||
|
|
Loading…
Reference in New Issue