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 library analyzer.src.generated.element; | 5 library analyzer.src.generated.element; |
6 | 6 |
7 import 'dart:collection'; | 7 import 'dart:collection'; |
8 import 'dart:math' show min; | 8 import 'dart:math' show min; |
9 | 9 |
10 import 'package:analyzer/src/generated/ast.dart'; | 10 import 'package:analyzer/src/generated/ast.dart'; |
(...skipping 796 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
807 */ | 807 */ |
808 void set validMixin(bool isValidMixin) { | 808 void set validMixin(bool isValidMixin) { |
809 setModifier(Modifier.MIXIN, isValidMixin); | 809 setModifier(Modifier.MIXIN, isValidMixin); |
810 } | 810 } |
811 | 811 |
812 @override | 812 @override |
813 accept(ElementVisitor visitor) => visitor.visitClassElement(this); | 813 accept(ElementVisitor visitor) => visitor.visitClassElement(this); |
814 | 814 |
815 @override | 815 @override |
816 void appendTo(StringBuffer buffer) { | 816 void appendTo(StringBuffer buffer) { |
| 817 if (isAbstract) { |
| 818 buffer.write('abstract '); |
| 819 } |
| 820 buffer.write('class '); |
817 String name = displayName; | 821 String name = displayName; |
818 if (name == null) { | 822 if (name == null) { |
819 buffer.write("{unnamed class}"); | 823 buffer.write("{unnamed class}"); |
820 } else { | 824 } else { |
821 buffer.write(name); | 825 buffer.write(name); |
822 } | 826 } |
823 int variableCount = _typeParameters.length; | 827 int variableCount = _typeParameters.length; |
824 if (variableCount > 0) { | 828 if (variableCount > 0) { |
825 buffer.write("<"); | 829 buffer.write("<"); |
826 for (int i = 0; i < variableCount; i++) { | 830 for (int i = 0; i < variableCount; i++) { |
827 if (i > 0) { | 831 if (i > 0) { |
828 buffer.write(", "); | 832 buffer.write(", "); |
829 } | 833 } |
830 (_typeParameters[i] as TypeParameterElementImpl).appendTo(buffer); | 834 (_typeParameters[i] as TypeParameterElementImpl).appendTo(buffer); |
831 } | 835 } |
832 buffer.write(">"); | 836 buffer.write(">"); |
833 } | 837 } |
| 838 if (supertype != null && !supertype.isObject) { |
| 839 buffer.write(' extends '); |
| 840 buffer.write(supertype.displayName); |
| 841 } |
| 842 if (mixins.isNotEmpty) { |
| 843 buffer.write(' with '); |
| 844 buffer.write(mixins.map((t) => t.displayName).join(', ')); |
| 845 } |
| 846 if (interfaces.isNotEmpty) { |
| 847 buffer.write(' implements '); |
| 848 buffer.write(interfaces.map((t) => t.displayName).join(', ')); |
| 849 } |
834 } | 850 } |
835 | 851 |
836 @override | 852 @override |
837 NamedCompilationUnitMember computeNode() { | 853 NamedCompilationUnitMember computeNode() { |
838 if (isEnum) { | 854 if (isEnum) { |
839 return getNodeMatching((node) => node is EnumDeclaration); | 855 return getNodeMatching((node) => node is EnumDeclaration); |
840 } else { | 856 } else { |
841 return getNodeMatching( | 857 return getNodeMatching( |
842 (node) => node is ClassDeclaration || node is ClassTypeAlias); | 858 (node) => node is ClassDeclaration || node is ClassTypeAlias); |
843 } | 859 } |
(...skipping 9970 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10814 | 10830 |
10815 @override | 10831 @override |
10816 void visitElement(Element element) { | 10832 void visitElement(Element element) { |
10817 int offset = element.nameOffset; | 10833 int offset = element.nameOffset; |
10818 if (offset != -1) { | 10834 if (offset != -1) { |
10819 map[offset] = element; | 10835 map[offset] = element; |
10820 } | 10836 } |
10821 super.visitElement(element); | 10837 super.visitElement(element); |
10822 } | 10838 } |
10823 } | 10839 } |
OLD | NEW |