From f194f18dbd48352cd3909f38d037f1e139a12c42 Mon Sep 17 00:00:00 2001 From: Chuck Jazdzewski Date: Mon, 19 Jun 2017 10:07:54 -0700 Subject: [PATCH] fix(language-service): infer `any` `ngForOf` of type `any` Fixes: #17611 --- .../compiler-cli/src/diagnostics/expression_diagnostics.ts | 4 ++-- packages/language-service/test/diagnostics_spec.ts | 4 ++++ packages/language-service/test/test_data.ts | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/compiler-cli/src/diagnostics/expression_diagnostics.ts b/packages/compiler-cli/src/diagnostics/expression_diagnostics.ts index 6495b13d5d..3a60d67709 100644 --- a/packages/compiler-cli/src/diagnostics/expression_diagnostics.ts +++ b/packages/compiler-cli/src/diagnostics/expression_diagnostics.ts @@ -154,8 +154,8 @@ function refinedVariableType( } } - // We can't do better, just return the original type. - return type; + // We can't do better, return any + return info.query.getBuiltinType(BuiltinType.Any); } function getEventDeclaration(info: DiagnosticTemplateInfo, includeEvent?: boolean) { diff --git a/packages/language-service/test/diagnostics_spec.ts b/packages/language-service/test/diagnostics_spec.ts index 86344e8b79..d8b85f1063 100644 --- a/packages/language-service/test/diagnostics_spec.ts +++ b/packages/language-service/test/diagnostics_spec.ts @@ -59,6 +59,10 @@ describe('diagnostics', () => { (ngHost as any)._reflector = null; ngService.getDiagnostics(fileName); }); + + // #17611 + it('should not report diagnostic on iteration of any', + () => { accept('
{{value.someField}}
'); }); }); describe('with $event', () => { diff --git a/packages/language-service/test/test_data.ts b/packages/language-service/test/test_data.ts index 737fc130aa..b4eb785ef1 100644 --- a/packages/language-service/test/test_data.ts +++ b/packages/language-service/test/test_data.ts @@ -148,6 +148,7 @@ export class TemplateReference { id: 1, name: 'Windstorm' }; + anyValue: any; myClick(event: any) { }