Error on unused parameters.

And, can you believe it, on a change like this,
no bugs were found in the code. That's atypical.

Bug: 110967839
Test: mma
Test: (sanity) runtests.sh
Change-Id: I01cfa41f96685264c5f7bbb8be0843310878d855
diff --git a/Android.bp b/Android.bp
index 95809a8..48ccebb 100644
--- a/Android.bp
+++ b/Android.bp
@@ -38,11 +38,6 @@
     name: "libaidl-common",
     defaults: ["aidl_defaults"],
 
-    cflags: [
-        // Tragically, the code is riddled with unused parameters.
-        "-Wno-unused-parameter",
-    ],
-
     srcs: [
         "aidl.cpp",
         "aidl_language.cpp",
@@ -97,8 +92,7 @@
         "-g",
         "-DUNIT_TEST",
     ],
-    // Tragically, the code is riddled with unused parameters.
-    clang_cflags: ["-Wno-unused-parameter"],
+
     srcs: [
         "aidl_unittest.cpp",
         "ast_cpp_unittest.cpp",
@@ -135,7 +129,6 @@
         "-Wall",
         "-Wextra",
         "-Werror",
-        "-Wunused-parameter",
     ],
 }
 
@@ -145,7 +138,6 @@
         "-Wall",
         "-Wextra",
         "-Werror",
-        "-Wunused-parameter",
     ],
     shared_libs: [
         "libbase",
diff --git a/generate_cpp.cpp b/generate_cpp.cpp
index f7e90cf..c35cffd 100644
--- a/generate_cpp.cpp
+++ b/generate_cpp.cpp
@@ -195,8 +195,7 @@
   return NestInNamespaces(std::move(decls), package);
 }
 
-bool DeclareLocalVariable(const TypeNamespace& types, const AidlArgument& a,
-                          StatementBlock* b) {
+bool DeclareLocalVariable(const AidlArgument& a, StatementBlock* b) {
   const Type* cpp_type = a.GetType().GetLanguageType<Type>();
   if (!cpp_type) { return false; }
 
@@ -428,7 +427,9 @@
   // Declare all the parameters now.  In the common case, we expect no errors
   // in serialization.
   for (const unique_ptr<AidlArgument>& a : method.GetArguments()) {
-    if (!DeclareLocalVariable(types, *a, b)) { return false; }
+    if (!DeclareLocalVariable(*a, b)) {
+      return false;
+    }
   }
 
   // Declare a variable to hold the return value.
@@ -807,7 +808,7 @@
       BuildHeaderGuard(parcel, ClassNames::BASE), vector<string>(includes.begin(), includes.end()),
       NestInNamespaces(std::move(parcel_class), parcel.GetSplitPackage())}};
 }
