Skip to content

Commit 9bead38

Browse files
authored
Remove unnecessary use of list view (#2533)
* Remove unnecessary use of list view * Clarify some docs a bit more * Switch typeArguments from block body to expression body
1 parent d22e3df commit 9bead38

File tree

2 files changed

+18
-26
lines changed

2 files changed

+18
-26
lines changed

lib/src/element_type.dart

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
/// The models used to represent Dart code.
66
library dartdoc.element_type;
77

8-
import 'dart:collection';
9-
108
import 'package:analyzer/dart/element/element.dart';
119
import 'package:analyzer/dart/element/nullability_suffix.dart';
1210
import '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

lib/src/model/model_element.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
/// The models used to represent Dart code.
66
library dartdoc.models;
77

8-
import 'dart:collection' show UnmodifiableListView;
98
import 'dart:convert';
109

1110
import 'package:analyzer/dart/element/element.dart';
@@ -1097,9 +1096,9 @@ abstract class ModelElement extends Canonicalization
10971096
params = (element as FunctionTypeAliasElement).function.parameters;
10981097
}
10991098

1100-
_parameters = UnmodifiableListView<Parameter>(params
1099+
_parameters = UnmodifiableListView(params
11011100
.map((p) => ModelElement.from(p, library, packageGraph) as Parameter)
1102-
.toList());
1101+
.toList(growable: false));
11031102
}
11041103
return _parameters;
11051104
}

0 commit comments

Comments
 (0)