Clean up ArrayType.cpp

mSizeComments are removed
mSizes are now a vector of ConstantExpression's

Bug: 32559427 clean up hidl-gen
Bug: 32592564 Remove extraneous comments from array type's sizes.

Test: hidl_test
Test: make hidl_test_java
Change-Id: I2a0dbf7e31a425ce851c9be3b413accdfcb79789
diff --git a/ArrayType.cpp b/ArrayType.cpp
index 2757bad..13c861e 100644
--- a/ArrayType.cpp
+++ b/ArrayType.cpp
@@ -25,8 +25,7 @@
 
 ArrayType::ArrayType(ArrayType *srcArray, ConstantExpression *size)
     : mElementType(srcArray->mElementType),
-      mSizes(srcArray->mSizes),
-      mSizeComments(srcArray->mSizeComments) {
+      mSizes(srcArray->mSizes) {
     prependDimension(size);
 }
 
@@ -36,13 +35,11 @@
 }
 
 void ArrayType::prependDimension(ConstantExpression *size) {
-    mSizes.insert(mSizes.begin(), size->castSizeT());
-    mSizeComments.insert(mSizeComments.begin(), size->description());
+    mSizes.insert(mSizes.begin(), size);
 }
 
 void ArrayType::appendDimension(ConstantExpression *size) {
-    mSizes.push_back(size->castSizeT());
-    mSizeComments.push_back(size->description());
+    mSizes.push_back(size);
 }
 
 size_t ArrayType::countDimensions() const {
@@ -72,11 +69,13 @@
 
     for (size_t i = 0; i < mSizes.size(); ++i) {
         arrayType += ", ";
-        arrayType += std::to_string(mSizes[i]);
+        arrayType += mSizes[i]->cppValue();
 
-        arrayType += " /* ";
-        arrayType += mSizeComments[i];
-        arrayType += " */";
+        if (!mSizes[i]->descriptionIsTrivial()) {
+            arrayType += " /* ";
+            arrayType += mSizes[i]->description();
+            arrayType += " */";
+        }
     }
 
     arrayType += ">";
@@ -105,16 +104,18 @@
 
     extra->clear();
 
-    CHECK(mSizes.size() == mSizeComments.size());
     for (size_t i = 0; i < mSizes.size(); ++i) {
         *extra += "[";
 
         if (forInitializer) {
-            *extra += std::to_string(mSizes[i]);
-            *extra += " ";
+            *extra += mSizes[i]->javaValue();
         }
 
-        *extra += "/* " + mSizeComments[i] + " */";
+        if (!forInitializer || !mSizes[i]->descriptionIsTrivial()) {
+            if (forInitializer)
+                *extra += " ";
+            *extra += "/* " + mSizes[i]->description() + " */";
+        }
 
         *extra += "]";
     }
@@ -172,7 +173,7 @@
     } else {
         size_t numArrayElements = 1;
         for (auto size : mSizes) {
-            numArrayElements *= size;
+            numArrayElements *= size->castSizeT();
         }
 
         out << "_hidl_err = "
@@ -439,7 +440,7 @@
             << " = 0; "
             << iteratorName
             << " < "
-            << mSizes[dim]
+            << mSizes[dim]->javaValue()
             << "; ++"
             << iteratorName
             << ") {\n";
@@ -490,7 +491,7 @@
     out << "type: " << getVtsType() << "\n";
     out << "vector_value: {\n";
     out.indent();
-    out << "vector_size: " << mSizes[0] << "\n";
+    out << "vector_size: " << mSizes[0]->value() << "\n";
     // Simple array case.
     if (mSizes.size() == 1) {
         status_t err = mElementType->emitVtsTypeDeclarations(out);
@@ -502,7 +503,7 @@
             out << "type: " << getVtsType() << "\n";
             out << "vector_value: {\n";
             out.indent();
-            out << "vector_size: " << mSizes[index] << "\n";
+            out << "vector_size: " << mSizes[index]->value() << "\n";
             if (index == mSizes.size() - 1) {
                 status_t err = mElementType->emitVtsTypeDeclarations(out);
                 if (err != OK) {
@@ -526,14 +527,14 @@
     mElementType->getAlignmentAndSize(align, size);
 
     for (auto sizeInDimension : mSizes) {
-        (*size) *= sizeInDimension;
+        (*size) *= sizeInDimension->castSizeT();
     }
 }
 
 size_t ArrayType::dimension() const {
     size_t numArrayElements = 1;
     for (auto size : mSizes) {
-        numArrayElements *= size;
+        numArrayElements *= size->castSizeT();
     }
     return numArrayElements;
 }