55/// The models used to represent Dart code.
66library dartdoc.element_type;
77
8- import 'dart:collection' ;
9-
108import 'package:analyzer/dart/element/element.dart' ;
119import 'package:analyzer/dart/element/nullability_suffix.dart' ;
1210import 'package:analyzer/dart/element/type.dart' ;
@@ -93,7 +91,8 @@ abstract class ElementType extends Privacy {
9391 return '' ;
9492 }
9593
96- List <Parameter > get parameters => [];
94+ /// An unmodifiable list of this element type's parameters.
95+ List <Parameter > get parameters => const < Parameter > [];
9796
9897 DartType get instantiatedType;
9998
@@ -163,12 +162,9 @@ class FunctionTypeElementType extends UndefinedElementType {
163162 FunctionType get type => super .type;
164163
165164 @override
166- List <Parameter > get parameters {
167- var params = type.parameters;
168- return UnmodifiableListView <Parameter >(params
169- .map ((p) => ModelElement .from (p, library, packageGraph) as Parameter )
170- .toList ());
171- }
165+ List <Parameter > get parameters => type.parameters
166+ .map ((p) => ModelElement .from (p, library, packageGraph) as Parameter )
167+ .toList (growable: false );
172168
173169 ElementType get returnType =>
174170 ElementType .from (type.returnType, library, packageGraph, this );
@@ -190,13 +186,10 @@ class FunctionTypeElementType extends UndefinedElementType {
190186 return _nameWithGenerics;
191187 }
192188
193- List <TypeParameter > get typeFormals {
194- var typeFormals = type.typeFormals;
195- return UnmodifiableListView <TypeParameter >(typeFormals
196- .map (
197- (p) => ModelElement .from (p, library, packageGraph) as TypeParameter )
198- .toList ());
199- }
189+ /// An unmodifiable list of this function element's type parameters.
190+ List <TypeParameter > get typeFormals => type.typeFormals
191+ .map ((p) => ModelElement .from (p, library, packageGraph) as TypeParameter )
192+ .toList (growable: false );
200193
201194 @override
202195 String get name => 'Function' ;
@@ -293,13 +286,13 @@ abstract class DefinedElementType extends ElementType {
293286 String createLinkedReturnTypeName () => returnType.linkedName;
294287
295288 Iterable <ElementType > _typeArguments;
296- Iterable < ElementType > get typeArguments {
297- _typeArguments ?? = (type as ParameterizedType )
298- . typeArguments
299- . map ((f) => ElementType . from (f, library, packageGraph) )
300- . toList ();
301- return _typeArguments;
302- }
289+
290+ /// An unmodifiable list of this element type's parameters.
291+ Iterable < ElementType > get typeArguments =>
292+ _typeArguments ?? = (type as ParameterizedType )
293+ .typeArguments
294+ . map ((f) => ElementType . from (f, library, packageGraph))
295+ . toList (growable : false );
303296
304297 DartType get _bound => type;
305298
0 commit comments