@@ -25,26 +25,35 @@ class ConfigBuilder {
2525 String excludesRootFolder, {
2626 Iterable <Metric <num >>? classMetrics,
2727 Iterable <Metric <num >>? functionMetrics,
28- }) =>
29- LintAnalysisConfig (
30- prepareExcludes (config.excludePatterns, excludesRootFolder),
31- getRulesById (config.rules),
32- prepareExcludes (config.excludeForRulesPatterns, excludesRootFolder),
33- getPatternsById (config),
34- classMetrics ??
35- getMetrics (
36- config: config.metrics,
37- measuredType: EntityType .classEntity,
38- ),
39- functionMetrics ??
40- getMetrics (
41- config: config.metrics,
42- measuredType: EntityType .methodEntity,
43- ),
44- prepareExcludes (config.excludeForMetricsPatterns, excludesRootFolder),
45- config.metrics,
46- excludesRootFolder,
47- );
28+ }) {
29+ final patterns = getPatternsById (config);
30+ final patternsDependencies = patterns
31+ .map ((pattern) => pattern.dependentMetricIds)
32+ .expand ((e) => e)
33+ .toSet ();
34+
35+ return LintAnalysisConfig (
36+ prepareExcludes (config.excludePatterns, excludesRootFolder),
37+ getRulesById (config.rules),
38+ prepareExcludes (config.excludeForRulesPatterns, excludesRootFolder),
39+ patterns,
40+ classMetrics ??
41+ getMetrics (
42+ config: config.metrics,
43+ patternsDependencies: patternsDependencies,
44+ measuredType: EntityType .classEntity,
45+ ),
46+ functionMetrics ??
47+ getMetrics (
48+ config: config.metrics,
49+ patternsDependencies: patternsDependencies,
50+ measuredType: EntityType .methodEntity,
51+ ),
52+ prepareExcludes (config.excludeForMetricsPatterns, excludesRootFolder),
53+ config.metrics,
54+ excludesRootFolder,
55+ );
56+ }
4857
4958 static UnusedFilesConfig getUnusedFilesConfigFromArgs (
5059 Iterable <String > excludePatterns,
0 commit comments