Elements. Migrate lib/src/utilities/navigation/navigation_dart.dart

Change-Id: Ia3a98eaa939c5efcf62d8f2c3490e92ee731ab6d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403905
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analyzer_plugin/analyzer_use_new_elements.txt b/pkg/analyzer_plugin/analyzer_use_new_elements.txt
index 3aa29d7..abd36cf 100644
--- a/pkg/analyzer_plugin/analyzer_use_new_elements.txt
+++ b/pkg/analyzer_plugin/analyzer_use_new_elements.txt
@@ -1,2 +1 @@
 lib/src/utilities/completion/optype.dart
-lib/src/utilities/navigation/navigation_dart.dart
diff --git a/pkg/analyzer_plugin/lib/src/utilities/navigation/navigation_dart.dart b/pkg/analyzer_plugin/lib/src/utilities/navigation/navigation_dart.dart
index e7a9fa3..f484da6 100644
--- a/pkg/analyzer_plugin/lib/src/utilities/navigation/navigation_dart.dart
+++ b/pkg/analyzer_plugin/lib/src/utilities/navigation/navigation_dart.dart
@@ -485,11 +485,13 @@
 
   @override
   void visitPartOfDirective(PartOfDirective node) {
-    // TODO(dantup): How to migrate this to new element model? How do we get
-    //  the target element/fragment for a 'part of'?
-    if (node.element case ElementImpl element) {
-      computer._addRegionForElement(node.libraryName ?? node.uri, element);
-    }
+    var parentUnit = node.parent as CompilationUnit;
+    var parentFragment = parentUnit.declaredFragment;
+    computer._addRegionForFragment(
+      node.libraryName ?? node.uri,
+      parentFragment?.enclosingFragment,
+    );
+
     super.visitPartOfDirective(node);
   }