[Completion] Fix adding duplicate const keyword suggestions for variables.

Change-Id: I31d354c32720d46f9b6041d04c6f62de26031551
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/434121
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/in_scope_completion_pass.dart b/pkg/analysis_server/lib/src/services/completion/dart/in_scope_completion_pass.dart
index 58b2691..90d1418 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/in_scope_completion_pass.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/in_scope_completion_pass.dart
@@ -2640,7 +2640,7 @@
             suggestRequired: noRequired,
             suggestVariableName: name.coversOffset(offset),
             suggestCovariant: suggestCovariant,
-            suggestThis : suggestThis,
+            suggestThis: suggestThis,
           );
         }
         _forTypeAnnotation(node);
@@ -3065,6 +3065,7 @@
     }
 
     if (offset <= node.name.end) {
+      var constAdded = false;
       var container = grandparent?.parent;
       var keyword = parent.keyword;
       var type = parent.type;
@@ -3074,6 +3075,7 @@
           keywordHelper.addKeyword(Keyword.CONST);
           keywordHelper.addKeyword(Keyword.FINAL);
           keywordHelper.addKeyword(Keyword.VAR);
+          constAdded = true;
         }
         if (keyword == null || keyword.keyword != Keyword.VAR) {
           _forTypeAnnotation(node);
@@ -3110,7 +3112,9 @@
           // The parser often recovers from incomplete code by assuming that
           // the user is typing a field declaration, but it's quite possible
           // that the user is trying to type a different kind of declaration.
-          keywordHelper.addKeyword(Keyword.CONST);
+          if (!constAdded) {
+            keywordHelper.addKeyword(Keyword.CONST);
+          }
           if (container is ClassDeclaration) {
             keywordHelper.addKeyword(Keyword.FACTORY);
           }