Resolve constant expressions for external constants.

* Allow constant expressions to be used as array sizes
  and as annotation values.

Bug: 31592132 allow constant expressions to be used as array sizes.
Bug: 31628863 Autofill values for enum type

Test: `make android.hardware.tests.expression@1.0` compiles
  and generates enum class Color with autofilled values.
Test: `make hidl_test_java` succeeds.
Test: `make hidl_test && adb sync && adb shell hidl_test` succeeds.
Test: `mma`

Change-Id: I57377ec608503d4741d305e98144264b07973055
diff --git a/FQName.cpp b/FQName.cpp
index 5d9c326..6411382 100644
--- a/FQName.cpp
+++ b/FQName.cpp
@@ -60,6 +60,15 @@
       mValueName(valueName) {
 }
 
+FQName::FQName(const FQName& other)
+    : mValid(other.mValid),
+      mIsIdentifier(other.mIsIdentifier),
+      mPackage(other.mPackage),
+      mVersion(other.mVersion),
+      mName(other.mName),
+      mValueName(other.mValueName) {
+}
+
 bool FQName::isValid() const {
     return mValid;
 }