Index: pkg/analysis_server/lib/src/services/index/indexable_element.dart |
diff --git a/pkg/analysis_server/lib/src/services/index/indexable_element.dart b/pkg/analysis_server/lib/src/services/index/indexable_element.dart |
index 8a1b02724fb193e808ba72ec0733ea68de8cf28f..57f8659b1c16209c3cd2e199e732f5892da1779c 100644 |
--- a/pkg/analysis_server/lib/src/services/index/indexable_element.dart |
+++ b/pkg/analysis_server/lib/src/services/index/indexable_element.dart |
@@ -31,10 +31,15 @@ class IndexableElement implements IndexableObject { |
} |
@override |
+ String get filePath { |
+ return element.source?.fullName; |
+ } |
+ |
+ @override |
int get hashCode => element.hashCode; |
@override |
- IndexableObjectKind get kind => IndexableElementKind.forElement(element); |
+ IndexableElementKind get kind => IndexableElementKind.forElement(element); |
@override |
int get offset { |
@@ -45,11 +50,6 @@ class IndexableElement implements IndexableObject { |
} |
@override |
- String get filePath { |
- return element.source?.fullName; |
- } |
- |
- @override |
bool operator ==(Object object) => |
object is IndexableElement && element == object.element; |
@@ -60,7 +60,7 @@ class IndexableElement implements IndexableObject { |
/** |
* The kind associated with an [IndexableElement]. |
*/ |
-class IndexableElementKind implements IndexableObjectKind { |
+class IndexableElementKind implements IndexableObjectKind<IndexableElement> { |
/** |
* A table mapping element kinds to the corresponding indexable element kind. |
*/ |
@@ -104,7 +104,8 @@ class IndexableElementKind implements IndexableObjectKind { |
} |
@override |
- IndexableObject decode(AnalysisContext context, String filePath, int offset) { |
+ IndexableElement decode( |
+ AnalysisContext context, String filePath, int offset) { |
List<Source> unitSources = context.getSourcesWithFullName(filePath); |
for (Source unitSource in unitSources) { |
List<Source> libSources = context.getLibrariesContaining(unitSource); |
@@ -143,17 +144,15 @@ class IndexableElementKind implements IndexableObjectKind { |
} |
@override |
- int encodeHash(StringToInt stringToInt, IndexableObject indexable) { |
- Element element = (indexable as IndexableElement).element; |
+ int encodeHash(StringToInt stringToInt, IndexableElement indexable) { |
+ Element element = indexable.element; |
String elementName = element.displayName; |
int elementNameId = stringToInt(elementName); |
- if (indexable is IndexableElement) { |
- LibraryElement libraryElement = indexable.element.library; |
- if (libraryElement != null) { |
- String libraryPath = libraryElement.source.fullName; |
- int libraryPathId = stringToInt(libraryPath); |
- return JenkinsSmiHash.combine(libraryPathId, elementNameId); |
- } |
+ LibraryElement libraryElement = element.library; |
+ if (libraryElement != null) { |
+ String libraryPath = libraryElement.source.fullName; |
+ int libraryPathId = stringToInt(libraryPath); |
+ return JenkinsSmiHash.combine(libraryPathId, elementNameId); |
} |
return elementNameId; |
} |