| Index: sdk/lib/_internal/compiler/implementation/resolution/member_impl.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/resolution/member_impl.dart b/sdk/lib/_internal/compiler/implementation/resolution/member_impl.dart
|
| deleted file mode 100644
|
| index 6c0bb2144859c4ae89038278df93dae5e693ce13..0000000000000000000000000000000000000000
|
| --- a/sdk/lib/_internal/compiler/implementation/resolution/member_impl.dart
|
| +++ /dev/null
|
| @@ -1,256 +0,0 @@
|
| -// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -
|
| -part of resolution.compute_members;
|
| -
|
| -class DeclaredMember implements Member {
|
| - final Name name;
|
| - final Element element;
|
| - final InterfaceType declarer;
|
| - final DartType type;
|
| - final FunctionType functionType;
|
| -
|
| - DeclaredMember(this.name, this.element,
|
| - this.declarer,
|
| - this.type, this.functionType);
|
| -
|
| - bool get isStatic => !element.isInstanceMember;
|
| -
|
| - bool get isGetter => element.isGetter || (!isSetter && element.isField);
|
| -
|
| - bool get isSetter => name.isSetter;
|
| -
|
| - bool get isMethod => element.isFunction;
|
| -
|
| - bool get isDeclaredByField => element.isField;
|
| -
|
| - bool get isAbstract => false;
|
| -
|
| - Member get implementation => this;
|
| -
|
| - /// Returns this member as inherited from [instance].
|
| - ///
|
| - /// For instance:
|
| - /// class A<T> { T m() {} }
|
| - /// class B<S> extends A<S> {}
|
| - /// class C<U> extends B<U> {}
|
| - /// The member `T m()` is declared in `A<T>` and inherited from `A<S>` into
|
| - /// `B` as `S m()`, and further from `B<U>` into `C` as `U m()`.
|
| - DeclaredMember inheritFrom(InterfaceType instance) {
|
| - // If the member is declared in a non-generic class its type cannot change
|
| - // as a result of inheritance.
|
| - if (!declarer.isGeneric) return this;
|
| - assert(declarer.element == instance.element);
|
| - return _newInheritedMember(instance);
|
| - }
|
| -
|
| - InheritedMember _newInheritedMember(InterfaceType instance) {
|
| - return new InheritedMember(this, instance);
|
| - }
|
| -
|
| - Iterable<Member> get declarations => <Member>[this];
|
| -
|
| - int get hashCode => element.hashCode + 13 * isSetter.hashCode;
|
| -
|
| - bool operator ==(other) {
|
| - if (other is! Member) return false;
|
| - return element == other.element &&
|
| - isSetter == other.isSetter;
|
| - }
|
| -
|
| - String toString() {
|
| - StringBuffer sb = new StringBuffer();
|
| - printOn(sb, type);
|
| - return sb.toString();
|
| - }
|
| -
|
| - void printOn(StringBuffer sb, DartType type) {
|
| - if (isStatic) {
|
| - sb.write('static ');
|
| - }
|
| - if (isAbstract) {
|
| - sb.write('abstract ');
|
| - }
|
| - if (isGetter) {
|
| - sb.write(type);
|
| - sb.write(' get ');
|
| - sb.write(name);
|
| - } else if (isSetter) {
|
| - sb.write('void set ');
|
| - sb.write(name.getter);
|
| - sb.write('(');
|
| - sb.write(type);
|
| - sb.write(' _)');
|
| - } else {
|
| - sb.write(type.getStringAsDeclared('$name'));
|
| - }
|
| - }
|
| -}
|
| -
|
| -class DeclaredAbstractMember extends DeclaredMember {
|
| - final DeclaredMember implementation;
|
| -
|
| - DeclaredAbstractMember(Name name, Element element,
|
| - InterfaceType declarer,
|
| - DartType type, FunctionType functionType,
|
| - this.implementation)
|
| - : super(name, element, declarer, type, functionType);
|
| -
|
| - bool get isAbstract => true;
|
| -
|
| - InheritedMember _newInheritedMember(InterfaceType instance) {
|
| - return new InheritedAbstractMember(this, instance,
|
| - implementation != null ? implementation.inheritFrom(instance) : null);
|
| - }
|
| -}
|
| -
|
| -class InheritedMember implements DeclaredMember {
|
| - final DeclaredMember declaration;
|
| - final InterfaceType instance;
|
| -
|
| - InheritedMember(DeclaredMember this.declaration,
|
| - InterfaceType this.instance) {
|
| - assert(instance.isGeneric);
|
| - assert(!declaration.isStatic);
|
| - }
|
| -
|
| - Element get element => declaration.element;
|
| -
|
| - Name get name => declaration.name;
|
| -
|
| - InterfaceType get declarer => instance;
|
| -
|
| - bool get isStatic => false;
|
| -
|
| - bool get isSetter => declaration.isSetter;
|
| -
|
| - bool get isGetter => declaration.isGetter;
|
| -
|
| - bool get isMethod => declaration.isMethod;
|
| -
|
| - bool get isDeclaredByField => declaration.isDeclaredByField;
|
| -
|
| - bool get isAbstract => false;
|
| -
|
| - Member get implementation => this;
|
| -
|
| - DartType get type => declaration.type.substByContext(instance);
|
| -
|
| - FunctionType get functionType {
|
| - return declaration.functionType.substByContext(instance);
|
| - }
|
| -
|
| - DeclaredMember inheritFrom(InterfaceType newInstance) {
|
| - assert(() {
|
| - // Assert that if [instance] contains type variables, then these are
|
| - // defined in the declaration of [newInstance] and will therefore be
|
| - // substituted into the context of [newInstance] in the created member.
|
| - ClassElement contextClass = Types.getClassContext(instance);
|
| - return contextClass == null || contextClass == newInstance.element;
|
| - });
|
| - return _newInheritedMember(newInstance);
|
| - }
|
| -
|
| - InheritedMember _newInheritedMember(InterfaceType newInstance) {
|
| - return new InheritedMember(declaration,
|
| - instance.substByContext(newInstance));
|
| - }
|
| -
|
| - Iterable<Member> get declarations => <Member>[this];
|
| -
|
| - int get hashCode => declaration.hashCode + 17 * instance.hashCode;
|
| -
|
| - bool operator ==(other) {
|
| - if (other is! InheritedMember) return false;
|
| - return declaration == other.declaration &&
|
| - instance == other.instance;
|
| - }
|
| -
|
| - void printOn(StringBuffer sb, DartType type) {
|
| - declaration.printOn(sb, type);
|
| - sb.write(' inherited from $instance');
|
| - }
|
| -
|
| - String toString() {
|
| - StringBuffer sb = new StringBuffer();
|
| - printOn(sb, instance);
|
| - return sb.toString();
|
| - }
|
| -}
|
| -
|
| -class InheritedAbstractMember extends InheritedMember {
|
| - final DeclaredMember implementation;
|
| -
|
| - InheritedAbstractMember(DeclaredMember declaration,
|
| - InterfaceType instance,
|
| - this.implementation)
|
| - : super(declaration, instance);
|
| -
|
| - bool get isAbstract => true;
|
| -
|
| - InheritedMember _newInheritedMember(InterfaceType newInstance) {
|
| - return new InheritedAbstractMember(
|
| - declaration,
|
| - instance.substByContext(newInstance),
|
| - implementation != null
|
| - ? implementation.inheritFrom(newInstance) : null);
|
| - }
|
| -}
|
| -
|
| -
|
| -abstract class AbstractSyntheticMember implements MemberSignature {
|
| - final Setlet<Member> inheritedMembers;
|
| -
|
| - AbstractSyntheticMember(this.inheritedMembers);
|
| -
|
| - Member get member => inheritedMembers.first;
|
| -
|
| - Iterable<Member> get declarations => inheritedMembers;
|
| -
|
| - Name get name => member.name;
|
| -}
|
| -
|
| -
|
| -class SyntheticMember extends AbstractSyntheticMember {
|
| - final DartType type;
|
| - final FunctionType functionType;
|
| -
|
| - SyntheticMember(Setlet<Member> inheritedMembers,
|
| - this.type,
|
| - this.functionType)
|
| - : super(inheritedMembers);
|
| -
|
| - bool get isSetter => member.isSetter;
|
| -
|
| - bool get isGetter => member.isGetter;
|
| -
|
| - bool get isMethod => member.isMethod;
|
| -
|
| - bool get isErroneous => false;
|
| -
|
| - String toString() => '${type.getStringAsDeclared('$name')} synthesized '
|
| - 'from ${inheritedMembers}';
|
| -}
|
| -
|
| -class ErroneousMember extends AbstractSyntheticMember {
|
| - ErroneousMember(Setlet<Member> inheritedMembers) : super(inheritedMembers);
|
| -
|
| - DartType get type => functionType;
|
| -
|
| - FunctionType get functionType {
|
| - throw new UnsupportedError('Erroneous members have no type.');
|
| - }
|
| -
|
| - bool get isSetter => false;
|
| -
|
| - bool get isGetter => false;
|
| -
|
| - bool get isMethod => false;
|
| -
|
| - bool get isErroneous => true;
|
| -
|
| - String toString() => "erroneous member '$name' synthesized "
|
| - "from ${inheritedMembers}";
|
| -}
|
| -
|
|
|