Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Unified Diff: pkg/compiler/lib/src/elements/modelx.dart

Issue 1146943002: Change Link to List in FunctionSignature. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/elements/modelx.dart
diff --git a/pkg/compiler/lib/src/elements/modelx.dart b/pkg/compiler/lib/src/elements/modelx.dart
index e19d722c69abb4b785ade4722be2ba69607a1e67..5c94d94e4e5f67e5be6ca85787c54a3d1a52ad45 100644
--- a/pkg/compiler/lib/src/elements/modelx.dart
+++ b/pkg/compiler/lib/src/elements/modelx.dart
@@ -1749,8 +1749,8 @@ class AbstractFieldElementX extends ElementX implements AbstractFieldElement {
// [FunctionType].
// TODO(karlklose): all these lists should have element type [FormalElement].
class FunctionSignatureX implements FunctionSignature {
- final Link<Element> requiredParameters;
- final Link<Element> optionalParameters;
+ final List<Element> requiredParameters;
+ final List<Element> optionalParameters;
final int requiredParameterCount;
final int optionalParameterCount;
final bool optionalParametersAreNamed;
@@ -1758,9 +1758,9 @@ class FunctionSignatureX implements FunctionSignature {
final FunctionType type;
final bool hasOptionalParameters;
- FunctionSignatureX({this.requiredParameters: const Link<Element>(),
+ FunctionSignatureX({this.requiredParameters: const <Element>[],
this.requiredParameterCount: 0,
- Link<Element> optionalParameters: const Link<Element>(),
+ List<Element> optionalParameters: const <Element>[],
this.optionalParameterCount: 0,
this.optionalParametersAreNamed: false,
this.orderedOptionalParameters: const <Element>[],
@@ -1769,22 +1769,14 @@ class FunctionSignatureX implements FunctionSignature {
hasOptionalParameters = !optionalParameters.isEmpty;
void forEachRequiredParameter(void function(Element parameter)) {
- for (Link<Element> link = requiredParameters;
- !link.isEmpty;
- link = link.tail) {
- function(link.head);
- }
+ requiredParameters.forEach(function);
}
void forEachOptionalParameter(void function(Element parameter)) {
- for (Link<Element> link = optionalParameters;
- !link.isEmpty;
- link = link.tail) {
- function(link.head);
- }
+ optionalParameters.forEach(function);
}
- Element get firstOptionalParameter => optionalParameters.head;
+ Element get firstOptionalParameter => optionalParameters.first;
void forEachParameter(void function(Element parameter)) {
forEachRequiredParameter(function);
@@ -1814,8 +1806,8 @@ class FunctionSignatureX implements FunctionSignature {
if (requiredParameterCount != signature.requiredParameterCount) {
return false;
}
- Set<String> names = optionalParameters.mapToSet(
- (Element element) => element.name);
+ Set<String> names = optionalParameters.map(
+ (Element element) => element.name).toSet();
for (Element namedParameter in signature.optionalParameters) {
if (!names.contains(namedParameter.name)) {
return false;
« no previous file with comments | « pkg/compiler/lib/src/elements/elements.dart ('k') | pkg/compiler/lib/src/inferrer/concrete_types_inferrer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698