Index: pkg/analyzer/lib/src/dart/element/element.dart |
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart |
index 1acac44494f2ed5453356df12c96f94bdbab2708..04e7cf260f0ace87522f783343bf6f96e47c3995 100644 |
--- a/pkg/analyzer/lib/src/dart/element/element.dart |
+++ b/pkg/analyzer/lib/src/dart/element/element.dart |
@@ -377,7 +377,7 @@ class ClassElementImpl extends ElementImpl |
ResynthesizerContext context = enclosingUnit.resynthesizerContext; |
_interfaces = _unlinkedClass.interfaces |
.map((EntityRef t) => context.resolveTypeRef(t, this)) |
- .toList(); |
+ .toList(growable: false); |
} |
return _interfaces ?? const <InterfaceType>[]; |
} |
@@ -477,7 +477,7 @@ class ClassElementImpl extends ElementImpl |
ResynthesizerContext context = enclosingUnit.resynthesizerContext; |
_mixins = _unlinkedClass.mixins |
.map((EntityRef t) => context.resolveTypeRef(t, this)) |
- .toList(); |
+ .toList(growable: false); |
} |
return _mixins ?? const <InterfaceType>[]; |
} |
@@ -884,7 +884,7 @@ class ClassElementImpl extends ElementImpl |
implicitConstructor.enclosingElement = this; |
implicitConstructor.type = new FunctionTypeImpl(implicitConstructor); |
return implicitConstructor; |
- }).toList(); |
+ }).toList(growable: false); |
} |
PropertyAccessorElement _internalLookUpConcreteGetter( |
@@ -4607,7 +4607,7 @@ class LibraryElementImpl extends ElementImpl implements LibraryElement { |
libraries.add(library); |
} |
} |
- return new List.from(libraries); |
+ return libraries.toList(growable: false); |
} |
@override |
@@ -4697,7 +4697,7 @@ class LibraryElementImpl extends ElementImpl implements LibraryElement { |
libraries.add(library); |
} |
} |
- return new List.from(libraries); |
+ return libraries.toList(growable: false); |
} |
@override |
@@ -4910,7 +4910,7 @@ class LibraryElementImpl extends ElementImpl implements LibraryElement { |
prefixes.add(prefix); |
} |
} |
- _prefixes = prefixes.toList(); |
+ _prefixes = prefixes.toList(growable: false); |
} |
return _prefixes; |
} |
@@ -4945,9 +4945,9 @@ class LibraryElementImpl extends ElementImpl implements LibraryElement { |
@override |
List<LibraryElement> get visibleLibraries { |
- Set<LibraryElement> visibleLibraries = new Set(); |
+ HashSet<LibraryElement> visibleLibraries = new HashSet<LibraryElement>(); |
sra1
2016/05/31 06:43:56
Ideally the default implementations would also be
scheglov
2016/05/31 15:41:37
The following performance micro-benchmark uses 67
|
_addVisibleLibraries(visibleLibraries, false); |
- return new List.from(visibleLibraries); |
+ return visibleLibraries.toList(growable: false); |
} |
@override |
@@ -5790,7 +5790,7 @@ class MultiplyDefinedElementImpl implements MultiplyDefinedElement { |
HashSet<Element> elements = new HashSet<Element>(); |
_add(elements, firstElement); |
_add(elements, secondElement); |
- return new List.from(elements); |
+ return elements.toList(growable: false); |
} |
} |
@@ -7326,11 +7326,9 @@ abstract class TypeParameterizedElementMixin |
* element's type parameters. |
*/ |
List<TypeParameterType> get typeParameterTypes { |
- if (_typeParameterTypes == null) { |
- _typeParameterTypes = |
- typeParameters.map((TypeParameterElement e) => e.type).toList(); |
- } |
- return _typeParameterTypes; |
+ return _typeParameterTypes ??= typeParameters |
+ .map((TypeParameterElement e) => e.type) |
+ .toList(growable: false); |
} |
/** |