Skip to content

Commit 61cff59

Browse files
committed
unified: Also report number of files included in a module
1 parent ce3706e commit 61cff59

2 files changed

Lines changed: 23 additions & 1 deletion

File tree

unified/ql/src/diagnostic/AnalysisQuality.qll

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ private import unified
22
private import codeql.util.ReportStats
33
private import codeql.unified.internal.StaticNameBinding
44
private import codeql.unified.internal.LocalNameBinding
5+
private import codeql.unified.internal.NameBindingPlugin
56

67
module StaticNameResolutionStats implements StatsSig {
78
private class Candidate extends Identifier {
@@ -33,3 +34,21 @@ module StaticNameResolutionStats implements StatsSig {
3334
}
3435

3536
module StaticNameResolutionStatsReport = ReportStats<StaticNameResolutionStats>;
37+
38+
module FilesCoveredByModuleManifest implements StatsSig {
39+
private class Candidate extends File {
40+
Candidate() { this.getExtension() = "swift" }
41+
42+
predicate isOk() { this = any(ModuleScopeRepr m).getAnIncludedFile() }
43+
}
44+
45+
int getNumberOfOk() { result = count(Candidate c | c.isOk()) }
46+
47+
int getNumberOfNotOk() { result = count(Candidate c | not c.isOk()) }
48+
49+
string getOkText() { result = "files covered by a module manifest" }
50+
51+
string getNotOkText() { result = "files not covered by any module manifest" }
52+
}
53+
54+
module FilesCoveredByModuleManifestStatsReport = ReportStats<FilesCoveredByModuleManifest>;

unified/ql/src/diagnostic/ExtractorInformation.ql

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ where
1414
(
1515
StaticNameResolutionStatsReport::numberOfOk(key, value) or
1616
StaticNameResolutionStatsReport::numberOfNotOk(key, value) or
17-
StaticNameResolutionStatsReport::percentageOfOk(key, value)
17+
StaticNameResolutionStatsReport::percentageOfOk(key, value) or
18+
FilesCoveredByModuleManifestStatsReport::numberOfOk(key, value) or
19+
FilesCoveredByModuleManifestStatsReport::numberOfNotOk(key, value) or
20+
FilesCoveredByModuleManifestStatsReport::percentageOfOk(key, value)
1821
) and
1922
/* Infinity */
2023
value != 1.0 / 0.0 and

0 commit comments

Comments
 (0)