Fix -Lmakefile LOCAL_JAVA_LIBRARIES does not include hierarchy.
Fix: 33249372
Test: update_makefiles.sh
Change-Id: I03f4197ce85adae764eda8ed303e47fa00fc881c
diff --git a/AST.cpp b/AST.cpp
index 5d286ed..eaa3141 100644
--- a/AST.cpp
+++ b/AST.cpp
@@ -457,6 +457,17 @@
}
}
+void AST::getImportedPackagesHierarchy(std::set<FQName> *importSet) const {
+ getImportedPackages(importSet);
+ std::set<FQName> newSet;
+ for (const auto &ast : mImportedASTs) {
+ if (importSet->find(ast->package()) != importSet->end()) {
+ ast->getImportedPackagesHierarchy(&newSet);
+ }
+ }
+ importSet->insert(newSet.begin(), newSet.end());
+}
+
bool AST::isJavaCompatible() const {
std::string ifaceName;
if (!AST::isInterface(&ifaceName)) {
diff --git a/AST.h b/AST.h
index 96abed7..dc5a7e2 100644
--- a/AST.h
+++ b/AST.h
@@ -90,6 +90,10 @@
void getImportedPackages(std::set<FQName> *importSet) const;
+ // Run getImportedPackages on this, then run getImportedPackages on
+ // each AST in each package referenced in importSet.
+ void getImportedPackagesHierarchy(std::set<FQName> *importSet) const;
+
status_t generateVts(const std::string &outputPath) const;
bool isJavaCompatible() const;
diff --git a/main.cpp b/main.cpp
index 5e17086..c33ce5e 100644
--- a/main.cpp
+++ b/main.cpp
@@ -419,7 +419,7 @@
typesAST = ast;
}
- ast->getImportedPackages(&importedPackages);
+ ast->getImportedPackagesHierarchy(&importedPackages);
ast->appendToExportedTypesVector(&exportedTypes);
}