OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of analyzer2dart.element_converter; | 5 part of analyzer2dart.element_converter; |
6 | 6 |
7 | 7 |
8 /// Base [dart2js.Element] implementation for converted analyzer elements. | 8 /// Base [dart2js.Element] implementation for converted analyzer elements. |
9 class ElementY extends dart2js.Element { | 9 class ElementY extends dart2js.Element { |
10 final ElementConverter converter; | 10 final ElementConverter converter; |
(...skipping 702 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
713 get initializer => unsupported('initializer'); | 713 get initializer => unsupported('initializer'); |
714 | 714 |
715 @override | 715 @override |
716 get memberContext => unsupported('memberContext'); | 716 get memberContext => unsupported('memberContext'); |
717 } | 717 } |
718 | 718 |
719 class TopLevelVariableElementY extends ElementY | 719 class TopLevelVariableElementY extends ElementY |
720 with AnalyzableElementY, | 720 with AnalyzableElementY, |
721 AstElementY, | 721 AstElementY, |
722 TopLevelElementMixin, | 722 TopLevelElementMixin, |
723 VariableElementMixin | 723 VariableElementMixin, |
| 724 MemberElementMixin |
724 implements dart2js.FieldElement { | 725 implements dart2js.FieldElement { |
725 | 726 |
726 analyzer.TopLevelVariableElement get element => super.element; | 727 analyzer.TopLevelVariableElement get element => super.element; |
727 | 728 |
728 dart2js.ElementKind get kind => dart2js.ElementKind.FIELD; | 729 dart2js.ElementKind get kind => dart2js.ElementKind.FIELD; |
729 | 730 |
730 @override | 731 @override |
731 dart2js.DartType get type => converter.convertType(element.type); | 732 dart2js.DartType get type => converter.convertType(element.type); |
732 | 733 |
733 @override | 734 @override |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
803 bool get isClassMember => true; | 804 bool get isClassMember => true; |
804 | 805 |
805 @override | 806 @override |
806 bool get isTopLevel => false; | 807 bool get isTopLevel => false; |
807 } | 808 } |
808 | 809 |
809 class ConstructorElementY extends ElementY | 810 class ConstructorElementY extends ElementY |
810 with AnalyzableElementY, | 811 with AnalyzableElementY, |
811 AstElementY, | 812 AstElementY, |
812 FunctionElementMixin, | 813 FunctionElementMixin, |
813 ClassMemberMixin | 814 ClassMemberMixin, |
| 815 MemberElementMixin |
814 implements dart2js.ConstructorElement { | 816 implements dart2js.ConstructorElement { |
815 | 817 |
816 analyzer.ConstructorElement get element => super.element; | 818 analyzer.ConstructorElement get element => super.element; |
817 | 819 |
818 // TODO(johnniwinther): Support redirecting/factory constructors. | 820 // TODO(johnniwinther): Support redirecting/factory constructors. |
819 @override | 821 @override |
820 dart2js.ElementKind get kind => dart2js.ElementKind.GENERATIVE_CONSTRUCTOR; | 822 dart2js.ElementKind get kind => dart2js.ElementKind.GENERATIVE_CONSTRUCTOR; |
821 | 823 |
822 // TODO(johnniwinther): Support factory constructors. | 824 // TODO(johnniwinther): Support factory constructors. |
823 @override | 825 @override |
(...skipping 30 matching lines...) Expand all Loading... |
854 get immediateRedirectionTarget => unsupported('immediateRedirectionTarget'); | 856 get immediateRedirectionTarget => unsupported('immediateRedirectionTarget'); |
855 | 857 |
856 @override | 858 @override |
857 get nestedClosures => unsupported('nestedClosures'); | 859 get nestedClosures => unsupported('nestedClosures'); |
858 } | 860 } |
859 | 861 |
860 class InstanceMethodElementY extends ElementY | 862 class InstanceMethodElementY extends ElementY |
861 with AnalyzableElementY, | 863 with AnalyzableElementY, |
862 AstElementY, | 864 AstElementY, |
863 FunctionElementMixin, | 865 FunctionElementMixin, |
864 ClassMemberMixin | 866 ClassMemberMixin, |
| 867 MemberElementMixin |
865 implements dart2js.MethodElement { | 868 implements dart2js.MethodElement { |
866 | 869 |
867 analyzer.MethodElement get element => super.element; | 870 analyzer.MethodElement get element => super.element; |
868 | 871 |
869 @override | 872 @override |
870 dart2js.ElementKind get kind => dart2js.ElementKind.FUNCTION; | 873 dart2js.ElementKind get kind => dart2js.ElementKind.FUNCTION; |
871 | 874 |
872 @override | 875 @override |
873 bool get isStatic => element.isStatic; | 876 bool get isStatic => element.isStatic; |
874 | 877 |
875 @override | 878 @override |
876 bool get isAbstract => element.isAbstract; | 879 bool get isAbstract => element.isAbstract; |
877 | 880 |
878 @override | 881 @override |
879 bool get isFactoryConstructor => false; | 882 bool get isFactoryConstructor => false; |
880 | 883 |
881 @override | 884 @override |
882 bool get isInstanceMember => true; | 885 bool get isInstanceMember => true; |
883 | 886 |
884 InstanceMethodElementY(ElementConverter converter, | 887 InstanceMethodElementY(ElementConverter converter, |
885 analyzer.MethodElement element) | 888 analyzer.MethodElement element) |
886 : super(converter, element); | 889 : super(converter, element); |
887 | 890 |
888 @override | 891 @override |
889 get nestedClosures => unsupported('nestedClosures'); | 892 get nestedClosures => unsupported('nestedClosures'); |
890 } | 893 } |
| 894 |
| 895 abstract class MemberElementMixin implements dart2js.MemberElement { |
| 896 dart2js.Name get memberName => new dart2js.Name(name, library); |
| 897 } |
OLD | NEW |