mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Add a :print_module directive to the REPL.
This is basically the same as doing a :print_decl on every decl in the module, except that it does not print extensions that come from other modules, and /does/ print extensions and operators that come from this module. Does not yet work for Clang modules or the Builtin module. Swift SVN r7601
This commit is contained in:
@@ -344,6 +344,23 @@ void Module::lookupClassMember(AccessPathTy accessPath,
|
||||
return owner.lookupClassMember(this, accessPath, name, results);
|
||||
}
|
||||
|
||||
void Module::getDisplayDecls(SmallVectorImpl<Decl*> &results) {
|
||||
if (isa<BuiltinModule>(this)) {
|
||||
// FIXME: The Builtin module isn't usually visible, but it would be nice
|
||||
// to have the option to display its decls. Unfortunately those decls are
|
||||
// lazily generated.
|
||||
return;
|
||||
}
|
||||
|
||||
if (auto TU = dyn_cast<TranslationUnit>(this)) {
|
||||
results.append(TU->Decls.begin(), TU->Decls.end());
|
||||
return;
|
||||
}
|
||||
|
||||
ModuleLoader &owner = cast<LoadedModule>(this)->getOwner();
|
||||
return owner.getDisplayDecls(this, results);
|
||||
}
|
||||
|
||||
namespace {
|
||||
// Returns Nothing on error, Optional(nullptr) if no operator decl found, or
|
||||
// Optional(decl) if decl was found.
|
||||
|
||||
Reference in New Issue
Block a user