diff --git a/pkg/analyzer/lib/src/fasta/ast_builder.dart b/pkg/analyzer/lib/src/fasta/ast_builder.dart
index 969e984..2c1877d 100644
--- a/pkg/analyzer/lib/src/fasta/ast_builder.dart
+++ b/pkg/analyzer/lib/src/fasta/ast_builder.dart
@@ -2560,8 +2560,7 @@
   }
 
   @override
-  void handleCommentReferenceText(
-      Token commentToken, String referenceSource, int referenceOffset) {
+  void handleCommentReferenceText(String referenceSource, int referenceOffset) {
     ScannerResult result = scanString(referenceSource);
     if (result.hasErrors) {
       handleNoCommentReference();
@@ -2571,7 +2570,7 @@
         token.offset += referenceOffset;
         token = token.next;
       } while (!token.isEof);
-      parser.parseOneCommentReference(commentToken, result.tokens);
+      parser.parseOneCommentReference(result.tokens);
     }
   }
 
diff --git a/pkg/front_end/lib/src/fasta/parser/forwarding_listener.dart b/pkg/front_end/lib/src/fasta/parser/forwarding_listener.dart
index a471f62..cd5628a 100644
--- a/pkg/front_end/lib/src/fasta/parser/forwarding_listener.dart
+++ b/pkg/front_end/lib/src/fasta/parser/forwarding_listener.dart
@@ -929,10 +929,8 @@
   }
 
   @override
-  void handleCommentReferenceText(
-      Token commentToken, String referenceSource, int referenceOffset) {
-    listener?.handleCommentReferenceText(
-        commentToken, referenceSource, referenceOffset);
+  void handleCommentReferenceText(String referenceSource, int referenceOffset) {
+    listener?.handleCommentReferenceText(referenceSource, referenceOffset);
   }
 
   @override
diff --git a/pkg/front_end/lib/src/fasta/parser/listener.dart b/pkg/front_end/lib/src/fasta/parser/listener.dart
index 8c45723..cdb1e5e 100644
--- a/pkg/front_end/lib/src/fasta/parser/listener.dart
+++ b/pkg/front_end/lib/src/fasta/parser/listener.dart
@@ -1238,7 +1238,7 @@
   /// parsed should be discarded, and a new type should be parsed instead.
   void discardTypeReplacedWithCommentTypeAssign() {}
 
-  /// A single comment reference in [commentToken] has been found where
+  /// A single comment reference has been found
   /// where [referenceSource] is the text between the `[` and `]`
   /// and [referenceOffset] is the character offset in the token stream.
   ///
@@ -1246,8 +1246,7 @@
   /// `parseCommentReferences` method is called. For further processing,
   /// a listener may scan the [referenceSource] and then pass the resulting
   /// token stream to the parser's `parseOneCommentReference` method.
-  void handleCommentReferenceText(
-      Token commentToken, String referenceSource, int referenceOffset) {
+  void handleCommentReferenceText(String referenceSource, int referenceOffset) {
     logEvent("CommentReferenceText");
   }
 
diff --git a/pkg/front_end/lib/src/fasta/parser/parser.dart b/pkg/front_end/lib/src/fasta/parser/parser.dart
index 73a08d7..ab5fdb5 100644
--- a/pkg/front_end/lib/src/fasta/parser/parser.dart
+++ b/pkg/front_end/lib/src/fasta/parser/parser.dart
@@ -15,7 +15,6 @@
         ASSIGNMENT_PRECEDENCE,
         BeginToken,
         CASCADE_PRECEDENCE,
-        DocumentationCommentToken,
         EQUALITY_PRECEDENCE,
         Keyword,
         POSTFIX_PRECEDENCE,
@@ -5954,7 +5953,6 @@
               // URI in the link text.
             } else {
               listener.handleCommentReferenceText(
-                  commentToken,
                   comment.substring(referenceStart, index),
                   commentToken.charOffset + referenceStart);
               ++count;
@@ -6006,8 +6004,7 @@
   ///
   /// This is typically called from the listener's
   /// `handleCommentReferenceText` method.
-  void parseOneCommentReference(
-      DocumentationCommentToken commentToken, Token token) {
+  void parseOneCommentReference(Token token) {
     Token begin = token;
     Token newKeyword = null;
     if (optional('new', token)) {
