With summary2 the 'nameOffset' for directives in the offset of their keywords.

R=brianwilkerson@google.com

Change-Id: I2cade95e4fb876096ec299d45665fd51a8193bd4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106300
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
index 83c5128..ba3be49 100644
--- a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
@@ -10,6 +10,7 @@
 import 'package:analyzer/error/error.dart';
 import 'package:analyzer/error/listener.dart';
 import 'package:analyzer/file_system/file_system.dart';
+import 'package:analyzer/src/dart/analysis/driver.dart';
 import 'package:analyzer/src/dart/analysis/file_state.dart';
 import 'package:analyzer/src/dart/ast/ast.dart';
 import 'package:analyzer/src/dart/ast/utilities.dart';
@@ -523,7 +524,11 @@
     definingCompilationUnit.element = _libraryElement.definingCompilationUnit;
 
     bool matchNodeElement(Directive node, Element element) {
-      return node.offset == element.nameOffset;
+      if (AnalysisDriver.useSummary2) {
+        return node.keyword.offset == element.nameOffset;
+      } else {
+        return node.offset == element.nameOffset;
+      }
     }
 
     ErrorReporter libraryErrorReporter = _getErrorReporter(_library);