| Index: pkg/compiler/lib/src/elements/common.dart
|
| diff --git a/pkg/compiler/lib/src/elements/common.dart b/pkg/compiler/lib/src/elements/common.dart
|
| index 0479c4ef4f289aa88cc8bafc96bf10075c1cc90b..d61a57dc8a4059a2715b509f362ffcb94a11b930 100644
|
| --- a/pkg/compiler/lib/src/elements/common.dart
|
| +++ b/pkg/compiler/lib/src/elements/common.dart
|
| @@ -9,6 +9,7 @@ library elements.common;
|
| import '../common/names.dart' show Identifiers, Names, Uris;
|
| import '../common_elements.dart' show CommonElements;
|
| import '../util/util.dart' show Link;
|
| +import 'entities.dart';
|
| import 'elements.dart';
|
| import 'resolution_types.dart'
|
| show ResolutionDartType, ResolutionInterfaceType, ResolutionFunctionType;
|
| @@ -498,6 +499,8 @@ abstract class ClassElementCommon implements ClassElement {
|
| }
|
|
|
| abstract class FunctionSignatureCommon implements FunctionSignature {
|
| + ParameterStructure _parameterStructure;
|
| +
|
| ResolutionDartType get returnType => type.returnType;
|
|
|
| void forEachRequiredParameter(void function(Element parameter)) {
|
| @@ -555,6 +558,24 @@ abstract class FunctionSignatureCommon implements FunctionSignature {
|
| }
|
| return true;
|
| }
|
| +
|
| + ParameterStructure get parameterStructure {
|
| + if (_parameterStructure == null) {
|
| + int requiredParameters = requiredParameterCount;
|
| + int positionalParameters;
|
| + List<String> namedParameters;
|
| + if (optionalParametersAreNamed) {
|
| + namedParameters = type.namedParameters;
|
| + positionalParameters = requiredParameters;
|
| + } else {
|
| + namedParameters = const <String>[];
|
| + positionalParameters = requiredParameters + optionalParameterCount;
|
| + }
|
| + _parameterStructure = new ParameterStructure(
|
| + requiredParameters, positionalParameters, namedParameters);
|
| + }
|
| + return _parameterStructure;
|
| + }
|
| }
|
|
|
| abstract class MixinApplicationElementCommon
|
|
|