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

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

Issue 876703003: Issue 22155. Send outline for both parsed and resolved Dart units. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 11 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 f47c1d37036093e6775c57c952ceb3945e43beb6..99dcf23cce46e98c12d5d089232717bfa56cbf61 100644
--- a/pkg/analysis_server/lib/src/operation/operation_analysis.dart
+++ b/pkg/analysis_server/lib/src/operation/operation_analysis.dart
@@ -174,43 +174,51 @@ class PerformAnalysisOperation extends ServerOperation {
Source source = notice.source;
String file = source.fullName;
// Dart
- CompilationUnit dartUnit = notice.compilationUnit;
+ CompilationUnit parsedDartUnit = notice.parsedDartUnit;
+ CompilationUnit resolvedDartUnit = notice.compilationUnit;
+ CompilationUnit dartUnit =
+ resolvedDartUnit != null ? resolvedDartUnit : parsedDartUnit;
+ if (resolvedDartUnit != null) {
+ if (server.hasAnalysisSubscription(
+ protocol.AnalysisService.HIGHLIGHTS,
+ file)) {
+ server.addOperation(
+ new _DartHighlightsOperation(file, resolvedDartUnit));
+ }
+ if (server.hasAnalysisSubscription(
+ protocol.AnalysisService.NAVIGATION,
+ file)) {
+ server.addOperation(
+ new _DartNavigationOperation(file, resolvedDartUnit));
+ }
+ if (server.hasAnalysisSubscription(
+ protocol.AnalysisService.OCCURRENCES,
+ file)) {
+ server.addOperation(
+ new _DartOccurrencesOperation(file, resolvedDartUnit));
+ }
+ if (server.hasAnalysisSubscription(
+ protocol.AnalysisService.OVERRIDES,
+ file)) {
+ server.addOperation(
+ new _DartOverridesOperation(file, resolvedDartUnit));
+ }
+ }
if (dartUnit != null) {
- if (notice.resolved) {
- if (server.hasAnalysisSubscription(
- protocol.AnalysisService.HIGHLIGHTS,
- file)) {
- server.addOperation(new _DartHighlightsOperation(file, dartUnit));
- }
- if (server.hasAnalysisSubscription(
- protocol.AnalysisService.NAVIGATION,
- file)) {
- server.addOperation(new _DartNavigationOperation(file, dartUnit));
- }
- if (server.hasAnalysisSubscription(
- protocol.AnalysisService.OCCURRENCES,
- file)) {
- server.addOperation(new _DartOccurrencesOperation(file, dartUnit));
- }
- if (server.hasAnalysisSubscription(
- protocol.AnalysisService.OVERRIDES,
- file)) {
- server.addOperation(new _DartOverridesOperation(file, dartUnit));
- }
- } else {
- if (server.hasAnalysisSubscription(
- protocol.AnalysisService.OUTLINE,
- file)) {
- LineInfo lineInfo = notice.lineInfo;
- server.addOperation(
- new _DartOutlineOperation(file, lineInfo, dartUnit));
- }
+ if (server.hasAnalysisSubscription(
+ protocol.AnalysisService.OUTLINE,
+ file)) {
+ LineInfo lineInfo = notice.lineInfo;
+ server.addOperation(
+ new _DartOutlineOperation(file, lineInfo, dartUnit));
}
}
+ // errors
if (server.shouldSendErrorsNotificationFor(file)) {
server.addOperation(
new _NotificationErrorsOperation(file, notice.lineInfo, notice.errors));
}
+ // done
server.fileAnalyzed(notice);
}
}
@@ -229,24 +237,22 @@ class PerformAnalysisOperation extends ServerOperation {
}
for (ChangeNotice notice in notices) {
// Dart
- if (notice.resolved) {
- try {
- CompilationUnit dartUnit = notice.compilationUnit;
- if (dartUnit != null) {
- server.addOperation(new _DartIndexOperation(context, dartUnit));
- }
- } catch (exception, stackTrace) {
- server.sendServerErrorNotification(exception, stackTrace);
+ try {
+ CompilationUnit dartUnit = notice.compilationUnit;
+ if (dartUnit != null) {
+ server.addOperation(new _DartIndexOperation(context, dartUnit));
}
- // HTML
- try {
- HtmlUnit htmlUnit = notice.htmlUnit;
- if (htmlUnit != null) {
- server.addOperation(new _HtmlIndexOperation(context, htmlUnit));
- }
- } catch (exception, stackTrace) {
- server.sendServerErrorNotification(exception, stackTrace);
+ } catch (exception, stackTrace) {
+ server.sendServerErrorNotification(exception, stackTrace);
+ }
+ // HTML
+ try {
+ HtmlUnit htmlUnit = notice.htmlUnit;
+ if (htmlUnit != null) {
+ server.addOperation(new _HtmlIndexOperation(context, htmlUnit));
}
+ } catch (exception, stackTrace) {
+ server.sendServerErrorNotification(exception, stackTrace);
}
}
}

Powered by Google App Engine
This is Rietveld 408576698