[pkg:vm_service] fix some analysis errors in the generated vm_service library

Change-Id: I5a09116928e2eff9125ca8033458e485e7f15acb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/113756
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
diff --git a/pkg/vm_service/example/vm_service_assert.dart b/pkg/vm_service/example/vm_service_assert.dart
index 8010e63..df11b53 100644
--- a/pkg/vm_service/example/vm_service_assert.dart
+++ b/pkg/vm_service/example/vm_service_assert.dart
@@ -28,14 +28,14 @@
   return obj;
 }
 
-List<int> assertInts(List<int> list) {
+List<int> assertListOfInt(List<int> list) {
   for (int elem in list) {
     assertInt(elem);
   }
   return list;
 }
 
-List<String> assertStrings(List<String> list) {
+List<String> assertListOfString(List<String> list) {
   for (String elem in list) {
     assertString(elem);
   }
@@ -236,7 +236,7 @@
 vms.AllocationProfile assertAllocationProfile(vms.AllocationProfile obj) {
   assertNotNull(obj);
   assertString(obj.type);
-  assertClassHeapStatss(obj.members);
+  assertListOfClassHeapStats(obj.members);
   assertMemoryUsage(obj.memoryUsage);
   return obj;
 }
@@ -273,7 +273,8 @@
   return obj;
 }
 
-List<vms.BoundVariable> assertBoundVariables(List<vms.BoundVariable> list) {
+List<vms.BoundVariable> assertListOfBoundVariable(
+    List<vms.BoundVariable> list) {
   for (vms.BoundVariable elem in list) {
     assertBoundVariable(elem);
   }
@@ -296,7 +297,7 @@
   return obj;
 }
 
-List<vms.Breakpoint> assertBreakpoints(List<vms.Breakpoint> list) {
+List<vms.Breakpoint> assertListOfBreakpoint(List<vms.Breakpoint> list) {
   for (vms.Breakpoint elem in list) {
     assertBreakpoint(elem);
   }
@@ -311,7 +312,7 @@
   return obj;
 }
 
-List<vms.ClassRef> assertClassRefs(List<vms.ClassRef> list) {
+List<vms.ClassRef> assertListOfClassRef(List<vms.ClassRef> list) {
   for (vms.ClassRef elem in list) {
     assertClassRef(elem);
   }
@@ -326,10 +327,10 @@
   assertBool(obj.isAbstract);
   assertBool(obj.isConst);
   assertLibraryRef(obj.library);
-  assertInstanceRefs(obj.interfaces);
-  assertFieldRefs(obj.fields);
-  assertFuncRefs(obj.functions);
-  assertClassRefs(obj.subclasses);
+  assertListOfInstanceRef(obj.interfaces);
+  assertListOfFieldRef(obj.fields);
+  assertListOfFuncRef(obj.functions);
+  assertListOfClassRef(obj.subclasses);
   return obj;
 }
 
@@ -344,7 +345,8 @@
   return obj;
 }
 
-List<vms.ClassHeapStats> assertClassHeapStatss(List<vms.ClassHeapStats> list) {
+List<vms.ClassHeapStats> assertListOfClassHeapStats(
+    List<vms.ClassHeapStats> list) {
   for (vms.ClassHeapStats elem in list) {
     assertClassHeapStats(elem);
   }
@@ -354,7 +356,7 @@
 vms.ClassList assertClassList(vms.ClassList obj) {
   assertNotNull(obj);
   assertString(obj.type);
-  assertClassRefs(obj.classes);
+  assertListOfClassRef(obj.classes);
   return obj;
 }
 
@@ -367,7 +369,7 @@
   return obj;
 }
 
-List<vms.CodeRef> assertCodeRefs(List<vms.CodeRef> list) {
+List<vms.CodeRef> assertListOfCodeRef(List<vms.CodeRef> list) {
   for (vms.CodeRef elem in list) {
     assertCodeRef(elem);
   }
@@ -391,7 +393,7 @@
   return obj;
 }
 
-List<vms.ContextRef> assertContextRefs(List<vms.ContextRef> list) {
+List<vms.ContextRef> assertListOfContextRef(List<vms.ContextRef> list) {
   for (vms.ContextRef elem in list) {
     assertContextRef(elem);
   }
@@ -403,7 +405,7 @@
   assertString(obj.type);
   assertString(obj.id);
   assertInt(obj.length);
-  assertContextElements(obj.variables);
+  assertListOfContextElement(obj.variables);
   return obj;
 }
 
@@ -419,7 +421,8 @@
   return obj;
 }
 
-List<vms.ContextElement> assertContextElements(List<vms.ContextElement> list) {
+List<vms.ContextElement> assertListOfContextElement(
+    List<vms.ContextElement> list) {
   for (vms.ContextElement elem in list) {
     assertContextElement(elem);
   }
@@ -435,7 +438,7 @@
   return obj;
 }
 
-List<vms.ErrorRef> assertErrorRefs(List<vms.ErrorRef> list) {
+List<vms.ErrorRef> assertListOfErrorRef(List<vms.ErrorRef> list) {
   for (vms.ErrorRef elem in list) {
     assertErrorRef(elem);
   }
@@ -477,7 +480,7 @@
   return obj;
 }
 
-List<vms.FieldRef> assertFieldRefs(List<vms.FieldRef> list) {
+List<vms.FieldRef> assertListOfFieldRef(List<vms.FieldRef> list) {
   for (vms.FieldRef elem in list) {
     assertFieldRef(elem);
   }
@@ -505,7 +508,7 @@
   return obj;
 }
 
-List<vms.Flag> assertFlags(List<vms.Flag> list) {
+List<vms.Flag> assertListOfFlag(List<vms.Flag> list) {
   for (vms.Flag elem in list) {
     assertFlag(elem);
   }
@@ -515,7 +518,7 @@
 vms.FlagList assertFlagList(vms.FlagList obj) {
   assertNotNull(obj);
   assertString(obj.type);
-  assertFlags(obj.flags);
+  assertListOfFlag(obj.flags);
   return obj;
 }
 
@@ -526,7 +529,7 @@
   return obj;
 }
 
-List<vms.Frame> assertFrames(List<vms.Frame> list) {
+List<vms.Frame> assertListOfFrame(List<vms.Frame> list) {
   for (vms.Frame elem in list) {
     assertFrame(elem);
   }
@@ -552,7 +555,7 @@
   return obj;
 }
 
-List<vms.FuncRef> assertFuncRefs(List<vms.FuncRef> list) {
+List<vms.FuncRef> assertListOfFuncRef(List<vms.FuncRef> list) {
   for (vms.FuncRef elem in list) {
     assertFuncRef(elem);
   }
@@ -585,7 +588,7 @@
   return obj;
 }
 
-List<vms.InstanceRef> assertInstanceRefs(List<vms.InstanceRef> list) {
+List<vms.InstanceRef> assertListOfInstanceRef(List<vms.InstanceRef> list) {
   for (vms.InstanceRef elem in list) {
     assertInstanceRef(elem);
   }
@@ -610,7 +613,7 @@
   return obj;
 }
 
-List<vms.IsolateRef> assertIsolateRefs(List<vms.IsolateRef> list) {
+List<vms.IsolateRef> assertListOfIsolateRef(List<vms.IsolateRef> list) {
   for (vms.IsolateRef elem in list) {
     assertIsolateRef(elem);
   }
@@ -628,8 +631,8 @@
   assertInt(obj.livePorts);
   assertBool(obj.pauseOnExit);
   assertEvent(obj.pauseEvent);
-  assertLibraryRefs(obj.libraries);
-  assertBreakpoints(obj.breakpoints);
+  assertListOfLibraryRef(obj.libraries);
+  assertListOfBreakpoint(obj.breakpoints);
   assertExceptionPauseMode(obj.exceptionPauseMode);
   return obj;
 }
@@ -637,7 +640,7 @@
 vms.InboundReferences assertInboundReferences(vms.InboundReferences obj) {
   assertNotNull(obj);
   assertString(obj.type);
-  assertInboundReferences(obj.references);
+  assertListOfInboundReference(obj.references);
   return obj;
 }
 
@@ -647,11 +650,19 @@
   return obj;
 }
 
+List<vms.InboundReference> assertListOfInboundReference(
+    List<vms.InboundReference> list) {
+  for (vms.InboundReference elem in list) {
+    assertInboundReference(elem);
+  }
+  return list;
+}
+
 vms.InstanceSet assertInstanceSet(vms.InstanceSet obj) {
   assertNotNull(obj);
   assertString(obj.type);
   assertInt(obj.totalCount);
-  assertObjRefs(obj.instances);
+  assertListOfObjRef(obj.instances);
   return obj;
 }
 
@@ -664,7 +675,7 @@
   return obj;
 }
 
-List<vms.LibraryRef> assertLibraryRefs(List<vms.LibraryRef> list) {
+List<vms.LibraryRef> assertListOfLibraryRef(List<vms.LibraryRef> list) {
   for (vms.LibraryRef elem in list) {
     assertLibraryRef(elem);
   }
@@ -678,11 +689,11 @@
   assertString(obj.name);
   assertString(obj.uri);
   assertBool(obj.debuggable);
-  assertLibraryDependencies(obj.dependencies);
-  assertScriptRefs(obj.scripts);
-  assertFieldRefs(obj.variables);
-  assertFuncRefs(obj.functions);
-  assertClassRefs(obj.classes);
+  assertListOfLibraryDependency(obj.dependencies);
+  assertListOfScriptRef(obj.scripts);
+  assertListOfFieldRef(obj.variables);
+  assertListOfFuncRef(obj.functions);
+  assertListOfClassRef(obj.classes);
   return obj;
 }
 
@@ -695,7 +706,7 @@
   return obj;
 }
 
-List<vms.LibraryDependency> assertLibraryDependencies(
+List<vms.LibraryDependency> assertListOfLibraryDependency(
     List<vms.LibraryDependency> list) {
   for (vms.LibraryDependency elem in list) {
     assertLibraryDependency(elem);
@@ -755,7 +766,7 @@
   return obj;
 }
 
-List<vms.Message> assertMessages(List<vms.Message> list) {
+List<vms.Message> assertListOfMessage(List<vms.Message> list) {
   for (vms.Message elem in list) {
     assertMessage(elem);
   }
@@ -772,7 +783,7 @@
   return obj;
 }
 
-List<vms.NullValRef> assertNullValRefs(List<vms.NullValRef> list) {
+List<vms.NullValRef> assertListOfNullValRef(List<vms.NullValRef> list) {
   for (vms.NullValRef elem in list) {
     assertNullValRef(elem);
   }
@@ -796,7 +807,7 @@
   return obj;
 }
 
-List<vms.ObjRef> assertObjRefs(List<vms.ObjRef> list) {
+List<vms.ObjRef> assertListOfObjRef(List<vms.ObjRef> list) {
   for (vms.ObjRef elem in list) {
     assertObjRef(elem);
   }
@@ -823,12 +834,20 @@
   return obj;
 }
 
+List<vms.RetainingObject> assertListOfRetainingObject(
+    List<vms.RetainingObject> list) {
+  for (vms.RetainingObject elem in list) {
+    assertRetainingObject(elem);
+  }
+  return list;
+}
+
 vms.RetainingPath assertRetainingPath(vms.RetainingPath obj) {
   assertNotNull(obj);
   assertString(obj.type);
   assertInt(obj.length);
   assertString(obj.gcRootType);
-  assertRetainingObjects(obj.elements);
+  assertListOfRetainingObject(obj.elements);
   return obj;
 }
 
@@ -854,7 +873,7 @@
   return obj;
 }
 
-List<vms.ScriptRef> assertScriptRefs(List<vms.ScriptRef> list) {
+List<vms.ScriptRef> assertListOfScriptRef(List<vms.ScriptRef> list) {
   for (vms.ScriptRef elem in list) {
     assertScriptRef(elem);
   }
@@ -873,7 +892,7 @@
 vms.ScriptList assertScriptList(vms.ScriptList obj) {
   assertNotNull(obj);
   assertString(obj.type);
-  assertScriptRefs(obj.scripts);
+  assertListOfScriptRef(obj.scripts);
   return obj;
 }
 
@@ -888,16 +907,16 @@
 vms.SourceReport assertSourceReport(vms.SourceReport obj) {
   assertNotNull(obj);
   assertString(obj.type);
-  assertSourceReportRanges(obj.ranges);
-  assertScriptRefs(obj.scripts);
+  assertListOfSourceReportRange(obj.ranges);
+  assertListOfScriptRef(obj.scripts);
   return obj;
 }
 
 vms.SourceReportCoverage assertSourceReportCoverage(
     vms.SourceReportCoverage obj) {
   assertNotNull(obj);
-  assertInts(obj.hits);
-  assertInts(obj.misses);
+  assertListOfInt(obj.hits);
+  assertListOfInt(obj.misses);
   return obj;
 }
 
@@ -910,7 +929,7 @@
   return obj;
 }
 
-List<vms.SourceReportRange> assertSourceReportRanges(
+List<vms.SourceReportRange> assertListOfSourceReportRange(
     List<vms.SourceReportRange> list) {
   for (vms.SourceReportRange elem in list) {
     assertSourceReportRange(elem);
@@ -921,15 +940,15 @@
 vms.Stack assertStack(vms.Stack obj) {
   assertNotNull(obj);
   assertString(obj.type);
-  assertFrames(obj.frames);
-  assertMessages(obj.messages);
+  assertListOfFrame(obj.frames);
+  assertListOfMessage(obj.messages);
   return obj;
 }
 
 vms.Timeline assertTimeline(vms.Timeline obj) {
   assertNotNull(obj);
   assertString(obj.type);
-  assertTimelineEvents(obj.traceEvents);
+  assertListOfTimelineEvent(obj.traceEvents);
   assertInt(obj.timeOriginMicros);
   assertInt(obj.timeExtentMicros);
   return obj;
@@ -940,7 +959,8 @@
   return obj;
 }
 
-List<vms.TimelineEvent> assertTimelineEvents(List<vms.TimelineEvent> list) {
+List<vms.TimelineEvent> assertListOfTimelineEvent(
+    List<vms.TimelineEvent> list) {
   for (vms.TimelineEvent elem in list) {
     assertTimelineEvent(elem);
   }
@@ -951,8 +971,8 @@
   assertNotNull(obj);
   assertString(obj.type);
   assertString(obj.recorderName);
-  assertStrings(obj.availableStreams);
-  assertStrings(obj.recordedStreams);
+  assertListOfString(obj.availableStreams);
+  assertListOfString(obj.recordedStreams);
   return obj;
 }
 
@@ -971,7 +991,7 @@
   return obj;
 }
 
-List<vms.TypeArgumentsRef> assertTypeArgumentsRefs(
+List<vms.TypeArgumentsRef> assertListOfTypeArgumentsRef(
     List<vms.TypeArgumentsRef> list) {
   for (vms.TypeArgumentsRef elem in list) {
     assertTypeArgumentsRef(elem);
@@ -984,7 +1004,7 @@
   assertString(obj.type);
   assertString(obj.id);
   assertString(obj.name);
-  assertInstanceRefs(obj.types);
+  assertListOfInstanceRef(obj.types);
   return obj;
 }
 
@@ -1010,7 +1030,7 @@
   return obj;
 }
 
-List<vms.VMRef> assertVMRefs(List<vms.VMRef> list) {
+List<vms.VMRef> assertListOfVMRef(List<vms.VMRef> list) {
   for (vms.VMRef elem in list) {
     assertVMRef(elem);
   }
@@ -1028,6 +1048,6 @@
   assertString(obj.version);
   assertInt(obj.pid);
   assertInt(obj.startTime);
-  assertIsolateRefs(obj.isolates);
+  assertListOfIsolateRef(obj.isolates);
   return obj;
 }
diff --git a/pkg/vm_service/tool/dart/generate_dart.dart b/pkg/vm_service/tool/dart/generate_dart.dart
index 04e8b59..244f517 100644
--- a/pkg/vm_service/tool/dart/generate_dart.dart
+++ b/pkg/vm_service/tool/dart/generate_dart.dart
@@ -811,14 +811,14 @@
   return obj;
 }
 
-List<int> assertInts(List<int> list) {
+List<int> assertListOfInt(List<int> list) {
   for (int elem in list) {
     assertInt(elem);
   }
   return list;
 }
 
-List<String> assertStrings(List<String> list) {
+List<String> assertListOfString(List<String> list) {
   for (String elem in list) {
     assertString(elem);
   }
@@ -902,15 +902,17 @@
           [
             'BoundVariable',
             'Breakpoint',
+            'ClassHeapStats',
+            'CodeRegion',
             'ContextElement',
             'Flag',
             'Frame',
+            'InboundReference',
             'LibraryDependency',
             'Message',
-            'SourceReportRange',
-            'ClassHeapStats',
-            'CodeRegion',
             'ProfileFunction',
+            'RetainingObject',
+            'SourceReportRange',
             'TimelineEvent',
           ].contains(type.name)) {
         type.generateListAssert(gen);
@@ -1187,10 +1189,6 @@
           name == 'bool' ||
           name == 'double');
 
-  String get namePlural => name.endsWith('y')
-      ? name.substring(0, name.length - 1) + 'ies'
-      : name + 's';
-
   String toString() => ref;
 }
 
@@ -1207,6 +1205,8 @@
   void generate(DartGenerator gen) {
     gen.write('${type.ref} ${name}');
   }
+
+  String toString() => '$type $name';
 }
 
 class Type extends Member {
@@ -1251,10 +1251,6 @@
 
   bool get isRef => name.endsWith('Ref');
 
-  String get namePlural => name.endsWith('y')
-      ? name.substring(0, name.length - 1) + 'ies'
-      : name + 's';
-
   bool get supportsIdentity {
     if (fields.any((f) => f.name == 'id')) return true;
     return superName == null ? false : getSuper().supportsIdentity;
@@ -1535,9 +1531,9 @@
         if (type.isArray) {
           TypeRef arrayType = type.types.first;
           if (arrayType.arrayDepth == 1) {
-            String assertMethodName = 'assert' +
+            String assertMethodName = 'assertListOf' +
                 arrayType.name.substring(0, 1).toUpperCase() +
-                arrayType.namePlural.substring(1);
+                arrayType.name.substring(1);
             gen.writeln('$assertMethodName(obj.${field.generatableName});');
           } else {
             gen.writeln(
@@ -1574,7 +1570,7 @@
 
   void generateListAssert(DartGenerator gen) {
     gen.writeln('List<vms.${name}> '
-        'assert${namePlural}(List<vms.${name}> list) {');
+        'assertListOf${name}(List<vms.${name}> list) {');
     gen.writeln('for (vms.${name} elem in list) {');
     gen.writeln('assert${name}(elem);');
     gen.writeln('}');
diff --git a/pkg/vm_service/tool/generate.dart b/pkg/vm_service/tool/generate.dart
index 151814f..73e8d2e 100644
--- a/pkg/vm_service/tool/generate.dart
+++ b/pkg/vm_service/tool/generate.dart
@@ -46,7 +46,11 @@
   dart.api.parse(nodes);
   dart.api.generate(generator);
   outputFile.writeAsStringSync(generator.toString());
-  Process.runSync('dartfmt', ['-w', outDirPath]);
+  ProcessResult result = Process.runSync('dartfmt', ['-w', outDirPath]);
+  if (result.exitCode != 0) {
+    print('dartfmt: ${result.stdout}\n${result.stderr}');
+    throw result.exitCode;
+  }
 
   if (_stampPubspecVersion) {
     // Update the pubspec file.
@@ -99,7 +103,11 @@
   dart.api.parse(nodes);
   dart.api.generateAsserts(generator);
   outputFile.writeAsStringSync(generator.toString());
-  Process.runSync('dartfmt', ['-w', outDirPath]);
+  ProcessResult result = Process.runSync('dartfmt', ['-w', outDirPath]);
+  if (result.exitCode != 0) {
+    print('dartfmt: ${result.stdout}\n${result.stderr}');
+    throw result.exitCode;
+  }
 
   if (_stampPubspecVersion) {
     // Update the pubspec file.