Visit default value node

Previously, we visited default value node only when its provided by
user. Now, it's visited whether it's user defined or not.

Visitor can skip it if necessary by looking up IsDefaultUserSpecified().

Besides, AidlArgument overrides TraverseChildren() to avoid visiting default
value node just because it makes no sense for arugments. But, inheriting
AidlVariableDeclaration causes adding a default value node.

Now, AidlArgument::TraverseChildren() is removed so that
AidlVariableDeclaration::TraverseChildren() handles child nodes, that
is, visits default value node.

Ideally, we'd better re-design the class hierarchy.

Bug: 201584220
Test: m
Change-Id: I1ae29255e413d5aae245722f233a6070aeb95ccf
diff --git a/aidl_language.cpp b/aidl_language.cpp
index 5b94f9b..39db473 100644
--- a/aidl_language.cpp
+++ b/aidl_language.cpp
@@ -782,8 +782,8 @@
 void AidlVariableDeclaration::TraverseChildren(
     std::function<void(const AidlNode&)> traverse) const {
   traverse(GetType());
-  if (IsDefaultUserSpecified()) {
-    traverse(*GetDefaultValue());
+  if (auto default_value = GetDefaultValue(); default_value) {
+    traverse(*default_value);
   }
 }