Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(710)

Unified Diff: pkg/analysis_server/lib/src/services/index/indexable_element.dart

Issue 1413563004: Make IndexableObjectKind parameterized. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Clean up IndexableElementKind. Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
}
« no previous file with comments | « pkg/analysis_server/lib/src/services/index/index.dart ('k') | pkg/analysis_server/lib/src/services/index/indexable_file.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698