Module interface printing: add an option to filter declarations based on

access control

Swift SVN r20399
This commit is contained in:
Dmitri Hrybenko
2014-07-23 15:03:58 +00:00
parent d3456b62d6
commit 1007ef3f95
5 changed files with 54 additions and 9 deletions

View File

@@ -203,6 +203,14 @@ void swift::ide::printSubmoduleInterface(
if (Options.SkipUnavailable && D->getAttrs().isUnavailable())
continue;
// Skip declarations that are not accessible.
if (auto *VD = dyn_cast<ValueDecl>(D)) {
if (Options.AccessibilityFilter > Accessibility::Private &&
VD->hasAccessibility() &&
VD->getAccessibility() < Options.AccessibilityFilter)
continue;
}
auto ShouldPrintImport = [&](ImportDecl *ImportD) -> bool {
if (!InterestingClangModule)
return true;