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

Unified Diff: pkg/analysis_server/lib/src/operation/operation_analysis.dart

Issue 2957643002: Remove the unused operations queue (Closed)
Patch Set: Created 3 years, 6 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/operation/operation_analysis.dart
diff --git a/pkg/analysis_server/lib/src/operation/operation_analysis.dart b/pkg/analysis_server/lib/src/operation/operation_analysis.dart
index a6d2045f46cdead0dee6d23cf2521488f064ffca..658273cb404164155bfe570afe2e69e2fab5c6db 100644
--- a/pkg/analysis_server/lib/src/operation/operation_analysis.dart
+++ b/pkg/analysis_server/lib/src/operation/operation_analysis.dart
@@ -10,15 +10,10 @@ import 'package:analysis_server/src/computer/computer_highlights2.dart';
import 'package:analysis_server/src/computer/computer_outline.dart';
import 'package:analysis_server/src/computer/computer_overrides.dart';
import 'package:analysis_server/src/domains/analysis/implemented_dart.dart';
-import 'package:analysis_server/src/domains/analysis/navigation.dart';
-import 'package:analysis_server/src/domains/analysis/occurrences.dart';
-import 'package:analysis_server/src/operation/operation.dart';
import 'package:analysis_server/src/protocol_server.dart' as protocol;
import 'package:analysis_server/src/services/search/search_engine.dart';
import 'package:analyzer/dart/ast/ast.dart';
-import 'package:analyzer/dart/ast/standard_resolution_map.dart';
import 'package:analyzer/dart/element/element.dart';
-import 'package:analyzer/error/error.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/source.dart';
@@ -66,76 +61,6 @@ Future<Null> scheduleImplementedNotification(
}
}
-/**
- * Schedules indexing of the given [file] using the resolved [dartUnit].
- */
-void scheduleIndexOperation(
- AnalysisServer server, String file, CompilationUnit dartUnit) {
- if (server.index != null) {
- AnalysisContext context =
- resolutionMap.elementDeclaredByCompilationUnit(dartUnit).context;
- server.addOperation(new _DartIndexOperation(context, file, dartUnit));
- }
-}
-
-/**
- * Schedules sending notifications for the given [file] using the resolved
- * [resolvedDartUnit].
- */
-void scheduleNotificationOperations(
- AnalysisServer server,
- Source source,
- String file,
- LineInfo lineInfo,
- AnalysisContext context,
- CompilationUnit parsedDartUnit,
- CompilationUnit resolvedDartUnit,
- List<AnalysisError> errors) {
- // TODO(brianwilkerson) The `containingContext` will always be `null`. If this
- // check is still useful, we should re-write it to use drivers.
- //
- // If the file belongs to any analysis root, check whether we're in it now.
-// AnalysisContext containingContext = server.getContainingContext(file);
-// if (containingContext != null && context != containingContext) {
-// return;
-// }
- // Dart
- CompilationUnit dartUnit = resolvedDartUnit ?? parsedDartUnit;
- if (resolvedDartUnit != null) {
- if (server.hasAnalysisSubscription(
- protocol.AnalysisService.HIGHLIGHTS, file)) {
- server.scheduleOperation(
- new _DartHighlightsOperation(context, file, resolvedDartUnit));
- }
- if (server.hasAnalysisSubscription(
- protocol.AnalysisService.NAVIGATION, file)) {
- server.scheduleOperation(new NavigationOperation(context, source));
- }
- if (server.hasAnalysisSubscription(
- protocol.AnalysisService.OCCURRENCES, file)) {
- server.scheduleOperation(new OccurrencesOperation(context, source));
- }
- if (server.hasAnalysisSubscription(
- protocol.AnalysisService.OVERRIDES, file)) {
- server.scheduleOperation(
- new _DartOverridesOperation(context, file, resolvedDartUnit));
- }
- }
- if (dartUnit != null) {
- if (server.hasAnalysisSubscription(
- protocol.AnalysisService.OUTLINE, file)) {
- SourceKind sourceKind = context.getKindOf(source);
- server.scheduleOperation(new _DartOutlineOperation(
- context, file, lineInfo, sourceKind, dartUnit));
- }
- }
- // errors
- if (server.shouldSendErrorsNotificationFor(file)) {
- server.scheduleOperation(
- new _NotificationErrorsOperation(context, file, lineInfo, errors));
- }
-}
-
void sendAnalysisNotificationAnalyzedFiles(AnalysisServer server) {
_sendNotification(server, () {
Set<String> analyzedFiles = server.driverMap.values
@@ -157,24 +82,6 @@ void sendAnalysisNotificationAnalyzedFiles(AnalysisServer server) {
});
}
-void sendAnalysisNotificationErrors(
- AnalysisServer server,
- AnalysisContext context,
- String file,
- LineInfo lineInfo,
- List<AnalysisError> errors) {
- _sendNotification(server, () {
- if (errors == null) {
- errors = <AnalysisError>[];
- }
- AnalysisOptions analysisOptions = context.analysisOptions;
- var serverErrors = protocol.doAnalysisError_listFromEngine(
- analysisOptions, lineInfo, errors);
- var params = new protocol.AnalysisErrorsParams(file, serverErrors);
- server.sendNotification(params.toNotification());
- });
-}
-
void sendAnalysisNotificationFlushResults(
AnalysisServer server, List<String> files) {
_sendNotification(server, () {
@@ -199,30 +106,6 @@ void sendAnalysisNotificationHighlights(
});
}
-void sendAnalysisNotificationNavigation(
- AnalysisServer server, AnalysisContext context, Source source) {
- _sendNotification(server, () {
- NavigationCollectorImpl collector =
- computeNavigation(server, context, source, null, null);
- String file = source.fullName;
- var params = new protocol.AnalysisNavigationParams(
- file, collector.regions, collector.targets, collector.files);
- server.sendNotification(params.toNotification());
- });
-}
-
-void sendAnalysisNotificationOccurrences(
- AnalysisServer server, AnalysisContext context, Source source) {
- _sendNotification(server, () {
- OccurrencesCollectorImpl collector =
- computeOccurrences(server, context, source);
- String file = source.fullName;
- var params =
- new protocol.AnalysisOccurrencesParams(file, collector.allOccurrences);
- server.sendNotification(params.toNotification());
- });
-}
-
void sendAnalysisNotificationOutline(AnalysisServer server, String file,
LineInfo lineInfo, SourceKind sourceKind, CompilationUnit dartUnit) {
_sendNotification(server, () {
@@ -281,268 +164,3 @@ void _sendNotification(AnalysisServer server, f()) {
}
});
}
-
-class NavigationOperation extends _NotificationOperation
- implements MergeableOperation {
- NavigationOperation(AnalysisContext context, Source source)
- : super(context, source);
-
- @override
- bool merge(ServerOperation other) {
- return other is NavigationOperation &&
- other.context == context &&
- other.source == source;
- }
-
- @override
- void perform(AnalysisServer server) {
- sendAnalysisNotificationNavigation(server, context, source);
- }
-}
-
-class OccurrencesOperation extends _NotificationOperation
- implements MergeableOperation {
- OccurrencesOperation(AnalysisContext context, Source source)
- : super(context, source);
-
- @override
- bool merge(ServerOperation other) {
- return other is OccurrencesOperation &&
- other.context == context &&
- other.source == source;
- }
-
- @override
- void perform(AnalysisServer server) {
- sendAnalysisNotificationOccurrences(server, context, source);
- }
-}
-
-/**
- * Instances of [PerformAnalysisOperation] perform a single analysis task.
- */
-class PerformAnalysisOperation extends ServerOperation {
- final bool isContinue;
-
- PerformAnalysisOperation(AnalysisContext context, this.isContinue)
- : super(context);
-
- @override
- ServerOperationPriority get priority {
- if (_isPriorityContext) {
- if (isContinue) {
- return ServerOperationPriority.PRIORITY_ANALYSIS_CONTINUE;
- } else {
- return ServerOperationPriority.PRIORITY_ANALYSIS;
- }
- } else {
- if (isContinue) {
- return ServerOperationPriority.ANALYSIS_CONTINUE;
- } else {
- return ServerOperationPriority.ANALYSIS;
- }
- }
- }
-
- bool get _isPriorityContext =>
- context is InternalAnalysisContext &&
- (context as InternalAnalysisContext).prioritySources.isNotEmpty;
-
- @override
- void perform(AnalysisServer server) {
- //
- // TODO(brianwilkerson) Add an optional function-valued parameter to
- // performAnalysisTask that will be called when the task has been computed
- // but before it is performed and send notification in the function:
- //
- // AnalysisResult result = context.performAnalysisTask((taskDescription) {
- // sendStatusNotification(context.toString(), taskDescription);
- // });
- if (!isContinue) {
- _setContextActive(true);
- }
- // prepare results
- AnalysisResult result = context.performAnalysisTask();
- List<ChangeNotice> notices = result.changeNotices;
- // nothing to analyze
- if (notices == null) {
- server.scheduleCacheConsistencyValidation(context);
- _setContextActive(false);
- server.sendContextAnalysisDoneNotifications(
- context, AnalysisDoneReason.COMPLETE);
- return;
- }
- // process results
- ServerPerformanceStatistics.notices.makeCurrentWhile(() {
- _sendNotices(server, notices);
- _updateIndex(server, notices);
- });
- // continue analysis
- server.addOperation(new PerformAnalysisOperation(context, true));
- }
-
- /**
- * Send the information in the given list of notices back to the client.
- */
- void _sendNotices(AnalysisServer server, List<ChangeNotice> notices) {
- for (int i = 0; i < notices.length; i++) {
- ChangeNotice notice = notices[i];
- Source source = notice.source;
- String file = source.fullName;
- // Dart
- CompilationUnit parsedDartUnit = notice.parsedDartUnit;
- CompilationUnit resolvedDartUnit = notice.resolvedDartUnit;
- scheduleNotificationOperations(server, source, file, notice.lineInfo,
- context, parsedDartUnit, resolvedDartUnit, notice.errors);
- // done
- server.fileAnalyzed(notice);
- }
- }
-
- /**
- * Make the [context] active or idle.
- */
- void _setContextActive(bool active) {
- AnalysisContext context = this.context;
- if (context is InternalAnalysisContext) {
- context.isActive = active;
- }
- }
-
- void _updateIndex(AnalysisServer server, List<ChangeNotice> notices) {
- if (server.index == null) {
- return;
- }
- for (ChangeNotice notice in notices) {
- String file = notice.source.fullName;
- // Dart
- try {
- CompilationUnit dartUnit = notice.resolvedDartUnit;
- if (dartUnit != null) {
- scheduleIndexOperation(server, file, dartUnit);
- }
- } catch (exception, stackTrace) {
- server.sendServerErrorNotification(
- 'Failed to index Dart file: $file', exception, stackTrace);
- }
- }
- }
-}
-
-class _DartHighlightsOperation extends _DartNotificationOperation {
- _DartHighlightsOperation(
- AnalysisContext context, String file, CompilationUnit unit)
- : super(context, file, unit);
-
- @override
- void perform(AnalysisServer server) {
- sendAnalysisNotificationHighlights(server, file, unit);
- }
-}
-
-class _DartIndexOperation extends _SingleFileOperation {
- final CompilationUnit unit;
-
- _DartIndexOperation(AnalysisContext context, String file, this.unit)
- : super(context, file);
-
- @override
- ServerOperationPriority get priority {
- return ServerOperationPriority.ANALYSIS_INDEX;
- }
-
- @override
- void perform(AnalysisServer server) {
- ServerPerformanceStatistics.indexOperation.makeCurrentWhile(() {
- try {
- server.index?.indexUnit(unit);
- } catch (exception, stackTrace) {
- server.sendServerErrorNotification(
- 'Failed to index: $file', exception, stackTrace);
- }
- });
- }
-}
-
-abstract class _DartNotificationOperation extends _SingleFileOperation {
- final CompilationUnit unit;
-
- _DartNotificationOperation(AnalysisContext context, String file, this.unit)
- : super(context, file);
-
- @override
- ServerOperationPriority get priority {
- return ServerOperationPriority.ANALYSIS_NOTIFICATION;
- }
-}
-
-class _DartOutlineOperation extends _DartNotificationOperation {
- final LineInfo lineInfo;
- final SourceKind sourceKind;
-
- _DartOutlineOperation(AnalysisContext context, String file, this.lineInfo,
- this.sourceKind, CompilationUnit unit)
- : super(context, file, unit);
-
- @override
- void perform(AnalysisServer server) {
- sendAnalysisNotificationOutline(server, file, lineInfo, sourceKind, unit);
- }
-}
-
-class _DartOverridesOperation extends _DartNotificationOperation {
- _DartOverridesOperation(
- AnalysisContext context, String file, CompilationUnit unit)
- : super(context, file, unit);
-
- @override
- void perform(AnalysisServer server) {
- sendAnalysisNotificationOverrides(server, file, unit);
- }
-}
-
-class _NotificationErrorsOperation extends _SingleFileOperation {
- final LineInfo lineInfo;
- final List<AnalysisError> errors;
-
- _NotificationErrorsOperation(
- AnalysisContext context, String file, this.lineInfo, this.errors)
- : super(context, file);
-
- @override
- ServerOperationPriority get priority {
- return ServerOperationPriority.ANALYSIS_NOTIFICATION;
- }
-
- @override
- void perform(AnalysisServer server) {
- sendAnalysisNotificationErrors(server, context, file, lineInfo, errors);
- }
-}
-
-abstract class _NotificationOperation extends SourceSensitiveOperation {
- final Source source;
-
- _NotificationOperation(AnalysisContext context, this.source) : super(context);
-
- @override
- ServerOperationPriority get priority {
- return ServerOperationPriority.ANALYSIS_NOTIFICATION;
- }
-
- @override
- bool shouldBeDiscardedOnSourceChange(Source source) {
- return source == this.source;
- }
-}
-
-abstract class _SingleFileOperation extends SourceSensitiveOperation {
- final String file;
-
- _SingleFileOperation(AnalysisContext context, this.file) : super(context);
-
- @override
- bool shouldBeDiscardedOnSourceChange(Source source) {
- return source.fullName == file;
- }
-}
« no previous file with comments | « pkg/analysis_server/lib/src/operation/operation.dart ('k') | pkg/analysis_server/lib/src/operation/operation_queue.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698