diff --git a/src/services/stringCompletions.ts b/src/services/stringCompletions.ts
index 61c23266701fa..e2250bee92f6f 100644
--- a/src/services/stringCompletions.ts
+++ b/src/services/stringCompletions.ts
@@ -387,7 +387,7 @@ function getStringLiteralCompletionEntries(sourceFile: SourceFile, node: StringL
// Get string literal completions from specialized signatures of the target
// i.e. declare function f(a: 'A');
// f("/*completion position*/")
- return argumentInfo && getStringLiteralCompletionsFromSignature(argumentInfo.invocation, node, argumentInfo, typeChecker) || fromContextualType();
+ return argumentInfo && getStringLiteralCompletionsFromSignature(argumentInfo.invocation, node, argumentInfo, typeChecker) || fromContextualType(ContextFlags.None);
}
// falls through (is `require("")` or `require(""` or `import("")`)
diff --git a/tests/cases/fourslash/completionsLiteralDirectlyInRestConstrainedToArrayType.ts b/tests/cases/fourslash/completionsLiteralDirectlyInRestConstrainedToArrayType.ts
new file mode 100644
index 0000000000000..620e4fda5f24d
--- /dev/null
+++ b/tests/cases/fourslash/completionsLiteralDirectlyInRestConstrainedToArrayType.ts
@@ -0,0 +1,9 @@
+///
+// @strict: true
+////
+//// function fn(...values: T): T { return values; }
+////
+//// const value1 = fn('/*1*/');
+//// const value2 = fn('value1', '/*2*/');
+
+verify.completions({ marker: ["1", "2"], includes: [`value1`, `value2`, `value3`] })