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

Unified Diff: pkg/analysis_server/lib/src/edit/edit_domain.dart

Issue 2549883002: Guard against null in EditDomain. (Closed)
Patch Set: Created 4 years 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
« no previous file with comments | « pkg/analysis_server/lib/src/analysis_server.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/lib/src/edit/edit_domain.dart
diff --git a/pkg/analysis_server/lib/src/edit/edit_domain.dart b/pkg/analysis_server/lib/src/edit/edit_domain.dart
index 2e5346bcbae32811f5bd3e4acac67efaae392af1..b2a990f39f735ef799a76df0c82b7b67995f7ad8 100644
--- a/pkg/analysis_server/lib/src/edit/edit_domain.dart
+++ b/pkg/analysis_server/lib/src/edit/edit_domain.dart
@@ -141,17 +141,19 @@ class EditDomainHandler implements RequestHandler {
List<Assist> assists;
if (server.options.enableNewAnalysisDriver) {
AnalysisResult result = await server.getAnalysisResult(params.file);
- CompilationUnit unit = result.unit;
- DartAssistContext dartAssistContext = new _DartAssistContextForValues(
- unit.element.source,
- params.offset,
- params.length,
- unit.element.context,
- unit);
- try {
- AssistProcessor processor = new AssistProcessor(dartAssistContext);
- assists = await processor.compute();
- } catch (_) {}
+ if (result != null) {
+ CompilationUnit unit = result.unit;
+ DartAssistContext dartAssistContext = new _DartAssistContextForValues(
+ unit.element.source,
+ params.offset,
+ params.length,
+ unit.element.context,
+ unit);
+ try {
+ AssistProcessor processor = new AssistProcessor(dartAssistContext);
+ assists = await processor.compute();
+ } catch (_) {}
+ }
} else {
ContextSourcePair pair = server.getContextSourcePair(params.file);
engine.AnalysisContext context = pair.context;
@@ -179,49 +181,50 @@ class EditDomainHandler implements RequestHandler {
List<AnalysisErrorFixes> errorFixesList = <AnalysisErrorFixes>[];
if (server.options.enableNewAnalysisDriver) {
AnalysisResult result = await server.getAnalysisResult(file);
- CompilationUnit unit = result.unit;
- LineInfo lineInfo = result.lineInfo;
- int requestLine = lineInfo.getLocation(offset).lineNumber;
- for (engine.AnalysisError error in result.errors) {
- int errorLine = lineInfo.getLocation(error.offset).lineNumber;
- if (errorLine == requestLine) {
- var context = new _DartFixContextImpl(
- server.resourceProvider, unit.element.context, unit, error);
- List<Fix> fixes =
- await new DefaultFixContributor().internalComputeFixes(context);
- if (fixes.isNotEmpty) {
- AnalysisError serverError =
- newAnalysisError_fromEngine(lineInfo, error);
- AnalysisErrorFixes errorFixes = new AnalysisErrorFixes(serverError);
- errorFixesList.add(errorFixes);
- fixes.forEach((fix) {
- errorFixes.fixes.add(fix.change);
- });
+ if (result != null) {
+ CompilationUnit unit = result.unit;
+ LineInfo lineInfo = result.lineInfo;
+ int requestLine = lineInfo.getLocation(offset).lineNumber;
+ for (engine.AnalysisError error in result.errors) {
+ int errorLine = lineInfo.getLocation(error.offset).lineNumber;
+ if (errorLine == requestLine) {
+ var context = new _DartFixContextImpl(
+ server.resourceProvider, unit.element.context, unit, error);
+ List<Fix> fixes =
+ await new DefaultFixContributor().internalComputeFixes(context);
+ if (fixes.isNotEmpty) {
+ AnalysisError serverError =
+ newAnalysisError_fromEngine(lineInfo, error);
+ AnalysisErrorFixes errorFixes =
+ new AnalysisErrorFixes(serverError);
+ errorFixesList.add(errorFixes);
+ fixes.forEach((fix) {
+ errorFixes.fixes.add(fix.change);
+ });
+ }
}
}
}
} else {
CompilationUnit unit = await server.getResolvedCompilationUnit(file);
engine.AnalysisErrorInfo errorInfo = server.getErrors(file);
- if (errorInfo != null) {
- LineInfo lineInfo = errorInfo.lineInfo;
- if (lineInfo != null) {
- int requestLine = lineInfo.getLocation(offset).lineNumber;
- for (engine.AnalysisError error in errorInfo.errors) {
- int errorLine = lineInfo.getLocation(error.offset).lineNumber;
- if (errorLine == requestLine) {
- List<Fix> fixes = await computeFixes(server.serverPlugin,
- server.resourceProvider, unit.element.context, error);
- if (fixes.isNotEmpty) {
- AnalysisError serverError =
- newAnalysisError_fromEngine(lineInfo, error);
- AnalysisErrorFixes errorFixes =
- new AnalysisErrorFixes(serverError);
- errorFixesList.add(errorFixes);
- fixes.forEach((fix) {
- errorFixes.fixes.add(fix.change);
- });
- }
+ LineInfo lineInfo = errorInfo?.lineInfo;
+ if (unit != null && errorInfo != null && lineInfo != null) {
+ int requestLine = lineInfo.getLocation(offset).lineNumber;
+ for (engine.AnalysisError error in errorInfo.errors) {
+ int errorLine = lineInfo.getLocation(error.offset).lineNumber;
+ if (errorLine == requestLine) {
+ List<Fix> fixes = await computeFixes(server.serverPlugin,
+ server.resourceProvider, unit.element.context, error);
+ if (fixes.isNotEmpty) {
+ AnalysisError serverError =
+ newAnalysisError_fromEngine(lineInfo, error);
+ AnalysisErrorFixes errorFixes =
+ new AnalysisErrorFixes(serverError);
+ errorFixesList.add(errorFixes);
+ fixes.forEach((fix) {
+ errorFixes.fixes.add(fix.change);
+ });
}
}
}
« no previous file with comments | « pkg/analysis_server/lib/src/analysis_server.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698