MCPcopy Create free account
hub / github.com/nodejs/node / reportImplicitAny

Function reportImplicitAny

test/fixtures/snapshot/typescript.js:67922–67990  ·  view source on GitHub ↗
(declaration, type, wideningKind)

Source from the content-addressed store, hash-verified

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;

Calls 6

typeToStringFunction · 0.85
getWidenedTypeFunction · 0.85
resolveNameFunction · 0.85
errorOrSuggestionFunction · 0.85
errorFunction · 0.70
indexOfMethod · 0.45

Tested by

no test coverage detected