Merge "Make NamedReference be child class for Reference"
diff --git a/AST.h b/AST.h
index dc39c0a..d48fba4 100644
--- a/AST.h
+++ b/AST.h
@@ -188,7 +188,9 @@
void generateTemplatizationLink(Formatter& out) const;
void generateCppTag(Formatter& out, const std::string& tag) const;
- status_t generateMethods(Formatter &out, MethodGenerator gen, bool includeParents = true) const;
+ status_t generateMethods(Formatter &out,
+ const MethodGenerator &gen,
+ bool includeParents = true) const;
status_t generateStubImplMethod(Formatter &out,
const std::string &className,
const Method *method) const;
diff --git a/CompoundType.cpp b/CompoundType.cpp
index 146074e..c8d56b0 100644
--- a/CompoundType.cpp
+++ b/CompoundType.cpp
@@ -491,8 +491,7 @@
return OK;
}
-status_t CompoundType::emitTypeDefinitions(
- Formatter &out, const std::string prefix) const {
+status_t CompoundType::emitTypeDefinitions(Formatter& out, const std::string& prefix) const {
std::string space = prefix.empty() ? "" : (prefix + "::");
status_t err = Scope::emitTypeDefinitions(out, space + localName());
@@ -871,8 +870,8 @@
out << "}\n\n";
}
-void CompoundType::emitResolveReferenceDef(
- Formatter &out, const std::string prefix, bool isReader) const {
+void CompoundType::emitResolveReferenceDef(Formatter& out, const std::string& prefix,
+ bool isReader) const {
out << "::android::status_t ";
const std::string space(prefix.empty() ? "" : (prefix + "::"));
diff --git a/CompoundType.h b/CompoundType.h
index da986a1..80c7435 100644
--- a/CompoundType.h
+++ b/CompoundType.h
@@ -115,8 +115,7 @@
status_t emitGlobalTypeDeclarations(Formatter &out) const override;
status_t emitGlobalHwDeclarations(Formatter &out) const override;
- status_t emitTypeDefinitions(
- Formatter &out, const std::string prefix) const override;
+ status_t emitTypeDefinitions(Formatter& out, const std::string& prefix) const override;
status_t emitJavaTypeDeclarations(
Formatter &out, bool atTopLevel) const override;
@@ -139,8 +138,7 @@
void emitStructReaderWriter(
Formatter &out, const std::string &prefix, bool isReader) const;
- void emitResolveReferenceDef(
- Formatter &out, const std::string prefix, bool isReader) const;
+ void emitResolveReferenceDef(Formatter& out, const std::string& prefix, bool isReader) const;
DISALLOW_COPY_AND_ASSIGN(CompoundType);
};
diff --git a/Coordinator.cpp b/Coordinator.cpp
index 1f76410..f37c8a9 100644
--- a/Coordinator.cpp
+++ b/Coordinator.cpp
@@ -585,7 +585,7 @@
size_t start = 1; // Ignore leading '/'
size_t slashPos;
- while ((slashPos = path.find("/", start)) != std::string::npos) {
+ while ((slashPos = path.find('/', start)) != std::string::npos) {
std::string partial = path.substr(0, slashPos);
struct stat st;
diff --git a/EnumType.cpp b/EnumType.cpp
index eaadc23..64c50f9 100644
--- a/EnumType.cpp
+++ b/EnumType.cpp
@@ -286,8 +286,7 @@
return OK;
}
-status_t EnumType::emitTypeDefinitions(Formatter &out, const std::string /* prefix */) const {
-
+status_t EnumType::emitTypeDefinitions(Formatter& out, const std::string& /* prefix */) const {
const ScalarType *scalarType = mStorageType->resolveToScalarType();
CHECK(scalarType != NULL);
diff --git a/EnumType.h b/EnumType.h
index 27f648b..518b5ea 100644
--- a/EnumType.h
+++ b/EnumType.h
@@ -79,7 +79,7 @@
status_t emitTypeDeclarations(Formatter &out) const override;
status_t emitGlobalTypeDeclarations(Formatter &out) const override;
- status_t emitTypeDefinitions(Formatter &out, const std::string prefix) const override;
+ status_t emitTypeDefinitions(Formatter& out, const std::string& prefix) const override;
status_t emitJavaTypeDeclarations(
Formatter &out, bool atTopLevel) const override;
diff --git a/Interface.cpp b/Interface.cpp
index db5d682..208a83d 100644
--- a/Interface.cpp
+++ b/Interface.cpp
@@ -576,7 +576,7 @@
return isIBase() ? std::vector<InterfaceAndMethod>() : superType()->allMethodsFromRoot();
}
-Method *Interface::lookupMethod(std::string name) const {
+Method *Interface::lookupMethod(const std::string& name) const {
for (const auto &tuple : allMethodsFromRoot()) {
Method *method = tuple.method();
if (method->name() == name) {
@@ -736,9 +736,7 @@
return OK;
}
-
-status_t Interface::emitTypeDefinitions(
- Formatter &out, const std::string prefix) const {
+status_t Interface::emitTypeDefinitions(Formatter& out, const std::string& prefix) const {
std::string space = prefix.empty() ? "" : (prefix + "::");
status_t err = Scope::emitTypeDefinitions(out, space + localName());
if (err != OK) {
diff --git a/Interface.h b/Interface.h
index 7489735..a8b562d 100644
--- a/Interface.h
+++ b/Interface.h
@@ -43,7 +43,7 @@
const Interface* superType() const;
- Method *lookupMethod(std::string name) const;
+ Method* lookupMethod(const std::string& name) const;
// Super type chain to root type.
// First element is superType().
std::vector<const Interface *> superTypeChain() const;
@@ -96,8 +96,7 @@
ErrorMode mode) const override;
status_t emitGlobalTypeDeclarations(Formatter &out) const override;
- status_t emitTypeDefinitions(
- Formatter &out, const std::string prefix) const override;
+ status_t emitTypeDefinitions(Formatter& out, const std::string& prefix) const override;
void emitJavaReaderWriter(
Formatter &out,
diff --git a/Scope.cpp b/Scope.cpp
index 9223b78..f9a844c 100644
--- a/Scope.cpp
+++ b/Scope.cpp
@@ -114,7 +114,7 @@
mAnnotations = *annotations;
}
-status_t Scope::forEachType(std::function<status_t(Type *)> func) const {
+status_t Scope::forEachType(const std::function<status_t(Type *)> &func) const {
for (size_t i = 0; i < mTypes.size(); ++i) {
status_t err = func(mTypes[i]);
@@ -151,8 +151,7 @@
});
}
-status_t Scope::emitTypeDefinitions(
- Formatter &out, const std::string prefix) const {
+status_t Scope::emitTypeDefinitions(Formatter& out, const std::string& prefix) const {
return forEachType([&](Type *type) {
return type->emitTypeDefinitions(out, prefix);
});
diff --git a/Scope.h b/Scope.h
index 14f51f9..63bfbfd 100644
--- a/Scope.h
+++ b/Scope.h
@@ -61,8 +61,7 @@
status_t emitJavaTypeDeclarations(
Formatter &out, bool atTopLevel) const override;
- status_t emitTypeDefinitions(
- Formatter &out, const std::string prefix) const override;
+ status_t emitTypeDefinitions(Formatter& out, const std::string& prefix) const override;
const std::vector<NamedType *> &getSubTypes() const;
@@ -79,7 +78,7 @@
std::map<std::string, size_t> mTypeIndexByName;
std::vector<Annotation*> mAnnotations;
- status_t forEachType(std::function<status_t(Type *)> func) const;
+ status_t forEachType(const std::function<status_t(Type*)>& func) const;
DISALLOW_COPY_AND_ASSIGN(Scope);
};
diff --git a/Type.cpp b/Type.cpp
index 3d32180..d678cd1 100644
--- a/Type.cpp
+++ b/Type.cpp
@@ -371,8 +371,7 @@
return OK;
}
-status_t Type::emitTypeDefinitions(
- Formatter &, const std::string) const {
+status_t Type::emitTypeDefinitions(Formatter&, const std::string&) const {
return OK;
}
diff --git a/Type.h b/Type.h
index a489e5c..bb53573 100644
--- a/Type.h
+++ b/Type.h
@@ -187,8 +187,7 @@
// at global scope for transport, e.g. read/writeEmbeddedTo/FromParcel
virtual status_t emitGlobalHwDeclarations(Formatter &out) const;
- virtual status_t emitTypeDefinitions(
- Formatter &out, const std::string prefix) const;
+ virtual status_t emitTypeDefinitions(Formatter& out, const std::string& prefix) const;
virtual status_t emitJavaTypeDeclarations(
Formatter &out, bool atTopLevel) const;
diff --git a/c2hal/AST.cpp b/c2hal/AST.cpp
index e2ae13c..e2eae91 100644
--- a/c2hal/AST.cpp
+++ b/c2hal/AST.cpp
@@ -317,7 +317,7 @@
size_t start = 1; // Ignore leading '/'
size_t slashPos;
- while ((slashPos = path.find("/", start)) != std::string::npos) {
+ while ((slashPos = path.find('/', start)) != std::string::npos) {
std::string partial = path.substr(0, slashPos);
struct stat st;
diff --git a/c2hal/Expression.cpp b/c2hal/Expression.cpp
index 7863b15..1b96d2a 100644
--- a/c2hal/Expression.cpp
+++ b/c2hal/Expression.cpp
@@ -29,7 +29,7 @@
static const std::regex RE_S64("[^ul](l|ll)$");
static const std::regex RE_U64("[^ul](ul|ull)$");
-Expression::Type Expression::integralType(std::string integer) {
+Expression::Type Expression::integralType(const std::string& integer) {
if (std::regex_search(integer, RE_S32)) {
return Type::S32;
}
diff --git a/c2hal/Expression.h b/c2hal/Expression.h
index 9f04837..5449e55 100644
--- a/c2hal/Expression.h
+++ b/c2hal/Expression.h
@@ -63,7 +63,7 @@
}
}
- static Type integralType(std::string integer);
+ static Type integralType(const std::string& integer);
static Type coalesceTypes(Type lhs, Type rhs);
static Expression *parenthesize(Expression *inner);
diff --git a/generateCpp.cpp b/generateCpp.cpp
index f2147b3..e47c210 100644
--- a/generateCpp.cpp
+++ b/generateCpp.cpp
@@ -784,7 +784,9 @@
return OK;
}
-status_t AST::generateMethods(Formatter &out, MethodGenerator gen, bool includeParent) const {
+status_t AST::generateMethods(Formatter& out,
+ const MethodGenerator& gen,
+ bool includeParent) const {
const Interface* iface = mRootScope.getInterface();
const Interface *prevIterface = nullptr;
diff --git a/main.cpp b/main.cpp
index af53171..0ebc966 100644
--- a/main.cpp
+++ b/main.cpp
@@ -235,7 +235,7 @@
AST *ast = coordinator->parse(fqName);
CHECK(ast != nullptr);
const std::set<FQName>& refs = ast->getImportedNames();
- for (auto depFQName : refs) {
+ for (const auto& depFQName : refs) {
// If the package of depFQName is the same as this fqName's package,
// then add it explicitly as a .hal dependency within the same
// package.
@@ -657,17 +657,16 @@
}
static void generateAndroidBpGenSection(
- Formatter &out,
- const FQName &packageFQName,
- const char *hidl_gen,
- Coordinator *coordinator,
- const std::string &halFilegroupName,
- const std::string &genName,
- const char *language,
- const std::vector<FQName> &packageInterfaces,
- const std::set<FQName> &importedPackages,
- const std::function<void(Formatter&, const FQName)> outputFn) {
-
+ Formatter& out,
+ const FQName& packageFQName,
+ const char* hidl_gen,
+ Coordinator* coordinator,
+ const std::string& halFilegroupName,
+ const std::string& genName,
+ const char* language,
+ const std::vector<FQName>& packageInterfaces,
+ const std::set<FQName>& importedPackages,
+ const std::function<void(Formatter&, const FQName)>& outputFn) {
out << "genrule {\n";
out.indent();
out << "name: \"" << genName << "\",\n"
diff --git a/utils/Formatter.cpp b/utils/Formatter.cpp
index a4f2047..f994650 100644
--- a/utils/Formatter.cpp
+++ b/utils/Formatter.cpp
@@ -42,18 +42,18 @@
mIndentDepth -= level;
}
-Formatter &Formatter::indent(size_t level, std::function<void(void)> func) {
+Formatter& Formatter::indent(size_t level, const std::function<void(void)>& func) {
this->indent(level);
func();
this->unindent(level);
return *this;
}
-Formatter &Formatter::indent(std::function<void(void)> func) {
+Formatter& Formatter::indent(const std::function<void(void)>& func) {
return this->indent(1, func);
}
-Formatter &Formatter::block(std::function<void(void)> func) {
+Formatter& Formatter::block(const std::function<void(void)>& func) {
(*this) << "{\n";
this->indent(func);
return (*this) << "}";
@@ -71,42 +71,42 @@
return (*this) << "\n";
}
-Formatter &Formatter::sIf(const std::string &cond, std::function<void(void)> block) {
+Formatter& Formatter::sIf(const std::string& cond, const std::function<void(void)>& block) {
(*this) << "if (" << cond << ") ";
return this->block(block);
}
-Formatter &Formatter::sElseIf(const std::string &cond, std::function<void(void)> block) {
+Formatter& Formatter::sElseIf(const std::string& cond, const std::function<void(void)>& block) {
(*this) << " else if (" << cond << ") ";
return this->block(block);
}
-Formatter &Formatter::sElse(std::function<void(void)> block) {
+Formatter& Formatter::sElse(const std::function<void(void)>& block) {
(*this) << " else ";
return this->block(block);
}
-Formatter &Formatter::sFor(const std::string &stmts, std::function<void(void)> block) {
+Formatter& Formatter::sFor(const std::string& stmts, const std::function<void(void)>& block) {
(*this) << "for (" << stmts << ") ";
return this->block(block);
}
-Formatter &Formatter::sTry(std::function<void(void)> block) {
+Formatter& Formatter::sTry(const std::function<void(void)>& block) {
(*this) << "try ";
return this->block(block);
}
-Formatter &Formatter::sCatch(const std::string &exception, std::function<void(void)> block) {
+Formatter& Formatter::sCatch(const std::string& exception, const std::function<void(void)>& block) {
(*this) << " catch (" << exception << ") ";
return this->block(block);
}
-Formatter &Formatter::sFinally(std::function<void(void)> block) {
+Formatter& Formatter::sFinally(const std::function<void(void)>& block) {
(*this) << " finally ";
return this->block(block);
}
-Formatter &Formatter::sWhile(const std::string &cond, std::function<void(void)> block) {
+Formatter& Formatter::sWhile(const std::string& cond, const std::function<void(void)>& block) {
(*this) << "while (" << cond << ") ";
return this->block(block);
}
@@ -115,7 +115,7 @@
const size_t len = out.length();
size_t start = 0;
while (start < len) {
- size_t pos = out.find("\n", start);
+ size_t pos = out.find('\n', start);
if (pos == std::string::npos) {
if (mAtStartOfLine) {
diff --git a/utils/include/hidl-util/Formatter.h b/utils/include/hidl-util/Formatter.h
index bb4288b..2f7c02d 100644
--- a/utils/include/hidl-util/Formatter.h
+++ b/utils/include/hidl-util/Formatter.h
@@ -42,13 +42,13 @@
// out.indent(2, [&] {
// out << "Meow\n";
// });
- Formatter &indent(size_t level, std::function<void(void)> func);
+ Formatter& indent(size_t level, const std::function<void(void)>& func);
// Note that The last \n after the last line is NOT added automatically.
// out.indent([&] {
// out << "Meow\n";
// });
- Formatter &indent(std::function<void(void)> func);
+ Formatter& indent(const std::function<void(void)>& func);
// A block inside braces.
// * No space will be added before the opening brace.
@@ -62,7 +62,7 @@
// out << "{\n"
// << "one();\ntwo();\n" // func()
// << "}";
- Formatter &block(std::function<void(void)> func);
+ Formatter& block(const std::function<void(void)>& func);
// A synonym to (*this) << "\n";
Formatter &endl();
@@ -75,14 +75,14 @@
// out << "logFatal();\n";
// }).endl();
// note that there will be a space before the "else"-s.
- Formatter &sIf(const std::string &cond, std::function<void(void)> block);
- Formatter &sElseIf(const std::string &cond, std::function<void(void)> block);
- Formatter &sElse(std::function<void(void)> block);
+ Formatter& sIf(const std::string& cond, const std::function<void(void)>& block);
+ Formatter& sElseIf(const std::string& cond, const std::function<void(void)>& block);
+ Formatter& sElse(const std::function<void(void)>& block);
// out.sFor("int i = 0; i < 10; i++", [&] {
// out << "printf(\"%d\", i);\n";
// }).endl();
- Formatter &sFor(const std::string &stmts, std::function<void(void)> block);
+ Formatter& sFor(const std::string& stmts, const std::function<void(void)>& block);
// out.sTry([&] {
// out << "throw RemoteException();\n"
@@ -92,21 +92,22 @@
// // cleanup
// }).endl();
// note that there will be a space before the "catch"-s.
- Formatter &sTry(std::function<void(void)> block);
- Formatter &sCatch(const std::string &exception, std::function<void(void)> block);
- Formatter &sFinally(std::function<void(void)> block);
+ Formatter& sTry(const std::function<void(void)>& block);
+ Formatter& sCatch(const std::string& exception, const std::function<void(void)>& block);
+ Formatter& sFinally(const std::function<void(void)>& block);
// out.sWhile("z < 10", [&] {
// out << "z++;\n";
// }).endl();
- Formatter &sWhile(const std::string &cond, std::function<void(void)> block);
+ Formatter& sWhile(const std::string& cond, const std::function<void(void)>& block);
// out.join(v.begin(), v.end(), ",", [&](const auto &e) {
// out << toString(e);
// });
- template<typename I>
- Formatter &join(const I begin, const I end, const std::string &separator,
- std::function<void(const typename std::iterator_traits<I>::value_type &)> func);
+ template <typename I>
+ Formatter& join(
+ const I begin, const I end, const std::string& separator,
+ const std::function<void(const typename std::iterator_traits<I>::value_type&)>& func);
Formatter &operator<<(const std::string &out);
@@ -150,9 +151,10 @@
DISALLOW_COPY_AND_ASSIGN(Formatter);
};
-template<typename I>
-Formatter &Formatter::join(const I begin, const I end, const std::string &separator,
- std::function<void(const typename std::iterator_traits<I>::value_type &)> func) {
+template <typename I>
+Formatter& Formatter::join(
+ const I begin, const I end, const std::string& separator,
+ const std::function<void(const typename std::iterator_traits<I>::value_type&)>& func) {
for (I iter = begin; iter != end; ++iter) {
if (iter != begin) {
(*this) << separator;