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.dart.element.element; | 5 library analyzer.src.dart.element.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/dart/ast/ast.dart'; | 10 import 'package:analyzer/dart/ast/ast.dart'; |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 /** | 73 /** |
74 * A list containing all of the methods contained in this class. | 74 * A list containing all of the methods contained in this class. |
75 */ | 75 */ |
76 List<MethodElement> _methods = MethodElement.EMPTY_LIST; | 76 List<MethodElement> _methods = MethodElement.EMPTY_LIST; |
77 | 77 |
78 /** | 78 /** |
79 * The superclass of the class, or `null` if the class does not have an | 79 * The superclass of the class, or `null` if the class does not have an |
80 * explicit superclass. | 80 * explicit superclass. |
81 */ | 81 */ |
82 @override | 82 @override |
83 InterfaceType supertype; | 83 InterfaceType _supertype; |
84 | 84 |
85 /** | 85 /** |
86 * The type defined by the class. | 86 * The type defined by the class. |
87 */ | 87 */ |
88 @override | 88 @override |
89 InterfaceType type; | 89 InterfaceType type; |
90 | 90 |
91 /** | 91 /** |
92 * A list containing all of the type parameters defined for this class. | 92 * A list containing all of the type parameters defined for this class. |
93 */ | 93 */ |
(...skipping 1037 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1131 | 1131 |
1132 @override | 1132 @override |
1133 int get nameOffset { | 1133 int get nameOffset { |
1134 if (_unlinkedClass != null) { | 1134 if (_unlinkedClass != null) { |
1135 return _unlinkedClass.nameOffset; | 1135 return _unlinkedClass.nameOffset; |
1136 } | 1136 } |
1137 return super.nameOffset; | 1137 return super.nameOffset; |
1138 } | 1138 } |
1139 | 1139 |
1140 @override | 1140 @override |
| 1141 InterfaceType get supertype { |
| 1142 if (_unlinkedClass != null && _supertype == null) { |
| 1143 if (_unlinkedClass.supertype != null) { |
| 1144 _supertype = enclosingUnit.resynthesizerContext |
| 1145 .resolveTypeRef(_unlinkedClass.supertype, this); |
| 1146 } else if (_unlinkedClass.hasNoSupertype) { |
| 1147 return null; |
| 1148 } else { |
| 1149 _supertype = context.typeProvider.objectType; |
| 1150 } |
| 1151 } |
| 1152 return _supertype; |
| 1153 } |
| 1154 |
| 1155 void set supertype(InterfaceType supertype) { |
| 1156 assert(_unlinkedClass == null); |
| 1157 _supertype = supertype; |
| 1158 } |
| 1159 |
| 1160 @override |
1141 List<TypeParameterElement> get typeParameters { | 1161 List<TypeParameterElement> get typeParameters { |
1142 if (_unlinkedClass != null) { | 1162 if (_unlinkedClass != null) { |
1143 return resynthesizedTypeParameters; | 1163 return resynthesizedTypeParameters; |
1144 } | 1164 } |
1145 return super.typeParameters; | 1165 return super.typeParameters; |
1146 } | 1166 } |
1147 | 1167 |
1148 /** | 1168 /** |
1149 * Set the type parameters defined for this class to the given | 1169 * Set the type parameters defined for this class to the given |
1150 * [typeParameters]. | 1170 * [typeParameters]. |
(...skipping 1898 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3049 | 3069 |
3050 @override | 3070 @override |
3051 int get nameOffset { | 3071 int get nameOffset { |
3052 if (_unlinkedEnum != null) { | 3072 if (_unlinkedEnum != null) { |
3053 return _unlinkedEnum.nameOffset; | 3073 return _unlinkedEnum.nameOffset; |
3054 } | 3074 } |
3055 return super.nameOffset; | 3075 return super.nameOffset; |
3056 } | 3076 } |
3057 | 3077 |
3058 @override | 3078 @override |
| 3079 InterfaceType get supertype => context.typeProvider.objectType; |
| 3080 |
| 3081 @override |
3059 List<TypeParameterElement> get typeParameters => | 3082 List<TypeParameterElement> get typeParameters => |
3060 const <TypeParameterElement>[]; | 3083 const <TypeParameterElement>[]; |
3061 | 3084 |
3062 /** | 3085 /** |
3063 * Set the type parameters defined for this class to the given | 3086 * Set the type parameters defined for this class to the given |
3064 * [typeParameters]. | 3087 * [typeParameters]. |
3065 */ | 3088 */ |
3066 void set typeParameters(List<TypeParameterElement> typeParameters) { | 3089 void set typeParameters(List<TypeParameterElement> typeParameters) { |
3067 assert(false); | 3090 assert(false); |
3068 } | 3091 } |
(...skipping 4859 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7928 | 7951 |
7929 @override | 7952 @override |
7930 void visitElement(Element element) { | 7953 void visitElement(Element element) { |
7931 int offset = element.nameOffset; | 7954 int offset = element.nameOffset; |
7932 if (offset != -1) { | 7955 if (offset != -1) { |
7933 map[offset] = element; | 7956 map[offset] = element; |
7934 } | 7957 } |
7935 super.visitElement(element); | 7958 super.visitElement(element); |
7936 } | 7959 } |
7937 } | 7960 } |
OLD | NEW |