5
5
/// The models used to represent Dart code.
6
6
library dartdoc.element_type;
7
7
8
- import 'dart:collection' ;
9
-
10
8
import 'package:analyzer/dart/element/element.dart' ;
11
9
import 'package:analyzer/dart/element/nullability_suffix.dart' ;
12
10
import 'package:analyzer/dart/element/type.dart' ;
@@ -93,7 +91,8 @@ abstract class ElementType extends Privacy {
93
91
return '' ;
94
92
}
95
93
96
- List <Parameter > get parameters => [];
94
+ /// An unmodifiable list of this element type's parameters.
95
+ List <Parameter > get parameters => const < Parameter > [];
97
96
98
97
DartType get instantiatedType;
99
98
@@ -163,12 +162,9 @@ class FunctionTypeElementType extends UndefinedElementType {
163
162
FunctionType get type => super .type;
164
163
165
164
@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 );
172
168
173
169
ElementType get returnType =>
174
170
ElementType .from (type.returnType, library, packageGraph, this );
@@ -190,13 +186,10 @@ class FunctionTypeElementType extends UndefinedElementType {
190
186
return _nameWithGenerics;
191
187
}
192
188
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 );
200
193
201
194
@override
202
195
String get name => 'Function' ;
@@ -293,13 +286,13 @@ abstract class DefinedElementType extends ElementType {
293
286
String createLinkedReturnTypeName () => returnType.linkedName;
294
287
295
288
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 );
303
296
304
297
DartType get _bound => type;
305
298
0 commit comments