(reason)
| 118985 | programDiagnostics.add(createDiagnosticExplainingFile(file, /*fileProcessingReason*/ undefined, diagnostic, args)); |
| 118986 | } |
| 118987 | function fileIncludeReasonToRelatedInformation(reason) { |
| 118988 | if (isReferencedFile(reason)) { |
| 118989 | var referenceLocation = getReferencedFileLocation(getSourceFileByPath, reason); |
| 118990 | var message_2; |
| 118991 | switch (reason.kind) { |
| 118992 | case ts.FileIncludeKind.Import: |
| 118993 | message_2 = ts.Diagnostics.File_is_included_via_import_here; |
| 118994 | break; |
| 118995 | case ts.FileIncludeKind.ReferenceFile: |
| 118996 | message_2 = ts.Diagnostics.File_is_included_via_reference_here; |
| 118997 | break; |
| 118998 | case ts.FileIncludeKind.TypeReferenceDirective: |
| 118999 | message_2 = ts.Diagnostics.File_is_included_via_type_library_reference_here; |
| 119000 | break; |
| 119001 | case ts.FileIncludeKind.LibReferenceDirective: |
| 119002 | message_2 = ts.Diagnostics.File_is_included_via_library_reference_here; |
| 119003 | break; |
| 119004 | default: |
| 119005 | ts.Debug.assertNever(reason); |
| 119006 | } |
| 119007 | return isReferenceFileLocation(referenceLocation) ? ts.createFileDiagnostic(referenceLocation.file, referenceLocation.pos, referenceLocation.end - referenceLocation.pos, message_2) : undefined; |
| 119008 | } |
| 119009 | if (!options.configFile) |
| 119010 | return undefined; |
| 119011 | var configFileNode; |
| 119012 | var message; |
| 119013 | switch (reason.kind) { |
| 119014 | case ts.FileIncludeKind.RootFile: |
| 119015 | if (!options.configFile.configFileSpecs) |
| 119016 | return undefined; |
| 119017 | var fileName = ts.getNormalizedAbsolutePath(rootNames[reason.index], currentDirectory); |
| 119018 | var matchedByFiles = ts.getMatchedFileSpec(program, fileName); |
| 119019 | if (matchedByFiles) { |
| 119020 | configFileNode = ts.getTsConfigPropArrayElementValue(options.configFile, "files", matchedByFiles); |
| 119021 | message = ts.Diagnostics.File_is_matched_by_files_list_specified_here; |
| 119022 | break; |
| 119023 | } |
| 119024 | var matchedByInclude = ts.getMatchedIncludeSpec(program, fileName); |
| 119025 | // Could be additional files specified as roots |
| 119026 | if (!matchedByInclude) |
| 119027 | return undefined; |
| 119028 | configFileNode = ts.getTsConfigPropArrayElementValue(options.configFile, "include", matchedByInclude); |
| 119029 | message = ts.Diagnostics.File_is_matched_by_include_pattern_specified_here; |
| 119030 | break; |
| 119031 | case ts.FileIncludeKind.SourceFromProjectReference: |
| 119032 | case ts.FileIncludeKind.OutputFromProjectReference: |
| 119033 | var referencedResolvedRef_1 = ts.Debug.checkDefined(resolvedProjectReferences === null || resolvedProjectReferences === void 0 ? void 0 : resolvedProjectReferences[reason.index]); |
| 119034 | var referenceInfo = forEachProjectReference(projectReferences, resolvedProjectReferences, function (resolvedRef, parent, index) { |
| 119035 | return resolvedRef === referencedResolvedRef_1 ? { sourceFile: (parent === null || parent === void 0 ? void 0 : parent.sourceFile) || options.configFile, index: index } : undefined; |
| 119036 | }); |
| 119037 | if (!referenceInfo) |
| 119038 | return undefined; |
| 119039 | var sourceFile = referenceInfo.sourceFile, index = referenceInfo.index; |
| 119040 | var referencesSyntax = ts.firstDefined(ts.getTsConfigPropArray(sourceFile, "references"), function (property) { return ts.isArrayLiteralExpression(property.initializer) ? property.initializer : undefined; }); |
| 119041 | return referencesSyntax && referencesSyntax.elements.length > index ? |
| 119042 | ts.createDiagnosticForNodeInSourceFile(sourceFile, referencesSyntax.elements[index], reason.kind === ts.FileIncludeKind.OutputFromProjectReference ? |
| 119043 | ts.Diagnostics.File_is_output_from_referenced_project_specified_here : |
| 119044 | ts.Diagnostics.File_is_source_from_referenced_project_specified_here) : |
no test coverage detected
searching dependent graphs…