Fix handling of javadoc method links by unused import pass

Previously references like `{@link Collection#remove(Object)}` were being
missed.

MOE_MIGRATED_REVID=126822360
diff --git a/core/src/main/java/com/google/googlejavaformat/java/RemoveUnusedImports.java b/core/src/main/java/com/google/googlejavaformat/java/RemoveUnusedImports.java
index c60eaba..e7f903e 100644
--- a/core/src/main/java/com/google/googlejavaformat/java/RemoveUnusedImports.java
+++ b/core/src/main/java/com/google/googlejavaformat/java/RemoveUnusedImports.java
@@ -35,7 +35,7 @@
 import org.eclipse.jdt.core.dom.ImportDeclaration;
 import org.eclipse.jdt.core.dom.Javadoc;
 import org.eclipse.jdt.core.dom.MemberRef;
-import org.eclipse.jdt.core.dom.Name;
+import org.eclipse.jdt.core.dom.MethodRef;
 import org.eclipse.jdt.core.dom.QualifiedName;
 import org.eclipse.jdt.core.dom.SimpleName;
 import org.eclipse.jdt.core.dom.TagElement;
@@ -46,9 +46,8 @@
 import java.util.Set;
 
 /**
- * Removes unused imports from a source file. Imports that are only used in
- * javadoc are also removed, and the references in javadoc are replaced with
- * fully qualified names.
+ * Removes unused imports from a source file. Imports that are only used in javadoc are also
+ * removed, and the references in javadoc are replaced with fully qualified names.
  */
 public class RemoveUnusedImports {
 
@@ -111,13 +110,17 @@
 
     private void recordReference(ASTNode reference) {
       if (reference instanceof SimpleName) {
-        usedInJavadoc.put(((SimpleName) reference).getIdentifier(), reference);
+        recordSimpleName(reference);
       } else if (reference instanceof MemberRef) {
-        MemberRef memberRef = (MemberRef) reference;
-        Name qualifier = memberRef.getQualifier();
-        if (qualifier instanceof SimpleName) {
-          usedInJavadoc.put(((SimpleName) qualifier).getIdentifier(), reference);
-        }
+        recordSimpleName(((MemberRef) reference).getQualifier());
+      } else if (reference instanceof MethodRef) {
+        recordSimpleName(((MethodRef) reference).getQualifier());
+      }
+    }
+
+    private void recordSimpleName(ASTNode typeReference) {
+      if (typeReference instanceof SimpleName) {
+        usedInJavadoc.put(((SimpleName) typeReference).getIdentifier(), typeReference);
       }
     }
 
@@ -191,11 +194,6 @@
       if (!importTree.isStatic()) {
         for (ASTNode doc : usedInJavadoc.get(simpleName)) {
           String replaceWith = importTree.getName().toString();
-          String ref = doc.toString();
-          int idx = ref.indexOf('#');
-          if (idx > 0) {
-            replaceWith += ref.substring(idx);
-          }
           Range<Integer> range =
               Range.closedOpen(doc.getStartPosition(), doc.getStartPosition() + doc.getLength());
           replacements.put(range, replaceWith);
diff --git a/core/src/test/java/com/google/googlejavaformat/java/RemoveUnusedImportsTest.java b/core/src/test/java/com/google/googlejavaformat/java/RemoveUnusedImportsTest.java
index 655f79e..6fa5fd6 100644
--- a/core/src/test/java/com/google/googlejavaformat/java/RemoveUnusedImportsTest.java
+++ b/core/src/test/java/com/google/googlejavaformat/java/RemoveUnusedImportsTest.java
@@ -66,16 +66,18 @@
       {
         {
           "import java.util.ArrayList;", //
-          "/** {@link ArrayList#add} */",
+          "import java.util.Collection;",
+          "/** {@link ArrayList#add} {@link Collection#remove(Object)} */",
           "class Test {}",
         },
         {
           "import java.util.ArrayList;", //
-          "/** {@link ArrayList#add} */",
+          "import java.util.Collection;",
+          "/** {@link ArrayList#add} {@link Collection#remove(Object)} */",
           "class Test {}",
         },
         {
-          "/** {@link java.util.ArrayList#add} */", //
+          "/** {@link java.util.ArrayList#add} {@link java.util.Collection#remove(Object)} */",
           "class Test {}",
         }
       },