union: default constructor inits with first member

CheckValid() checks if union is not-empty.

Bug: 150948558
Test: aidl_unittests / aidl_integration_test
Change-Id: I493b27c84977c3984d599ff7a7a32b0acdd5457f
diff --git a/aidl_language.h b/aidl_language.h
index 6a5932d..e8bf546 100644
--- a/aidl_language.h
+++ b/aidl_language.h
@@ -875,10 +875,9 @@
   const std::vector<std::unique_ptr<AidlVariableDeclaration>>& GetFields() const {
     return variables_;
   }
-  bool LanguageSpecificCheckValid(const AidlTypenames& /*typenames*/,
-                                  Options::Language) const override {
-    return true;
-  }
+  bool CheckValid(const AidlTypenames& typenames) const override;
+  bool LanguageSpecificCheckValid(const AidlTypenames& typenames,
+                                  Options::Language lang) const override;
   std::string GetPreprocessDeclarationName() const override { return "union"; }
 
   void Dump(CodeWriter* writer) const override;