(declaration, type, wideningKind)
| 67920 | return errorReported; |
| 67921 | } |
| 67922 | function reportImplicitAny(declaration, type, wideningKind) { |
| 67923 | var typeAsString = typeToString(getWidenedType(type)); |
| 67924 | if (ts.isInJSFile(declaration) && !ts.isCheckJsEnabledForFile(ts.getSourceFileOfNode(declaration), compilerOptions)) { |
| 67925 | // Only report implicit any errors/suggestions in TS and ts-check JS files |
| 67926 | return; |
| 67927 | } |
| 67928 | var diagnostic; |
| 67929 | switch (declaration.kind) { |
| 67930 | case 221 /* SyntaxKind.BinaryExpression */: |
| 67931 | case 167 /* SyntaxKind.PropertyDeclaration */: |
| 67932 | case 166 /* SyntaxKind.PropertySignature */: |
| 67933 | diagnostic = noImplicitAny ? ts.Diagnostics.Member_0_implicitly_has_an_1_type : ts.Diagnostics.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage; |
| 67934 | break; |
| 67935 | case 164 /* SyntaxKind.Parameter */: |
| 67936 | var param = declaration; |
| 67937 | if (ts.isIdentifier(param.name) && |
| 67938 | (ts.isCallSignatureDeclaration(param.parent) || ts.isMethodSignature(param.parent) || ts.isFunctionTypeNode(param.parent)) && |
| 67939 | param.parent.parameters.indexOf(param) > -1 && |
| 67940 | (resolveName(param, param.name.escapedText, 788968 /* SymbolFlags.Type */, undefined, param.name.escapedText, /*isUse*/ true) || |
| 67941 | param.name.originalKeywordKind && ts.isTypeNodeKind(param.name.originalKeywordKind))) { |
| 67942 | var newName = "arg" + param.parent.parameters.indexOf(param); |
| 67943 | var typeName = ts.declarationNameToString(param.name) + (param.dotDotDotToken ? "[]" : ""); |
| 67944 | errorOrSuggestion(noImplicitAny, declaration, ts.Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1, newName, typeName); |
| 67945 | return; |
| 67946 | } |
| 67947 | diagnostic = declaration.dotDotDotToken ? |
| 67948 | noImplicitAny ? ts.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type : ts.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage : |
| 67949 | noImplicitAny ? ts.Diagnostics.Parameter_0_implicitly_has_an_1_type : ts.Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage; |
| 67950 | break; |
| 67951 | case 203 /* SyntaxKind.BindingElement */: |
| 67952 | diagnostic = ts.Diagnostics.Binding_element_0_implicitly_has_an_1_type; |
| 67953 | if (!noImplicitAny) { |
| 67954 | // Don't issue a suggestion for binding elements since the codefix doesn't yet support them. |
| 67955 | return; |
| 67956 | } |
| 67957 | break; |
| 67958 | case 317 /* SyntaxKind.JSDocFunctionType */: |
| 67959 | error(declaration, ts.Diagnostics.Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString); |
| 67960 | return; |
| 67961 | case 256 /* SyntaxKind.FunctionDeclaration */: |
| 67962 | case 169 /* SyntaxKind.MethodDeclaration */: |
| 67963 | case 168 /* SyntaxKind.MethodSignature */: |
| 67964 | case 172 /* SyntaxKind.GetAccessor */: |
| 67965 | case 173 /* SyntaxKind.SetAccessor */: |
| 67966 | case 213 /* SyntaxKind.FunctionExpression */: |
| 67967 | case 214 /* SyntaxKind.ArrowFunction */: |
| 67968 | if (noImplicitAny && !declaration.name) { |
| 67969 | if (wideningKind === 3 /* WideningKind.GeneratorYield */) { |
| 67970 | error(declaration, ts.Diagnostics.Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation, typeAsString); |
| 67971 | } |
| 67972 | else { |
| 67973 | error(declaration, ts.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString); |
| 67974 | } |
| 67975 | return; |
| 67976 | } |
| 67977 | diagnostic = !noImplicitAny ? ts.Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage : |
| 67978 | wideningKind === 3 /* WideningKind.GeneratorYield */ ? ts.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type : |
| 67979 | ts.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type; |
no test coverage detected