diff --git a/internal/ast/utilities.go b/internal/ast/utilities.go
index f491127d22..7c9471b73a 100644
--- a/internal/ast/utilities.go
+++ b/internal/ast/utilities.go
@@ -571,7 +571,7 @@ func IsClassElement(node *Node) bool {
return false
}
-func isMethodOrAccessor(node *Node) bool {
+func IsMethodOrAccessor(node *Node) bool {
switch node.Kind {
case KindMethodDeclaration, KindGetAccessor, KindSetAccessor:
return true
@@ -580,7 +580,7 @@ func isMethodOrAccessor(node *Node) bool {
}
func IsPrivateIdentifierClassElementDeclaration(node *Node) bool {
- return (IsPropertyDeclaration(node) || isMethodOrAccessor(node)) && IsPrivateIdentifier(node.Name())
+ return (IsPropertyDeclaration(node) || IsMethodOrAccessor(node)) && IsPrivateIdentifier(node.Name())
}
func IsObjectLiteralOrClassExpressionMethodOrAccessor(node *Node) bool {
diff --git a/internal/checker/checker.go b/internal/checker/checker.go
index 8c68eafb19..4def9ddbc6 100644
--- a/internal/checker/checker.go
+++ b/internal/checker/checker.go
@@ -19101,11 +19101,9 @@ func (c *Checker) getSignaturesOfSymbol(symbol *ast.Symbol) []*Signature {
}
// If this is a function or method declaration, get the signature from the @type tag for the sake of optional parameters.
// Exclude contextually-typed kinds because we already apply the @type tag to the context, plus applying it here to the initializer would suppress checks that the two are compatible.
- if ast.IsFunctionExpressionOrArrowFunction(decl) || ast.IsObjectLiteralMethod(decl) {
- if sig := c.getSignatureOfFullSignatureType(decl); sig != nil {
- result = append(result, sig)
- continue
- }
+ if sig := c.getSignatureOfFullSignatureType(decl); sig != nil {
+ result = append(result, sig)
+ continue
}
result = append(result, c.getSignatureFromDeclaration(decl))
}
@@ -19123,6 +19121,14 @@ func (c *Checker) getSignatureFromDeclaration(declaration *ast.Node) *Signature
minArgumentCount := 0
hasThisParameter := false
iife := ast.GetImmediatelyInvokedFunctionExpression(declaration)
+ isUntypedSignatureInJSFile := iife == nil &&
+ ast.IsInJSFile(declaration) &&
+ (ast.IsFunctionExpression(declaration) || ast.IsArrowFunction(declaration) || ast.IsMethodOrAccessor(declaration) || ast.IsFunctionDeclaration(declaration) || ast.IsConstructorDeclaration(declaration)) &&
+ core.Every(declaration.Parameters(), func(param *ast.Node) bool { return param.Type() == nil }) &&
+ c.getContextualType(declaration, ContextFlagsSignature) == nil
+ if isUntypedSignatureInJSFile {
+ flags |= SignatureFlagsIsUntypedSignatureInJSFile
+ }
for i, param := range declaration.Parameters() {
paramSymbol := param.Symbol()
typeNode := param.Type()
@@ -19343,7 +19349,7 @@ func (c *Checker) getReturnTypeFromAnnotation(declaration *ast.Node) *Type {
}
func (c *Checker) getSignatureOfFullSignatureType(node *ast.Node) *Signature {
- if ast.IsInJSFile(node) && ast.IsFunctionLike(node) && node.FunctionLikeData().FullSignature != nil {
+ if ast.IsInJSFile(node) && (ast.IsFunctionDeclaration(node) || ast.IsMethodDeclaration(node) || ast.IsFunctionExpressionOrArrowFunction(node)) && node.FunctionLikeData().FullSignature != nil {
return c.getSingleCallSignature(c.getTypeFromTypeNode(node.FunctionLikeData().FullSignature))
}
return nil
diff --git a/internal/checker/emitresolver.go b/internal/checker/emitresolver.go
index 71c1a60955..14d9ecd2bc 100644
--- a/internal/checker/emitresolver.go
+++ b/internal/checker/emitresolver.go
@@ -458,13 +458,20 @@ func (r *emitResolver) IsImplementationOfOverload(node *ast.SignatureDeclaration
// function foo(a: any) { // This is implementation of the overloads
// return a;
// }
- return len(signaturesOfSymbol) > 1 ||
- // If there is single signature for the symbol, it is overload if that signature isn't coming from the node
- // e.g.: function foo(a: string): string;
- // function foo(a: any) { // This is implementation of the overloads
- // return a;
- // }
- (len(signaturesOfSymbol) == 1 && signaturesOfSymbol[0].declaration != node)
+ if len(signaturesOfSymbol) > 1 {
+ return true
+ }
+ // If there is single signature for the symbol, it is overload if that signature isn't coming from the node
+ // e.g.: function foo(a: string): string;
+ // function foo(a: any) { // This is implementation of the overloads
+ // return a;
+ // }
+ if len(signaturesOfSymbol) == 1 {
+ declaration := signaturesOfSymbol[0].declaration
+ if declaration != node && declaration.Flags&ast.NodeFlagsJSDoc == 0 {
+ return true
+ }
+ }
}
return false
}
diff --git a/testdata/baselines/reference/conformance/jsdocTypeParameterTagConflict.types b/testdata/baselines/reference/conformance/jsdocTypeParameterTagConflict.types
index c011a7682c..181028247a 100644
--- a/testdata/baselines/reference/conformance/jsdocTypeParameterTagConflict.types
+++ b/testdata/baselines/reference/conformance/jsdocTypeParameterTagConflict.types
@@ -6,7 +6,7 @@
* @param {2} a
*/
export function conflictingParam(a) { return true }
->conflictingParam : (a: 2) => true
+>conflictingParam : (a: 1) => true
>a : 2
>true : true
@@ -15,7 +15,7 @@ export function conflictingParam(a) { return true }
* @return {false}
*/
export function conflictingReturn(b) { return false }
->conflictingReturn : (b: 3) => false
+>conflictingReturn : (b: 3) => true
>b : 3
>false : false
@@ -26,7 +26,7 @@ export function conflictingReturn(b) { return false }
* @return {false}
*/
export function conflictingBoth(d) { return false }
->conflictingBoth : (d: 5) => false
+>conflictingBoth : (c: 4) => true
>d : 5
>false : false
diff --git a/testdata/baselines/reference/submodule/compiler/argumentsObjectCreatesRestForJs.errors.txt b/testdata/baselines/reference/submodule/compiler/argumentsObjectCreatesRestForJs.errors.txt
index d0da78af1a..9728abd151 100644
--- a/testdata/baselines/reference/submodule/compiler/argumentsObjectCreatesRestForJs.errors.txt
+++ b/testdata/baselines/reference/submodule/compiler/argumentsObjectCreatesRestForJs.errors.txt
@@ -1,9 +1,8 @@
main.js(3,9): error TS2554: Expected 0 arguments, but got 3.
-main.js(5,1): error TS2554: Expected 2 arguments, but got 0.
-main.js(6,16): error TS2554: Expected 2 arguments, but got 3.
+main.js(6,16): error TS2554: Expected 0-2 arguments, but got 3.
-==== main.js (3 errors) ====
+==== main.js (2 errors) ====
function allRest() { arguments; }
allRest();
allRest(1, 2, 3);
@@ -11,12 +10,9 @@ main.js(6,16): error TS2554: Expected 2 arguments, but got 3.
!!! error TS2554: Expected 0 arguments, but got 3.
function someRest(x, y) { arguments; }
someRest(); // x and y are still optional because they are in a JS file
- ~~~~~~~~
-!!! error TS2554: Expected 2 arguments, but got 0.
-!!! related TS6210 main.js:4:19: An argument for 'x' was not provided.
someRest(1, 2, 3);
~
-!!! error TS2554: Expected 2 arguments, but got 3.
+!!! error TS2554: Expected 0-2 arguments, but got 3.
/**
* @param {number} x - a thing
diff --git a/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode1.errors.txt b/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode1.errors.txt
index 9ff220110a..3bca806b62 100644
--- a/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode1.errors.txt
+++ b/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode1.errors.txt
@@ -1,4 +1,4 @@
-a.js(9,7): error TS2554: Expected 1 arguments, but got 3.
+a.js(9,7): error TS2554: Expected 0-1 arguments, but got 3.
==== a.js (1 errors) ====
@@ -12,5 +12,5 @@ a.js(9,7): error TS2554: Expected 1 arguments, but got 3.
f2(1, 2, 3);
~~~~
-!!! error TS2554: Expected 1 arguments, but got 3.
+!!! error TS2554: Expected 0-1 arguments, but got 3.
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode2.errors.txt b/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode2.errors.txt
index c887f9f9bf..6f3d779512 100644
--- a/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode2.errors.txt
+++ b/testdata/baselines/reference/submodule/compiler/argumentsPropertyNameInJsMode2.errors.txt
@@ -1,4 +1,4 @@
-a.js(5,6): error TS2554: Expected 1 arguments, but got 3.
+a.js(5,6): error TS2554: Expected 0-1 arguments, but got 3.
==== a.js (1 errors) ====
@@ -8,5 +8,5 @@ a.js(5,6): error TS2554: Expected 1 arguments, but got 3.
f(1, 2, 3);
~~~~
-!!! error TS2554: Expected 1 arguments, but got 3.
+!!! error TS2554: Expected 0-1 arguments, but got 3.
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInFunction1_Js.errors.txt b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInFunction1_Js.errors.txt
index fecdd50367..21fcf854a8 100644
--- a/testdata/baselines/reference/submodule/compiler/argumentsReferenceInFunction1_Js.errors.txt
+++ b/testdata/baselines/reference/submodule/compiler/argumentsReferenceInFunction1_Js.errors.txt
@@ -1,5 +1,5 @@
index.js(1,25): error TS7006: Parameter 'f' implicitly has an 'any' type.
-index.js(13,29): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[f: any]'.
+index.js(13,29): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[f?: any]'.
==== index.js (2 errors) ====
@@ -19,6 +19,6 @@ index.js(13,29): error TS2345: Argument of type 'IArguments' is not assignable t
const debuglog = function() {
return format.apply(null, arguments);
~~~~~~~~~
-!!! error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[f: any]'.
+!!! error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[f?: any]'.
};
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/jsFileFunctionParametersAsOptional.errors.txt b/testdata/baselines/reference/submodule/compiler/jsFileFunctionParametersAsOptional.errors.txt
deleted file mode 100644
index 8e0c4dc746..0000000000
--- a/testdata/baselines/reference/submodule/compiler/jsFileFunctionParametersAsOptional.errors.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-bar.ts(1,1): error TS2554: Expected 3 arguments, but got 0.
-bar.ts(2,1): error TS2554: Expected 3 arguments, but got 1.
-bar.ts(3,1): error TS2554: Expected 3 arguments, but got 2.
-
-
-==== foo.js (0 errors) ====
- function f(a, b, c) { }
-
-
-==== bar.ts (3 errors) ====
- f();
- ~
-!!! error TS2554: Expected 3 arguments, but got 0.
-!!! related TS6210 foo.js:1:12: An argument for 'a' was not provided.
- f(1);
- ~
-!!! error TS2554: Expected 3 arguments, but got 1.
-!!! related TS6210 foo.js:1:15: An argument for 'b' was not provided.
- f(1, 2);
- ~
-!!! error TS2554: Expected 3 arguments, but got 2.
-!!! related TS6210 foo.js:1:18: An argument for 'c' was not provided.
- f(1, 2, 3);
-
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/jsFileFunctionParametersAsOptional2.errors.txt b/testdata/baselines/reference/submodule/compiler/jsFileFunctionParametersAsOptional2.errors.txt
deleted file mode 100644
index 83cde6079b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/jsFileFunctionParametersAsOptional2.errors.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-bar.ts(1,1): error TS2554: Expected 3 arguments, but got 0.
-bar.ts(2,1): error TS2554: Expected 3 arguments, but got 1.
-bar.ts(3,1): error TS2554: Expected 3 arguments, but got 2.
-
-
-==== foo.js (0 errors) ====
- /**
- * @param a
- * @param b
- * @param c
- */
- function f(a, b, c) { }
-
-
-==== bar.ts (3 errors) ====
- f(); // Error
- ~
-!!! error TS2554: Expected 3 arguments, but got 0.
-!!! related TS6210 foo.js:6:12: An argument for 'a' was not provided.
- f(1); // Error
- ~
-!!! error TS2554: Expected 3 arguments, but got 1.
-!!! related TS6210 foo.js:6:15: An argument for 'b' was not provided.
- f(1, 2); // Error
- ~
-!!! error TS2554: Expected 3 arguments, but got 2.
-!!! related TS6210 foo.js:6:18: An argument for 'c' was not provided.
-
- f(1, 2, 3); // OK
-
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag5.types b/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag5.types
index c71a45abee..d1b3e48372 100644
--- a/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag5.types
+++ b/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag5.types
@@ -46,7 +46,7 @@ var k = function (x) { return x }
/** @typedef {(x: 'hi' | 'bye') => 0 | 1 | 2} Argle */
/** @type {Argle} */
function blargle(s) {
->blargle : (s: "bye" | "hi") => 0 | 1 | 2
+>blargle : (x: "bye" | "hi") => 0 | 1 | 2
>s : "bye" | "hi"
return 0;
@@ -57,7 +57,7 @@ function blargle(s) {
var zeroonetwo = blargle('hi')
>zeroonetwo : 0 | 1 | 2
>blargle('hi') : 0 | 1 | 2
->blargle : (s: "bye" | "hi") => 0 | 1 | 2
+>blargle : (x: "bye" | "hi") => 0 | 1 | 2
>'hi' : "hi"
/** @typedef {{(s: string): 0 | 1; (b: boolean): 2 | 3 }} Gioconda */
diff --git a/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag6.types b/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag6.types
index 0d78ca717a..016eaa98db 100644
--- a/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag6.types
+++ b/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag6.types
@@ -18,7 +18,7 @@ var g = function (prop) {
/** @type {(a: number) => number} */
function add1(a, b) { return a + b; }
->add1 : (a: number, b: any) => number
+>add1 : (a: number) => number
>a : number
>b : any
>a + b : any
@@ -37,7 +37,7 @@ function add2(a, b) { return a + b; }
// TODO: Should be an error since signature doesn't match.
/** @type {(a: number, b: number, c: number) => number} */
function add3(a, b) { return a + b; }
->add3 : (a: number, b: number) => number
+>add3 : (a: number, b: number, c: number) => number
>a : number
>b : number
>a + b : number
@@ -49,7 +49,7 @@ function add3(a, b) { return a + b; }
/** @type {() => void} */
function funcWithMoreParameters(more) {} // error
->funcWithMoreParameters : (more: any) => void
+>funcWithMoreParameters : () => void
>more : any
/** @type {() => void} */
diff --git a/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag7.types b/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag7.types
index 25ffbdd7c0..6899db3795 100644
--- a/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag7.types
+++ b/testdata/baselines/reference/submodule/conformance/checkJsdocTypeTag7.types
@@ -16,6 +16,6 @@ class C {
/** @type {(optional?) => void} */
methodWithOptionalParameters() {}
->methodWithOptionalParameters : () => void
+>methodWithOptionalParameters : (optional?: any) => void
}
diff --git a/testdata/baselines/reference/submodule/conformance/jsdocReadonlyDeclarations.errors.txt b/testdata/baselines/reference/submodule/conformance/jsdocReadonlyDeclarations.errors.txt
index f3b46e0142..92151c27cc 100644
--- a/testdata/baselines/reference/submodule/conformance/jsdocReadonlyDeclarations.errors.txt
+++ b/testdata/baselines/reference/submodule/conformance/jsdocReadonlyDeclarations.errors.txt
@@ -1,13 +1,12 @@
error TS5055: Cannot write file 'jsdocReadonlyDeclarations.js' because it would overwrite input file.
Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.
error TS5102: Option 'outFile' has been removed. Please remove it from your configuration.
-jsdocReadonlyDeclarations.js(14,1): error TS2554: Expected 1 arguments, but got 0.
!!! error TS5055: Cannot write file 'jsdocReadonlyDeclarations.js' because it would overwrite input file.
!!! error TS5055: Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.
!!! error TS5102: Option 'outFile' has been removed. Please remove it from your configuration.
-==== jsdocReadonlyDeclarations.js (1 errors) ====
+==== jsdocReadonlyDeclarations.js (0 errors) ====
class C {
/** @readonly */
x = 6
@@ -22,9 +21,6 @@ jsdocReadonlyDeclarations.js(14,1): error TS2554: Expected 1 arguments, but got
}
}
new C().x
- ~~~~~~~
-!!! error TS2554: Expected 1 arguments, but got 0.
-!!! related TS6210 jsdocReadonlyDeclarations.js:5:17: An argument for 'n' was not provided.
function F() {
/** @readonly */
diff --git a/testdata/baselines/reference/submodule/conformance/jsdocThisType.types b/testdata/baselines/reference/submodule/conformance/jsdocThisType.types
index c1972827c9..ae97d83b72 100644
--- a/testdata/baselines/reference/submodule/conformance/jsdocThisType.types
+++ b/testdata/baselines/reference/submodule/conformance/jsdocThisType.types
@@ -25,7 +25,7 @@ export const f1 = function() {
/** @type {import('./types').M} */
export function f2() {
->f2 : () => void
+>f2 : (this: import("/types").Foo) => void
this.test();
>this.test() : any
@@ -48,7 +48,7 @@ export const f3 = function() {
/** @type {(this: import('./types').Foo) => void} */
export function f4() {
->f4 : () => void
+>f4 : (this: import("/types").Foo) => void
this.test();
>this.test() : any
diff --git a/testdata/baselines/reference/submodule/conformance/jsdocTypeTagRequiredParameters.errors.txt b/testdata/baselines/reference/submodule/conformance/jsdocTypeTagRequiredParameters.errors.txt
index 39e940dd64..22e99daab8 100644
--- a/testdata/baselines/reference/submodule/conformance/jsdocTypeTagRequiredParameters.errors.txt
+++ b/testdata/baselines/reference/submodule/conformance/jsdocTypeTagRequiredParameters.errors.txt
@@ -27,9 +27,9 @@ a.js(13,1): error TS2554: Expected 1 arguments, but got 0.
g() // should error
~
!!! error TS2554: Expected 1 arguments, but got 0.
-!!! related TS6210 a.js:5:12: An argument for 's' was not provided.
+!!! related TS6210 a.js:4:13: An argument for 's' was not provided.
h()
~
!!! error TS2554: Expected 1 arguments, but got 0.
-!!! related TS6210 a.js:8:12: An argument for 's' was not provided.
+!!! related TS6210 a.js:7:14: An argument for 's' was not provided.
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment17.errors.txt b/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment17.errors.txt
deleted file mode 100644
index c367fd4d66..0000000000
--- a/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment17.errors.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-use.js(3,8): error TS2554: Expected 1 arguments, but got 0.
-
-
-==== use.js (1 errors) ====
- ///
- var mini = require('./minimatch')
- mini.M.defaults()
- ~~~~~~~~
-!!! error TS2554: Expected 1 arguments, but got 0.
-!!! related TS6210 minimatch.js:10:24: An argument for 'def' was not provided.
- var m = new mini.M()
- m.m()
- mini.filter()
-
-==== types.d.ts (0 errors) ====
- declare var require: any;
- declare var module: any;
-==== minimatch.js (0 errors) ====
- ///
- module.exports = minimatch
- minimatch.M = M
- minimatch.filter = filter
- function filter() {
- return minimatch()
- }
- function minimatch() {
- }
- M.defaults = function (def) {
- return def
- }
- M.prototype.m = function () {
- }
- function M() {
- }
-
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment7.errors.txt b/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment7.errors.txt
deleted file mode 100644
index f9855e7386..0000000000
--- a/testdata/baselines/reference/submodule/conformance/typeFromPropertyAssignment7.errors.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-a.js(5,13): error TS2554: Expected 1 arguments, but got 0.
-
-
-==== a.js (1 errors) ====
- var obj = {};
- obj.method = function (hunch) {
- return true;
- }
- var b = obj.method();
- ~~~~~~
-!!! error TS2554: Expected 1 arguments, but got 0.
-!!! related TS6210 a.js:2:24: An argument for 'hunch' was not provided.
-
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/typeTagOnFunctionReferencesGeneric.types b/testdata/baselines/reference/submodule/conformance/typeTagOnFunctionReferencesGeneric.types
index 73284b3c14..66450f41d4 100644
--- a/testdata/baselines/reference/submodule/conformance/typeTagOnFunctionReferencesGeneric.types
+++ b/testdata/baselines/reference/submodule/conformance/typeTagOnFunctionReferencesGeneric.types
@@ -7,7 +7,7 @@
/**@type {IFn}*/
export function inJs(l) {
->inJs : (l: T) => T
+>inJs : (m: T) => T
>l : T
return l;
@@ -15,7 +15,7 @@ export function inJs(l) {
}
inJs(1); // lints error. Why?
>inJs(1) : 1
->inJs : (l: T) => T
+>inJs : (m: T) => T
>1 : 1
/**@type {IFn}*/
diff --git a/testdata/baselines/reference/submodule/conformance/typeTagWithGenericSignature.types b/testdata/baselines/reference/submodule/conformance/typeTagWithGenericSignature.types
index f914e5dd2e..9f9358c9b0 100644
--- a/testdata/baselines/reference/submodule/conformance/typeTagWithGenericSignature.types
+++ b/testdata/baselines/reference/submodule/conformance/typeTagWithGenericSignature.types
@@ -3,7 +3,7 @@
=== bug25618.js ===
/** @type {(param?: T) => T | undefined} */
function typed(param) {
->typed : (param: T | undefined) => T | undefined
+>typed : (param?: T | undefined) => T | undefined
>param : T | undefined
return param;
@@ -13,7 +13,7 @@ function typed(param) {
var n = typed(1);
>n : number | undefined
>typed(1) : 1 | undefined
->typed : (param: T | undefined) => T | undefined
+>typed : (param?: T | undefined) => T | undefined
>1 : 1
diff --git a/testdata/baselines/reference/submodule/conformance/unannotatedParametersAreOptional.errors.txt b/testdata/baselines/reference/submodule/conformance/unannotatedParametersAreOptional.errors.txt
deleted file mode 100644
index a9378e3b62..0000000000
--- a/testdata/baselines/reference/submodule/conformance/unannotatedParametersAreOptional.errors.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-test.js(2,1): error TS2554: Expected 1 arguments, but got 0.
-test.js(10,3): error TS2554: Expected 1 arguments, but got 0.
-test.js(11,9): error TS2554: Expected 1 arguments, but got 0.
-test.js(12,9): error TS2554: Expected 1 arguments, but got 0.
-test.js(19,5): error TS2554: Expected 1 arguments, but got 0.
-test.js(20,5): error TS2554: Expected 1 arguments, but got 0.
-
-
-==== test.js (6 errors) ====
- function f(x) {}
- f(); // Always been ok
- ~
-!!! error TS2554: Expected 1 arguments, but got 0.
-!!! related TS6210 test.js:1:12: An argument for 'x' was not provided.
-
- class C {
- static m(x) {}
- p = x => {}
- m(x) {}
- }
-
- C.m(); // Always been ok
- ~
-!!! error TS2554: Expected 1 arguments, but got 0.
-!!! related TS6210 test.js:5:12: An argument for 'x' was not provided.
- new C().m(); // Regression #39261
- ~
-!!! error TS2554: Expected 1 arguments, but got 0.
-!!! related TS6210 test.js:7:5: An argument for 'x' was not provided.
- new C().p(); // Regression #39261
- ~
-!!! error TS2554: Expected 1 arguments, but got 0.
-!!! related TS6210 test.js:6:7: An argument for 'x' was not provided.
-
- const obj = {
- m(x) {},
- p: x => {}
- };
-
- obj.m(); // Always been ok
- ~
-!!! error TS2554: Expected 1 arguments, but got 0.
-!!! related TS6210 test.js:15:5: An argument for 'x' was not provided.
- obj.p(); // Always been ok
- ~
-!!! error TS2554: Expected 1 arguments, but got 0.
-!!! related TS6210 test.js:16:6: An argument for 'x' was not provided.
-
\ No newline at end of file
diff --git a/testdata/baselines/reference/submoduleAccepted/compiler/argumentsObjectCreatesRestForJs.errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/compiler/argumentsObjectCreatesRestForJs.errors.txt.diff
index a310bbe6cb..13e92bf5ea 100644
--- a/testdata/baselines/reference/submoduleAccepted/compiler/argumentsObjectCreatesRestForJs.errors.txt.diff
+++ b/testdata/baselines/reference/submoduleAccepted/compiler/argumentsObjectCreatesRestForJs.errors.txt.diff
@@ -3,11 +3,10 @@
@@= skipped -0, +0 lines =@@
-
+main.js(3,9): error TS2554: Expected 0 arguments, but got 3.
-+main.js(5,1): error TS2554: Expected 2 arguments, but got 0.
-+main.js(6,16): error TS2554: Expected 2 arguments, but got 3.
++main.js(6,16): error TS2554: Expected 0-2 arguments, but got 3.
+
+
-+==== main.js (3 errors) ====
++==== main.js (2 errors) ====
+ function allRest() { arguments; }
+ allRest();
+ allRest(1, 2, 3);
@@ -15,12 +14,9 @@
+!!! error TS2554: Expected 0 arguments, but got 3.
+ function someRest(x, y) { arguments; }
+ someRest(); // x and y are still optional because they are in a JS file
-+ ~~~~~~~~
-+!!! error TS2554: Expected 2 arguments, but got 0.
-+!!! related TS6210 main.js:4:19: An argument for 'x' was not provided.
+ someRest(1, 2, 3);
+ ~
-+!!! error TS2554: Expected 2 arguments, but got 3.
++!!! error TS2554: Expected 0-2 arguments, but got 3.
+
+ /**
+ * @param {number} x - a thing
diff --git a/testdata/baselines/reference/submoduleAccepted/compiler/argumentsPropertyNameInJsMode1.errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/compiler/argumentsPropertyNameInJsMode1.errors.txt.diff
deleted file mode 100644
index 74f3c2eccd..0000000000
--- a/testdata/baselines/reference/submoduleAccepted/compiler/argumentsPropertyNameInJsMode1.errors.txt.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- old.argumentsPropertyNameInJsMode1.errors.txt
-+++ new.argumentsPropertyNameInJsMode1.errors.txt
-@@= skipped -0, +0 lines =@@
--a.js(9,7): error TS2554: Expected 0-1 arguments, but got 3.
-+a.js(9,7): error TS2554: Expected 1 arguments, but got 3.
-
-
- ==== a.js (1 errors) ====
-@@= skipped -11, +11 lines =@@
-
- f2(1, 2, 3);
- ~~~~
--!!! error TS2554: Expected 0-1 arguments, but got 3.
-+!!! error TS2554: Expected 1 arguments, but got 3.
-
\ No newline at end of file
diff --git a/testdata/baselines/reference/submoduleAccepted/compiler/argumentsPropertyNameInJsMode2.errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/compiler/argumentsPropertyNameInJsMode2.errors.txt.diff
index 4b482bf1ad..3a8c657d10 100644
--- a/testdata/baselines/reference/submoduleAccepted/compiler/argumentsPropertyNameInJsMode2.errors.txt.diff
+++ b/testdata/baselines/reference/submoduleAccepted/compiler/argumentsPropertyNameInJsMode2.errors.txt.diff
@@ -2,7 +2,7 @@
+++ new.argumentsPropertyNameInJsMode2.errors.txt
@@= skipped -0, +0 lines =@@
-
-+a.js(5,6): error TS2554: Expected 1 arguments, but got 3.
++a.js(5,6): error TS2554: Expected 0-1 arguments, but got 3.
+
+
+==== a.js (1 errors) ====
@@ -12,5 +12,5 @@
+
+ f(1, 2, 3);
+ ~~~~
-+!!! error TS2554: Expected 1 arguments, but got 3.
++!!! error TS2554: Expected 0-1 arguments, but got 3.
+
\ No newline at end of file
diff --git a/testdata/baselines/reference/submoduleAccepted/compiler/argumentsReferenceInFunction1_Js.errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/compiler/argumentsReferenceInFunction1_Js.errors.txt.diff
index fd91514e04..2d9239a61e 100644
--- a/testdata/baselines/reference/submoduleAccepted/compiler/argumentsReferenceInFunction1_Js.errors.txt.diff
+++ b/testdata/baselines/reference/submoduleAccepted/compiler/argumentsReferenceInFunction1_Js.errors.txt.diff
@@ -3,7 +3,7 @@
@@= skipped -0, +0 lines =@@
index.js(1,25): error TS7006: Parameter 'f' implicitly has an 'any' type.
-index.js(13,29): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[f?: any, ...any[]]'.
-+index.js(13,29): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[f: any]'.
++index.js(13,29): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[f?: any]'.
==== index.js (2 errors) ====
@@ -12,6 +12,6 @@
return format.apply(null, arguments);
~~~~~~~~~
-!!! error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[f?: any, ...any[]]'.
-+!!! error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[f: any]'.
++!!! error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[f?: any]'.
};
\ No newline at end of file
diff --git a/testdata/baselines/reference/submoduleAccepted/compiler/jsFileFunctionParametersAsOptional.errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/compiler/jsFileFunctionParametersAsOptional.errors.txt.diff
deleted file mode 100644
index a47690fc80..0000000000
--- a/testdata/baselines/reference/submoduleAccepted/compiler/jsFileFunctionParametersAsOptional.errors.txt.diff
+++ /dev/null
@@ -1,28 +0,0 @@
---- old.jsFileFunctionParametersAsOptional.errors.txt
-+++ new.jsFileFunctionParametersAsOptional.errors.txt
-@@= skipped -0, +0 lines =@@
--
-+bar.ts(1,1): error TS2554: Expected 3 arguments, but got 0.
-+bar.ts(2,1): error TS2554: Expected 3 arguments, but got 1.
-+bar.ts(3,1): error TS2554: Expected 3 arguments, but got 2.
-+
-+
-+==== foo.js (0 errors) ====
-+ function f(a, b, c) { }
-+
-+
-+==== bar.ts (3 errors) ====
-+ f();
-+ ~
-+!!! error TS2554: Expected 3 arguments, but got 0.
-+!!! related TS6210 foo.js:1:12: An argument for 'a' was not provided.
-+ f(1);
-+ ~
-+!!! error TS2554: Expected 3 arguments, but got 1.
-+!!! related TS6210 foo.js:1:15: An argument for 'b' was not provided.
-+ f(1, 2);
-+ ~
-+!!! error TS2554: Expected 3 arguments, but got 2.
-+!!! related TS6210 foo.js:1:18: An argument for 'c' was not provided.
-+ f(1, 2, 3);
-+
\ No newline at end of file
diff --git a/testdata/baselines/reference/submoduleAccepted/compiler/jsFileFunctionParametersAsOptional2.errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/compiler/jsFileFunctionParametersAsOptional2.errors.txt.diff
new file mode 100644
index 0000000000..7502dd5e15
--- /dev/null
+++ b/testdata/baselines/reference/submoduleAccepted/compiler/jsFileFunctionParametersAsOptional2.errors.txt.diff
@@ -0,0 +1,34 @@
+--- old.jsFileFunctionParametersAsOptional2.errors.txt
++++ new.jsFileFunctionParametersAsOptional2.errors.txt
+@@= skipped -0, +0 lines =@@
+-bar.ts(1,1): error TS2554: Expected 3 arguments, but got 0.
+-bar.ts(2,1): error TS2554: Expected 3 arguments, but got 1.
+-bar.ts(3,1): error TS2554: Expected 3 arguments, but got 2.
+-
+-
+-==== foo.js (0 errors) ====
+- /**
+- * @param a
+- * @param b
+- * @param c
+- */
+- function f(a, b, c) { }
+-
+-
+-==== bar.ts (3 errors) ====
+- f(); // Error
+- ~
+-!!! error TS2554: Expected 3 arguments, but got 0.
+-!!! related TS6210 foo.js:6:12: An argument for 'a' was not provided.
+- f(1); // Error
+- ~
+-!!! error TS2554: Expected 3 arguments, but got 1.
+-!!! related TS6210 foo.js:6:15: An argument for 'b' was not provided.
+- f(1, 2); // Error
+- ~
+-!!! error TS2554: Expected 3 arguments, but got 2.
+-!!! related TS6210 foo.js:6:18: An argument for 'c' was not provided.
+-
+- f(1, 2, 3); // OK
+-
++
\ No newline at end of file
diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/checkJsdocTypeTag5.types.diff b/testdata/baselines/reference/submoduleAccepted/conformance/checkJsdocTypeTag5.types.diff
index cb18606f8c..5657510b06 100644
--- a/testdata/baselines/reference/submoduleAccepted/conformance/checkJsdocTypeTag5.types.diff
+++ b/testdata/baselines/reference/submoduleAccepted/conformance/checkJsdocTypeTag5.types.diff
@@ -39,7 +39,7 @@
/** @type {Argle} */
function blargle(s) {
->blargle : (x: "hi" | "bye") => 0 | 1 | 2
-+>blargle : (s: "bye" | "hi") => 0 | 1 | 2
++>blargle : (x: "bye" | "hi") => 0 | 1 | 2
>s : "bye" | "hi"
return 0;
@@ -48,7 +48,7 @@
>zeroonetwo : 0 | 1 | 2
>blargle('hi') : 0 | 1 | 2
->blargle : (x: "hi" | "bye") => 0 | 1 | 2
-+>blargle : (s: "bye" | "hi") => 0 | 1 | 2
++>blargle : (x: "bye" | "hi") => 0 | 1 | 2
>'hi' : "hi"
/** @typedef {{(s: string): 0 | 1; (b: boolean): 2 | 3 }} Gioconda */
\ No newline at end of file
diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/checkJsdocTypeTag6.types.diff b/testdata/baselines/reference/submoduleAccepted/conformance/checkJsdocTypeTag6.types.diff
index 18a4844033..3ae6aeb4b8 100644
--- a/testdata/baselines/reference/submoduleAccepted/conformance/checkJsdocTypeTag6.types.diff
+++ b/testdata/baselines/reference/submoduleAccepted/conformance/checkJsdocTypeTag6.types.diff
@@ -1,33 +1,6 @@
--- old.checkJsdocTypeTag6.types
+++ new.checkJsdocTypeTag6.types
-@@= skipped -17, +17 lines =@@
-
- /** @type {(a: number) => number} */
- function add1(a, b) { return a + b; }
-->add1 : (a: number) => number
-+>add1 : (a: number, b: any) => number
- >a : number
- >b : any
- >a + b : any
-@@= skipped -19, +19 lines =@@
- // TODO: Should be an error since signature doesn't match.
- /** @type {(a: number, b: number, c: number) => number} */
- function add3(a, b) { return a + b; }
-->add3 : (a: number, b: number, c: number) => number
-+>add3 : (a: number, b: number) => number
- >a : number
- >b : number
- >a + b : number
-@@= skipped -12, +12 lines =@@
-
- /** @type {() => void} */
- function funcWithMoreParameters(more) {} // error
-->funcWithMoreParameters : () => void
-+>funcWithMoreParameters : (more: any) => void
- >more : any
-
- /** @type {() => void} */
-@@= skipped -21, +21 lines =@@
+@@= skipped -69, +69 lines =@@
/** @type {() => void} */
methodWithMoreParameters(more) {}, // error
diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/checkJsdocTypeTag7.types.diff b/testdata/baselines/reference/submoduleAccepted/conformance/checkJsdocTypeTag7.types.diff
deleted file mode 100644
index bb0fb6f28f..0000000000
--- a/testdata/baselines/reference/submoduleAccepted/conformance/checkJsdocTypeTag7.types.diff
+++ /dev/null
@@ -1,9 +0,0 @@
---- old.checkJsdocTypeTag7.types
-+++ new.checkJsdocTypeTag7.types
-@@= skipped -15, +15 lines =@@
-
- /** @type {(optional?) => void} */
- methodWithOptionalParameters() {}
-->methodWithOptionalParameters : (optional?: any) => void
-+>methodWithOptionalParameters : () => void
- }
diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/jsdocReadonlyDeclarations.errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/conformance/jsdocReadonlyDeclarations.errors.txt.diff
index 97cdecef25..c6b91f0be7 100644
--- a/testdata/baselines/reference/submoduleAccepted/conformance/jsdocReadonlyDeclarations.errors.txt.diff
+++ b/testdata/baselines/reference/submoduleAccepted/conformance/jsdocReadonlyDeclarations.errors.txt.diff
@@ -5,13 +5,12 @@
+error TS5055: Cannot write file 'jsdocReadonlyDeclarations.js' because it would overwrite input file.
+ Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.
+error TS5102: Option 'outFile' has been removed. Please remove it from your configuration.
-+jsdocReadonlyDeclarations.js(14,1): error TS2554: Expected 1 arguments, but got 0.
+
+
+!!! error TS5055: Cannot write file 'jsdocReadonlyDeclarations.js' because it would overwrite input file.
+!!! error TS5055: Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.
+!!! error TS5102: Option 'outFile' has been removed. Please remove it from your configuration.
-+==== jsdocReadonlyDeclarations.js (1 errors) ====
++==== jsdocReadonlyDeclarations.js (0 errors) ====
+ class C {
+ /** @readonly */
+ x = 6
@@ -26,9 +25,6 @@
+ }
+ }
+ new C().x
-+ ~~~~~~~
-+!!! error TS2554: Expected 1 arguments, but got 0.
-+!!! related TS6210 jsdocReadonlyDeclarations.js:5:17: An argument for 'n' was not provided.
+
+ function F() {
+ /** @readonly */
diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/jsdocThisType.types.diff b/testdata/baselines/reference/submoduleAccepted/conformance/jsdocThisType.types.diff
index 1a8ac7b8a7..d4cb3a18d4 100644
--- a/testdata/baselines/reference/submoduleAccepted/conformance/jsdocThisType.types.diff
+++ b/testdata/baselines/reference/submoduleAccepted/conformance/jsdocThisType.types.diff
@@ -1,15 +1,6 @@
--- old.jsdocThisType.types
+++ new.jsdocThisType.types
-@@= skipped -24, +24 lines =@@
-
- /** @type {import('./types').M} */
- export function f2() {
-->f2 : (this: import("/types").Foo) => void
-+>f2 : () => void
-
- this.test();
- >this.test() : any
-@@= skipped -11, +11 lines =@@
+@@= skipped -35, +35 lines =@@
/** @type {(this: import('./types').Foo) => void} */
export const f3 = function() {
@@ -25,7 +16,7 @@
/** @type {(this: import('./types').Foo) => void} */
export function f4() {
->f4 : (this: import("./types").Foo) => void
-+>f4 : () => void
++>f4 : (this: import("/types").Foo) => void
this.test();
>this.test() : any
diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/jsdocTypeTagRequiredParameters.errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/conformance/jsdocTypeTagRequiredParameters.errors.txt.diff
index efc34c532f..0e12a93ad7 100644
--- a/testdata/baselines/reference/submoduleAccepted/conformance/jsdocTypeTagRequiredParameters.errors.txt.diff
+++ b/testdata/baselines/reference/submoduleAccepted/conformance/jsdocTypeTagRequiredParameters.errors.txt.diff
@@ -32,12 +32,4 @@
-!!! related TS6210 a.js:1:21: An argument for '0' was not provided.
g() // should error
~
- !!! error TS2554: Expected 1 arguments, but got 0.
--!!! related TS6210 a.js:4:13: An argument for 's' was not provided.
-+!!! related TS6210 a.js:5:12: An argument for 's' was not provided.
- h()
- ~
- !!! error TS2554: Expected 1 arguments, but got 0.
--!!! related TS6210 a.js:7:14: An argument for 's' was not provided.
-+!!! related TS6210 a.js:8:12: An argument for 's' was not provided.
-
\ No newline at end of file
+ !!! error TS2554: Expected 1 arguments, but got 0.
\ No newline at end of file
diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/typeFromPropertyAssignment17.errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/conformance/typeFromPropertyAssignment17.errors.txt.diff
deleted file mode 100644
index 5f966384cc..0000000000
--- a/testdata/baselines/reference/submoduleAccepted/conformance/typeFromPropertyAssignment17.errors.txt.diff
+++ /dev/null
@@ -1,39 +0,0 @@
---- old.typeFromPropertyAssignment17.errors.txt
-+++ new.typeFromPropertyAssignment17.errors.txt
-@@= skipped -0, +0 lines =@@
--
-+use.js(3,8): error TS2554: Expected 1 arguments, but got 0.
-+
-+
-+==== use.js (1 errors) ====
-+ ///
-+ var mini = require('./minimatch')
-+ mini.M.defaults()
-+ ~~~~~~~~
-+!!! error TS2554: Expected 1 arguments, but got 0.
-+!!! related TS6210 minimatch.js:10:24: An argument for 'def' was not provided.
-+ var m = new mini.M()
-+ m.m()
-+ mini.filter()
-+
-+==== types.d.ts (0 errors) ====
-+ declare var require: any;
-+ declare var module: any;
-+==== minimatch.js (0 errors) ====
-+ ///
-+ module.exports = minimatch
-+ minimatch.M = M
-+ minimatch.filter = filter
-+ function filter() {
-+ return minimatch()
-+ }
-+ function minimatch() {
-+ }
-+ M.defaults = function (def) {
-+ return def
-+ }
-+ M.prototype.m = function () {
-+ }
-+ function M() {
-+ }
-+
\ No newline at end of file
diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/typeFromPropertyAssignment7.errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/conformance/typeFromPropertyAssignment7.errors.txt.diff
deleted file mode 100644
index 3ee1f1f7e3..0000000000
--- a/testdata/baselines/reference/submoduleAccepted/conformance/typeFromPropertyAssignment7.errors.txt.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.typeFromPropertyAssignment7.errors.txt
-+++ new.typeFromPropertyAssignment7.errors.txt
-@@= skipped -0, +0 lines =@@
--
-+a.js(5,13): error TS2554: Expected 1 arguments, but got 0.
-+
-+
-+==== a.js (1 errors) ====
-+ var obj = {};
-+ obj.method = function (hunch) {
-+ return true;
-+ }
-+ var b = obj.method();
-+ ~~~~~~
-+!!! error TS2554: Expected 1 arguments, but got 0.
-+!!! related TS6210 a.js:2:24: An argument for 'hunch' was not provided.
-+
\ No newline at end of file
diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/typeTagOnFunctionReferencesGeneric.types.diff b/testdata/baselines/reference/submoduleAccepted/conformance/typeTagOnFunctionReferencesGeneric.types.diff
deleted file mode 100644
index 80d3d366a0..0000000000
--- a/testdata/baselines/reference/submoduleAccepted/conformance/typeTagOnFunctionReferencesGeneric.types.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.typeTagOnFunctionReferencesGeneric.types
-+++ new.typeTagOnFunctionReferencesGeneric.types
-@@= skipped -6, +6 lines =@@
-
- /**@type {IFn}*/
- export function inJs(l) {
-->inJs : (m: T) => T
-+>inJs : (l: T) => T
- >l : T
-
- return l;
-@@= skipped -8, +8 lines =@@
- }
- inJs(1); // lints error. Why?
- >inJs(1) : 1
-->inJs : (m: T) => T
-+>inJs : (l: T) => T
- >1 : 1
-
- /**@type {IFn}*/
\ No newline at end of file
diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/typeTagWithGenericSignature.types.diff b/testdata/baselines/reference/submoduleAccepted/conformance/typeTagWithGenericSignature.types.diff
index d5a2254495..02313972c3 100644
--- a/testdata/baselines/reference/submoduleAccepted/conformance/typeTagWithGenericSignature.types.diff
+++ b/testdata/baselines/reference/submoduleAccepted/conformance/typeTagWithGenericSignature.types.diff
@@ -5,7 +5,7 @@
/** @type {(param?: T) => T | undefined} */
function typed(param) {
->typed : (param?: T) => T | undefined
-+>typed : (param: T | undefined) => T | undefined
++>typed : (param?: T | undefined) => T | undefined
>param : T | undefined
return param;
@@ -14,6 +14,6 @@
>n : number | undefined
>typed(1) : 1 | undefined
->typed : (param?: T) => T | undefined
-+>typed : (param: T | undefined) => T | undefined
++>typed : (param?: T | undefined) => T | undefined
>1 : 1
diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/unannotatedParametersAreOptional.errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/conformance/unannotatedParametersAreOptional.errors.txt.diff
deleted file mode 100644
index ff90a5833b..0000000000
--- a/testdata/baselines/reference/submoduleAccepted/conformance/unannotatedParametersAreOptional.errors.txt.diff
+++ /dev/null
@@ -1,52 +0,0 @@
---- old.unannotatedParametersAreOptional.errors.txt
-+++ new.unannotatedParametersAreOptional.errors.txt
-@@= skipped -0, +0 lines =@@
--
-+test.js(2,1): error TS2554: Expected 1 arguments, but got 0.
-+test.js(10,3): error TS2554: Expected 1 arguments, but got 0.
-+test.js(11,9): error TS2554: Expected 1 arguments, but got 0.
-+test.js(12,9): error TS2554: Expected 1 arguments, but got 0.
-+test.js(19,5): error TS2554: Expected 1 arguments, but got 0.
-+test.js(20,5): error TS2554: Expected 1 arguments, but got 0.
-+
-+
-+==== test.js (6 errors) ====
-+ function f(x) {}
-+ f(); // Always been ok
-+ ~
-+!!! error TS2554: Expected 1 arguments, but got 0.
-+!!! related TS6210 test.js:1:12: An argument for 'x' was not provided.
-+
-+ class C {
-+ static m(x) {}
-+ p = x => {}
-+ m(x) {}
-+ }
-+
-+ C.m(); // Always been ok
-+ ~
-+!!! error TS2554: Expected 1 arguments, but got 0.
-+!!! related TS6210 test.js:5:12: An argument for 'x' was not provided.
-+ new C().m(); // Regression #39261
-+ ~
-+!!! error TS2554: Expected 1 arguments, but got 0.
-+!!! related TS6210 test.js:7:5: An argument for 'x' was not provided.
-+ new C().p(); // Regression #39261
-+ ~
-+!!! error TS2554: Expected 1 arguments, but got 0.
-+!!! related TS6210 test.js:6:7: An argument for 'x' was not provided.
-+
-+ const obj = {
-+ m(x) {},
-+ p: x => {}
-+ };
-+
-+ obj.m(); // Always been ok
-+ ~
-+!!! error TS2554: Expected 1 arguments, but got 0.
-+!!! related TS6210 test.js:15:5: An argument for 'x' was not provided.
-+ obj.p(); // Always been ok
-+ ~
-+!!! error TS2554: Expected 1 arguments, but got 0.
-+!!! related TS6210 test.js:16:6: An argument for 'x' was not provided.
-+
\ No newline at end of file