Avoid extra @FixedSize error.

Here, an error message was emitted for every field if it was emitted on
any previous field.

Bug: N/A
Test: atest aidl_unittests
Change-Id: I2dd7d9641553c212aa24b349cae233c7226806bf
diff --git a/aidl_language.cpp b/aidl_language.cpp
index 9cc4c82..219bb40 100644
--- a/aidl_language.cpp
+++ b/aidl_language.cpp
@@ -883,17 +883,18 @@
   }
   std::set<std::string> fieldnames;
   for (const auto& v : GetFields()) {
-    success = success && v->CheckValid(typenames);
+    const bool field_valid = v->CheckValid(typenames);
+    success = success && field_valid;
     bool duplicated;
     if (IsJavaOnlyImmutable()) {
       success = success && typenames.CanBeJavaOnlyImmutable(v->GetType());
       duplicated = !fieldnames.emplace(CapitalizeFirstLetter(*v, v->GetName())).second;
     } else {
       if (IsFixedSize()) {
-        success = success && typenames.CanBeFixedSize(v->GetType());
-        if (!success) {
+        if (field_valid && !typenames.CanBeFixedSize(v->GetType())) {
           AIDL_ERROR(v) << "The @FixedSize parcelable '" << this->GetName() << "' has a "
                         << "non-fixed size field named " << v->GetName() << ".";
+          success = false;
         }
       }
       duplicated = !fieldnames.emplace(v->GetName()).second;
diff --git a/aidl_typenames.cpp b/aidl_typenames.cpp
index 7241208..5e5cdbd 100644
--- a/aidl_typenames.cpp
+++ b/aidl_typenames.cpp
@@ -251,9 +251,12 @@
   if (IsPrimitiveTypename(name)) {
     return true;
   }
+  if (IsBuiltinTypename(name)) {
+    return false;
+  }
   const AidlDefinedType* t = TryGetDefinedType(type.GetName());
   AIDL_FATAL_IF(t == nullptr, type)
-      << "Failed to look up type. Cannot determine if it can be fixed size.";
+      << "Failed to look up type. Cannot determine if it can be fixed size: " << type.GetName();
 
   if (t->AsEnumDeclaration()) {
     return true;
diff --git a/aidl_unittest.cpp b/aidl_unittest.cpp
index 04303c8..0f2f7e6 100644
--- a/aidl_unittest.cpp
+++ b/aidl_unittest.cpp
@@ -2181,6 +2181,7 @@
                                "  ParcelFileDescriptor d;"
                                "  IBinder e;"
                                "  List<String> f;"
+                               "  int isFixedSize;"
                                "}");
   io_delegate_.SetFileContents("Bar.aidl", "parcelable Bar { int a; }");
   Options options =