One should actually not do one-line printing of nested aggregates even if they are...
authorEnrico Granata <egranata@apple.com>
Wed, 23 Oct 2013 01:34:31 +0000 (01:34 +0000)
committerEnrico Granata <egranata@apple.com>
Wed, 23 Oct 2013 01:34:31 +0000 (01:34 +0000)
This check was overly strict. Relax it.
While one could conceivably want nested one-lining:
(Foo) aFoo = (x = 1, y = (t = 3, q = â€œHello), z = 3.14)
the spirit of this feature is mostly to make *SMALL LINEAR* structs come out more compact.
Aggregates with children and no summary for now just disable the one-lining. Define a one-liner summary to override :)

llvm-svn: 193218

lldb/source/DataFormatters/FormatManager.cpp

index 622dc00..c4540b5 100644 (file)
@@ -374,18 +374,14 @@ FormatManager::ShouldPrintAsOneLiner (ValueObject& valobj)
                 return false;
         }
         
-        // if there is a base-class...
-        if (child_sp->IsBaseClass())
+        // if this child has children..
+        if (child_sp->GetNumChildren())
         {
-            // and it has children..
-            if (child_sp->GetNumChildren())
-            {
-                // ...and no summary...
-                // (if it had a summary and the summary wanted children, we would have bailed out anyway
-                //  so this only makes us bail out if this has no summary and we would then print children)
-                if (!child_sp->GetSummaryFormat())
-                    return false; // then bail out
-            }
+            // ...and no summary...
+            // (if it had a summary and the summary wanted children, we would have bailed out anyway
+            //  so this only makes us bail out if this has no summary and we would then print children)
+            if (!child_sp->GetSummaryFormat())
+                return false; // then bail out
         }
     }
     return true;