diff --git a/internal/checker/checker.go b/internal/checker/checker.go index 31d4728a6b..a20cd5ddd8 100644 --- a/internal/checker/checker.go +++ b/internal/checker/checker.go @@ -14482,14 +14482,24 @@ func (c *Checker) resolveExternalModule(location *ast.Node, moduleReference stri mode = c.program.GetDefaultResolutionModeForFile(importingSourceFile) } - var sourceFile *ast.SourceFile resolvedModule := c.program.GetResolvedModule(importingSourceFile, moduleReference, mode) - if resolvedModule.IsResolved() { + + var resolutionDiagnostic *diagnostics.Message + if errorNode != nil && resolvedModule.IsResolved() { + resolutionDiagnostic = module.GetResolutionDiagnostic(c.compilerOptions, resolvedModule, importingSourceFile) + } + + var sourceFile *ast.SourceFile + if resolvedModule.IsResolved() && (resolutionDiagnostic == nil || resolutionDiagnostic == diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set) { sourceFile = c.program.GetSourceFileForResolvedModule(resolvedModule.ResolvedFileName) } if sourceFile != nil { - // !!! + // If there's a resolutionDiagnostic we need to report it even if a sourceFile is found. + if resolutionDiagnostic != nil { + c.error(errorNode, resolutionDiagnostic, moduleReference, resolvedModule.ResolvedFileName) + } + if errorNode != nil { if resolvedModule.ResolvedUsingTsExtension && tspath.IsDeclarationFileName(moduleReference) { if ast.FindAncestor(location, ast.IsEmittableImport) != nil { @@ -14577,7 +14587,7 @@ func (c *Checker) resolveExternalModule(location *ast.Node, moduleReference stri if sourceFile.Symbol != nil { if errorNode != nil { - if resolvedModule.IsExternalLibraryImport && !(tspath.ExtensionIsTs(resolvedModule.Extension) || resolvedModule.Extension == tspath.ExtensionJson) { + if resolvedModule.IsExternalLibraryImport && !resolutionExtensionIsTSOrJson(resolvedModule.Extension) { c.errorOnImplicitAnyModule(false /*isError*/, errorNode, mode, resolvedModule, moduleReference) } if c.moduleKind == core.ModuleKindNode16 || c.moduleKind == core.ModuleKindNode18 { @@ -14633,7 +14643,7 @@ func (c *Checker) resolveExternalModule(location *ast.Node, moduleReference stri return nil } - if resolvedModule.IsResolved() && !(tspath.ExtensionIsTs(resolvedModule.Extension) || resolvedModule.Extension == tspath.ExtensionJson) { + if resolvedModule.IsResolved() && !resolutionExtensionIsTSOrJson(resolvedModule.Extension) && resolutionDiagnostic == nil || resolutionDiagnostic == diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type { if isForAugmentation { c.error( errorNode, @@ -14648,7 +14658,6 @@ func (c *Checker) resolveExternalModule(location *ast.Node, moduleReference stri } if moduleNotFoundError != nil { - // See if this was possibly a projectReference redirect if resolvedModule.IsResolved() { redirect := c.program.GetOutputAndProjectReference(tspath.ToPath(resolvedModule.ResolvedFileName, c.program.GetCurrentDirectory(), c.program.UseCaseSensitiveFileNames())) @@ -14663,29 +14672,36 @@ func (c *Checker) resolveExternalModule(location *ast.Node, moduleReference stri } } - // !!! - isExtensionlessRelativePathImport := tspath.PathIsRelative(moduleReference) && !tspath.HasExtension(moduleReference) - resolutionIsNode16OrNext := c.moduleResolutionKind == core.ModuleResolutionKindNode16 || c.moduleResolutionKind == core.ModuleResolutionKindNodeNext - if !c.compilerOptions.GetResolveJsonModule() && tspath.FileExtensionIs(moduleReference, tspath.ExtensionJson) { - c.error(errorNode, diagnostics.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension, moduleReference) - } else if mode == core.ResolutionModeESM && resolutionIsNode16OrNext && isExtensionlessRelativePathImport { - absoluteRef := tspath.GetNormalizedAbsolutePath(moduleReference, tspath.GetDirectoryPath(importingSourceFile.FileName())) - if suggestedExt := c.getSuggestedImportExtension(absoluteRef); suggestedExt != "" { - c.error(errorNode, diagnostics.Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0, moduleReference+suggestedExt) + if resolutionDiagnostic != nil { + c.error(errorNode, resolutionDiagnostic, moduleReference, resolvedModule.ResolvedFileName) + } else { + isExtensionlessRelativePathImport := tspath.PathIsRelative(moduleReference) && !tspath.HasExtension(moduleReference) + resolutionIsNode16OrNext := c.moduleResolutionKind == core.ModuleResolutionKindNode16 || c.moduleResolutionKind == core.ModuleResolutionKindNodeNext + if !c.compilerOptions.GetResolveJsonModule() && tspath.FileExtensionIs(moduleReference, tspath.ExtensionJson) { + c.error(errorNode, diagnostics.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension, moduleReference) + } else if mode == core.ResolutionModeESM && resolutionIsNode16OrNext && isExtensionlessRelativePathImport { + absoluteRef := tspath.GetNormalizedAbsolutePath(moduleReference, tspath.GetDirectoryPath(importingSourceFile.FileName())) + if suggestedExt := c.getSuggestedImportExtension(absoluteRef); suggestedExt != "" { + c.error(errorNode, diagnostics.Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0, moduleReference+suggestedExt) + } else { + c.error(errorNode, diagnostics.Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path) + } + } else if resolvedModule != nil && resolvedModule.AlternateResult != "" { + errorInfo := c.createModuleNotFoundChain(resolvedModule, errorNode, moduleReference, mode, moduleReference) + c.diagnostics.Add(NewDiagnosticChainForNode(errorInfo, errorNode, moduleNotFoundError, moduleReference)) } else { - c.error(errorNode, diagnostics.Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path) + c.error(errorNode, moduleNotFoundError, moduleReference) } - } else if resolvedModule != nil && resolvedModule.AlternateResult != "" { - errorInfo := c.createModuleNotFoundChain(resolvedModule, errorNode, moduleReference, mode, moduleReference) - c.diagnostics.Add(NewDiagnosticChainForNode(errorInfo, errorNode, moduleNotFoundError, moduleReference)) - } else { - c.error(errorNode, moduleNotFoundError, moduleReference) } } return nil } +func resolutionExtensionIsTSOrJson(ext string) bool { + return tspath.ExtensionIsTs(ext) || ext == tspath.ExtensionJson +} + func (c *Checker) getSuggestedImportSource(moduleReference string, tsExtension string, mode core.ResolutionMode) string { importSourceWithoutExtension := tspath.RemoveExtension(moduleReference, tsExtension) diff --git a/internal/compiler/fileloader.go b/internal/compiler/fileloader.go index 40f45b408d..9396bc89d5 100644 --- a/internal/compiler/fileloader.go +++ b/internal/compiler/fileloader.go @@ -10,7 +10,6 @@ import ( "github.com/microsoft/typescript-go/internal/ast" "github.com/microsoft/typescript-go/internal/collections" "github.com/microsoft/typescript-go/internal/core" - "github.com/microsoft/typescript-go/internal/diagnostics" "github.com/microsoft/typescript-go/internal/module" "github.com/microsoft/typescript-go/internal/tsoptions" "github.com/microsoft/typescript-go/internal/tspath" @@ -432,7 +431,7 @@ func (p *fileLoader) resolveImportsAndModuleAugmentations(t *parseTask) { importIndex := index - importsStart shouldAddFile := moduleName != "" && - getResolutionDiagnostic(optionsForFile, resolvedModule, file) == nil && + module.GetResolutionDiagnostic(optionsForFile, resolvedModule, file) == nil && !optionsForFile.NoResolve.IsTrue() && !(isJsFile && !optionsForFile.GetAllowJS()) && (importIndex < 0 || (importIndex < len(file.Imports()) && (ast.IsInJSFile(file.Imports()[importIndex]) || file.Imports()[importIndex].Flags&ast.NodeFlagsJSDoc == 0))) @@ -451,57 +450,6 @@ func (p *fileLoader) resolveImportsAndModuleAugmentations(t *parseTask) { } } -// Returns a DiagnosticMessage if we won't include a resolved module due to its extension. -// The DiagnosticMessage's parameters are the imported module name, and the filename it resolved to. -// This returns a diagnostic even if the module will be an untyped module. -func getResolutionDiagnostic(options *core.CompilerOptions, resolvedModule *module.ResolvedModule, file *ast.SourceFile) *diagnostics.Message { - needJsx := func() *diagnostics.Message { - if options.Jsx != core.JsxEmitNone { - return nil - } - return diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set - } - - needAllowJs := func() *diagnostics.Message { - if options.GetAllowJS() || !options.NoImplicitAny.DefaultIfUnknown(options.Strict).IsTrue() { - return nil - } - return diagnostics.Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used - } - - needResolveJsonModule := func() *diagnostics.Message { - if options.GetResolveJsonModule() { - return nil - } - return diagnostics.Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used - } - - needAllowArbitraryExtensions := func() *diagnostics.Message { - if file.IsDeclarationFile || options.AllowArbitraryExtensions.IsTrue() { - return nil - } - return diagnostics.Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set - } - - switch resolvedModule.Extension { - case tspath.ExtensionTs, tspath.ExtensionDts, - tspath.ExtensionMts, tspath.ExtensionDmts, - tspath.ExtensionCts, tspath.ExtensionDcts: - // These are always allowed. - return nil - case tspath.ExtensionTsx: - return needJsx() - case tspath.ExtensionJsx: - return core.Coalesce(needJsx(), needAllowJs()) - case tspath.ExtensionJs, tspath.ExtensionMjs, tspath.ExtensionCjs: - return needAllowJs() - case tspath.ExtensionJson: - return needResolveJsonModule() - default: - return needAllowArbitraryExtensions() - } -} - func (p *fileLoader) createSyntheticImport(text string, file *ast.SourceFile) *ast.Node { p.factoryMu.Lock() defer p.factoryMu.Unlock() diff --git a/internal/module/util.go b/internal/module/util.go index 179042a5d6..7f6d093d05 100644 --- a/internal/module/util.go +++ b/internal/module/util.go @@ -3,7 +3,9 @@ package module import ( "strings" + "github.com/microsoft/typescript-go/internal/ast" "github.com/microsoft/typescript-go/internal/core" + "github.com/microsoft/typescript-go/internal/diagnostics" "github.com/microsoft/typescript-go/internal/semver" "github.com/microsoft/typescript-go/internal/tspath" ) @@ -97,3 +99,57 @@ func ComparePatternKeys(a, b string) int { } return 0 } + +// Returns a DiagnosticMessage if we won't include a resolved module due to its extension. +// The DiagnosticMessage's parameters are the imported module name, and the filename it resolved to. +// This returns a diagnostic even if the module will be an untyped module. +func GetResolutionDiagnostic(options *core.CompilerOptions, resolvedModule *ResolvedModule, file *ast.SourceFile) *diagnostics.Message { + needJsx := func() *diagnostics.Message { + if options.Jsx != core.JsxEmitNone { + return nil + } + return diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set + } + + needAllowJs := func() *diagnostics.Message { + if options.GetAllowJS() || !options.NoImplicitAny.DefaultIfUnknown(options.Strict).IsTrue() { + return nil + } + return diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type + } + + needResolveJsonModule := func() *diagnostics.Message { + if options.GetResolveJsonModule() { + return nil + } + return diagnostics.Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used + } + + needAllowArbitraryExtensions := func() *diagnostics.Message { + if file.IsDeclarationFile || options.AllowArbitraryExtensions.IsTrue() { + return nil + } + return diagnostics.Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set + } + + switch resolvedModule.Extension { + case tspath.ExtensionTs, tspath.ExtensionDts, + tspath.ExtensionMts, tspath.ExtensionDmts, + tspath.ExtensionCts, tspath.ExtensionDcts: + // These are always allowed. + return nil + case tspath.ExtensionTsx: + return needJsx() + case tspath.ExtensionJsx: + if message := needJsx(); message != nil { + return message + } + return needAllowJs() + case tspath.ExtensionJs, tspath.ExtensionMjs, tspath.ExtensionCjs: + return needAllowJs() + case tspath.ExtensionJson: + return needResolveJsonModule() + default: + return needAllowArbitraryExtensions() + } +} diff --git a/testdata/baselines/reference/submodule/compiler/checkJsxNotSetError.errors.txt b/testdata/baselines/reference/submodule/compiler/checkJsxNotSetError.errors.txt index 2d04383c93..55dbe1b239 100644 --- a/testdata/baselines/reference/submodule/compiler/checkJsxNotSetError.errors.txt +++ b/testdata/baselines/reference/submodule/compiler/checkJsxNotSetError.errors.txt @@ -1,3 +1,4 @@ +/bar.jsx(1,17): error TS6142: Module '/foo' was resolved to '/foo.jsx', but '--jsx' is not set. /bar.jsx(2,11): error TS17004: Cannot use JSX unless the '--jsx' flag is provided. /foo.jsx(2,5): error TS17004: Cannot use JSX unless the '--jsx' flag is provided. @@ -10,8 +11,10 @@ ); export default Foo; -==== /bar.jsx (1 errors) ==== +==== /bar.jsx (2 errors) ==== import Foo from '/foo'; + ~~~~~~ +!!! error TS6142: Module '/foo' was resolved to '/foo.jsx', but '--jsx' is not set. const a = ~~~~~~~ !!! error TS17004: Cannot use JSX unless the '--jsx' flag is provided. \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported.errors.txt b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported.errors.txt index b756d61a76..991b83bc30 100644 --- a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported.errors.txt +++ b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported.errors.txt @@ -1,11 +1,14 @@ -/a.ts(1,17): error TS2307: Cannot find module './tsx' or its corresponding type declarations. +/a.ts(1,17): error TS6142: Module './tsx' was resolved to '/tsx.tsx', but '--jsx' is not set. +/a.ts(2,17): error TS6142: Module './jsx' was resolved to '/jsx.jsx', but '--jsx' is not set. -==== /a.ts (1 errors) ==== +==== /a.ts (2 errors) ==== import tsx from "./tsx"; // Not allowed. ~~~~~~~ -!!! error TS2307: Cannot find module './tsx' or its corresponding type declarations. +!!! error TS6142: Module './tsx' was resolved to '/tsx.tsx', but '--jsx' is not set. import jsx from "./jsx"; // Not allowed. + ~~~~~~~ +!!! error TS6142: Module './jsx' was resolved to '/jsx.jsx', but '--jsx' is not set. import js from "./js"; // OK because it's an untyped module. ==== /tsx.tsx (0 errors) ==== diff --git a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported.errors.txt.diff deleted file mode 100644 index ac4179cf7c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported.errors.txt.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- old.moduleResolutionWithExtensions_notSupported.errors.txt -+++ new.moduleResolutionWithExtensions_notSupported.errors.txt -@@= skipped -0, +0 lines =@@ --/a.ts(1,17): error TS6142: Module './tsx' was resolved to '/tsx.tsx', but '--jsx' is not set. --/a.ts(2,17): error TS6142: Module './jsx' was resolved to '/jsx.jsx', but '--jsx' is not set. -- -- --==== /a.ts (2 errors) ==== -+/a.ts(1,17): error TS2307: Cannot find module './tsx' or its corresponding type declarations. -+ -+ -+==== /a.ts (1 errors) ==== - import tsx from "./tsx"; // Not allowed. - ~~~~~~~ --!!! error TS6142: Module './tsx' was resolved to '/tsx.tsx', but '--jsx' is not set. -+!!! error TS2307: Cannot find module './tsx' or its corresponding type declarations. - import jsx from "./jsx"; // Not allowed. -- ~~~~~~~ --!!! error TS6142: Module './jsx' was resolved to '/jsx.jsx', but '--jsx' is not set. - import js from "./js"; // OK because it's an untyped module. - - ==== /tsx.tsx (0 errors) ==== \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported2.errors.txt b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported2.errors.txt new file mode 100644 index 0000000000..d37beb38a1 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported2.errors.txt @@ -0,0 +1,10 @@ +/a.ts(1,17): error TS6142: Module './jsx' was resolved to '/jsx.jsx', but '--jsx' is not set. + + +==== /a.ts (1 errors) ==== + import jsx from "./jsx"; + ~~~~~~~ +!!! error TS6142: Module './jsx' was resolved to '/jsx.jsx', but '--jsx' is not set. + +==== /jsx.jsx (0 errors) ==== + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported2.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported2.errors.txt.diff deleted file mode 100644 index a933fc4fb2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/moduleResolutionWithExtensions_notSupported2.errors.txt.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.moduleResolutionWithExtensions_notSupported2.errors.txt -+++ new.moduleResolutionWithExtensions_notSupported2.errors.txt -@@= skipped -0, +0 lines =@@ --/a.ts(1,17): error TS6142: Module './jsx' was resolved to '/jsx.jsx', but '--jsx' is not set. -- -- --==== /a.ts (1 errors) ==== -- import jsx from "./jsx"; -- ~~~~~~~ --!!! error TS6142: Module './jsx' was resolved to '/jsx.jsx', but '--jsx' is not set. -- --==== /jsx.jsx (0 errors) ==== -- -+ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).errors.txt b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).errors.txt index 0641005dbf..ddd2bdfc26 100644 --- a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).errors.txt @@ -3,6 +3,7 @@ /project/main.ts(8,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './b.js' instead? /project/main.ts(11,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. /project/main.ts(12,16): error TS5097: An import path can only end with a '.tsx' extension when 'allowImportingTsExtensions' is enabled. +/project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. /project/main.ts(16,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. /project/types.d.ts(2,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './a.js' instead? @@ -43,7 +44,7 @@ ==== /project/e.txt.ts (0 errors) ==== export {}; -==== /project/main.ts (6 errors) ==== +==== /project/main.ts (7 errors) ==== import {} from "./a"; import {} from "./a.js"; import {} from "./a.ts"; @@ -66,6 +67,8 @@ import {} from "./c.tsx"; ~~~~~~~~~ !!! error TS5097: An import path can only end with a '.tsx' extension when 'allowImportingTsExtensions' is enabled. + ~~~~~~~~~ +!!! error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. import {} from "./d"; import {} from "./d/index"; diff --git a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=true).errors.txt b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=true).errors.txt index 0641005dbf..ddd2bdfc26 100644 --- a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=true).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=true).errors.txt @@ -3,6 +3,7 @@ /project/main.ts(8,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './b.js' instead? /project/main.ts(11,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. /project/main.ts(12,16): error TS5097: An import path can only end with a '.tsx' extension when 'allowImportingTsExtensions' is enabled. +/project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. /project/main.ts(16,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. /project/types.d.ts(2,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './a.js' instead? @@ -43,7 +44,7 @@ ==== /project/e.txt.ts (0 errors) ==== export {}; -==== /project/main.ts (6 errors) ==== +==== /project/main.ts (7 errors) ==== import {} from "./a"; import {} from "./a.js"; import {} from "./a.ts"; @@ -66,6 +67,8 @@ import {} from "./c.tsx"; ~~~~~~~~~ !!! error TS5097: An import path can only end with a '.tsx' extension when 'allowImportingTsExtensions' is enabled. + ~~~~~~~~~ +!!! error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. import {} from "./d"; import {} from "./d/index"; diff --git a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).errors.txt b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).errors.txt index 18463589db..ce138220b1 100644 --- a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).errors.txt @@ -1,4 +1,5 @@ /project/main.ts(8,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './b.ts' instead? +/project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. /project/types.d.ts(2,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './a.ts' instead? @@ -38,7 +39,7 @@ ==== /project/e.txt.ts (0 errors) ==== export {}; -==== /project/main.ts (1 errors) ==== +==== /project/main.ts (2 errors) ==== import {} from "./a"; import {} from "./a.js"; import {} from "./a.ts"; @@ -53,6 +54,8 @@ import {} from "./c.ts"; import {} from "./c.tsx"; + ~~~~~~~~~ +!!! error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. import {} from "./d"; import {} from "./d/index"; diff --git a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=true).errors.txt b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=true).errors.txt index 18463589db..ce138220b1 100644 --- a/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=true).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=true).errors.txt @@ -1,4 +1,5 @@ /project/main.ts(8,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './b.ts' instead? +/project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. /project/types.d.ts(2,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './a.ts' instead? @@ -38,7 +39,7 @@ ==== /project/e.txt.ts (0 errors) ==== export {}; -==== /project/main.ts (1 errors) ==== +==== /project/main.ts (2 errors) ==== import {} from "./a"; import {} from "./a.js"; import {} from "./a.ts"; @@ -53,6 +54,8 @@ import {} from "./c.ts"; import {} from "./c.tsx"; + ~~~~~~~~~ +!!! error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. import {} from "./d"; import {} from "./d/index"; diff --git a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).errors.txt b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).errors.txt new file mode 100644 index 0000000000..d79c53bb4d --- /dev/null +++ b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).errors.txt @@ -0,0 +1,27 @@ +file.ts(1,22): error TS6263: Module './component.html' was resolved to 'component.d.html.ts', but '--allowArbitraryExtensions' is not set. + + +==== component.d.html.ts (0 errors) ==== + // html modules were proposed at https://github.com/WICG/webcomponents/blob/gh-pages/proposals/html-modules-explainer.md + + // per proposal, `default` is user-defined, but if not present, will be the document of the imported module + declare var doc: Document; + export default doc; + + // all other exports are just whatever was exported in module script blocks in the html file + export const blogPost: Element; + + export class HTML5Element extends HTMLElement { + connectedCallback(): void; + } + +==== file.ts (1 errors) ==== + import * as mod from "./component.html"; + ~~~~~~~~~~~~~~~~~~ +!!! error TS6263: Module './component.html' was resolved to 'component.d.html.ts', but '--allowArbitraryExtensions' is not set. + + window.customElements.define("my-html5-element", mod.HTML5Element); + + if (document !== mod.default) { + document.body.appendChild(mod.blogPost); + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).errors.txt.diff deleted file mode 100644 index 3b859c2cb0..0000000000 --- a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).errors.txt.diff +++ /dev/null @@ -1,31 +0,0 @@ ---- old.declarationFileForHtmlImport(allowarbitraryextensions=false).errors.txt -+++ new.declarationFileForHtmlImport(allowarbitraryextensions=false).errors.txt -@@= skipped -0, +0 lines =@@ --file.ts(1,22): error TS6263: Module './component.html' was resolved to 'component.d.html.ts', but '--allowArbitraryExtensions' is not set. -- -- --==== component.d.html.ts (0 errors) ==== -- // html modules were proposed at https://github.com/WICG/webcomponents/blob/gh-pages/proposals/html-modules-explainer.md -- -- // per proposal, `default` is user-defined, but if not present, will be the document of the imported module -- declare var doc: Document; -- export default doc; -- -- // all other exports are just whatever was exported in module script blocks in the html file -- export const blogPost: Element; -- -- export class HTML5Element extends HTMLElement { -- connectedCallback(): void; -- } -- --==== file.ts (1 errors) ==== -- import * as mod from "./component.html"; -- ~~~~~~~~~~~~~~~~~~ --!!! error TS6263: Module './component.html' was resolved to 'component.d.html.ts', but '--allowArbitraryExtensions' is not set. -- -- window.customElements.define("my-html5-element", mod.HTML5Element); -- -- if (document !== mod.default) { -- document.body.appendChild(mod.blogPost); -- } -+ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).symbols b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).symbols index 7eb3c4febb..a872d5ee49 100644 --- a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).symbols +++ b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).symbols @@ -34,15 +34,11 @@ window.customElements.define("my-html5-element", mod.HTML5Element); >window : Symbol(window, Decl(lib.dom.d.ts, --, --)) >customElements : Symbol(customElements, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --)) >define : Symbol(define, Decl(lib.dom.d.ts, --, --)) ->mod.HTML5Element : Symbol(HTML5Element, Decl(component.d.html.ts, 7, 31)) >mod : Symbol(mod, Decl(file.ts, 0, 6)) ->HTML5Element : Symbol(HTML5Element, Decl(component.d.html.ts, 7, 31)) if (document !== mod.default) { >document : Symbol(document, Decl(lib.dom.d.ts, --, --)) ->mod.default : Symbol(doc, Decl(component.d.html.ts, 3, 26)) >mod : Symbol(mod, Decl(file.ts, 0, 6)) ->default : Symbol(doc, Decl(component.d.html.ts, 3, 26)) document.body.appendChild(mod.blogPost); >document.body.appendChild : Symbol(appendChild, Decl(lib.dom.d.ts, --, --)) @@ -50,7 +46,5 @@ if (document !== mod.default) { >document : Symbol(document, Decl(lib.dom.d.ts, --, --)) >body : Symbol(body, Decl(lib.dom.d.ts, --, --)) >appendChild : Symbol(appendChild, Decl(lib.dom.d.ts, --, --)) ->mod.blogPost : Symbol(blogPost, Decl(component.d.html.ts, 7, 12)) >mod : Symbol(mod, Decl(file.ts, 0, 6)) ->blogPost : Symbol(blogPost, Decl(component.d.html.ts, 7, 12)) } diff --git a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).symbols.diff b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).symbols.diff index 07e5f5bed6..8618d5c9eb 100644 --- a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).symbols.diff +++ b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).symbols.diff @@ -20,15 +20,11 @@ >customElements : Symbol(customElements, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --)) ->define : Symbol(CustomElementRegistry.define, Decl(lib.dom.d.ts, --, --)) +>define : Symbol(define, Decl(lib.dom.d.ts, --, --)) -+>mod.HTML5Element : Symbol(HTML5Element, Decl(component.d.html.ts, 7, 31)) >mod : Symbol(mod, Decl(file.ts, 0, 6)) -+>HTML5Element : Symbol(HTML5Element, Decl(component.d.html.ts, 7, 31)) if (document !== mod.default) { - >document : Symbol(document, Decl(lib.dom.d.ts, --, --)) -+>mod.default : Symbol(doc, Decl(component.d.html.ts, 3, 26)) +@@= skipped -12, +12 lines =@@ >mod : Symbol(mod, Decl(file.ts, 0, 6)) -+>default : Symbol(doc, Decl(component.d.html.ts, 3, 26)) document.body.appendChild(mod.blogPost); ->document.body.appendChild : Symbol(Node.appendChild, Decl(lib.dom.d.ts, --, --)) @@ -40,7 +36,5 @@ ->appendChild : Symbol(Node.appendChild, Decl(lib.dom.d.ts, --, --)) +>body : Symbol(body, Decl(lib.dom.d.ts, --, --)) +>appendChild : Symbol(appendChild, Decl(lib.dom.d.ts, --, --)) -+>mod.blogPost : Symbol(blogPost, Decl(component.d.html.ts, 7, 12)) >mod : Symbol(mod, Decl(file.ts, 0, 6)) -+>blogPost : Symbol(blogPost, Decl(component.d.html.ts, 7, 12)) } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).types b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).types index 76a136254a..0fce08e790 100644 --- a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).types +++ b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).types @@ -24,7 +24,7 @@ export class HTML5Element extends HTMLElement { === file.ts === import * as mod from "./component.html"; ->mod : typeof mod +>mod : any window.customElements.define("my-html5-element", mod.HTML5Element); >window.customElements.define("my-html5-element", mod.HTML5Element) : void @@ -34,25 +34,25 @@ window.customElements.define("my-html5-element", mod.HTML5Element); >customElements : CustomElementRegistry >define : (name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions) => void >"my-html5-element" : "my-html5-element" ->mod.HTML5Element : typeof mod.HTML5Element ->mod : typeof mod ->HTML5Element : typeof mod.HTML5Element +>mod.HTML5Element : any +>mod : any +>HTML5Element : any if (document !== mod.default) { >document !== mod.default : boolean >document : Document ->mod.default : Document ->mod : typeof mod ->default : Document +>mod.default : any +>mod : any +>default : any document.body.appendChild(mod.blogPost); ->document.body.appendChild(mod.blogPost) : Element +>document.body.appendChild(mod.blogPost) : any >document.body.appendChild : (node: T) => T >document.body : HTMLElement >document : Document >body : HTMLElement >appendChild : (node: T) => T ->mod.blogPost : Element ->mod : typeof mod ->blogPost : Element +>mod.blogPost : any +>mod : any +>blogPost : any } diff --git a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).types.diff b/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).types.diff deleted file mode 100644 index be6029de0f..0000000000 --- a/testdata/baselines/reference/submodule/conformance/declarationFileForHtmlImport(allowarbitraryextensions=false).types.diff +++ /dev/null @@ -1,47 +0,0 @@ ---- old.declarationFileForHtmlImport(allowarbitraryextensions=false).types -+++ new.declarationFileForHtmlImport(allowarbitraryextensions=false).types -@@= skipped -23, +23 lines =@@ - - === file.ts === - import * as mod from "./component.html"; -->mod : any -+>mod : typeof mod - - window.customElements.define("my-html5-element", mod.HTML5Element); - >window.customElements.define("my-html5-element", mod.HTML5Element) : void -@@= skipped -10, +10 lines =@@ - >customElements : CustomElementRegistry - >define : (name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions) => void - >"my-html5-element" : "my-html5-element" -->mod.HTML5Element : any -->mod : any -->HTML5Element : any -+>mod.HTML5Element : typeof mod.HTML5Element -+>mod : typeof mod -+>HTML5Element : typeof mod.HTML5Element - - if (document !== mod.default) { - >document !== mod.default : boolean - >document : Document -->mod.default : any -->mod : any -->default : any -+>mod.default : Document -+>mod : typeof mod -+>default : Document - - document.body.appendChild(mod.blogPost); -->document.body.appendChild(mod.blogPost) : any -+>document.body.appendChild(mod.blogPost) : Element - >document.body.appendChild : (node: T) => T - >document.body : HTMLElement - >document : Document - >body : HTMLElement - >appendChild : (node: T) => T -->mod.blogPost : any -->mod : any -->blogPost : any -+>mod.blogPost : Element -+>mod : typeof mod -+>blogPost : Element - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).errors.txt b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).errors.txt index b02d019f6c..04c3dfd21d 100644 --- a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).errors.txt @@ -1,10 +1,10 @@ -main.ts(1,22): error TS2307: Cannot find module './dir/native.node' or its corresponding type declarations. +main.ts(1,22): error TS6263: Module './dir/native.node' was resolved to 'dir/native.d.node.ts', but '--allowArbitraryExtensions' is not set. ==== main.ts (1 errors) ==== import mod = require("./dir/native.node"); ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './dir/native.node' or its corresponding type declarations. +!!! error TS6263: Module './dir/native.node' was resolved to 'dir/native.d.node.ts', but '--allowArbitraryExtensions' is not set. mod.doNativeThing("good"); ==== package.json (0 errors) ==== diff --git a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).errors.txt.diff deleted file mode 100644 index 3a70da5bf4..0000000000 --- a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).errors.txt.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).errors.txt -+++ new.declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=node18).errors.txt -@@= skipped -0, +0 lines =@@ --main.ts(1,22): error TS6263: Module './dir/native.node' was resolved to 'dir/native.d.node.ts', but '--allowArbitraryExtensions' is not set. -+main.ts(1,22): error TS2307: Cannot find module './dir/native.node' or its corresponding type declarations. - - - ==== main.ts (1 errors) ==== - import mod = require("./dir/native.node"); - ~~~~~~~~~~~~~~~~~~~ --!!! error TS6263: Module './dir/native.node' was resolved to 'dir/native.d.node.ts', but '--allowArbitraryExtensions' is not set. -+!!! error TS2307: Cannot find module './dir/native.node' or its corresponding type declarations. - mod.doNativeThing("good"); - - ==== package.json (0 errors) ==== \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=nodenext).errors.txt b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=nodenext).errors.txt index b02d019f6c..04c3dfd21d 100644 --- a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=nodenext).errors.txt +++ b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=nodenext).errors.txt @@ -1,10 +1,10 @@ -main.ts(1,22): error TS2307: Cannot find module './dir/native.node' or its corresponding type declarations. +main.ts(1,22): error TS6263: Module './dir/native.node' was resolved to 'dir/native.d.node.ts', but '--allowArbitraryExtensions' is not set. ==== main.ts (1 errors) ==== import mod = require("./dir/native.node"); ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './dir/native.node' or its corresponding type declarations. +!!! error TS6263: Module './dir/native.node' was resolved to 'dir/native.d.node.ts', but '--allowArbitraryExtensions' is not set. mod.doNativeThing("good"); ==== package.json (0 errors) ==== diff --git a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=nodenext).errors.txt.diff b/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=nodenext).errors.txt.diff deleted file mode 100644 index 5ab7ae5bd1..0000000000 --- a/testdata/baselines/reference/submodule/conformance/declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=nodenext).errors.txt.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=nodenext).errors.txt -+++ new.declarationFilesForNodeNativeModules(allowarbitraryextensions=false,module=nodenext).errors.txt -@@= skipped -0, +0 lines =@@ --main.ts(1,22): error TS6263: Module './dir/native.node' was resolved to 'dir/native.d.node.ts', but '--allowArbitraryExtensions' is not set. -+main.ts(1,22): error TS2307: Cannot find module './dir/native.node' or its corresponding type declarations. - - - ==== main.ts (1 errors) ==== - import mod = require("./dir/native.node"); - ~~~~~~~~~~~~~~~~~~~ --!!! error TS6263: Module './dir/native.node' was resolved to 'dir/native.d.node.ts', but '--allowArbitraryExtensions' is not set. -+!!! error TS2307: Cannot find module './dir/native.node' or its corresponding type declarations. - mod.doNativeThing("good"); - - ==== package.json (0 errors) ==== \ No newline at end of file diff --git a/testdata/baselines/reference/submoduleAccepted/compiler/checkJsxNotSetError.errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/compiler/checkJsxNotSetError.errors.txt.diff deleted file mode 100644 index 55feb5fdcd..0000000000 --- a/testdata/baselines/reference/submoduleAccepted/compiler/checkJsxNotSetError.errors.txt.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.checkJsxNotSetError.errors.txt -+++ new.checkJsxNotSetError.errors.txt -@@= skipped -0, +0 lines =@@ --/bar.jsx(1,17): error TS6142: Module '/foo' was resolved to '/foo.jsx', but '--jsx' is not set. - /bar.jsx(2,11): error TS17004: Cannot use JSX unless the '--jsx' flag is provided. - /foo.jsx(2,5): error TS17004: Cannot use JSX unless the '--jsx' flag is provided. - -@@= skipped -10, +9 lines =@@ - ); - export default Foo; - --==== /bar.jsx (2 errors) ==== -+==== /bar.jsx (1 errors) ==== - import Foo from '/foo'; -- ~~~~~~ --!!! error TS6142: Module '/foo' was resolved to '/foo.jsx', but '--jsx' is not set. - const a = - ~~~~~~~ - !!! error TS17004: Cannot use JSX unless the '--jsx' flag is provided. \ No newline at end of file diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).errors.txt.diff index e6caa39db1..41175e8df6 100644 --- a/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).errors.txt.diff +++ b/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=false).errors.txt.diff @@ -9,10 +9,7 @@ /project/main.ts(3,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. /project/main.ts(7,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. /project/main.ts(8,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './b.js' instead? - /project/main.ts(11,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. - /project/main.ts(12,16): error TS5097: An import path can only end with a '.tsx' extension when 'allowImportingTsExtensions' is enabled. --/project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. - /project/main.ts(16,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. +@@= skipped -12, +7 lines =@@ /project/types.d.ts(2,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './a.js' instead? @@ -23,22 +20,4 @@ -!!! error TS6054: Root file specified for compilation ==== /project/a.ts (0 errors) ==== export {}; - -@@= skipped -53, +42 lines =@@ - ==== /project/e.txt.ts (0 errors) ==== - export {}; - --==== /project/main.ts (7 errors) ==== -+==== /project/main.ts (6 errors) ==== - import {} from "./a"; - import {} from "./a.js"; - import {} from "./a.ts"; -@@= skipped -23, +23 lines =@@ - import {} from "./c.tsx"; - ~~~~~~~~~ - !!! error TS5097: An import path can only end with a '.tsx' extension when 'allowImportingTsExtensions' is enabled. -- ~~~~~~~~~ --!!! error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. - - import {} from "./d"; - import {} from "./d/index"; \ No newline at end of file + \ No newline at end of file diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=true).errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=true).errors.txt.diff index 7beb92a08d..39bd898b4d 100644 --- a/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=true).errors.txt.diff +++ b/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=false,noemit=true).errors.txt.diff @@ -7,10 +7,7 @@ /project/main.ts(3,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. /project/main.ts(7,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. /project/main.ts(8,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './b.js' instead? - /project/main.ts(11,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. - /project/main.ts(12,16): error TS5097: An import path can only end with a '.tsx' extension when 'allowImportingTsExtensions' is enabled. --/project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. - /project/main.ts(16,16): error TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. +@@= skipped -10, +7 lines =@@ /project/types.d.ts(2,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './a.js' instead? @@ -19,22 +16,4 @@ -!!! error TS6054: Root file specified for compilation ==== /project/a.ts (0 errors) ==== export {}; - -@@= skipped -49, +42 lines =@@ - ==== /project/e.txt.ts (0 errors) ==== - export {}; - --==== /project/main.ts (7 errors) ==== -+==== /project/main.ts (6 errors) ==== - import {} from "./a"; - import {} from "./a.js"; - import {} from "./a.ts"; -@@= skipped -23, +23 lines =@@ - import {} from "./c.tsx"; - ~~~~~~~~~ - !!! error TS5097: An import path can only end with a '.tsx' extension when 'allowImportingTsExtensions' is enabled. -- ~~~~~~~~~ --!!! error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. - - import {} from "./d"; - import {} from "./d/index"; \ No newline at end of file + \ No newline at end of file diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).errors.txt.diff index 0f570f3b79..f755b9e8b9 100644 --- a/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).errors.txt.diff +++ b/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=false).errors.txt.diff @@ -8,7 +8,7 @@ - The file is in the program because: - Root file specified for compilation /project/main.ts(8,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './b.ts' instead? --/project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. + /project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. /project/types.d.ts(2,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './a.ts' instead? @@ -20,22 +20,4 @@ -!!! error TS6054: Root file specified for compilation ==== /project/a.ts (0 errors) ==== export {}; - -@@= skipped -50, +37 lines =@@ - ==== /project/e.txt.ts (0 errors) ==== - export {}; - --==== /project/main.ts (2 errors) ==== -+==== /project/main.ts (1 errors) ==== - import {} from "./a"; - import {} from "./a.js"; - import {} from "./a.ts"; -@@= skipped -15, +15 lines =@@ - - import {} from "./c.ts"; - import {} from "./c.tsx"; -- ~~~~~~~~~ --!!! error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. - - import {} from "./d"; - import {} from "./d/index"; \ No newline at end of file + \ No newline at end of file diff --git a/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=true).errors.txt.diff b/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=true).errors.txt.diff index e17ded846d..d1f5232a81 100644 --- a/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=true).errors.txt.diff +++ b/testdata/baselines/reference/submoduleAccepted/conformance/bundlerImportTsExtensions(allowimportingtsextensions=true,noemit=true).errors.txt.diff @@ -5,7 +5,7 @@ - The file is in the program because: - Root file specified for compilation /project/main.ts(8,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './b.ts' instead? --/project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. + /project/main.ts(12,16): error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. /project/types.d.ts(2,16): error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file './a.ts' instead? @@ -14,22 +14,4 @@ -!!! error TS6054: Root file specified for compilation ==== /project/a.ts (0 errors) ==== export {}; - -@@= skipped -44, +37 lines =@@ - ==== /project/e.txt.ts (0 errors) ==== - export {}; - --==== /project/main.ts (2 errors) ==== -+==== /project/main.ts (1 errors) ==== - import {} from "./a"; - import {} from "./a.js"; - import {} from "./a.ts"; -@@= skipped -15, +15 lines =@@ - - import {} from "./c.ts"; - import {} from "./c.tsx"; -- ~~~~~~~~~ --!!! error TS6142: Module './c.tsx' was resolved to '/project/c.tsx', but '--jsx' is not set. - - import {} from "./d"; - import {} from "./d/index"; \ No newline at end of file + \ No newline at end of file