diff --git a/lib/src/element_type.dart b/lib/src/element_type.dart index b50da3796e..ab5430fc6a 100644 --- a/lib/src/element_type.dart +++ b/lib/src/element_type.dart @@ -220,7 +220,7 @@ class ParameterizedElementType extends DefinedElementType with Rendered { packageGraph.rendererFactory.parameterizedElementTypeRenderer; @override - late final Iterable typeArguments = type.typeArguments + late final List typeArguments = type.typeArguments .map((f) => modelBuilder.typeFrom(f, library)) .toList(growable: false); } @@ -238,7 +238,7 @@ mixin Aliased implements ElementType, ModelBuilderInterface { late final ModelElement aliasElement = modelBuilder.fromElement(typeAliasElement); - late final Iterable aliasArguments = type.alias!.typeArguments + late final List aliasArguments = type.alias!.typeArguments .map((f) => modelBuilder.typeFrom(f, library)) .toList(growable: false); } @@ -422,7 +422,7 @@ class CallableElementType extends DefinedElementType with Rendered, Callable { packageGraph.rendererFactory.callableElementTypeRenderer; @override - late final Iterable typeArguments = type.alias?.typeArguments + late final List typeArguments = type.alias?.typeArguments .map((f) => modelBuilder.typeFrom(f, library)) .toList(growable: false) ?? const []; diff --git a/lib/src/generator/templates.runtime_renderers.dart b/lib/src/generator/templates.runtime_renderers.dart index c617f95562..f7a8c98686 100644 --- a/lib/src/generator/templates.runtime_renderers.dart +++ b/lib/src/generator/templates.runtime_renderers.dart @@ -2121,7 +2121,7 @@ class _Renderer_Constructable extends RendererBase { renderVariable: (CT_ c, Property self, List remainingNames) => self.renderSimpleVariable( - c, remainingNames, 'Iterable'), + c, remainingNames, 'List'), renderIterable: (CT_ c, RendererBase r, List ast, StringSink sink) { return c.constructors.map((e) => _render_Constructor( @@ -2913,7 +2913,7 @@ class _Renderer_Container extends RendererBase { renderVariable: (CT_ c, Property self, List remainingNames) => self.renderSimpleVariable( - c, remainingNames, 'Iterable'), + c, remainingNames, 'List'), renderIterable: (CT_ c, RendererBase r, List ast, StringSink sink) { return c.declaredOperators.map((e) => @@ -4684,7 +4684,7 @@ class _Renderer_Enum extends RendererBase { renderVariable: (CT_ c, Property self, List remainingNames) => self.renderSimpleVariable( - c, remainingNames, 'Iterable'), + c, remainingNames, 'List'), renderIterable: (CT_ c, RendererBase r, List ast, StringSink sink) { return c.publicEnumValues.map((e) => @@ -7444,7 +7444,7 @@ class _Renderer_InheritingContainer extends RendererBase { renderVariable: (CT_ c, Property self, List remainingNames) => self.renderSimpleVariable( - c, remainingNames, 'Iterable'), + c, remainingNames, 'List'), renderIterable: (CT_ c, RendererBase r, List ast, StringSink sink) { return c.declaredMethods.map((e) => @@ -8235,7 +8235,7 @@ class _Renderer_Library extends RendererBase { renderVariable: (CT_ c, Property self, List remainingNames) => self.renderSimpleVariable( - c, remainingNames, 'Iterable'), + c, remainingNames, 'List'), renderIterable: (CT_ c, RendererBase r, List ast, StringSink sink) { return c.allOriginalModelElementNames.map((e) => @@ -8449,7 +8449,7 @@ class _Renderer_Library extends RendererBase { renderVariable: (CT_ c, Property self, List remainingNames) => self.renderSimpleVariable( - c, remainingNames, 'Iterable'), + c, remainingNames, 'List'), renderIterable: (CT_ c, RendererBase r, List ast, StringSink sink) { return c.extensionTypes.map((e) => _render_ExtensionType( @@ -8462,7 +8462,7 @@ class _Renderer_Library extends RendererBase { renderVariable: (CT_ c, Property self, List remainingNames) => self.renderSimpleVariable( - c, remainingNames, 'Iterable'), + c, remainingNames, 'List'), renderIterable: (CT_ c, RendererBase r, List ast, StringSink sink) { return c.extensions.map((e) => @@ -8688,7 +8688,7 @@ class _Renderer_Library extends RendererBase { renderVariable: (CT_ c, Property self, List remainingNames) => self.renderSimpleVariable( - c, remainingNames, 'Iterable'), + c, remainingNames, 'List'), renderIterable: (CT_ c, RendererBase r, List ast, StringSink sink) { return c.properties.map((e) => _render_TopLevelVariable( @@ -13126,7 +13126,7 @@ class _Renderer_ParameterizedElementType renderVariable: (CT_ c, Property self, List remainingNames) => self.renderSimpleVariable( - c, remainingNames, 'Iterable'), + c, remainingNames, 'List'), renderIterable: (CT_ c, RendererBase r, List ast, StringSink sink) { return c.typeArguments.map((e) => _render_ElementType( @@ -14471,7 +14471,7 @@ class _Renderer_TopLevelContainer extends RendererBase { renderVariable: (CT_ c, Property self, List remainingNames) => self.renderSimpleVariable( - c, remainingNames, 'Iterable'), + c, remainingNames, 'List'), renderIterable: (CT_ c, RendererBase r, List ast, StringSink sink) { return c.publicClassesSorted.map((e) => @@ -14521,7 +14521,7 @@ class _Renderer_TopLevelContainer extends RendererBase { renderVariable: (CT_ c, Property self, List remainingNames) => self.renderSimpleVariable( - c, remainingNames, 'Iterable'), + c, remainingNames, 'List'), renderIterable: (CT_ c, RendererBase r, List ast, StringSink sink) { return c.publicEnumsSorted.map((e) => @@ -14533,7 +14533,7 @@ class _Renderer_TopLevelContainer extends RendererBase { renderVariable: (CT_ c, Property self, List remainingNames) => self.renderSimpleVariable( - c, remainingNames, 'Iterable'), + c, remainingNames, 'List'), renderIterable: (CT_ c, RendererBase r, List ast, StringSink sink) { return c.publicExceptionsSorted.map((e) => @@ -14558,7 +14558,7 @@ class _Renderer_TopLevelContainer extends RendererBase { renderVariable: (CT_ c, Property self, List remainingNames) => self.renderSimpleVariable( - c, remainingNames, 'Iterable'), + c, remainingNames, 'List'), renderIterable: (CT_ c, RendererBase r, List ast, StringSink sink) { return c.publicExtensionTypesSorted.map((e) => @@ -14583,7 +14583,7 @@ class _Renderer_TopLevelContainer extends RendererBase { renderVariable: (CT_ c, Property self, List remainingNames) => self.renderSimpleVariable( - c, remainingNames, 'Iterable'), + c, remainingNames, 'List'), renderIterable: (CT_ c, RendererBase r, List ast, StringSink sink) { return c.publicExtensionsSorted.map((e) => @@ -14608,7 +14608,7 @@ class _Renderer_TopLevelContainer extends RendererBase { renderVariable: (CT_ c, Property self, List remainingNames) => self.renderSimpleVariable( - c, remainingNames, 'Iterable'), + c, remainingNames, 'List'), renderIterable: (CT_ c, RendererBase r, List ast, StringSink sink) { return c.publicFunctionsSorted.map((e) => @@ -14633,7 +14633,7 @@ class _Renderer_TopLevelContainer extends RendererBase { renderVariable: (CT_ c, Property self, List remainingNames) => self.renderSimpleVariable( - c, remainingNames, 'Iterable'), + c, remainingNames, 'List'), renderIterable: (CT_ c, RendererBase r, List ast, StringSink sink) { return c.publicMixinsSorted.map((e) => @@ -14658,7 +14658,7 @@ class _Renderer_TopLevelContainer extends RendererBase { renderVariable: (CT_ c, Property self, List remainingNames) => self.renderSimpleVariable( - c, remainingNames, 'Iterable'), + c, remainingNames, 'List'), renderIterable: (CT_ c, RendererBase r, List ast, StringSink sink) { return c.publicPropertiesSorted.map((e) => @@ -14683,7 +14683,7 @@ class _Renderer_TopLevelContainer extends RendererBase { renderVariable: (CT_ c, Property self, List remainingNames) => self.renderSimpleVariable( - c, remainingNames, 'Iterable'), + c, remainingNames, 'List'), renderIterable: (CT_ c, RendererBase r, List ast, StringSink sink) { return c.publicTypedefsSorted.map((e) => diff --git a/lib/src/model/container.dart b/lib/src/model/container.dart index 6466b8b0c0..6791e67839 100644 --- a/lib/src/model/container.dart +++ b/lib/src/model/container.dart @@ -105,7 +105,7 @@ abstract class Container extends ModelElement publicInstanceMethods.toList(growable: false)..sort(); @nonVirtual - late final Iterable declaredOperators = + late final List declaredOperators = declaredMethods.whereType().toList(growable: false); @override diff --git a/lib/src/model/enum.dart b/lib/src/model/enum.dart index 7fec25c6b4..a43b6987a8 100644 --- a/lib/src/model/enum.dart +++ b/lib/src/model/enum.dart @@ -48,8 +48,9 @@ class Enum extends InheritingContainer declaredFields.where((f) => f is! EnumField && f.isConst); @override - late final Iterable publicEnumValues = - model_utils.filterNonPublic(allFields).whereType(); + late final List publicEnumValues = model_utils + .filterNonPublic(allFields.whereType()) + .toList(growable: false); @override bool get hasPublicEnumValues => publicEnumValues.isNotEmpty; diff --git a/lib/src/model/inheriting_container.dart b/lib/src/model/inheriting_container.dart index b929164ea7..d37303423c 100644 --- a/lib/src/model/inheriting_container.dart +++ b/lib/src/model/inheriting_container.dart @@ -19,7 +19,7 @@ import 'package:meta/meta.dart'; /// Note that [Constructor]s are not considered to be modifiers so a /// [hasModifiers] override is not necessary for this mixin. mixin Constructable on InheritingContainer { - late final Iterable constructors = element.constructors + late final List constructors = element.constructors .map((e) => modelBuilder.from(e, library) as Constructor) .toList(growable: false); @@ -246,8 +246,9 @@ abstract class InheritingContainer extends Container } @override - late final Iterable declaredMethods = - element.methods.map((e) => modelBuilder.from(e, library) as Method); + late final List declaredMethods = element.methods + .map((e) => modelBuilder.from(e, library) as Method) + .toList(growable: false); @override late final List typeParameters = element.typeParameters diff --git a/lib/src/model/library.dart b/lib/src/model/library.dart index 4d3ba1c9d0..fed9a7a38d 100644 --- a/lib/src/model/library.dart +++ b/lib/src/model/library.dart @@ -102,7 +102,7 @@ class Library extends ModelElement /// documented with this library, but these ModelElements and names correspond /// to the defining library where each originally came from with respect /// to inheritance and reexporting. Most useful for error reporting. - late final Iterable allOriginalModelElementNames = + late final List allOriginalModelElementNames = allModelElements.map((e) { if (e is GetterSetterCombo) { Accessor? getter; @@ -142,13 +142,13 @@ class Library extends ModelElement Iterable get classes => allClasses.where((c) => !c.isErrorOrException); @override - late final Iterable extensions = _exportedAndLocalElements + late final List extensions = _exportedAndLocalElements .whereType() .map((e) => modelBuilder.from(e, this) as Extension) .toList(growable: false); @override - late final Iterable extensionTypes = _exportedAndLocalElements + late final List extensionTypes = _exportedAndLocalElements .whereType() .map((e) => modelBuilder.from(e, this) as ExtensionType) .toList(growable: false); @@ -331,16 +331,16 @@ class Library extends ModelElement // This code should not be used for Dart SDK libraries. assert(!element.source.uri.isScheme('dart')); var fullName = element.source.fullName; - if (!pathContext.isWithin(fullName, package.packagePath) && - package.packagePath.contains('/google3/')) { - // In google3, `fullName` is specified as if the root of google3 was `/`. - // And `package.packagePath` contains the true google3 root. - var root = pathContext - .joinAll(pathContext.split(package.packagePath)..removeLast()); - fullName = '$root$fullName'; - } - var relativePath = - pathContext.relative(fullName, from: package.packagePath); + if (!pathContext.isWithin(fullName, package.packagePath) && + package.packagePath.contains('/google3/')) { + // In google3, `fullName` is specified as if the root of google3 was `/`. + // And `package.packagePath` contains the true google3 root. + var root = pathContext + .joinAll(pathContext.split(package.packagePath)..removeLast()); + fullName = '$root$fullName'; + } + var relativePath = + pathContext.relative(fullName, from: package.packagePath); assert(relativePath.startsWith('lib${pathContext.separator}')); const libDirectoryLength = 'lib/'.length; return relativePath.substring(libDirectoryLength); @@ -355,7 +355,7 @@ class Library extends ModelElement /// All variables ("properties") except constants. @override - late final Iterable properties = + late final List properties = _variables.where((v) => !v.isConst).toList(growable: false); @override diff --git a/lib/src/model/package_graph.dart b/lib/src/model/package_graph.dart index 640efdce76..71f7baf73a 100644 --- a/lib/src/model/package_graph.dart +++ b/lib/src/model/package_graph.dart @@ -631,7 +631,7 @@ class PackageGraph with CommentReferable, Nameable, ModelBuilder { } @visibleForTesting - late final Iterable libraries = + late final List libraries = packages.expand((p) => p.libraries).toList(growable: false)..sort(); int get libraryCount => libraries.length; @@ -905,7 +905,7 @@ class PackageGraph with CommentReferable, Nameable, ModelBuilder { return allElements; } - late final Iterable allLocalModelElements = [ + late final List allLocalModelElements = [ for (var library in _localLibraries) ...library.allModelElements ]; diff --git a/lib/src/model/top_level_container.dart b/lib/src/model/top_level_container.dart index a5be369097..ba53ea710e 100644 --- a/lib/src/model/top_level_container.dart +++ b/lib/src/model/top_level_container.dart @@ -57,19 +57,19 @@ mixin TopLevelContainer implements Nameable { // TODO(jcollins-g): Setting this type parameter to `Container` magically // fixes a number of type problems in the AOT compiler, but I am mystified as // to why that should be the case. - late final Iterable publicClassesSorted = + late final List publicClassesSorted = publicClasses.toList(growable: false)..sort(); Iterable get publicExtensions => model_utils.filterNonPublic(extensions); - late final Iterable publicExtensionsSorted = + late final List publicExtensionsSorted = publicExtensions.toList(growable: false)..sort(); Iterable get publicExtensionTypes => model_utils.filterNonPublic(extensionTypes); - late final Iterable publicExtensionTypesSorted = + late final List publicExtensionTypesSorted = publicExtensionTypes.toList(growable: false)..sort(); Iterable get publicConstants => @@ -80,34 +80,34 @@ mixin TopLevelContainer implements Nameable { Iterable get publicEnums => model_utils.filterNonPublic(enums); - late final Iterable publicEnumsSorted = - publicEnums.toList(growable: false)..sort(); + late final List publicEnumsSorted = publicEnums.toList(growable: false) + ..sort(); Iterable get _publicExceptions => model_utils.filterNonPublic(exceptions); - late final Iterable publicExceptionsSorted = + late final List publicExceptionsSorted = _publicExceptions.toList(growable: false)..sort(); Iterable get publicFunctions => model_utils.filterNonPublic(functions!); - late final Iterable publicFunctionsSorted = + late final List publicFunctionsSorted = publicFunctions.toList(growable: false)..sort(); Iterable get publicMixins => model_utils.filterNonPublic(mixins); - late final Iterable publicMixinsSorted = + late final List publicMixinsSorted = publicMixins.toList(growable: false)..sort(); Iterable get publicProperties => model_utils.filterNonPublic(properties); - late final Iterable publicPropertiesSorted = + late final List publicPropertiesSorted = publicProperties.toList(growable: false)..sort(); Iterable get publicTypedefs => model_utils.filterNonPublic(typedefs); - late final Iterable publicTypedefsSorted = + late final List publicTypedefsSorted = publicTypedefs.toList(growable: false)..sort(); }