Revert "Move CompoundType definitions to headers."

This reverts commit f29457e0f9b94ac8b095a25f62435b2ffe7029a0.

Reason for revert: on top of change that breaks prebuilts

Change-Id: I376751e5ad6af8811ac5ed5331461431f03c9e0b
diff --git a/CompoundType.cpp b/CompoundType.cpp
index 583152b..6eddb34 100644
--- a/CompoundType.cpp
+++ b/CompoundType.cpp
@@ -445,25 +445,13 @@
     }).endl().endl();
 
     if (canCheckEquality()) {
-        out << "static inline bool operator==("
-            << getCppArgumentType() << " " << (mFields->empty() ? "/* lhs */" : "lhs") << ", "
-            << getCppArgumentType() << " " << (mFields->empty() ? "/* rhs */" : "rhs") << ") ";
-        out.block([&] {
-            for (const auto &field : *mFields) {
-                out.sIf("lhs." + field->name() + " != rhs." + field->name(), [&] {
-                    out << "return false;\n";
-                }).endl();
-            }
-            out << "return true;\n";
-        }).endl().endl();
+        out << "bool operator==("
+            << getCppArgumentType() << ", " << getCppArgumentType() << ");\n\n";
 
-        out << "static inline bool operator!=("
-            << getCppArgumentType() << " lhs," << getCppArgumentType() << " rhs)";
-        out.block([&] {
-            out << "return !(lhs == rhs);\n";
-        }).endl().endl();
+        out << "bool operator!=("
+            << getCppArgumentType() << ", " << getCppArgumentType() << ");\n\n";
     } else {
-        out << "// operator== and operator!= are not generated for " << localName() << "\n";
+        out << "// operator== and operator!= are not generated for " << localName() << "\n\n";
     }
 
     return OK;
@@ -531,6 +519,28 @@
         emitResolveReferenceDef(out, prefix, false /* isReader */);
     }
 
+    if (canCheckEquality()) {
+        out << "bool operator==("
+            << getCppArgumentType() << " " << (mFields->empty() ? "/* lhs */" : "lhs") << ", "
+            << getCppArgumentType() << " " << (mFields->empty() ? "/* rhs */" : "rhs") << ") ";
+        out.block([&] {
+            for (const auto &field : *mFields) {
+                out.sIf("lhs." + field->name() + " != rhs." + field->name(), [&] {
+                    out << "return false;\n";
+                }).endl();
+            }
+            out << "return true;\n";
+        }).endl().endl();
+
+        out << "bool operator!=("
+            << getCppArgumentType() << " lhs," << getCppArgumentType() << " rhs)";
+        out.block([&] {
+            out << "return !(lhs == rhs);\n";
+        }).endl().endl();
+    } else {
+        out << "// operator== and operator!= are not generated for " << localName() << "\n";
+    }
+
     return OK;
 }