| Index: pkg/compiler/lib/src/serialization/modelz.dart
|
| diff --git a/pkg/compiler/lib/src/serialization/modelz.dart b/pkg/compiler/lib/src/serialization/modelz.dart
|
| index 5bcb4a604b25947b2b0c7745d96fd31dc33e6248..ce0fc988ecd307980f6efd0d32bda5e408ca48ce 100644
|
| --- a/pkg/compiler/lib/src/serialization/modelz.dart
|
| +++ b/pkg/compiler/lib/src/serialization/modelz.dart
|
| @@ -80,9 +80,6 @@ abstract class ElementZ extends Element with ElementCommon {
|
| bool get isAbstract => false;
|
|
|
| @override
|
| - bool get isAssignable => _unsupported('isAssignable');
|
| -
|
| - @override
|
| bool get isClassMember => false;
|
|
|
| @override
|
| @@ -124,11 +121,6 @@ abstract class ElementZ extends Element with ElementCommon {
|
| Iterable<MetadataAnnotation> get metadata => const <MetadataAnnotation>[];
|
|
|
| @override
|
| - Element get outermostEnclosingMemberOrTopLevel {
|
| - return _unsupported('outermostEnclosingMemberOrTopLevel');
|
| - }
|
| -
|
| - @override
|
| Token get position => _unsupported('position');
|
| }
|
|
|
| @@ -670,30 +662,34 @@ abstract class ParametersMixin
|
| bool optionalParametersAreNamed = false;
|
| List<DartType> parameterTypes = <DartType>[];
|
| List<DartType> optionalParameterTypes = <DartType>[];
|
| - List<String> namedParameters = <String>[];
|
| - List<DartType> namedParameterTypes = <DartType>[];
|
| for (ParameterElement parameter in parameters) {
|
| if (parameter.isOptional) {
|
| optionalParameterCount++;
|
| - requiredParameters.add(parameter);
|
| + optionalParameters.add(parameter);
|
| orderedOptionalParameters.add(parameter);
|
| if (parameter.isNamed) {
|
| optionalParametersAreNamed = true;
|
| - namedParameters.add(parameter.name);
|
| - namedParameterTypes.add(parameter.type);
|
| } else {
|
| optionalParameterTypes.add(parameter.type);
|
| }
|
| } else {
|
| requiredParameterCount++;
|
| - optionalParameters.add(parameter);
|
| + requiredParameters.add(parameter);
|
| parameterTypes.add(parameter.type);
|
| }
|
| }
|
| + List<String> namedParameters = const <String>[];
|
| + List<DartType> namedParameterTypes = const <DartType>[];
|
| if (optionalParametersAreNamed) {
|
| + namedParameters = <String>[];
|
| + namedParameterTypes = <DartType>[];
|
| orderedOptionalParameters.sort((Element a, Element b) {
|
| return a.name.compareTo(b.name);
|
| });
|
| + for (ParameterElement parameter in orderedOptionalParameters) {
|
| + namedParameters.add(parameter.name);
|
| + namedParameterTypes.add(parameter.type);
|
| + }
|
| }
|
|
|
| FunctionType type = new FunctionType(
|
| @@ -1080,7 +1076,7 @@ abstract class ConstructorElementZ extends DeserializedElementZ
|
| }
|
|
|
| @override
|
| - AsyncMarker get asyncMarker => _unsupported('asyncMarker');
|
| + AsyncMarker get asyncMarker => AsyncMarker.SYNC;
|
|
|
| @override
|
| InterfaceType computeEffectiveTargetType(InterfaceType newType) {
|
| @@ -1344,6 +1340,11 @@ abstract class FunctionElementZ extends DeserializedElementZ
|
| }
|
|
|
| @override
|
| + AsyncMarker get asyncMarker {
|
| + return _decoder.getEnum(Key.ASYNC_MARKER, AsyncMarker.values);
|
| + }
|
| +
|
| + @override
|
| bool get isOperator => _decoder.getBool(Key.IS_OPERATOR);
|
| }
|
|
|
| @@ -1438,6 +1439,9 @@ abstract class GetterElementZ extends DeserializedElementZ
|
| accept(ElementVisitor visitor, arg) {
|
| return visitor.visitGetterElement(this, arg);
|
| }
|
| +
|
| + @override
|
| + AsyncMarker get asyncMarker => AsyncMarker.SYNC;
|
| }
|
|
|
| class TopLevelGetterElementZ extends GetterElementZ with LibraryMemberMixin {
|
| @@ -1475,6 +1479,9 @@ abstract class SetterElementZ extends DeserializedElementZ
|
| accept(ElementVisitor visitor, arg) {
|
| return visitor.visitSetterElement(this, arg);
|
| }
|
| +
|
| + @override
|
| + AsyncMarker get asyncMarker => AsyncMarker.SYNC;
|
| }
|
|
|
| class TopLevelSetterElementZ extends SetterElementZ with LibraryMemberMixin {
|
| @@ -1706,7 +1713,7 @@ class SyntheticTypeVariableElementZ extends ElementZ
|
| SourceSpan get sourcePosition => typeDeclaration.sourcePosition;
|
| }
|
|
|
| -class ParameterElementZ extends DeserializedElementZ
|
| +abstract class ParameterElementZ extends DeserializedElementZ
|
| with AnalyzableElementMixin, AstElementMixin, TypedElementMixin
|
| implements ParameterElement {
|
| FunctionElement _functionDeclaration;
|
| @@ -1716,9 +1723,10 @@ class ParameterElementZ extends DeserializedElementZ
|
| ParameterElementZ(ObjectDecoder decoder) : super(decoder);
|
|
|
| @override
|
| - accept(ElementVisitor visitor, arg) {
|
| - return visitor.visitParameterElement(this, arg);
|
| - }
|
| + bool get isFinal => _decoder.getBool(Key.IS_FINAL);
|
| +
|
| + @override
|
| + bool get isConst => false;
|
|
|
| @override
|
| ConstantExpression get constant {
|
| @@ -1763,15 +1771,25 @@ class ParameterElementZ extends DeserializedElementZ
|
| bool get isOptional => _decoder.getBool(Key.IS_OPTIONAL);
|
|
|
| @override
|
| - ElementKind get kind => ElementKind.PARAMETER;
|
| -
|
| - @override
|
| LibraryElement get library => executableContext.library;
|
|
|
| @override
|
| MemberElement get memberContext => executableContext.memberContext;
|
| }
|
|
|
| +class LocalParameterElementZ extends ParameterElementZ
|
| + implements LocalParameterElement {
|
| + LocalParameterElementZ(ObjectDecoder decoder) : super(decoder);
|
| +
|
| + @override
|
| + accept(ElementVisitor visitor, arg) {
|
| + return visitor.visitParameterElement(this, arg);
|
| + }
|
| +
|
| + @override
|
| + ElementKind get kind => ElementKind.PARAMETER;
|
| +}
|
| +
|
| class InitializingFormalElementZ extends ParameterElementZ
|
| implements InitializingFormalElement {
|
| FieldElement _fieldElement;
|
| @@ -1816,9 +1834,12 @@ class LocalVariableElementZ extends DeserializedElementZ
|
| ElementKind get kind => ElementKind.VARIABLE;
|
|
|
| @override
|
| + bool get isFinal => _decoder.getBool(Key.IS_FINAL);
|
| +
|
| + @override
|
| bool get isConst {
|
| if (_isConst == null) {
|
| - _constant = _decoder.getConstant(Key.CONSTANT);
|
| + _constant = _decoder.getConstant(Key.CONSTANT, isOptional: true);
|
| _isConst = _constant != null;
|
| }
|
| return _isConst;
|
|
|