void (@NotNull CoverageSuitesBundle suite, @NotNull PsiFile psiFile, Module module, Int2IntMap oldToNewLineMapping, @NotNull MarkupModel markupModel, @NotNull TreeMap<Integer, LineData> executableLines, @NotNull TreeMap<Integer, String> classNames) { var editor = myEditor; var engine = suite.getCoverageEngine(); var data = suite.getCoverageData(); if (data == null) { coverageDataNotFound(suite); return; } class HighlightersCollector { private void collect(File outputFile, final String qualifiedName) { final ClassData fileData = data.getClassData(qualifiedName); if (fileData != null) { final Object[] lines = fileData.getLines(); if (lines != null) { final Object[] postProcessedLines = engine.postProcessExecutableLines(lines, editor); for (Object lineData : postProcessedLines) { if (lineData instanceof LineData) { if (engine.isGeneratedCode(myProject, qualifiedName, lineData)) continue; final int line = ((LineData)lineData).getLineNumber() - 1; final int lineNumberInCurrent; if (oldToNewLineMapping != null) { if (!oldToNewLineMapping.containsKey(line)) continue; lineNumberInCurrent = oldToNewLineMapping.get(line); } else { // use id mapping lineNumberInCurrent = line; } executableLines.put(line, (LineData)lineData); classNames.put(line, qualifiedName); addHighlighter(markupModel, executableLines, suite, line, lineNumberInCurrent, qualifiedName); } } } } else if (outputFile != null && !CoverageDataManager.getInstance(myProject).isSubCoverageActive() && engine.includeUntouchedFileInCoverage(qualifiedName, outputFile, psiFile, suite)) { highlightNonCoveredFile(outputFile, markupModel, executableLines, suite, oldToNewLineMapping); } } } final HighlightersCollector collector = new HighlightersCollector(); final Set<File> outputFiles = engine.getCorrespondingOutputFiles(psiFile, module, suite); if (!outputFiles.isEmpty()) { for (File outputFile : outputFiles) { final String qualifiedName = engine.getQualifiedName(outputFile, psiFile); if (qualifiedName != null) { collector.collect(outputFile, qualifiedName); } } } else { //check non-compilable classes which present in ProjectData for (String qName : engine.getQualifiedNames(psiFile)) { collector.collect(null, qName); } } }