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
 | ||||
|  */ | ||||
| 
 | ||||
| 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 * as fs from 'fs'; | ||||
| import * as path from 'path'; | ||||
| @ -428,6 +428,7 @@ export class TypeScriptServiceHost implements LanguageServiceHost { | ||||
|       const ssr = this.staticSymbolResolver; | ||||
|       result = this._reflector = new StaticReflector( | ||||
|           this._summaryResolver, ssr, [], [], (e, filePath) => this.collectError(e, filePath)); | ||||
|       StaticAndDynamicReflectionCapabilities.install(result); | ||||
|     } | ||||
|     return result; | ||||
|   } | ||||
|  | ||||
| @ -201,7 +201,6 @@ describe('diagnostics', () => { | ||||
|       expect(diagnostic).toEqual([]); | ||||
|     }); | ||||
| 
 | ||||
| 
 | ||||
|     it('should report an error for invalid providers', () => { | ||||
|       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) { | ||||
|       const fileName = '/app/app.component.ts'; | ||||
|       const originalContent = mockHost.getFileContent(fileName); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user