diff --git a/internal/ast/ast.go b/internal/ast/ast.go
index 4c15abd4fe..2971ef562d 100644
--- a/internal/ast/ast.go
+++ b/internal/ast/ast.go
@@ -2353,6 +2353,9 @@ func IsArrayLiteralOrObjectLiteralDestructuringPattern(node *Node) bool {
 
 func accessKind(node *Node) AccessKind {
 	parent := node.Parent
+	if parent == nil {
+		return AccessKindRead
+	}
 	switch parent.Kind {
 	case KindParenthesizedExpression:
 		return accessKind(parent)
@@ -2404,8 +2407,9 @@ func accessKind(node *Node) AccessKind {
 			return AccessKindWrite
 		}
 		return AccessKindRead
+	default:
+		return AccessKindRead
 	}
-	return AccessKindRead
 }
 
 func reverseAccessKind(a AccessKind) AccessKind {
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/internal/fourslash/tests/documentHighlightReferenceDirective_test.go b/internal/fourslash/tests/documentHighlightReferenceDirective_test.go
new file mode 100644
index 0000000000..c6ac898aa4
--- /dev/null
+++ b/internal/fourslash/tests/documentHighlightReferenceDirective_test.go
@@ -0,0 +1,24 @@
+package fourslash_test
+
+import (
+	"testing"
+
+	"github.com/microsoft/typescript-go/internal/fourslash"
+	"github.com/microsoft/typescript-go/internal/testutil"
+)
+
+func TestDocumentHighlightReferenceDirective(t *testing.T) {
+	t.Parallel()
+
+	defer testutil.RecoverAndFail(t, "Panic on fourslash test")
+	const content = `// @Filename: /a.ts
+/// 
+
+const x = 1;
+
+// @filename: b.ts
+export type Foo = number;
+`
+	f := fourslash.NewFourslash(t, nil /*capabilities*/, content)
+	f.VerifyBaselineDocumentHighlights(t, nil /*preferences*/, f.Ranges()[0])
+}
diff --git a/internal/ls/documenthighlights.go b/internal/ls/documenthighlights.go
index bab0f63b61..65d7039666 100644
--- a/internal/ls/documenthighlights.go
+++ b/internal/ls/documenthighlights.go
@@ -56,14 +56,13 @@ func (l *LanguageService) getSemanticDocumentHighlights(ctx context.Context, pos
 	if referenceEntries == nil {
 		return nil
 	}
+
 	var highlights []*lsproto.DocumentHighlight
 	for _, entry := range referenceEntries {
 		for _, ref := range entry.references {
-			if ref.node != nil {
-				fileName, highlight := l.toDocumentHighlight(ref)
-				if fileName == sourceFile.FileName() {
-					highlights = append(highlights, highlight)
-				}
+			fileName, highlight := l.toDocumentHighlight(ref)
+			if fileName == sourceFile.FileName() {
+				highlights = append(highlights, highlight)
 			}
 		}
 	}
diff --git a/internal/ls/findallreferences.go b/internal/ls/findallreferences.go
index 4b937d094e..e5df1d9d9d 100644
--- a/internal/ls/findallreferences.go
+++ b/internal/ls/findallreferences.go
@@ -625,7 +625,7 @@ func (l *LanguageService) getReferencedSymbolsForNode(ctx context.Context, posit
 		}
 
 		if moduleSymbol := checker.GetMergedSymbol(resolvedRef.file.Symbol); moduleSymbol != nil {
-			return getReferencedSymbolsForModule(ctx, program, moduleSymbol /*excludeImportTypeOfExportEquals*/, false, sourceFiles, sourceFilesSet)
+			return l.getReferencedSymbolsForModule(ctx, program, moduleSymbol /*excludeImportTypeOfExportEquals*/, false, sourceFiles, sourceFilesSet)
 		}
 
 		// !!! not implemented
@@ -673,7 +673,7 @@ func (l *LanguageService) getReferencedSymbolsForNode(ctx context.Context, posit
 	}
 
 	if symbol.Name == ast.InternalSymbolNameExportEquals {
-		return getReferencedSymbolsForModule(ctx, program, symbol.Parent, false /*excludeImportTypeOfExportEquals*/, sourceFiles, sourceFilesSet)
+		return l.getReferencedSymbolsForModule(ctx, program, symbol.Parent, false /*excludeImportTypeOfExportEquals*/, sourceFiles, sourceFilesSet)
 	}
 
 	moduleReferences := l.getReferencedSymbolsForModuleIfDeclaredBySourceFile(ctx, symbol, program, sourceFiles, checker, options, sourceFilesSet) // !!! cancellationToken
@@ -700,7 +700,7 @@ func (l *LanguageService) getReferencedSymbolsForModuleIfDeclaredBySourceFile(ct
 	}
 	exportEquals := symbol.Exports[ast.InternalSymbolNameExportEquals]
 	// If exportEquals != nil, we're about to add references to `import("mod")` anyway, so don't double-count them.
-	moduleReferences := getReferencedSymbolsForModule(ctx, program, symbol, exportEquals != nil, sourceFiles, sourceFilesSet)
+	moduleReferences := l.getReferencedSymbolsForModule(ctx, program, symbol, exportEquals != nil, sourceFiles, sourceFilesSet)
 	if exportEquals == nil || !sourceFilesSet.Has(moduleSourceFileName) {
 		return moduleReferences
 	}
@@ -1021,7 +1021,7 @@ func getMergedAliasedSymbolOfNamespaceExportDeclaration(node *ast.Node, symbol *
 	return nil
 }
 
-func getReferencedSymbolsForModule(ctx context.Context, program *compiler.Program, symbol *ast.Symbol, excludeImportTypeOfExportEquals bool, sourceFiles []*ast.SourceFile, sourceFilesSet *collections.Set[string]) []*SymbolAndEntries {
+func (l *LanguageService) getReferencedSymbolsForModule(ctx context.Context, program *compiler.Program, symbol *ast.Symbol, excludeImportTypeOfExportEquals bool, sourceFiles []*ast.SourceFile, sourceFilesSet *collections.Set[string]) []*SymbolAndEntries {
 	debug.Assert(symbol.ValueDeclaration != nil)
 
 	checker, done := program.GetTypeChecker(ctx)
@@ -1062,10 +1062,11 @@ func getReferencedSymbolsForModule(ctx context.Context, program *compiler.Progra
 			}
 			return newNodeEntry(rangeNode)
 		case ModuleReferenceKindReference:
-			//  or 
-			// We can't easily create a proper range entry here without access to LanguageService,
-			// but we can create a node-based entry pointing to the source file which will be resolved later
-			return newNodeEntry(reference.referencingFile.AsNode())
+			return &referenceEntry{
+				kind:      entryKindRange,
+				fileName:  reference.referencingFile.FileName(),
+				textRange: l.createLspRangeFromBounds(reference.ref.Pos(), reference.ref.End(), reference.referencingFile),
+			}
 		}
 		return nil
 	})
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/fourslash/documentHighlights/documentHighlightReferenceDirective.baseline.jsonc b/testdata/baselines/reference/fourslash/documentHighlights/documentHighlightReferenceDirective.baseline.jsonc
new file mode 100644
index 0000000000..affad0dae7
--- /dev/null
+++ b/testdata/baselines/reference/fourslash/documentHighlights/documentHighlightReferenceDirective.baseline.jsonc
@@ -0,0 +1,6 @@
+// === documentHighlights ===
+// === /a.ts ===
+// /// 
+// 
+// const x = 1;
+// 
\ No newline at end of file
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/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/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