-std::unique_ptr<Document> BuildParcelSource(const TypeNamespace& types,
+std::unique_ptr<Document> BuildParcelSource(const TypeNamespace& /*types*/,
                                             const AidlStructuredParcelable& parcel) {
   unique_ptr<MethodImpl> read{new MethodImpl{kAndroidStatusLiteral, parcel.GetName(),
                                              "readFromParcel",
diff --git a/generate_java.cpp b/generate_java.cpp
index 1ca285b..a924d0c 100644
--- a/generate_java.cpp
+++ b/generate_java.cpp
@@ -102,7 +102,7 @@
 
 android::aidl::java::Class* generate_parcel_class(const AidlStructuredParcelable* parcel,
                                                   java::JavaTypeNamespace* types,
-                                                  const JavaOptions& options) {
+                                                  const JavaOptions& /*options*/) {
   const ParcelType* parcelType = parcel->GetLanguageType<ParcelType>();
 
   Class* parcel_class = new Class;
diff --git a/generate_java_binder.cpp b/generate_java_binder.cpp
index c905d54..35699ab 100644
--- a/generate_java_binder.cpp
+++ b/generate_java_binder.cpp
@@ -370,7 +370,6 @@
 
 static void generate_stub_code(const AidlInterface& iface,
                                const AidlMethod& method,
-                               const std::string& transactCodeName,
                                bool oneway,
                                Variable* transact_data,
                                Variable* transact_reply,
@@ -511,7 +510,6 @@
 
   generate_stub_code(iface,
                      method,
-                     transactCodeName,
                      oneway,
                      stubClass->transact_data,
                      stubClass->transact_reply,
@@ -545,7 +543,6 @@
 
     generate_stub_code(iface,
                        method,
-                       transactCodeName,
                        oneway,
                        transact_data,
                        transact_reply,
diff --git a/tests/fake_io_delegate.cpp b/tests/fake_io_delegate.cpp
index 3d1f05f..c4b3584 100644
--- a/tests/fake_io_delegate.cpp
+++ b/tests/fake_io_delegate.cpp
@@ -36,7 +36,7 @@
 class BrokenCodeWriter : public CodeWriter {
   bool Write(const char* /* format */, ...) override {  return true; }
   bool Close() override { return false; }
-  bool Output(const std::string& str) override { return true; }
+  bool Output(const std::string& /*str*/) override { return true; }
   virtual ~BrokenCodeWriter() = default;
 };  // class BrokenCodeWriter
 
diff --git a/type_java.cpp b/type_java.cpp
index a352def..4592d7b 100644
--- a/type_java.cpp
+++ b/type_java.cpp
@@ -99,8 +99,8 @@
                                         createArrayParcel, readArrayParcel));
 }
 
-void BasicType::WriteToParcel(StatementBlock* addTo, Variable* v,
-                              Variable* parcel, int flags) const {
+void BasicType::WriteToParcel(StatementBlock* addTo, Variable* v, Variable* parcel,
+                              int /*flags*/) const {
   addTo->Add(new MethodCall(parcel, m_marshallParcel, 1, v));
 }
 
@@ -119,9 +119,8 @@
       m_createArrayParcel(createArrayParcel),
       m_readArrayParcel(readArrayParcel) {}
 
-
-void BasicArrayType::WriteToParcel(StatementBlock* addTo, Variable* v,
-                                   Variable* parcel, int flags) const {
+void BasicArrayType::WriteToParcel(StatementBlock* addTo, Variable* v, Variable* parcel,
+                                   int /*flags*/) const {
   addTo->Add(new MethodCall(parcel, m_writeArrayParcel, 1, v));
 }
 
@@ -143,8 +142,8 @@
     m_array_type.reset(new FileDescriptorArrayType(types));
 }
 
-void FileDescriptorType::WriteToParcel(StatementBlock* addTo, Variable* v,
-                                       Variable* parcel, int flags) const {
+void FileDescriptorType::WriteToParcel(StatementBlock* addTo, Variable* v, Variable* parcel,
+                                       int /*flags*/) const {
   addTo->Add(new MethodCall(parcel, "writeRawFileDescriptor", 1, v));
 }
 
@@ -157,8 +156,8 @@
     : Type(types, "java.io", "FileDescriptor", ValidatableType::KIND_BUILT_IN,
            true, true) {}
 
-void FileDescriptorArrayType::WriteToParcel(StatementBlock* addTo, Variable* v,
-                                            Variable* parcel, int flags) const {
+void FileDescriptorArrayType::WriteToParcel(StatementBlock* addTo, Variable* v, Variable* parcel,
+                                            int /*flags*/) const {
   addTo->Add(new MethodCall(parcel, "writeRawFileDescriptorArray", 1, v));
 }
 
@@ -179,8 +178,8 @@
     m_array_type.reset(new BooleanArrayType(types));
 }
 
-void BooleanType::WriteToParcel(StatementBlock* addTo, Variable* v,
-                                Variable* parcel, int flags) const {
+void BooleanType::WriteToParcel(StatementBlock* addTo, Variable* v, Variable* parcel,
+                                int /*flags*/) const {
   addTo->Add(new MethodCall(
       parcel, "writeInt", 1,
       new Ternary(v, new LiteralExpression("1"), new LiteralExpression("0"))));
@@ -196,8 +195,8 @@
 BooleanArrayType::BooleanArrayType(const JavaTypeNamespace* types)
     : Type(types, "boolean", ValidatableType::KIND_BUILT_IN, true, true) {}
 
-void BooleanArrayType::WriteToParcel(StatementBlock* addTo, Variable* v,
-                                     Variable* parcel, int flags) const {
+void BooleanArrayType::WriteToParcel(StatementBlock* addTo, Variable* v, Variable* parcel,
+                                     int /*flags*/) const {
   addTo->Add(new MethodCall(parcel, "writeBooleanArray", 1, v));
 }
 
@@ -218,8 +217,8 @@
     m_array_type.reset(new CharArrayType(types));
 }
 
-void CharType::WriteToParcel(StatementBlock* addTo, Variable* v,
-                             Variable* parcel, int flags) const {
+void CharType::WriteToParcel(StatementBlock* addTo, Variable* v, Variable* parcel,
+                             int /*flags*/) const {
   addTo->Add(
       new MethodCall(parcel, "writeInt", 1, new Cast(m_types->IntType(), v)));
 }
@@ -232,8 +231,8 @@
 CharArrayType::CharArrayType(const JavaTypeNamespace* types)
     : Type(types, "char", ValidatableType::KIND_BUILT_IN, true, true) {}
 
-void CharArrayType::WriteToParcel(StatementBlock* addTo, Variable* v,
-                                  Variable* parcel, int flags) const {
+void CharArrayType::WriteToParcel(StatementBlock* addTo, Variable* v, Variable* parcel,
+                                  int /*flags*/) const {
   addTo->Add(new MethodCall(parcel, "writeCharArray", 1, v));
 }
 
@@ -261,8 +260,8 @@
   return "android.os.Parcel.STRING_CREATOR";
 }
 
-void StringType::WriteToParcel(StatementBlock* addTo, Variable* v,
-                               Variable* parcel, int flags) const {
+void StringType::WriteToParcel(StatementBlock* addTo, Variable* v, Variable* parcel,
+                               int /*flags*/) const {
   addTo->Add(new MethodCall(parcel, "writeString", 1, v));
 }
 
@@ -279,8 +278,8 @@
   return "android.os.Parcel.STRING_CREATOR";
 }
 
-void StringArrayType::WriteToParcel(StatementBlock* addTo, Variable* v,
-                                    Variable* parcel, int flags) const {
+void StringArrayType::WriteToParcel(StatementBlock* addTo, Variable* v, Variable* parcel,
+                                    int /*flags*/) const {
   addTo->Add(new MethodCall(parcel, "writeStringArray", 1, v));
 }
 
@@ -368,8 +367,8 @@
   m_array_type.reset(new IBinderArrayType(types));
 }
 
-void IBinderType::WriteToParcel(StatementBlock* addTo, Variable* v,
-                                Variable* parcel, int flags) const {
+void IBinderType::WriteToParcel(StatementBlock* addTo, Variable* v, Variable* parcel,
+                                int /*flags*/) const {
   addTo->Add(new MethodCall(parcel, "writeStrongBinder", 1, v));
 }
 
@@ -382,8 +381,8 @@
     : Type(types, "android.os", "IBinder", ValidatableType::KIND_BUILT_IN,
            true, true) {}
 
-void IBinderArrayType::WriteToParcel(StatementBlock* addTo, Variable* v,
-                                     Variable* parcel, int flags) const {
+void IBinderArrayType::WriteToParcel(StatementBlock* addTo, Variable* v, Variable* parcel,
+                                     int /*flags*/) const {
   addTo->Add(new MethodCall(parcel, "writeBinderArray", 1, v));
 }
 
@@ -433,8 +432,8 @@
     : Type(types, "java.util", "Map", ValidatableType::KIND_BUILT_IN,
            true, true) {}
 
-void MapType::WriteToParcel(StatementBlock* addTo, Variable* v,
-                            Variable* parcel, int flags) const {
+void MapType::WriteToParcel(StatementBlock* addTo, Variable* v, Variable* parcel,
+                            int /*flags*/) const {
   addTo->Add(new MethodCall(parcel, "writeMap", 1, v));
 }
 
@@ -470,8 +469,8 @@
 
 string ListType::InstantiableName() const { return "java.util.ArrayList"; }
 
-void ListType::WriteToParcel(StatementBlock* addTo, Variable* v,
-                             Variable* parcel, int flags) const {
+void ListType::WriteToParcel(StatementBlock* addTo, Variable* v, Variable* parcel,
+                             int /*flags*/) const {
   addTo->Add(new MethodCall(parcel, "writeList", 1, v));
 }
 
@@ -611,8 +610,8 @@
 
 bool InterfaceType::OneWay() const { return m_oneway; }
 
-void InterfaceType::WriteToParcel(StatementBlock* addTo, Variable* v,
-                                  Variable* parcel, int flags) const {
+void InterfaceType::WriteToParcel(StatementBlock* addTo, Variable* v, Variable* parcel,
+                                  int /*flags*/) const {
   // parcel.writeStrongBinder(v != null ? v.asBinder() : null);
   addTo->Add(
       new MethodCall(parcel, "writeStrongBinder", 1,
@@ -645,8 +644,8 @@
   return "java.util.ArrayList<" + m_contained_type->JavaType() + ">";
 }
 
-void GenericListType::WriteToParcel(StatementBlock* addTo, Variable* v,
-                                    Variable* parcel, int flags) const {
+void GenericListType::WriteToParcel(StatementBlock* addTo, Variable* v, Variable* parcel,
+                                    int /*flags*/) const {
   if (m_creator == m_types->StringType()->CreatorName()) {
     addTo->Add(new MethodCall(parcel, "writeStringList", 1, v));
   } else if (m_creator == m_types->IBinderType()->CreatorName()) {
@@ -816,8 +815,8 @@
   return true;
 }
 
-bool JavaTypeNamespace::AddMapType(const string& key_type_name,
-                                   const string& value_type_name) {
+bool JavaTypeNamespace::AddMapType(const string& /*key_type_name*/,
+                                   const string& /*value_type_name*/) {
   LOG(ERROR) << "Don't know how to create a Map<K,V> container.";
   return false;
 }