in reporter/src/com/intellij/rt/coverage/aggregate/InheritanceFilter.java [55:79]
private IncludeStatus isIncludedInternal(String className, List<Pattern> includePatterns, List<Pattern> excludePatterns) {
IncludeStatus status = IncludeStatus.UNKNOWN;
if (ClassNameUtil.matchesPatterns(className, includePatterns)) {
status = IncludeStatus.INCLUDED_SELF;
}
if (ClassNameUtil.matchesPatterns(className, excludePatterns)) {
status = IncludeStatus.EXCLUDED_SELF;
}
String[] inherits = myInherits.get(className);
if (inherits != null) {
for (String inherit : inherits) {
IncludeStatus inheritStatus = isIncluded(inherit, includePatterns, excludePatterns);
if (inheritStatus == IncludeStatus.EXCLUDED || inheritStatus == IncludeStatus.EXCLUDED_SELF) {
return IncludeStatus.EXCLUDED;
}
if ((inheritStatus == IncludeStatus.INCLUDED || inheritStatus == IncludeStatus.INCLUDED_SELF)
&& !(status == IncludeStatus.INCLUDED_SELF || status == IncludeStatus.EXCLUDED_SELF)) {
status = IncludeStatus.INCLUDED;
}
}
}
return status;
}