| Index: pkg/analysis_server/lib/src/services/index/index.dart
|
| diff --git a/pkg/analysis_server/lib/src/services/index/index.dart b/pkg/analysis_server/lib/src/services/index/index.dart
|
| index dcf8ea38a604ea41f47683af670d896085e81616..3467c98a5e9f836976656fd6e2a655176cc5498b 100644
|
| --- a/pkg/analysis_server/lib/src/services/index/index.dart
|
| +++ b/pkg/analysis_server/lib/src/services/index/index.dart
|
| @@ -6,6 +6,7 @@ import 'dart:async';
|
|
|
| import 'package:analysis_server/src/services/index/index_unit.dart';
|
| import 'package:analyzer/dart/ast/ast.dart';
|
| +import 'package:analyzer/dart/ast/resolution_accessors.dart';
|
| import 'package:analyzer/dart/element/element.dart';
|
| import 'package:analyzer/src/generated/engine.dart' show AnalysisContext;
|
| import 'package:analyzer/src/generated/source.dart';
|
| @@ -80,10 +81,15 @@ class Index {
|
| * Index declarations in the given partially resolved [unit].
|
| */
|
| void indexDeclarations(CompilationUnit unit) {
|
| - if (unit?.element?.library == null) {
|
| + if (unit == null) {
|
| return;
|
| }
|
| - AnalysisContext context = unit.element.context;
|
| + CompilationUnitElement compilationUnitElement =
|
| + elementForCompilationUnit(unit);
|
| + if (compilationUnitElement?.library == null) {
|
| + return;
|
| + }
|
| + AnalysisContext context = compilationUnitElement.context;
|
| _getContextIndex(context).indexDeclarations(unit);
|
| }
|
|
|
| @@ -91,10 +97,15 @@ class Index {
|
| * Index the given fully resolved [unit].
|
| */
|
| void indexUnit(CompilationUnit unit) {
|
| - if (unit?.element?.library == null) {
|
| + if (unit == null) {
|
| + return;
|
| + }
|
| + CompilationUnitElement compilationUnitElement =
|
| + elementForCompilationUnit(unit);
|
| + if (compilationUnitElement?.library == null) {
|
| return;
|
| }
|
| - AnalysisContext context = unit.element.context;
|
| + AnalysisContext context = compilationUnitElement.context;
|
| _getContextIndex(context).indexUnit(unit);
|
| }
|
|
|
|
|