From 729f3cc57b328c737fbf5b480f5f23f528522b66 Mon Sep 17 00:00:00 2001 From: John Favret <64748847+johnfav03@users.noreply.github.com> Date: Fri, 16 Oct 2026 12:24:19 -0500 Subject: [PATCH] fix incremental state cleanup for deleted files --- .../incremental/buildinfo_path_test.go | 412 ++++++++++++ .../execute/incremental/programtosnapshot.go | 68 +- tsc/internal/execute/tsctests/tsc_test.go | 147 +++++ ...te-mixed-library-files-with-one-checker.js | 605 ++++++++++++++++++ ...ixed-library-files-with-single-threaded.js | 605 ++++++++++++++++++ ...rget-changes-delete-mixed-library-files.js | 605 ++++++++++++++++++ ...on-with-add-and-change-with-one-checker.js | 538 ++++++++++++++++ ...ith-add-and-change-with-single-threaded.js | 538 ++++++++++++++++ ...mixed-file-deletion-with-add-and-change.js | 538 ++++++++++++++++ ...deletion-cleared-false-with-one-checker.js | 326 ++++++++++ ...tion-cleared-false-with-single-threaded.js | 326 ++++++++++ ...ics-after-global-deletion-cleared-false.js | 326 ++++++++++ ...-deletion-cleared-true-with-one-checker.js | 408 ++++++++++++ ...etion-cleared-true-with-single-threaded.js | 408 ++++++++++++ ...tics-after-global-deletion-cleared-true.js | 408 ++++++++++++ ...eted-paths-with-no-emit-composite-false.js | 351 ++++++++++ ...leted-paths-with-no-emit-composite-true.js | 414 ++++++++++++ 17 files changed, 7002 insertions(+), 21 deletions(-) create mode 100644 tsc/testdata/baselines/reference/tsc/incremental/lib-and-target-changes-delete-mixed-library-files-with-one-checker.js create mode 100644 tsc/testdata/baselines/reference/tsc/incremental/lib-and-target-changes-delete-mixed-library-files-with-single-threaded.js create mode 100644 tsc/testdata/baselines/reference/tsc/incremental/lib-and-target-changes-delete-mixed-library-files.js create mode 100644 tsc/testdata/baselines/reference/tsc/incremental/mixed-file-deletion-with-add-and-change-with-one-checker.js create mode 100644 tsc/testdata/baselines/reference/tsc/incremental/mixed-file-deletion-with-add-and-change-with-single-threaded.js create mode 100644 tsc/testdata/baselines/reference/tsc/incremental/mixed-file-deletion-with-add-and-change.js create mode 100644 tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-false-with-one-checker.js create mode 100644 tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-false-with-single-threaded.js create mode 100644 tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-false.js create mode 100644 tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-true-with-one-checker.js create mode 100644 tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-true-with-single-threaded.js create mode 100644 tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-true.js create mode 100644 tsc/testdata/baselines/reference/tsc/incremental/unchecked-deleted-paths-with-no-emit-composite-false.js create mode 100644 tsc/testdata/baselines/reference/tsc/incremental/unchecked-deleted-paths-with-no-emit-composite-true.js diff --git a/tsc/internal/execute/incremental/buildinfo_path_test.go b/tsc/internal/execute/incremental/buildinfo_path_test.go index b3d7290d8f54a..b20bfd58b2c4b 100644 --- a/tsc/internal/execute/incremental/buildinfo_path_test.go +++ b/tsc/internal/execute/incremental/buildinfo_path_test.go @@ -1,9 +1,19 @@ package incremental import ( + "fmt" + "maps" + "slices" + "strconv" "testing" + "github.com/microsoft/TypeScript/tsc/internal/collections" + "github.com/microsoft/TypeScript/tsc/internal/compiler" + "github.com/microsoft/TypeScript/tsc/internal/core" "github.com/microsoft/TypeScript/tsc/internal/json" + "github.com/microsoft/TypeScript/tsc/internal/tsoptions" + "github.com/microsoft/TypeScript/tsc/internal/tspath" + "github.com/microsoft/TypeScript/tsc/internal/vfs/vfstest" "gotest.tools/v3/assert" ) @@ -34,3 +44,405 @@ func TestBuildInfoPathJSONRoundTrip(t *testing.T) { assert.DeepEqual(t, roundTripped.FileNames, buildInfo.FileNames) assert.Equal(t, roundTripped.LatestChangedDtsFile, buildInfo.LatestChangedDtsFile) } + +const deletionTestLib = `interface Array {} +interface Boolean {} +interface CallableFunction {} +interface Function {} +interface IArguments {} +interface NewableFunction {} +interface Number {} +interface Object {} +interface RegExp {} +interface String {} +` + +func newDeletionTestProgram(files map[string]string, roots []string, options *core.CompilerOptions, old *Program) *Program { + files = maps.Clone(files) + files["/lib/"+tsoptions.GetDefaultLibFileName(options)] = files["/lib/lib.d.ts"] + host := compiler.NewCompilerHost(vfstest.FromMap(files, tspath.CaseSensitive), "/lib", nil, nil, nil) + paths := core.Map(roots, func(name string) tspath.RootedFilePath { + return tspath.ToRootedFilePath(name, "/project") + }) + config := tsoptions.NewParsedCommandLine(options, paths, nil, "/project", tspath.CaseSensitive) + program := compiler.NewProgram(compiler.ProgramOptions{Config: config, Host: host}) + return NewProgram(program, old, CreateHost(host), nil, false) +} + +func TestDeletedGlobalInvalidatesAllSourceFiles(t *testing.T) { + t.Parallel() + current := newDeletionTestProgram(map[string]string{ + "/lib/lib.d.ts": deletionTestLib, + "/project/consumer.ts": "export const unchanged = 1;", + }, []string{"consumer.ts"}, &core.CompilerOptions{Incremental: core.TSTrue, NoEmit: core.TSTrue}, nil) + old := &Program{snapshot: &snapshot{}} + current.snapshot.fileInfos.Range(func(path tspath.PathKey, info *FileInfo) bool { + old.snapshot.fileInfos.Store(path, info) + return true + }) + for _, path := range []tspath.PathKey{"/project/first.d.ts", "/project/second.d.ts"} { + old.snapshot.fileInfos.Store(path, &FileInfo{}) + } + deletedOrder := func() []tspath.PathKey { + var paths []tspath.PathKey + old.snapshot.fileInfos.Range(func(path tspath.PathKey, _ *FileInfo) bool { + if _, retained := current.snapshot.fileInfos.Load(path); !retained { + paths = append(paths, path) + } + return true + }) + return paths + } + order := deletedOrder() + if !slices.Equal(order, deletedOrder()) { + t.Fatal("file iteration changed without writes") + } + info, _ := old.snapshot.fileInfos.Load(order[len(order)-1]) + info.affectsGlobalScope = true + to := &toProgramSnapshot{program: current.program, snapshot: current.snapshot, oldProgram: old} + to.handleFileDelete() + if !to.globalFileRemoved || !current.snapshot.changedFilesSet.Has("/project/consumer.ts") { + t.Fatalf("global deletion after non-global deletion did not invalidate consumer: global=%t changed=%t", + to.globalFileRemoved, current.snapshot.changedFilesSet.Has("/project/consumer.ts")) + } +} + +func TestGlobalDeletionInvalidatesRetainedLibraryDiagnostics(t *testing.T) { + t.Parallel() + for _, single := range []core.Tristate{core.TSFalse, core.TSTrue} { + for _, kind := range []string{"new error", "cleared error", "scope loss"} { + t.Run(fmt.Sprintf("%v/%s", single, kind), func(t *testing.T) { + t.Parallel() + options := &core.CompilerOptions{ + Incremental: core.TSTrue, NoEmit: core.TSTrue, + SingleThreaded: single, TsBuildInfoFile: "/project/state.tsbuildinfo", + } + library := deletionTestLib + "interface LibraryConsumer { property: RemovedGlobal; }" + global := "interface RemovedGlobal { x: string; }" + if kind == "cleared error" { + library = deletionTestLib + "interface Shared {}" + global = "interface Shared {}" + } + files := map[string]string{ + "/lib/lib.d.ts": library, + "/project/global.d.ts": global, + "/project/consumer.ts": "export const unchanged = 1;", + "/project/module.d.ts": "export interface Unrelated {}", + } + old := newDeletionTestProgram(files, []string{"global.d.ts", "consumer.ts", "module.d.ts"}, options, nil) + old.GetSemanticDiagnostics(t.Context(), nil) + old.Emit(t.Context(), compiler.EmitOptions{}) + roots := []string{"consumer.ts"} + if kind == "scope loss" { + files["/project/global.d.ts"] = "export " + global + roots = append(roots, "global.d.ts") + } else { + delete(files, "/project/global.d.ts") + } + delete(files, "/project/module.d.ts") + current := newDeletionTestProgram(files, roots, options, old) + cold := newDeletionTestProgram(files, roots, options, nil) + actual := current.GetSemanticDiagnostics(t.Context(), nil) + expected := cold.GetSemanticDiagnostics(t.Context(), nil) + if kind == "cleared error" { + if len(expected) != 0 { + t.Fatalf("cold build should have no errors: %v", expected) + } + } else if len(expected) != 1 || expected[0].Code() != 2304 { + t.Fatalf("cold build should report one TS2304: %v", expected) + } + if len(actual) != len(expected) { + t.Fatalf("incremental diagnostics=%d, cold=%d", len(actual), len(expected)) + } + if len(actual) != 0 && actual[0].Code() != expected[0].Code() { + t.Fatalf("incremental diagnostic=%d, cold=%d", actual[0].Code(), expected[0].Code()) + } + }) + } + } +} + +func TestEmptyProgramDeletionEmitsBuildInfo(t *testing.T) { + t.Parallel() + for flags := range 8 { + for _, roots := range [][]string{{"global.d.ts"}, {"module.d.ts"}, {"global.d.ts", "module.d.ts"}} { + t.Run(fmt.Sprintf("%d/%v", flags, roots), func(t *testing.T) { + t.Parallel() + options := &core.CompilerOptions{ + Incremental: core.TSTrue, TsBuildInfoFile: "/project/state.tsbuildinfo", + NoCheck: core.IfElse(flags&1 != 0, core.TSTrue, core.TSFalse), + NoEmit: core.IfElse(flags&2 != 0, core.TSTrue, core.TSFalse), + Composite: core.IfElse(flags&4 != 0, core.TSTrue, core.TSFalse), + } + files := map[string]string{ + "/lib/lib.d.ts": deletionTestLib, + "/project/global.d.ts": "interface RemovedGlobal {}", + "/project/module.d.ts": "export interface Unrelated {}", + } + old := newDeletionTestProgram(files, roots, options, nil) + old.GetSemanticDiagnostics(t.Context(), nil) + old.Emit(t.Context(), compiler.EmitOptions{}) + if old.snapshot.buildInfoEmitPending.Load() { + t.Fatal("initial build info was not emitted") + } + delete(files, "/project/global.d.ts") + delete(files, "/project/module.d.ts") + current := newDeletionTestProgram(files, nil, options, old) + if len(current.GetSourceFiles()) != 0 { + t.Fatal("new program is not empty") + } + writes := 0 + current.Emit(t.Context(), compiler.EmitOptions{ + WriteFile: func(name tspath.RootedFilePath, text string, _ *compiler.WriteFileData) error { + if name.ExtensionIs(tspath.ExtensionTsBuildInfo) { + writes++ + var info struct { + FileNames []string `json:"fileNames"` + FileInfos []json.Value `json:"fileInfos"` + ChangeFileSet []int `json:"changeFileSet"` + AffectedFilesPendingEmit []json.Value `json:"affectedFilesPendingEmit"` + } + if err := json.Unmarshal([]byte(text), &info); err != nil { + t.Fatal(err) + } + if len(info.FileNames) != 0 || len(info.FileInfos) != 0 || len(info.ChangeFileSet) != 0 || len(info.AffectedFilesPendingEmit) != 0 { + t.Fatalf("empty program persisted removed state: %+v", info) + } + } + return nil + }, + }) + if writes != 1 { + t.Fatalf("build-info writes after deleting every source = %d, want 1", writes) + } + }) + } + } +} + +func TestUncheckedDeletedFilesDiscardPendingState(t *testing.T) { + t.Parallel() + options := &core.CompilerOptions{ + Incremental: core.TSTrue, NoEmit: core.TSTrue, NoCheck: core.TSTrue, + TsBuildInfoFile: "/project/state.tsbuildinfo", + } + files := map[string]string{ + "/lib/lib.d.ts": deletionTestLib, + "/project/stable.ts": "export const stable = 1;", + } + old := newDeletionTestProgram(files, []string{"stable.ts"}, options, nil) + old.Emit(t.Context(), compiler.EmitOptions{}) + files["/project/first.ts"] = "export const first = 1;" + files["/project/second.ts"] = "export const second = 1;" + added := newDeletionTestProgram(files, []string{"stable.ts", "first.ts", "second.ts"}, options, old) + added.Emit(t.Context(), compiler.EmitOptions{}) + for _, path := range []tspath.PathKey{"/project/first.ts", "/project/second.ts"} { + if !added.snapshot.changedFilesSet.Has(path) { + t.Fatalf("new unchecked file %s not pending", path) + } + added.snapshot.affectedFilesPendingEmit.Store(path, FileEmitKindJs) + } + delete(files, "/project/first.ts") + delete(files, "/project/second.ts") + current := newDeletionTestProgram(files, []string{"stable.ts"}, options, added) + for _, path := range []tspath.PathKey{"/project/first.ts", "/project/second.ts"} { + if current.snapshot.changedFilesSet.Has(path) { + t.Errorf("removed unchecked file %s still in change set", path) + } + if _, pending := current.snapshot.affectedFilesPendingEmit.Load(path); pending { + t.Errorf("removed file %s still pending emit", path) + } + } + info, err := snapshotToBuildInfo(current.snapshot, current.program, options.TsBuildInfoFile) + if err != nil { + t.Fatal(err) + } + if len(info.FileNames) != len(info.FileInfos) || len(info.ChangeFileSet) != 0 { + t.Fatalf("invalid build-info file state: names=%d infos=%d changes=%v", len(info.FileNames), len(info.FileInfos), info.ChangeFileSet) + } +} + +func TestModuleDeletionPreservesUnrelatedCachedDiagnostics(t *testing.T) { + t.Parallel() + for _, skip := range []core.Tristate{core.TSFalse, core.TSTrue} { + t.Run(fmt.Sprint(skip), func(t *testing.T) { + t.Parallel() + options := &core.CompilerOptions{ + Incremental: core.TSTrue, NoEmit: core.TSTrue, SkipDefaultLibCheck: skip, + TsBuildInfoFile: "/project/state.tsbuildinfo", + } + files := map[string]string{ + "/lib/lib.d.ts": deletionTestLib, + "/project/consumer.ts": "export const unchanged = 1;", + "/project/module.d.ts": "export interface Unrelated {}", + } + old := newDeletionTestProgram(files, []string{"consumer.ts", "module.d.ts"}, options, nil) + old.GetSemanticDiagnostics(t.Context(), nil) + old.Emit(t.Context(), compiler.EmitOptions{}) + delete(files, "/project/module.d.ts") + current := newDeletionTestProgram(files, []string{"consumer.ts"}, options, old) + if current.snapshot.changedFilesSet.Has("/project/consumer.ts") { + t.Fatal("unrelated module deletion invalidated consumer") + } + for _, file := range current.GetSourceFiles() { + previous, ok := old.snapshot.semanticDiagnosticsPerFile.Load(file.PathKey()) + if !ok { + t.Fatalf("initial diagnostics for %s were not cached", file.FileName()) + } + cached, ok := current.snapshot.semanticDiagnosticsPerFile.Load(file.PathKey()) + if !ok || cached != previous { + t.Fatalf("unrelated cached diagnostics for %s not reused", file.FileName()) + } + } + }) + } +} + +func TestDeletedFilesCleanupAfterGlobalDeletion(t *testing.T) { + t.Parallel() + current := newDeletionTestProgram(map[string]string{"/lib/lib.d.ts": deletionTestLib}, nil, + &core.CompilerOptions{Incremental: core.TSTrue}, nil) + old := &Program{snapshot: &snapshot{}} + deleted := []tspath.PathKey{"/project/first.d.ts", "/project/second.d.ts", "/project/third.d.ts"} + for _, path := range deleted { + old.snapshot.fileInfos.Store(path, &FileInfo{affectsGlobalScope: true}) + current.snapshot.changedFilesSet.Add(path) + current.snapshot.affectedFilesPendingEmit.Store(path, FileEmitKindJs) + } + to := &toProgramSnapshot{program: current.program, snapshot: current.snapshot, oldProgram: old} + to.handleFileDelete() + for _, path := range deleted { + if current.snapshot.changedFilesSet.Has(path) { + t.Errorf("removed path %s still in change set", path) + } + if _, pending := current.snapshot.affectedFilesPendingEmit.Load(path); pending { + t.Errorf("removed path %s still pending emit", path) + } + } + if !current.snapshot.buildInfoEmitPending.Load() { + t.Error("global deletion did not mark build info pending") + } +} + +func TestRemovedPendingPathsWithoutFileInfo(t *testing.T) { + t.Parallel() + options := &core.CompilerOptions{ + Incremental: core.TSTrue, NoCheck: core.TSTrue, NoEmit: core.TSTrue, + TsBuildInfoFile: "/project/state.tsbuildinfo", + } + files := map[string]string{ + "/lib/lib.d.ts": deletionTestLib, + "/project/stable.ts": "export const stable = 1;", + } + old := newDeletionTestProgram(files, []string{"stable.ts"}, options, nil) + old.Emit(t.Context(), compiler.EmitOptions{}) + old.snapshot.changedFilesSet.Add("/project/missing.ts") + old.snapshot.affectedFilesPendingEmit.Store("/project/missing.ts", FileEmitKindJs) + current := newDeletionTestProgram(files, []string{"stable.ts"}, options, old) + if current.snapshot.changedFilesSet.Has("/project/missing.ts") { + t.Error("removed pending path without file info was retained") + } + if _, pending := current.snapshot.affectedFilesPendingEmit.Load("/project/missing.ts"); pending { + t.Error("removed pending emit path without file info was retained") + } + if !current.snapshot.buildInfoEmitPending.Load() { + t.Error("discarding obsolete pending state did not mark build info pending") + } + info, err := snapshotToBuildInfo(current.snapshot, current.program, options.TsBuildInfoFile) + if err != nil { + t.Fatal(err) + } + if len(info.FileNames) != len(info.FileInfos) { + t.Fatalf("invalid cached file state: names=%d infos=%d", len(info.FileNames), len(info.FileInfos)) + } +} + +func TestForEachDeletedFileVisitsEveryRemovedPath(t *testing.T) { + t.Parallel() + order := []tspath.PathKey{"/first.ts", "/second.ts", "/third.ts", "/fourth.ts"} + var visitOrders func(int) + visitOrders = func(index int) { + if index != len(order) { + for next := index; next < len(order); next++ { + order[index], order[next] = order[next], order[index] + visitOrders(index + 1) + order[index], order[next] = order[next], order[index] + } + return + } + for retained := range 16 { + for global := range 16 { + var current collections.SyncMap[tspath.PathKey, *FileInfo] + infos := make(map[tspath.PathKey]*FileInfo) + var expected []tspath.PathKey + for i, path := range order { + infos[path] = &FileInfo{affectsGlobalScope: global&(1< + interface Array { + toSorted(): T[]; + } + `), + getTestLibPathFor("decorators"): stringtestutil.Dedent(` + /// + export {}; + `), + getTestLibPathFor("esnext.full"): stringtestutil.Dedent(` + /// + /// + /// + /// + `), + getTestLibPathFor("es2020"): stringtestutil.Dedent(` + /// + /// + `), + getTestLibPathFor("es2020.full"): stringtestutil.Dedent(` + /// + /// + `), + }, + edits: []*tscEdit{ + {caption: "narrow lib", edit: func(sys *TestSys) { + sys.writeFileNoError("/home/src/workspaces/project/tsconfig.json", config(`,"target":"esnext","lib":["es2020"]`)) + }}, + noChange, + {caption: "restore lib", edit: func(sys *TestSys) { + sys.writeFileNoError("/home/src/workspaces/project/tsconfig.json", config(`,"target":"esnext"`)) + }}, + {caption: "narrow target", edit: func(sys *TestSys) { + sys.writeFileNoError("/home/src/workspaces/project/tsconfig.json", config(`,"target":"es2020"`)) + }}, + noChange, + {caption: "restore target", edit: func(sys *TestSys) { + sys.writeFileNoError("/home/src/workspaces/project/tsconfig.json", config(`,"target":"esnext"`)) + }}, + noChange, + }, + }).run(t, "incremental") + (&tscInput{ + subScenario: "mixed file deletion with add and change" + mode.name, + commandLineArgs: mode.args, + files: FileMap{ + "/home/src/workspaces/project/tsconfig.json": `{"compilerOptions":{"incremental":true,"noEmit":true,"types":[]}}`, + "/home/src/workspaces/project/consumer.ts": `declare const value: RemovedGlobal; value.property;`, + "/home/src/workspaces/project/global.d.ts": `interface RemovedGlobal { property: string; }`, + "/home/src/workspaces/project/module.d.ts": `export interface ModuleOnly { property: string; }`, + "/home/src/workspaces/project/changed.ts": `export const changed = 1;`, + }, + edits: []*tscEdit{ + {caption: "delete global and non-global files while adding and changing sources", edit: func(sys *TestSys) { + sys.removeNoError("/home/src/workspaces/project/global.d.ts") + sys.removeNoError("/home/src/workspaces/project/module.d.ts") + sys.replaceFileText("/home/src/workspaces/project/changed.ts", "1", "2") + sys.writeFileNoError("/home/src/workspaces/project/added.ts", `export const added = 1;`) + }}, + noChange, + {caption: "restore global file", edit: func(sys *TestSys) { + sys.writeFileNoError("/home/src/workspaces/project/global.d.ts", `interface RemovedGlobal { property: number; }`) + }}, + {caption: "delete ordinary source file", edit: func(sys *TestSys) { + sys.removeNoError("/home/src/workspaces/project/added.ts") + }}, + noChange, + }, + }).run(t, "incremental") + for _, cleared := range []bool{false, true} { + library := tscDefaultLibContent + "\ninterface LibraryConsumer { property: RemovedGlobal; }" + global := "interface RemovedGlobal {}" + if cleared { + library = tscDefaultLibContent + "\ninterface Shared {}" + global = "interface Shared {}" + } + (&tscInput{ + subScenario: fmt.Sprintf("retained library diagnostics after global deletion cleared %t%s", cleared, mode.name), + commandLineArgs: mode.args, + files: FileMap{ + "/home/src/workspaces/project/tsconfig.json": `{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"lib":["es5"]}}`, + "/home/src/workspaces/project/consumer.ts": "export const unchanged = 1;", + "/home/src/workspaces/project/global.d.ts": global, + "/home/src/workspaces/project/module.d.ts": "export interface Unrelated {}", + getTestLibPathFor("es5"): library, + }, + edits: []*tscEdit{ + {caption: "delete global and module declarations", edit: func(sys *TestSys) { + sys.removeNoError("/home/src/workspaces/project/global.d.ts") + sys.removeNoError("/home/src/workspaces/project/module.d.ts") + }}, + noChange, + {caption: "restore global declaration", edit: func(sys *TestSys) { + sys.writeFileNoError("/home/src/workspaces/project/global.d.ts", global) + }}, + noChange, + }, + }).run(t, "incremental") + } + } + for _, composite := range []bool{false, true} { + (&tscInput{ + subScenario: fmt.Sprintf("unchecked deleted paths with no emit composite %t", composite), + files: FileMap{ + "/home/src/workspaces/project/tsconfig.json": fmt.Sprintf(`{"compilerOptions":{"incremental":true,"noCheck":true,"noEmit":true,"composite":%t,"types":[]}}`, composite), + "/home/src/workspaces/project/stable.ts": "export const stable = 1;", + }, + edits: []*tscEdit{ + {caption: "add unchecked sources", edit: func(sys *TestSys) { + sys.writeFileNoError("/home/src/workspaces/project/first.ts", "export const first = 1;") + sys.writeFileNoError("/home/src/workspaces/project/second.ts", "export const second = 1;") + }}, + {caption: "delete unchecked sources", edit: func(sys *TestSys) { + sys.removeNoError("/home/src/workspaces/project/first.ts") + sys.removeNoError("/home/src/workspaces/project/second.ts") + }}, + noChange, + {caption: "enable checking and emit", edit: func(sys *TestSys) { + sys.replaceFileText("/home/src/workspaces/project/tsconfig.json", `"noCheck":true,"noEmit":true`, `"noCheck":false,"noEmit":false`) + }}, + noChange, + }, + }).run(t, "incremental") + } +} + func TestTscLibraryResolution(t *testing.T) { t.Parallel() getTscLibraryResolutionFileMap := func(libReplacement bool) FileMap { diff --git a/tsc/testdata/baselines/reference/tsc/incremental/lib-and-target-changes-delete-mixed-library-files-with-one-checker.js b/tsc/testdata/baselines/reference/tsc/incremental/lib-and-target-changes-delete-mixed-library-files-with-one-checker.js new file mode 100644 index 0000000000000..9cd1e5c52d403 --- /dev/null +++ b/tsc/testdata/baselines/reference/tsc/incremental/lib-and-target-changes-delete-mixed-library-files-with-one-checker.js @@ -0,0 +1,605 @@ +currentDirectory::/home/src/workspaces/project +useCaseSensitiveFileNames::true +Input:: +//// [/home/src/tslibs/TS/Lib/lib.decorators.d.ts] *new* +/// +export {}; +//// [/home/src/tslibs/TS/Lib/lib.es2020.d.ts] *new* +/// +/// +//// [/home/src/tslibs/TS/Lib/lib.es2020.full.d.ts] *new* +/// +/// +//// [/home/src/tslibs/TS/Lib/lib.es2026.array.d.ts] *new* +/// +interface Array { + toSorted(): T[]; +} +//// [/home/src/tslibs/TS/Lib/lib.es5.d.ts] *new* +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } +interface ReadonlyArray {} +interface SymbolConstructor { + (desc?: string | number): symbol; + for(name: string): symbol; + readonly toStringTag: symbol; +} +declare var Symbol: SymbolConstructor; +interface Symbol { + readonly [Symbol.toStringTag]: string; +} +declare const console: { log(msg: any): void; }; +//// [/home/src/tslibs/TS/Lib/lib.esnext.full.d.ts] *new* +/// +/// +/// +/// +//// [/home/src/workspaces/project/a.ts] *new* +export const values = [3, 1, 2].toSorted(); +//// [/home/src/workspaces/project/tsconfig.json] *new* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"target":"esnext"},"files":["a.ts"]} + +tsgo --checkers 1 +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *new* +{"version":"FakeTSVersion","root":[5],"fileNames":["lib.es5.d.ts","lib.es2026.array.d.ts","lib.decorators.d.ts","lib.esnext.full.d.ts","./a.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}","affectsGlobalScope":true,"impliedNodeFormat":1},"7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};","5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ","b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();"],"options":{"target":99},"affectedFilesPendingEmit":[5]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *new* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./a.ts" + ], + "original": 5 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "lib.es2026.array.d.ts", + "lib.decorators.d.ts", + "lib.esnext.full.d.ts", + "./a.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.es2026.array.d.ts", + "version": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "signature": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.decorators.d.ts", + "version": "7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};", + "signature": "7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "lib.esnext.full.d.ts", + "version": "5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ", + "signature": "5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./a.ts", + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "impliedNodeFormat": "CommonJS" + } + ], + "options": { + "target": 99 + }, + "affectedFilesPendingEmit": [ + [ + "./a.ts", + "Js", + 5 + ] + ], + "size": 1516 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.array.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.decorators.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.esnext.full.d.ts +*refresh* /home/src/workspaces/project/a.ts +Signatures:: + + +Edit [0]:: narrow lib +//// [/home/src/workspaces/project/tsconfig.json] *modified* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"target":"esnext","lib":["es2020"]},"files":["a.ts"]} + +tsgo --checkers 1 +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +a.ts:1:33 - error TS2550: Property 'toSorted' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + +1 export const values = [3, 1, 2].toSorted(); +   ~~~~~~~~ + + +Found 1 error in a.ts:1 + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[3],"fileNames":["lib.es5.d.ts","lib.es2020.d.ts","./a.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},"39b6b52e4bfc36fd6d892df73c38abe0-/// \n/// ",{"version":"b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();","signature":"c31aa5c2cd609f2993edf6ca8656963f-export declare const values: any;\n","impliedNodeFormat":1}],"options":{"target":99},"semanticDiagnosticsPerFile":[[3,[{"pos":32,"end":40,"code":2550,"category":1,"messageKey":"Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550","messageArgs":["toSorted","number[]","es2023"]}]]],"affectedFilesPendingEmit":[3]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./a.ts" + ], + "original": 3 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "lib.es2020.d.ts", + "./a.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.es2020.d.ts", + "version": "39b6b52e4bfc36fd6d892df73c38abe0-/// \n/// ", + "signature": "39b6b52e4bfc36fd6d892df73c38abe0-/// \n/// ", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./a.ts", + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "c31aa5c2cd609f2993edf6ca8656963f-export declare const values: any;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "c31aa5c2cd609f2993edf6ca8656963f-export declare const values: any;\n", + "impliedNodeFormat": 1 + } + } + ], + "options": { + "target": 99 + }, + "semanticDiagnosticsPerFile": [ + [ + "./a.ts", + [ + { + "pos": 32, + "end": 40, + "code": 2550, + "category": 1, + "messageKey": "Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550", + "messageArgs": [ + "toSorted", + "number[]", + "es2023" + ] + } + ] + ] + ], + "affectedFilesPendingEmit": [ + [ + "./a.ts", + "Js", + 3 + ] + ], + "size": 1485 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.es2020.d.ts +*refresh* /home/src/workspaces/project/a.ts +Signatures:: +(used version) /home/src/tslibs/TS/Lib/lib.es2020.d.ts +(computed .d.ts) /home/src/workspaces/project/a.ts + + +Edit [1]:: no change + +tsgo --checkers 1 +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +a.ts:1:33 - error TS2550: Property 'toSorted' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + +1 export const values = [3, 1, 2].toSorted(); +   ~~~~~~~~ + + +Found 1 error in a.ts:1 + + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: + + +Edit [2]:: restore lib +//// [/home/src/workspaces/project/tsconfig.json] *modified* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"target":"esnext"},"files":["a.ts"]} + +tsgo --checkers 1 +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[5],"fileNames":["lib.es5.d.ts","lib.es2026.array.d.ts","lib.decorators.d.ts","lib.esnext.full.d.ts","./a.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}","affectsGlobalScope":true,"impliedNodeFormat":1},"7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};","5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ",{"version":"b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();","signature":"38b21ab127214358ce1b4ec5bf7acbed-export declare const values: number[];\n","impliedNodeFormat":1}],"options":{"target":99},"affectedFilesPendingEmit":[5]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./a.ts" + ], + "original": 5 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "lib.es2026.array.d.ts", + "lib.decorators.d.ts", + "lib.esnext.full.d.ts", + "./a.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.es2026.array.d.ts", + "version": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "signature": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.decorators.d.ts", + "version": "7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};", + "signature": "7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "lib.esnext.full.d.ts", + "version": "5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ", + "signature": "5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./a.ts", + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "38b21ab127214358ce1b4ec5bf7acbed-export declare const values: number[];\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "38b21ab127214358ce1b4ec5bf7acbed-export declare const values: number[];\n", + "impliedNodeFormat": 1 + } + } + ], + "options": { + "target": 99 + }, + "affectedFilesPendingEmit": [ + [ + "./a.ts", + "Js", + 5 + ] + ], + "size": 1638 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.array.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.decorators.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.esnext.full.d.ts +*refresh* /home/src/workspaces/project/a.ts +Signatures:: +(used version) /home/src/tslibs/TS/Lib/lib.es2026.array.d.ts +(used version) /home/src/tslibs/TS/Lib/lib.decorators.d.ts +(used version) /home/src/tslibs/TS/Lib/lib.esnext.full.d.ts +(computed .d.ts) /home/src/workspaces/project/a.ts + + +Edit [3]:: narrow target +//// [/home/src/workspaces/project/tsconfig.json] *modified* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"target":"es2020"},"files":["a.ts"]} + +tsgo --checkers 1 +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +a.ts:1:33 - error TS2550: Property 'toSorted' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + +1 export const values = [3, 1, 2].toSorted(); +   ~~~~~~~~ + + +Found 1 error in a.ts:1 + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[3],"fileNames":["lib.es5.d.ts","lib.es2020.full.d.ts","./a.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},"39b6b52e4bfc36fd6d892df73c38abe0-/// \n/// ",{"version":"b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();","signature":"c31aa5c2cd609f2993edf6ca8656963f-export declare const values: any;\n","impliedNodeFormat":1}],"options":{"target":7},"semanticDiagnosticsPerFile":[[3,[{"pos":32,"end":40,"code":2550,"category":1,"messageKey":"Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550","messageArgs":["toSorted","number[]","es2023"]}]]],"affectedFilesPendingEmit":[3]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./a.ts" + ], + "original": 3 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "lib.es2020.full.d.ts", + "./a.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.es2020.full.d.ts", + "version": "39b6b52e4bfc36fd6d892df73c38abe0-/// \n/// ", + "signature": "39b6b52e4bfc36fd6d892df73c38abe0-/// \n/// ", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./a.ts", + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "c31aa5c2cd609f2993edf6ca8656963f-export declare const values: any;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "c31aa5c2cd609f2993edf6ca8656963f-export declare const values: any;\n", + "impliedNodeFormat": 1 + } + } + ], + "options": { + "target": 7 + }, + "semanticDiagnosticsPerFile": [ + [ + "./a.ts", + [ + { + "pos": 32, + "end": 40, + "code": 2550, + "category": 1, + "messageKey": "Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550", + "messageArgs": [ + "toSorted", + "number[]", + "es2023" + ] + } + ] + ] + ], + "affectedFilesPendingEmit": [ + [ + "./a.ts", + "Js", + 3 + ] + ], + "size": 1489 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.es2020.full.d.ts +*refresh* /home/src/workspaces/project/a.ts +Signatures:: +(used version) /home/src/tslibs/TS/Lib/lib.es2020.full.d.ts +(computed .d.ts) /home/src/workspaces/project/a.ts + + +Edit [4]:: no change + +tsgo --checkers 1 +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +a.ts:1:33 - error TS2550: Property 'toSorted' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + +1 export const values = [3, 1, 2].toSorted(); +   ~~~~~~~~ + + +Found 1 error in a.ts:1 + + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: + + +Edit [5]:: restore target +//// [/home/src/workspaces/project/tsconfig.json] *modified* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"target":"esnext"},"files":["a.ts"]} + +tsgo --checkers 1 +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[5],"fileNames":["lib.es5.d.ts","lib.es2026.array.d.ts","lib.decorators.d.ts","lib.esnext.full.d.ts","./a.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}","affectsGlobalScope":true,"impliedNodeFormat":1},"7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};","5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ",{"version":"b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();","signature":"38b21ab127214358ce1b4ec5bf7acbed-export declare const values: number[];\n","impliedNodeFormat":1}],"options":{"target":99},"affectedFilesPendingEmit":[5]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./a.ts" + ], + "original": 5 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "lib.es2026.array.d.ts", + "lib.decorators.d.ts", + "lib.esnext.full.d.ts", + "./a.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.es2026.array.d.ts", + "version": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "signature": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.decorators.d.ts", + "version": "7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};", + "signature": "7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "lib.esnext.full.d.ts", + "version": "5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ", + "signature": "5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./a.ts", + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "38b21ab127214358ce1b4ec5bf7acbed-export declare const values: number[];\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "38b21ab127214358ce1b4ec5bf7acbed-export declare const values: number[];\n", + "impliedNodeFormat": 1 + } + } + ], + "options": { + "target": 99 + }, + "affectedFilesPendingEmit": [ + [ + "./a.ts", + "Js", + 5 + ] + ], + "size": 1638 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.array.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.decorators.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.esnext.full.d.ts +*refresh* /home/src/workspaces/project/a.ts +Signatures:: +(used version) /home/src/tslibs/TS/Lib/lib.es2026.array.d.ts +(used version) /home/src/tslibs/TS/Lib/lib.decorators.d.ts +(used version) /home/src/tslibs/TS/Lib/lib.esnext.full.d.ts +(computed .d.ts) /home/src/workspaces/project/a.ts + + +Edit [6]:: no change + +tsgo --checkers 1 +ExitStatus:: Success +Output:: + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: diff --git a/tsc/testdata/baselines/reference/tsc/incremental/lib-and-target-changes-delete-mixed-library-files-with-single-threaded.js b/tsc/testdata/baselines/reference/tsc/incremental/lib-and-target-changes-delete-mixed-library-files-with-single-threaded.js new file mode 100644 index 0000000000000..16648e46c2deb --- /dev/null +++ b/tsc/testdata/baselines/reference/tsc/incremental/lib-and-target-changes-delete-mixed-library-files-with-single-threaded.js @@ -0,0 +1,605 @@ +currentDirectory::/home/src/workspaces/project +useCaseSensitiveFileNames::true +Input:: +//// [/home/src/tslibs/TS/Lib/lib.decorators.d.ts] *new* +/// +export {}; +//// [/home/src/tslibs/TS/Lib/lib.es2020.d.ts] *new* +/// +/// +//// [/home/src/tslibs/TS/Lib/lib.es2020.full.d.ts] *new* +/// +/// +//// [/home/src/tslibs/TS/Lib/lib.es2026.array.d.ts] *new* +/// +interface Array { + toSorted(): T[]; +} +//// [/home/src/tslibs/TS/Lib/lib.es5.d.ts] *new* +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } +interface ReadonlyArray {} +interface SymbolConstructor { + (desc?: string | number): symbol; + for(name: string): symbol; + readonly toStringTag: symbol; +} +declare var Symbol: SymbolConstructor; +interface Symbol { + readonly [Symbol.toStringTag]: string; +} +declare const console: { log(msg: any): void; }; +//// [/home/src/tslibs/TS/Lib/lib.esnext.full.d.ts] *new* +/// +/// +/// +/// +//// [/home/src/workspaces/project/a.ts] *new* +export const values = [3, 1, 2].toSorted(); +//// [/home/src/workspaces/project/tsconfig.json] *new* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"target":"esnext"},"files":["a.ts"]} + +tsgo --singleThreaded +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *new* +{"version":"FakeTSVersion","root":[5],"fileNames":["lib.es5.d.ts","lib.es2026.array.d.ts","lib.decorators.d.ts","lib.esnext.full.d.ts","./a.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}","affectsGlobalScope":true,"impliedNodeFormat":1},"7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};","5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ","b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();"],"options":{"target":99},"affectedFilesPendingEmit":[5]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *new* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./a.ts" + ], + "original": 5 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "lib.es2026.array.d.ts", + "lib.decorators.d.ts", + "lib.esnext.full.d.ts", + "./a.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.es2026.array.d.ts", + "version": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "signature": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.decorators.d.ts", + "version": "7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};", + "signature": "7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "lib.esnext.full.d.ts", + "version": "5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ", + "signature": "5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./a.ts", + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "impliedNodeFormat": "CommonJS" + } + ], + "options": { + "target": 99 + }, + "affectedFilesPendingEmit": [ + [ + "./a.ts", + "Js", + 5 + ] + ], + "size": 1516 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.array.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.decorators.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.esnext.full.d.ts +*refresh* /home/src/workspaces/project/a.ts +Signatures:: + + +Edit [0]:: narrow lib +//// [/home/src/workspaces/project/tsconfig.json] *modified* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"target":"esnext","lib":["es2020"]},"files":["a.ts"]} + +tsgo --singleThreaded +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +a.ts:1:33 - error TS2550: Property 'toSorted' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + +1 export const values = [3, 1, 2].toSorted(); +   ~~~~~~~~ + + +Found 1 error in a.ts:1 + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[3],"fileNames":["lib.es5.d.ts","lib.es2020.d.ts","./a.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},"39b6b52e4bfc36fd6d892df73c38abe0-/// \n/// ",{"version":"b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();","signature":"c31aa5c2cd609f2993edf6ca8656963f-export declare const values: any;\n","impliedNodeFormat":1}],"options":{"target":99},"semanticDiagnosticsPerFile":[[3,[{"pos":32,"end":40,"code":2550,"category":1,"messageKey":"Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550","messageArgs":["toSorted","number[]","es2023"]}]]],"affectedFilesPendingEmit":[3]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./a.ts" + ], + "original": 3 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "lib.es2020.d.ts", + "./a.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.es2020.d.ts", + "version": "39b6b52e4bfc36fd6d892df73c38abe0-/// \n/// ", + "signature": "39b6b52e4bfc36fd6d892df73c38abe0-/// \n/// ", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./a.ts", + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "c31aa5c2cd609f2993edf6ca8656963f-export declare const values: any;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "c31aa5c2cd609f2993edf6ca8656963f-export declare const values: any;\n", + "impliedNodeFormat": 1 + } + } + ], + "options": { + "target": 99 + }, + "semanticDiagnosticsPerFile": [ + [ + "./a.ts", + [ + { + "pos": 32, + "end": 40, + "code": 2550, + "category": 1, + "messageKey": "Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550", + "messageArgs": [ + "toSorted", + "number[]", + "es2023" + ] + } + ] + ] + ], + "affectedFilesPendingEmit": [ + [ + "./a.ts", + "Js", + 3 + ] + ], + "size": 1485 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.es2020.d.ts +*refresh* /home/src/workspaces/project/a.ts +Signatures:: +(used version) /home/src/tslibs/TS/Lib/lib.es2020.d.ts +(computed .d.ts) /home/src/workspaces/project/a.ts + + +Edit [1]:: no change + +tsgo --singleThreaded +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +a.ts:1:33 - error TS2550: Property 'toSorted' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + +1 export const values = [3, 1, 2].toSorted(); +   ~~~~~~~~ + + +Found 1 error in a.ts:1 + + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: + + +Edit [2]:: restore lib +//// [/home/src/workspaces/project/tsconfig.json] *modified* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"target":"esnext"},"files":["a.ts"]} + +tsgo --singleThreaded +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[5],"fileNames":["lib.es5.d.ts","lib.es2026.array.d.ts","lib.decorators.d.ts","lib.esnext.full.d.ts","./a.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}","affectsGlobalScope":true,"impliedNodeFormat":1},"7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};","5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ",{"version":"b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();","signature":"38b21ab127214358ce1b4ec5bf7acbed-export declare const values: number[];\n","impliedNodeFormat":1}],"options":{"target":99},"affectedFilesPendingEmit":[5]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./a.ts" + ], + "original": 5 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "lib.es2026.array.d.ts", + "lib.decorators.d.ts", + "lib.esnext.full.d.ts", + "./a.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.es2026.array.d.ts", + "version": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "signature": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.decorators.d.ts", + "version": "7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};", + "signature": "7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "lib.esnext.full.d.ts", + "version": "5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ", + "signature": "5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./a.ts", + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "38b21ab127214358ce1b4ec5bf7acbed-export declare const values: number[];\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "38b21ab127214358ce1b4ec5bf7acbed-export declare const values: number[];\n", + "impliedNodeFormat": 1 + } + } + ], + "options": { + "target": 99 + }, + "affectedFilesPendingEmit": [ + [ + "./a.ts", + "Js", + 5 + ] + ], + "size": 1638 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.array.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.decorators.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.esnext.full.d.ts +*refresh* /home/src/workspaces/project/a.ts +Signatures:: +(used version) /home/src/tslibs/TS/Lib/lib.es2026.array.d.ts +(used version) /home/src/tslibs/TS/Lib/lib.decorators.d.ts +(used version) /home/src/tslibs/TS/Lib/lib.esnext.full.d.ts +(computed .d.ts) /home/src/workspaces/project/a.ts + + +Edit [3]:: narrow target +//// [/home/src/workspaces/project/tsconfig.json] *modified* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"target":"es2020"},"files":["a.ts"]} + +tsgo --singleThreaded +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +a.ts:1:33 - error TS2550: Property 'toSorted' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + +1 export const values = [3, 1, 2].toSorted(); +   ~~~~~~~~ + + +Found 1 error in a.ts:1 + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[3],"fileNames":["lib.es5.d.ts","lib.es2020.full.d.ts","./a.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},"39b6b52e4bfc36fd6d892df73c38abe0-/// \n/// ",{"version":"b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();","signature":"c31aa5c2cd609f2993edf6ca8656963f-export declare const values: any;\n","impliedNodeFormat":1}],"options":{"target":7},"semanticDiagnosticsPerFile":[[3,[{"pos":32,"end":40,"code":2550,"category":1,"messageKey":"Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550","messageArgs":["toSorted","number[]","es2023"]}]]],"affectedFilesPendingEmit":[3]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./a.ts" + ], + "original": 3 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "lib.es2020.full.d.ts", + "./a.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.es2020.full.d.ts", + "version": "39b6b52e4bfc36fd6d892df73c38abe0-/// \n/// ", + "signature": "39b6b52e4bfc36fd6d892df73c38abe0-/// \n/// ", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./a.ts", + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "c31aa5c2cd609f2993edf6ca8656963f-export declare const values: any;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "c31aa5c2cd609f2993edf6ca8656963f-export declare const values: any;\n", + "impliedNodeFormat": 1 + } + } + ], + "options": { + "target": 7 + }, + "semanticDiagnosticsPerFile": [ + [ + "./a.ts", + [ + { + "pos": 32, + "end": 40, + "code": 2550, + "category": 1, + "messageKey": "Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550", + "messageArgs": [ + "toSorted", + "number[]", + "es2023" + ] + } + ] + ] + ], + "affectedFilesPendingEmit": [ + [ + "./a.ts", + "Js", + 3 + ] + ], + "size": 1489 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.es2020.full.d.ts +*refresh* /home/src/workspaces/project/a.ts +Signatures:: +(used version) /home/src/tslibs/TS/Lib/lib.es2020.full.d.ts +(computed .d.ts) /home/src/workspaces/project/a.ts + + +Edit [4]:: no change + +tsgo --singleThreaded +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +a.ts:1:33 - error TS2550: Property 'toSorted' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + +1 export const values = [3, 1, 2].toSorted(); +   ~~~~~~~~ + + +Found 1 error in a.ts:1 + + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: + + +Edit [5]:: restore target +//// [/home/src/workspaces/project/tsconfig.json] *modified* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"target":"esnext"},"files":["a.ts"]} + +tsgo --singleThreaded +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[5],"fileNames":["lib.es5.d.ts","lib.es2026.array.d.ts","lib.decorators.d.ts","lib.esnext.full.d.ts","./a.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}","affectsGlobalScope":true,"impliedNodeFormat":1},"7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};","5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ",{"version":"b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();","signature":"38b21ab127214358ce1b4ec5bf7acbed-export declare const values: number[];\n","impliedNodeFormat":1}],"options":{"target":99},"affectedFilesPendingEmit":[5]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./a.ts" + ], + "original": 5 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "lib.es2026.array.d.ts", + "lib.decorators.d.ts", + "lib.esnext.full.d.ts", + "./a.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.es2026.array.d.ts", + "version": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "signature": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.decorators.d.ts", + "version": "7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};", + "signature": "7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "lib.esnext.full.d.ts", + "version": "5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ", + "signature": "5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./a.ts", + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "38b21ab127214358ce1b4ec5bf7acbed-export declare const values: number[];\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "38b21ab127214358ce1b4ec5bf7acbed-export declare const values: number[];\n", + "impliedNodeFormat": 1 + } + } + ], + "options": { + "target": 99 + }, + "affectedFilesPendingEmit": [ + [ + "./a.ts", + "Js", + 5 + ] + ], + "size": 1638 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.array.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.decorators.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.esnext.full.d.ts +*refresh* /home/src/workspaces/project/a.ts +Signatures:: +(used version) /home/src/tslibs/TS/Lib/lib.es2026.array.d.ts +(used version) /home/src/tslibs/TS/Lib/lib.decorators.d.ts +(used version) /home/src/tslibs/TS/Lib/lib.esnext.full.d.ts +(computed .d.ts) /home/src/workspaces/project/a.ts + + +Edit [6]:: no change + +tsgo --singleThreaded +ExitStatus:: Success +Output:: + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: diff --git a/tsc/testdata/baselines/reference/tsc/incremental/lib-and-target-changes-delete-mixed-library-files.js b/tsc/testdata/baselines/reference/tsc/incremental/lib-and-target-changes-delete-mixed-library-files.js new file mode 100644 index 0000000000000..52f7dc22c8e1a --- /dev/null +++ b/tsc/testdata/baselines/reference/tsc/incremental/lib-and-target-changes-delete-mixed-library-files.js @@ -0,0 +1,605 @@ +currentDirectory::/home/src/workspaces/project +useCaseSensitiveFileNames::true +Input:: +//// [/home/src/tslibs/TS/Lib/lib.decorators.d.ts] *new* +/// +export {}; +//// [/home/src/tslibs/TS/Lib/lib.es2020.d.ts] *new* +/// +/// +//// [/home/src/tslibs/TS/Lib/lib.es2020.full.d.ts] *new* +/// +/// +//// [/home/src/tslibs/TS/Lib/lib.es2026.array.d.ts] *new* +/// +interface Array { + toSorted(): T[]; +} +//// [/home/src/tslibs/TS/Lib/lib.es5.d.ts] *new* +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } +interface ReadonlyArray {} +interface SymbolConstructor { + (desc?: string | number): symbol; + for(name: string): symbol; + readonly toStringTag: symbol; +} +declare var Symbol: SymbolConstructor; +interface Symbol { + readonly [Symbol.toStringTag]: string; +} +declare const console: { log(msg: any): void; }; +//// [/home/src/tslibs/TS/Lib/lib.esnext.full.d.ts] *new* +/// +/// +/// +/// +//// [/home/src/workspaces/project/a.ts] *new* +export const values = [3, 1, 2].toSorted(); +//// [/home/src/workspaces/project/tsconfig.json] *new* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"target":"esnext"},"files":["a.ts"]} + +tsgo +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *new* +{"version":"FakeTSVersion","root":[5],"fileNames":["lib.es5.d.ts","lib.es2026.array.d.ts","lib.decorators.d.ts","lib.esnext.full.d.ts","./a.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}","affectsGlobalScope":true,"impliedNodeFormat":1},"7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};","5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ","b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();"],"options":{"target":99},"affectedFilesPendingEmit":[5]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *new* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./a.ts" + ], + "original": 5 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "lib.es2026.array.d.ts", + "lib.decorators.d.ts", + "lib.esnext.full.d.ts", + "./a.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.es2026.array.d.ts", + "version": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "signature": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.decorators.d.ts", + "version": "7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};", + "signature": "7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "lib.esnext.full.d.ts", + "version": "5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ", + "signature": "5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./a.ts", + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "impliedNodeFormat": "CommonJS" + } + ], + "options": { + "target": 99 + }, + "affectedFilesPendingEmit": [ + [ + "./a.ts", + "Js", + 5 + ] + ], + "size": 1516 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.array.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.decorators.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.esnext.full.d.ts +*refresh* /home/src/workspaces/project/a.ts +Signatures:: + + +Edit [0]:: narrow lib +//// [/home/src/workspaces/project/tsconfig.json] *modified* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"target":"esnext","lib":["es2020"]},"files":["a.ts"]} + +tsgo +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +a.ts:1:33 - error TS2550: Property 'toSorted' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + +1 export const values = [3, 1, 2].toSorted(); +   ~~~~~~~~ + + +Found 1 error in a.ts:1 + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[3],"fileNames":["lib.es5.d.ts","lib.es2020.d.ts","./a.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},"39b6b52e4bfc36fd6d892df73c38abe0-/// \n/// ",{"version":"b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();","signature":"c31aa5c2cd609f2993edf6ca8656963f-export declare const values: any;\n","impliedNodeFormat":1}],"options":{"target":99},"semanticDiagnosticsPerFile":[[3,[{"pos":32,"end":40,"code":2550,"category":1,"messageKey":"Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550","messageArgs":["toSorted","number[]","es2023"]}]]],"affectedFilesPendingEmit":[3]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./a.ts" + ], + "original": 3 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "lib.es2020.d.ts", + "./a.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.es2020.d.ts", + "version": "39b6b52e4bfc36fd6d892df73c38abe0-/// \n/// ", + "signature": "39b6b52e4bfc36fd6d892df73c38abe0-/// \n/// ", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./a.ts", + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "c31aa5c2cd609f2993edf6ca8656963f-export declare const values: any;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "c31aa5c2cd609f2993edf6ca8656963f-export declare const values: any;\n", + "impliedNodeFormat": 1 + } + } + ], + "options": { + "target": 99 + }, + "semanticDiagnosticsPerFile": [ + [ + "./a.ts", + [ + { + "pos": 32, + "end": 40, + "code": 2550, + "category": 1, + "messageKey": "Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550", + "messageArgs": [ + "toSorted", + "number[]", + "es2023" + ] + } + ] + ] + ], + "affectedFilesPendingEmit": [ + [ + "./a.ts", + "Js", + 3 + ] + ], + "size": 1485 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.es2020.d.ts +*refresh* /home/src/workspaces/project/a.ts +Signatures:: +(used version) /home/src/tslibs/TS/Lib/lib.es2020.d.ts +(computed .d.ts) /home/src/workspaces/project/a.ts + + +Edit [1]:: no change + +tsgo +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +a.ts:1:33 - error TS2550: Property 'toSorted' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + +1 export const values = [3, 1, 2].toSorted(); +   ~~~~~~~~ + + +Found 1 error in a.ts:1 + + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: + + +Edit [2]:: restore lib +//// [/home/src/workspaces/project/tsconfig.json] *modified* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"target":"esnext"},"files":["a.ts"]} + +tsgo +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[5],"fileNames":["lib.es5.d.ts","lib.es2026.array.d.ts","lib.decorators.d.ts","lib.esnext.full.d.ts","./a.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}","affectsGlobalScope":true,"impliedNodeFormat":1},"7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};","5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ",{"version":"b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();","signature":"38b21ab127214358ce1b4ec5bf7acbed-export declare const values: number[];\n","impliedNodeFormat":1}],"options":{"target":99},"affectedFilesPendingEmit":[5]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./a.ts" + ], + "original": 5 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "lib.es2026.array.d.ts", + "lib.decorators.d.ts", + "lib.esnext.full.d.ts", + "./a.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.es2026.array.d.ts", + "version": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "signature": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.decorators.d.ts", + "version": "7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};", + "signature": "7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "lib.esnext.full.d.ts", + "version": "5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ", + "signature": "5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./a.ts", + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "38b21ab127214358ce1b4ec5bf7acbed-export declare const values: number[];\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "38b21ab127214358ce1b4ec5bf7acbed-export declare const values: number[];\n", + "impliedNodeFormat": 1 + } + } + ], + "options": { + "target": 99 + }, + "affectedFilesPendingEmit": [ + [ + "./a.ts", + "Js", + 5 + ] + ], + "size": 1638 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.array.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.decorators.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.esnext.full.d.ts +*refresh* /home/src/workspaces/project/a.ts +Signatures:: +(used version) /home/src/tslibs/TS/Lib/lib.es2026.array.d.ts +(used version) /home/src/tslibs/TS/Lib/lib.decorators.d.ts +(used version) /home/src/tslibs/TS/Lib/lib.esnext.full.d.ts +(computed .d.ts) /home/src/workspaces/project/a.ts + + +Edit [3]:: narrow target +//// [/home/src/workspaces/project/tsconfig.json] *modified* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"target":"es2020"},"files":["a.ts"]} + +tsgo +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +a.ts:1:33 - error TS2550: Property 'toSorted' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + +1 export const values = [3, 1, 2].toSorted(); +   ~~~~~~~~ + + +Found 1 error in a.ts:1 + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[3],"fileNames":["lib.es5.d.ts","lib.es2020.full.d.ts","./a.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},"39b6b52e4bfc36fd6d892df73c38abe0-/// \n/// ",{"version":"b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();","signature":"c31aa5c2cd609f2993edf6ca8656963f-export declare const values: any;\n","impliedNodeFormat":1}],"options":{"target":7},"semanticDiagnosticsPerFile":[[3,[{"pos":32,"end":40,"code":2550,"category":1,"messageKey":"Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550","messageArgs":["toSorted","number[]","es2023"]}]]],"affectedFilesPendingEmit":[3]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./a.ts" + ], + "original": 3 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "lib.es2020.full.d.ts", + "./a.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.es2020.full.d.ts", + "version": "39b6b52e4bfc36fd6d892df73c38abe0-/// \n/// ", + "signature": "39b6b52e4bfc36fd6d892df73c38abe0-/// \n/// ", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./a.ts", + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "c31aa5c2cd609f2993edf6ca8656963f-export declare const values: any;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "c31aa5c2cd609f2993edf6ca8656963f-export declare const values: any;\n", + "impliedNodeFormat": 1 + } + } + ], + "options": { + "target": 7 + }, + "semanticDiagnosticsPerFile": [ + [ + "./a.ts", + [ + { + "pos": 32, + "end": 40, + "code": 2550, + "category": 1, + "messageKey": "Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550", + "messageArgs": [ + "toSorted", + "number[]", + "es2023" + ] + } + ] + ] + ], + "affectedFilesPendingEmit": [ + [ + "./a.ts", + "Js", + 3 + ] + ], + "size": 1489 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.es2020.full.d.ts +*refresh* /home/src/workspaces/project/a.ts +Signatures:: +(used version) /home/src/tslibs/TS/Lib/lib.es2020.full.d.ts +(computed .d.ts) /home/src/workspaces/project/a.ts + + +Edit [4]:: no change + +tsgo +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +a.ts:1:33 - error TS2550: Property 'toSorted' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2023' or later. + +1 export const values = [3, 1, 2].toSorted(); +   ~~~~~~~~ + + +Found 1 error in a.ts:1 + + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: + + +Edit [5]:: restore target +//// [/home/src/workspaces/project/tsconfig.json] *modified* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"target":"esnext"},"files":["a.ts"]} + +tsgo +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[5],"fileNames":["lib.es5.d.ts","lib.es2026.array.d.ts","lib.decorators.d.ts","lib.esnext.full.d.ts","./a.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}","affectsGlobalScope":true,"impliedNodeFormat":1},"7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};","5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ",{"version":"b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();","signature":"38b21ab127214358ce1b4ec5bf7acbed-export declare const values: number[];\n","impliedNodeFormat":1}],"options":{"target":99},"affectedFilesPendingEmit":[5]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./a.ts" + ], + "original": 5 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "lib.es2026.array.d.ts", + "lib.decorators.d.ts", + "lib.esnext.full.d.ts", + "./a.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.es2026.array.d.ts", + "version": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "signature": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "e91cd068d41015559cda423626d75b7a-/// \ninterface Array {\n toSorted(): T[];\n}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "lib.decorators.d.ts", + "version": "7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};", + "signature": "7391cbbbaadf784b1dca43ffe8f0eaee-/// \nexport {};", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "lib.esnext.full.d.ts", + "version": "5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ", + "signature": "5ecdc3e6174a78a8b8d9150f692c3942-/// \n/// \n/// \n/// ", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./a.ts", + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "38b21ab127214358ce1b4ec5bf7acbed-export declare const values: number[];\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b31fbc1eb463bbe84b7bbcf331cb31f2-export const values = [3, 1, 2].toSorted();", + "signature": "38b21ab127214358ce1b4ec5bf7acbed-export declare const values: number[];\n", + "impliedNodeFormat": 1 + } + } + ], + "options": { + "target": 99 + }, + "affectedFilesPendingEmit": [ + [ + "./a.ts", + "Js", + 5 + ] + ], + "size": 1638 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.array.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.decorators.d.ts +*refresh* /home/src/tslibs/TS/Lib/lib.esnext.full.d.ts +*refresh* /home/src/workspaces/project/a.ts +Signatures:: +(used version) /home/src/tslibs/TS/Lib/lib.es2026.array.d.ts +(used version) /home/src/tslibs/TS/Lib/lib.decorators.d.ts +(used version) /home/src/tslibs/TS/Lib/lib.esnext.full.d.ts +(computed .d.ts) /home/src/workspaces/project/a.ts + + +Edit [6]:: no change + +tsgo +ExitStatus:: Success +Output:: + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: diff --git a/tsc/testdata/baselines/reference/tsc/incremental/mixed-file-deletion-with-add-and-change-with-one-checker.js b/tsc/testdata/baselines/reference/tsc/incremental/mixed-file-deletion-with-add-and-change-with-one-checker.js new file mode 100644 index 0000000000000..3b82b5b3dfc01 --- /dev/null +++ b/tsc/testdata/baselines/reference/tsc/incremental/mixed-file-deletion-with-add-and-change-with-one-checker.js @@ -0,0 +1,538 @@ +currentDirectory::/home/src/workspaces/project +useCaseSensitiveFileNames::true +Input:: +//// [/home/src/workspaces/project/changed.ts] *new* +export const changed = 1; +//// [/home/src/workspaces/project/consumer.ts] *new* +declare const value: RemovedGlobal; value.property; +//// [/home/src/workspaces/project/global.d.ts] *new* +interface RemovedGlobal { property: string; } +//// [/home/src/workspaces/project/module.d.ts] *new* +export interface ModuleOnly { property: string; } +//// [/home/src/workspaces/project/tsconfig.json] *new* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[]}} + +tsgo --checkers 1 +ExitStatus:: Success +Output:: +//// [/home/src/tslibs/TS/Lib/lib.es2026.full.d.ts] *Lib* +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } +interface ReadonlyArray {} +interface SymbolConstructor { + (desc?: string | number): symbol; + for(name: string): symbol; + readonly toStringTag: symbol; +} +declare var Symbol: SymbolConstructor; +interface Symbol { + readonly [Symbol.toStringTag]: string; +} +declare const console: { log(msg: any): void; }; +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *new* +{"version":"FakeTSVersion","root":[[2,5]],"fileNames":["lib.es2026.full.d.ts","./changed.ts","./consumer.ts","./global.d.ts","./module.d.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},"9d2a101c0350d55f00e7c4ae056043d2-export const changed = 1;",{"version":"711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"430549e1c6d26f4d8c1c2cd8e816a4f6-interface RemovedGlobal { property: string; }","affectsGlobalScope":true,"impliedNodeFormat":1},"32f3c5c4ba107efb87a0650f87405cd2-export interface ModuleOnly { property: string; }"],"affectedFilesPendingEmit":[2,3]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *new* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./changed.ts", + "./consumer.ts", + "./global.d.ts", + "./module.d.ts" + ], + "original": [ + 2, + 5 + ] + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./changed.ts", + "./consumer.ts", + "./global.d.ts", + "./module.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./changed.ts", + "version": "9d2a101c0350d55f00e7c4ae056043d2-export const changed = 1;", + "signature": "9d2a101c0350d55f00e7c4ae056043d2-export const changed = 1;", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./consumer.ts", + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./global.d.ts", + "version": "430549e1c6d26f4d8c1c2cd8e816a4f6-interface RemovedGlobal { property: string; }", + "signature": "430549e1c6d26f4d8c1c2cd8e816a4f6-interface RemovedGlobal { property: string; }", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "430549e1c6d26f4d8c1c2cd8e816a4f6-interface RemovedGlobal { property: string; }", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./module.d.ts", + "version": "32f3c5c4ba107efb87a0650f87405cd2-export interface ModuleOnly { property: string; }", + "signature": "32f3c5c4ba107efb87a0650f87405cd2-export interface ModuleOnly { property: string; }", + "impliedNodeFormat": "CommonJS" + } + ], + "affectedFilesPendingEmit": [ + [ + "./changed.ts", + "Js", + 2 + ], + [ + "./consumer.ts", + "Js", + 3 + ] + ], + "size": 1393 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.full.d.ts +*refresh* /home/src/workspaces/project/changed.ts +*refresh* /home/src/workspaces/project/consumer.ts +*refresh* /home/src/workspaces/project/global.d.ts +*refresh* /home/src/workspaces/project/module.d.ts +Signatures:: + + +Edit [0]:: delete global and non-global files while adding and changing sources +//// [/home/src/workspaces/project/added.ts] *new* +export const added = 1; +//// [/home/src/workspaces/project/changed.ts] *modified* +export const changed = 2; +//// [/home/src/workspaces/project/global.d.ts] *deleted* +//// [/home/src/workspaces/project/module.d.ts] *deleted* + +tsgo --checkers 1 +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +consumer.ts:1:22 - error TS2304: Cannot find name 'RemovedGlobal'. + +1 declare const value: RemovedGlobal; value.property; +   ~~~~~~~~~~~~~ + + +Found 1 error in consumer.ts:1 + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[[2,4]],"fileNames":["lib.es2026.full.d.ts","./added.ts","./changed.ts","./consumer.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a87a44fe8d16410f017e19282f488646-export const added = 1;","signature":"46dd870c2a50187f4e57de30251b5cdf-export declare const added = 1;\n","impliedNodeFormat":1},{"version":"d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;","signature":"d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n","impliedNodeFormat":1},{"version":"711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;","signature":"0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n","affectsGlobalScope":true,"impliedNodeFormat":1}],"semanticDiagnosticsPerFile":[[4,[{"pos":21,"end":34,"code":2304,"category":1,"messageKey":"Cannot_find_name_0_2304","messageArgs":["RemovedGlobal"]}]]],"affectedFilesPendingEmit":[2,3,4]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./added.ts", + "./changed.ts", + "./consumer.ts" + ], + "original": [ + 2, + 4 + ] + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./added.ts", + "./changed.ts", + "./consumer.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./added.ts", + "version": "a87a44fe8d16410f017e19282f488646-export const added = 1;", + "signature": "46dd870c2a50187f4e57de30251b5cdf-export declare const added = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a87a44fe8d16410f017e19282f488646-export const added = 1;", + "signature": "46dd870c2a50187f4e57de30251b5cdf-export declare const added = 1;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./changed.ts", + "version": "d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;", + "signature": "d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;", + "signature": "d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + } + ], + "semanticDiagnosticsPerFile": [ + [ + "./consumer.ts", + [ + { + "pos": 21, + "end": 34, + "code": 2304, + "category": 1, + "messageKey": "Cannot_find_name_0_2304", + "messageArgs": [ + "RemovedGlobal" + ] + } + ] + ] + ], + "affectedFilesPendingEmit": [ + [ + "./added.ts", + "Js", + 2 + ], + [ + "./changed.ts", + "Js", + 3 + ], + [ + "./consumer.ts", + "Js", + 4 + ] + ], + "size": 1679 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.full.d.ts +*refresh* /home/src/workspaces/project/added.ts +*refresh* /home/src/workspaces/project/changed.ts +*refresh* /home/src/workspaces/project/consumer.ts +Signatures:: +(computed .d.ts) /home/src/workspaces/project/added.ts +(computed .d.ts) /home/src/workspaces/project/changed.ts +(computed .d.ts) /home/src/workspaces/project/consumer.ts + + +Edit [1]:: no change + +tsgo --checkers 1 +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +consumer.ts:1:22 - error TS2304: Cannot find name 'RemovedGlobal'. + +1 declare const value: RemovedGlobal; value.property; +   ~~~~~~~~~~~~~ + + +Found 1 error in consumer.ts:1 + + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: + + +Edit [2]:: restore global file +//// [/home/src/workspaces/project/global.d.ts] *new* +interface RemovedGlobal { property: number; } + +tsgo --checkers 1 +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[[2,5]],"fileNames":["lib.es2026.full.d.ts","./added.ts","./changed.ts","./consumer.ts","./global.d.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a87a44fe8d16410f017e19282f488646-export const added = 1;","signature":"46dd870c2a50187f4e57de30251b5cdf-export declare const added = 1;\n","impliedNodeFormat":1},{"version":"d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;","signature":"d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n","impliedNodeFormat":1},{"version":"711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;","signature":"0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }","affectsGlobalScope":true,"impliedNodeFormat":1}],"affectedFilesPendingEmit":[2,3,4]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./added.ts", + "./changed.ts", + "./consumer.ts", + "./global.d.ts" + ], + "original": [ + 2, + 5 + ] + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./added.ts", + "./changed.ts", + "./consumer.ts", + "./global.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./added.ts", + "version": "a87a44fe8d16410f017e19282f488646-export const added = 1;", + "signature": "46dd870c2a50187f4e57de30251b5cdf-export declare const added = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a87a44fe8d16410f017e19282f488646-export const added = 1;", + "signature": "46dd870c2a50187f4e57de30251b5cdf-export declare const added = 1;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./changed.ts", + "version": "d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;", + "signature": "d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;", + "signature": "d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./global.d.ts", + "version": "a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }", + "signature": "a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + } + ], + "affectedFilesPendingEmit": [ + [ + "./added.ts", + "Js", + 2 + ], + [ + "./changed.ts", + "Js", + 3 + ], + [ + "./consumer.ts", + "Js", + 4 + ] + ], + "size": 1683 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.full.d.ts +*refresh* /home/src/workspaces/project/added.ts +*refresh* /home/src/workspaces/project/changed.ts +*refresh* /home/src/workspaces/project/consumer.ts +*refresh* /home/src/workspaces/project/global.d.ts +Signatures:: +(computed .d.ts) /home/src/workspaces/project/added.ts +(computed .d.ts) /home/src/workspaces/project/changed.ts +(computed .d.ts) /home/src/workspaces/project/consumer.ts +(used version) /home/src/workspaces/project/global.d.ts + + +Edit [3]:: delete ordinary source file +//// [/home/src/workspaces/project/added.ts] *deleted* + +tsgo --checkers 1 +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[[2,4]],"fileNames":["lib.es2026.full.d.ts","./changed.ts","./consumer.ts","./global.d.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;","signature":"d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n","impliedNodeFormat":1},{"version":"711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;","signature":"0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }","affectsGlobalScope":true,"impliedNodeFormat":1}],"affectedFilesPendingEmit":[2,3]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./changed.ts", + "./consumer.ts", + "./global.d.ts" + ], + "original": [ + 2, + 4 + ] + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./changed.ts", + "./consumer.ts", + "./global.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./changed.ts", + "version": "d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;", + "signature": "d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;", + "signature": "d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./global.d.ts", + "version": "a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }", + "signature": "a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + } + ], + "affectedFilesPendingEmit": [ + [ + "./changed.ts", + "Js", + 2 + ], + [ + "./consumer.ts", + "Js", + 3 + ] + ], + "size": 1494 +} + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: + + +Edit [4]:: no change + +tsgo --checkers 1 +ExitStatus:: Success +Output:: + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: diff --git a/tsc/testdata/baselines/reference/tsc/incremental/mixed-file-deletion-with-add-and-change-with-single-threaded.js b/tsc/testdata/baselines/reference/tsc/incremental/mixed-file-deletion-with-add-and-change-with-single-threaded.js new file mode 100644 index 0000000000000..bb0c0f2a8f9cd --- /dev/null +++ b/tsc/testdata/baselines/reference/tsc/incremental/mixed-file-deletion-with-add-and-change-with-single-threaded.js @@ -0,0 +1,538 @@ +currentDirectory::/home/src/workspaces/project +useCaseSensitiveFileNames::true +Input:: +//// [/home/src/workspaces/project/changed.ts] *new* +export const changed = 1; +//// [/home/src/workspaces/project/consumer.ts] *new* +declare const value: RemovedGlobal; value.property; +//// [/home/src/workspaces/project/global.d.ts] *new* +interface RemovedGlobal { property: string; } +//// [/home/src/workspaces/project/module.d.ts] *new* +export interface ModuleOnly { property: string; } +//// [/home/src/workspaces/project/tsconfig.json] *new* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[]}} + +tsgo --singleThreaded +ExitStatus:: Success +Output:: +//// [/home/src/tslibs/TS/Lib/lib.es2026.full.d.ts] *Lib* +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } +interface ReadonlyArray {} +interface SymbolConstructor { + (desc?: string | number): symbol; + for(name: string): symbol; + readonly toStringTag: symbol; +} +declare var Symbol: SymbolConstructor; +interface Symbol { + readonly [Symbol.toStringTag]: string; +} +declare const console: { log(msg: any): void; }; +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *new* +{"version":"FakeTSVersion","root":[[2,5]],"fileNames":["lib.es2026.full.d.ts","./changed.ts","./consumer.ts","./global.d.ts","./module.d.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},"9d2a101c0350d55f00e7c4ae056043d2-export const changed = 1;",{"version":"711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"430549e1c6d26f4d8c1c2cd8e816a4f6-interface RemovedGlobal { property: string; }","affectsGlobalScope":true,"impliedNodeFormat":1},"32f3c5c4ba107efb87a0650f87405cd2-export interface ModuleOnly { property: string; }"],"affectedFilesPendingEmit":[2,3]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *new* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./changed.ts", + "./consumer.ts", + "./global.d.ts", + "./module.d.ts" + ], + "original": [ + 2, + 5 + ] + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./changed.ts", + "./consumer.ts", + "./global.d.ts", + "./module.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./changed.ts", + "version": "9d2a101c0350d55f00e7c4ae056043d2-export const changed = 1;", + "signature": "9d2a101c0350d55f00e7c4ae056043d2-export const changed = 1;", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./consumer.ts", + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./global.d.ts", + "version": "430549e1c6d26f4d8c1c2cd8e816a4f6-interface RemovedGlobal { property: string; }", + "signature": "430549e1c6d26f4d8c1c2cd8e816a4f6-interface RemovedGlobal { property: string; }", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "430549e1c6d26f4d8c1c2cd8e816a4f6-interface RemovedGlobal { property: string; }", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./module.d.ts", + "version": "32f3c5c4ba107efb87a0650f87405cd2-export interface ModuleOnly { property: string; }", + "signature": "32f3c5c4ba107efb87a0650f87405cd2-export interface ModuleOnly { property: string; }", + "impliedNodeFormat": "CommonJS" + } + ], + "affectedFilesPendingEmit": [ + [ + "./changed.ts", + "Js", + 2 + ], + [ + "./consumer.ts", + "Js", + 3 + ] + ], + "size": 1393 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.full.d.ts +*refresh* /home/src/workspaces/project/changed.ts +*refresh* /home/src/workspaces/project/consumer.ts +*refresh* /home/src/workspaces/project/global.d.ts +*refresh* /home/src/workspaces/project/module.d.ts +Signatures:: + + +Edit [0]:: delete global and non-global files while adding and changing sources +//// [/home/src/workspaces/project/added.ts] *new* +export const added = 1; +//// [/home/src/workspaces/project/changed.ts] *modified* +export const changed = 2; +//// [/home/src/workspaces/project/global.d.ts] *deleted* +//// [/home/src/workspaces/project/module.d.ts] *deleted* + +tsgo --singleThreaded +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +consumer.ts:1:22 - error TS2304: Cannot find name 'RemovedGlobal'. + +1 declare const value: RemovedGlobal; value.property; +   ~~~~~~~~~~~~~ + + +Found 1 error in consumer.ts:1 + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[[2,4]],"fileNames":["lib.es2026.full.d.ts","./added.ts","./changed.ts","./consumer.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a87a44fe8d16410f017e19282f488646-export const added = 1;","signature":"46dd870c2a50187f4e57de30251b5cdf-export declare const added = 1;\n","impliedNodeFormat":1},{"version":"d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;","signature":"d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n","impliedNodeFormat":1},{"version":"711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;","signature":"0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n","affectsGlobalScope":true,"impliedNodeFormat":1}],"semanticDiagnosticsPerFile":[[4,[{"pos":21,"end":34,"code":2304,"category":1,"messageKey":"Cannot_find_name_0_2304","messageArgs":["RemovedGlobal"]}]]],"affectedFilesPendingEmit":[2,3,4]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./added.ts", + "./changed.ts", + "./consumer.ts" + ], + "original": [ + 2, + 4 + ] + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./added.ts", + "./changed.ts", + "./consumer.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./added.ts", + "version": "a87a44fe8d16410f017e19282f488646-export const added = 1;", + "signature": "46dd870c2a50187f4e57de30251b5cdf-export declare const added = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a87a44fe8d16410f017e19282f488646-export const added = 1;", + "signature": "46dd870c2a50187f4e57de30251b5cdf-export declare const added = 1;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./changed.ts", + "version": "d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;", + "signature": "d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;", + "signature": "d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + } + ], + "semanticDiagnosticsPerFile": [ + [ + "./consumer.ts", + [ + { + "pos": 21, + "end": 34, + "code": 2304, + "category": 1, + "messageKey": "Cannot_find_name_0_2304", + "messageArgs": [ + "RemovedGlobal" + ] + } + ] + ] + ], + "affectedFilesPendingEmit": [ + [ + "./added.ts", + "Js", + 2 + ], + [ + "./changed.ts", + "Js", + 3 + ], + [ + "./consumer.ts", + "Js", + 4 + ] + ], + "size": 1679 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.full.d.ts +*refresh* /home/src/workspaces/project/added.ts +*refresh* /home/src/workspaces/project/changed.ts +*refresh* /home/src/workspaces/project/consumer.ts +Signatures:: +(computed .d.ts) /home/src/workspaces/project/added.ts +(computed .d.ts) /home/src/workspaces/project/changed.ts +(computed .d.ts) /home/src/workspaces/project/consumer.ts + + +Edit [1]:: no change + +tsgo --singleThreaded +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +consumer.ts:1:22 - error TS2304: Cannot find name 'RemovedGlobal'. + +1 declare const value: RemovedGlobal; value.property; +   ~~~~~~~~~~~~~ + + +Found 1 error in consumer.ts:1 + + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: + + +Edit [2]:: restore global file +//// [/home/src/workspaces/project/global.d.ts] *new* +interface RemovedGlobal { property: number; } + +tsgo --singleThreaded +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[[2,5]],"fileNames":["lib.es2026.full.d.ts","./added.ts","./changed.ts","./consumer.ts","./global.d.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a87a44fe8d16410f017e19282f488646-export const added = 1;","signature":"46dd870c2a50187f4e57de30251b5cdf-export declare const added = 1;\n","impliedNodeFormat":1},{"version":"d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;","signature":"d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n","impliedNodeFormat":1},{"version":"711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;","signature":"0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }","affectsGlobalScope":true,"impliedNodeFormat":1}],"affectedFilesPendingEmit":[2,3,4]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./added.ts", + "./changed.ts", + "./consumer.ts", + "./global.d.ts" + ], + "original": [ + 2, + 5 + ] + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./added.ts", + "./changed.ts", + "./consumer.ts", + "./global.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./added.ts", + "version": "a87a44fe8d16410f017e19282f488646-export const added = 1;", + "signature": "46dd870c2a50187f4e57de30251b5cdf-export declare const added = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a87a44fe8d16410f017e19282f488646-export const added = 1;", + "signature": "46dd870c2a50187f4e57de30251b5cdf-export declare const added = 1;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./changed.ts", + "version": "d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;", + "signature": "d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;", + "signature": "d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./global.d.ts", + "version": "a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }", + "signature": "a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + } + ], + "affectedFilesPendingEmit": [ + [ + "./added.ts", + "Js", + 2 + ], + [ + "./changed.ts", + "Js", + 3 + ], + [ + "./consumer.ts", + "Js", + 4 + ] + ], + "size": 1683 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.full.d.ts +*refresh* /home/src/workspaces/project/added.ts +*refresh* /home/src/workspaces/project/changed.ts +*refresh* /home/src/workspaces/project/consumer.ts +*refresh* /home/src/workspaces/project/global.d.ts +Signatures:: +(computed .d.ts) /home/src/workspaces/project/added.ts +(computed .d.ts) /home/src/workspaces/project/changed.ts +(computed .d.ts) /home/src/workspaces/project/consumer.ts +(used version) /home/src/workspaces/project/global.d.ts + + +Edit [3]:: delete ordinary source file +//// [/home/src/workspaces/project/added.ts] *deleted* + +tsgo --singleThreaded +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[[2,4]],"fileNames":["lib.es2026.full.d.ts","./changed.ts","./consumer.ts","./global.d.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;","signature":"d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n","impliedNodeFormat":1},{"version":"711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;","signature":"0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }","affectsGlobalScope":true,"impliedNodeFormat":1}],"affectedFilesPendingEmit":[2,3]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./changed.ts", + "./consumer.ts", + "./global.d.ts" + ], + "original": [ + 2, + 4 + ] + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./changed.ts", + "./consumer.ts", + "./global.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./changed.ts", + "version": "d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;", + "signature": "d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;", + "signature": "d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./global.d.ts", + "version": "a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }", + "signature": "a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + } + ], + "affectedFilesPendingEmit": [ + [ + "./changed.ts", + "Js", + 2 + ], + [ + "./consumer.ts", + "Js", + 3 + ] + ], + "size": 1494 +} + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: + + +Edit [4]:: no change + +tsgo --singleThreaded +ExitStatus:: Success +Output:: + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: diff --git a/tsc/testdata/baselines/reference/tsc/incremental/mixed-file-deletion-with-add-and-change.js b/tsc/testdata/baselines/reference/tsc/incremental/mixed-file-deletion-with-add-and-change.js new file mode 100644 index 0000000000000..c3ec5908cf40d --- /dev/null +++ b/tsc/testdata/baselines/reference/tsc/incremental/mixed-file-deletion-with-add-and-change.js @@ -0,0 +1,538 @@ +currentDirectory::/home/src/workspaces/project +useCaseSensitiveFileNames::true +Input:: +//// [/home/src/workspaces/project/changed.ts] *new* +export const changed = 1; +//// [/home/src/workspaces/project/consumer.ts] *new* +declare const value: RemovedGlobal; value.property; +//// [/home/src/workspaces/project/global.d.ts] *new* +interface RemovedGlobal { property: string; } +//// [/home/src/workspaces/project/module.d.ts] *new* +export interface ModuleOnly { property: string; } +//// [/home/src/workspaces/project/tsconfig.json] *new* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[]}} + +tsgo +ExitStatus:: Success +Output:: +//// [/home/src/tslibs/TS/Lib/lib.es2026.full.d.ts] *Lib* +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } +interface ReadonlyArray {} +interface SymbolConstructor { + (desc?: string | number): symbol; + for(name: string): symbol; + readonly toStringTag: symbol; +} +declare var Symbol: SymbolConstructor; +interface Symbol { + readonly [Symbol.toStringTag]: string; +} +declare const console: { log(msg: any): void; }; +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *new* +{"version":"FakeTSVersion","root":[[2,5]],"fileNames":["lib.es2026.full.d.ts","./changed.ts","./consumer.ts","./global.d.ts","./module.d.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},"9d2a101c0350d55f00e7c4ae056043d2-export const changed = 1;",{"version":"711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"430549e1c6d26f4d8c1c2cd8e816a4f6-interface RemovedGlobal { property: string; }","affectsGlobalScope":true,"impliedNodeFormat":1},"32f3c5c4ba107efb87a0650f87405cd2-export interface ModuleOnly { property: string; }"],"affectedFilesPendingEmit":[2,3]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *new* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./changed.ts", + "./consumer.ts", + "./global.d.ts", + "./module.d.ts" + ], + "original": [ + 2, + 5 + ] + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./changed.ts", + "./consumer.ts", + "./global.d.ts", + "./module.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./changed.ts", + "version": "9d2a101c0350d55f00e7c4ae056043d2-export const changed = 1;", + "signature": "9d2a101c0350d55f00e7c4ae056043d2-export const changed = 1;", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./consumer.ts", + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./global.d.ts", + "version": "430549e1c6d26f4d8c1c2cd8e816a4f6-interface RemovedGlobal { property: string; }", + "signature": "430549e1c6d26f4d8c1c2cd8e816a4f6-interface RemovedGlobal { property: string; }", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "430549e1c6d26f4d8c1c2cd8e816a4f6-interface RemovedGlobal { property: string; }", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./module.d.ts", + "version": "32f3c5c4ba107efb87a0650f87405cd2-export interface ModuleOnly { property: string; }", + "signature": "32f3c5c4ba107efb87a0650f87405cd2-export interface ModuleOnly { property: string; }", + "impliedNodeFormat": "CommonJS" + } + ], + "affectedFilesPendingEmit": [ + [ + "./changed.ts", + "Js", + 2 + ], + [ + "./consumer.ts", + "Js", + 3 + ] + ], + "size": 1393 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.full.d.ts +*refresh* /home/src/workspaces/project/changed.ts +*refresh* /home/src/workspaces/project/consumer.ts +*refresh* /home/src/workspaces/project/global.d.ts +*refresh* /home/src/workspaces/project/module.d.ts +Signatures:: + + +Edit [0]:: delete global and non-global files while adding and changing sources +//// [/home/src/workspaces/project/added.ts] *new* +export const added = 1; +//// [/home/src/workspaces/project/changed.ts] *modified* +export const changed = 2; +//// [/home/src/workspaces/project/global.d.ts] *deleted* +//// [/home/src/workspaces/project/module.d.ts] *deleted* + +tsgo +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +consumer.ts:1:22 - error TS2304: Cannot find name 'RemovedGlobal'. + +1 declare const value: RemovedGlobal; value.property; +   ~~~~~~~~~~~~~ + + +Found 1 error in consumer.ts:1 + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[[2,4]],"fileNames":["lib.es2026.full.d.ts","./added.ts","./changed.ts","./consumer.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a87a44fe8d16410f017e19282f488646-export const added = 1;","signature":"46dd870c2a50187f4e57de30251b5cdf-export declare const added = 1;\n","impliedNodeFormat":1},{"version":"d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;","signature":"d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n","impliedNodeFormat":1},{"version":"711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;","signature":"0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n","affectsGlobalScope":true,"impliedNodeFormat":1}],"semanticDiagnosticsPerFile":[[4,[{"pos":21,"end":34,"code":2304,"category":1,"messageKey":"Cannot_find_name_0_2304","messageArgs":["RemovedGlobal"]}]]],"affectedFilesPendingEmit":[2,3,4]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./added.ts", + "./changed.ts", + "./consumer.ts" + ], + "original": [ + 2, + 4 + ] + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./added.ts", + "./changed.ts", + "./consumer.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./added.ts", + "version": "a87a44fe8d16410f017e19282f488646-export const added = 1;", + "signature": "46dd870c2a50187f4e57de30251b5cdf-export declare const added = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a87a44fe8d16410f017e19282f488646-export const added = 1;", + "signature": "46dd870c2a50187f4e57de30251b5cdf-export declare const added = 1;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./changed.ts", + "version": "d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;", + "signature": "d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;", + "signature": "d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + } + ], + "semanticDiagnosticsPerFile": [ + [ + "./consumer.ts", + [ + { + "pos": 21, + "end": 34, + "code": 2304, + "category": 1, + "messageKey": "Cannot_find_name_0_2304", + "messageArgs": [ + "RemovedGlobal" + ] + } + ] + ] + ], + "affectedFilesPendingEmit": [ + [ + "./added.ts", + "Js", + 2 + ], + [ + "./changed.ts", + "Js", + 3 + ], + [ + "./consumer.ts", + "Js", + 4 + ] + ], + "size": 1679 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.full.d.ts +*refresh* /home/src/workspaces/project/added.ts +*refresh* /home/src/workspaces/project/changed.ts +*refresh* /home/src/workspaces/project/consumer.ts +Signatures:: +(computed .d.ts) /home/src/workspaces/project/added.ts +(computed .d.ts) /home/src/workspaces/project/changed.ts +(computed .d.ts) /home/src/workspaces/project/consumer.ts + + +Edit [1]:: no change + +tsgo +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +consumer.ts:1:22 - error TS2304: Cannot find name 'RemovedGlobal'. + +1 declare const value: RemovedGlobal; value.property; +   ~~~~~~~~~~~~~ + + +Found 1 error in consumer.ts:1 + + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: + + +Edit [2]:: restore global file +//// [/home/src/workspaces/project/global.d.ts] *new* +interface RemovedGlobal { property: number; } + +tsgo +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[[2,5]],"fileNames":["lib.es2026.full.d.ts","./added.ts","./changed.ts","./consumer.ts","./global.d.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a87a44fe8d16410f017e19282f488646-export const added = 1;","signature":"46dd870c2a50187f4e57de30251b5cdf-export declare const added = 1;\n","impliedNodeFormat":1},{"version":"d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;","signature":"d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n","impliedNodeFormat":1},{"version":"711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;","signature":"0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }","affectsGlobalScope":true,"impliedNodeFormat":1}],"affectedFilesPendingEmit":[2,3,4]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./added.ts", + "./changed.ts", + "./consumer.ts", + "./global.d.ts" + ], + "original": [ + 2, + 5 + ] + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./added.ts", + "./changed.ts", + "./consumer.ts", + "./global.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./added.ts", + "version": "a87a44fe8d16410f017e19282f488646-export const added = 1;", + "signature": "46dd870c2a50187f4e57de30251b5cdf-export declare const added = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a87a44fe8d16410f017e19282f488646-export const added = 1;", + "signature": "46dd870c2a50187f4e57de30251b5cdf-export declare const added = 1;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./changed.ts", + "version": "d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;", + "signature": "d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;", + "signature": "d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./global.d.ts", + "version": "a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }", + "signature": "a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + } + ], + "affectedFilesPendingEmit": [ + [ + "./added.ts", + "Js", + 2 + ], + [ + "./changed.ts", + "Js", + 3 + ], + [ + "./consumer.ts", + "Js", + 4 + ] + ], + "size": 1683 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.full.d.ts +*refresh* /home/src/workspaces/project/added.ts +*refresh* /home/src/workspaces/project/changed.ts +*refresh* /home/src/workspaces/project/consumer.ts +*refresh* /home/src/workspaces/project/global.d.ts +Signatures:: +(computed .d.ts) /home/src/workspaces/project/added.ts +(computed .d.ts) /home/src/workspaces/project/changed.ts +(computed .d.ts) /home/src/workspaces/project/consumer.ts +(used version) /home/src/workspaces/project/global.d.ts + + +Edit [3]:: delete ordinary source file +//// [/home/src/workspaces/project/added.ts] *deleted* + +tsgo +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[[2,4]],"fileNames":["lib.es2026.full.d.ts","./changed.ts","./consumer.ts","./global.d.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;","signature":"d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n","impliedNodeFormat":1},{"version":"711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;","signature":"0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }","affectsGlobalScope":true,"impliedNodeFormat":1}],"affectedFilesPendingEmit":[2,3]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./changed.ts", + "./consumer.ts", + "./global.d.ts" + ], + "original": [ + 2, + 4 + ] + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./changed.ts", + "./consumer.ts", + "./global.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./changed.ts", + "version": "d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;", + "signature": "d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "d1d7f56bc999b7e6c4b96679ef1918f0-export const changed = 2;", + "signature": "d8be01a7b5c5ab639707b97a788c0d7f-export declare const changed = 2;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "711b440410fa962704b42a5556c4d4e8-declare const value: RemovedGlobal; value.property;", + "signature": "0e27ca6cf86c8ffaf4064d0ead9b1757-declare const value: RemovedGlobal;\n", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./global.d.ts", + "version": "a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }", + "signature": "a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a874d82c83cb35e137677f9db7c6fc25-interface RemovedGlobal { property: number; }", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + } + ], + "affectedFilesPendingEmit": [ + [ + "./changed.ts", + "Js", + 2 + ], + [ + "./consumer.ts", + "Js", + 3 + ] + ], + "size": 1494 +} + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: + + +Edit [4]:: no change + +tsgo +ExitStatus:: Success +Output:: + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: diff --git a/tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-false-with-one-checker.js b/tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-false-with-one-checker.js new file mode 100644 index 0000000000000..16c97c7e89dbc --- /dev/null +++ b/tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-false-with-one-checker.js @@ -0,0 +1,326 @@ +currentDirectory::/home/src/workspaces/project +useCaseSensitiveFileNames::true +Input:: +//// [/home/src/tslibs/TS/Lib/lib.es5.d.ts] *new* +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } +interface ReadonlyArray {} +interface SymbolConstructor { + (desc?: string | number): symbol; + for(name: string): symbol; + readonly toStringTag: symbol; +} +declare var Symbol: SymbolConstructor; +interface Symbol { + readonly [Symbol.toStringTag]: string; +} +declare const console: { log(msg: any): void; }; +interface LibraryConsumer { property: RemovedGlobal; } +//// [/home/src/workspaces/project/consumer.ts] *new* +export const unchanged = 1; +//// [/home/src/workspaces/project/global.d.ts] *new* +interface RemovedGlobal {} +//// [/home/src/workspaces/project/module.d.ts] *new* +export interface Unrelated {} +//// [/home/src/workspaces/project/tsconfig.json] *new* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"lib":["es5"]}} + +tsgo --checkers 1 +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *new* +{"version":"FakeTSVersion","root":[[2,4]],"fileNames":["lib.es5.d.ts","./consumer.ts","./global.d.ts","./module.d.ts"],"fileInfos":[{"version":"f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }","affectsGlobalScope":true,"impliedNodeFormat":1},"b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;",{"version":"8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}","affectsGlobalScope":true,"impliedNodeFormat":1},"6c520878a353927f50be384ce898a985-export interface Unrelated {}"],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *new* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./consumer.ts", + "./global.d.ts", + "./module.d.ts" + ], + "original": [ + 2, + 4 + ] + } + ], + "fileNames": [ + "lib.es5.d.ts", + "./consumer.ts", + "./global.d.ts", + "./module.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "signature": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./global.d.ts", + "version": "8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}", + "signature": "8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./module.d.ts", + "version": "6c520878a353927f50be384ce898a985-export interface Unrelated {}", + "signature": "6c520878a353927f50be384ce898a985-export interface Unrelated {}", + "impliedNodeFormat": "CommonJS" + } + ], + "affectedFilesPendingEmit": [ + [ + "./consumer.ts", + "Js", + 2 + ] + ], + "size": 1240 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/workspaces/project/consumer.ts +*refresh* /home/src/workspaces/project/global.d.ts +*refresh* /home/src/workspaces/project/module.d.ts +Signatures:: + + +Edit [0]:: delete global and module declarations +//// [/home/src/workspaces/project/global.d.ts] *deleted* +//// [/home/src/workspaces/project/module.d.ts] *deleted* + +tsgo --checkers 1 +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +../../tslibs/TS/Lib/lib.es5.d.ts:23:39 - error TS2304: Cannot find name 'RemovedGlobal'. + +23 interface LibraryConsumer { property: RemovedGlobal; } +   ~~~~~~~~~~~~~ + + +Found 1 error in ../../tslibs/TS/Lib/lib.es5.d.ts:23 + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[2],"fileNames":["lib.es5.d.ts","./consumer.ts"],"fileInfos":[{"version":"f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;","signature":"93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n","impliedNodeFormat":1}],"semanticDiagnosticsPerFile":[[1,[{"pos":690,"end":703,"code":2304,"category":1,"messageKey":"Cannot_find_name_0_2304","messageArgs":["RemovedGlobal"]}]]],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./consumer.ts" + ], + "original": 2 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "./consumer.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "signature": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": 1 + } + } + ], + "semanticDiagnosticsPerFile": [ + [ + "lib.es5.d.ts", + [ + { + "pos": 690, + "end": 703, + "code": 2304, + "category": 1, + "messageKey": "Cannot_find_name_0_2304", + "messageArgs": [ + "RemovedGlobal" + ] + } + ] + ] + ], + "affectedFilesPendingEmit": [ + [ + "./consumer.ts", + "Js", + 2 + ] + ], + "size": 1291 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/workspaces/project/consumer.ts +Signatures:: +(computed .d.ts) /home/src/workspaces/project/consumer.ts + + +Edit [1]:: no change + +tsgo --checkers 1 +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +../../tslibs/TS/Lib/lib.es5.d.ts:23:39 - error TS2304: Cannot find name 'RemovedGlobal'. + +23 interface LibraryConsumer { property: RemovedGlobal; } +   ~~~~~~~~~~~~~ + + +Found 1 error in ../../tslibs/TS/Lib/lib.es5.d.ts:23 + + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: + + +Edit [2]:: restore global declaration +//// [/home/src/workspaces/project/global.d.ts] *new* +interface RemovedGlobal {} + +tsgo --checkers 1 +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[[2,3]],"fileNames":["lib.es5.d.ts","./consumer.ts","./global.d.ts"],"fileInfos":[{"version":"f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;","signature":"93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n","impliedNodeFormat":1},{"version":"8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}","affectsGlobalScope":true,"impliedNodeFormat":1}],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./consumer.ts", + "./global.d.ts" + ], + "original": [ + 2, + 3 + ] + } + ], + "fileNames": [ + "lib.es5.d.ts", + "./consumer.ts", + "./global.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "signature": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./global.d.ts", + "version": "8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}", + "signature": "8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + } + ], + "affectedFilesPendingEmit": [ + [ + "./consumer.ts", + "Js", + 2 + ] + ], + "size": 1278 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/workspaces/project/consumer.ts +*refresh* /home/src/workspaces/project/global.d.ts +Signatures:: +(computed .d.ts) /home/src/workspaces/project/consumer.ts +(used version) /home/src/workspaces/project/global.d.ts + + +Edit [3]:: no change + +tsgo --checkers 1 +ExitStatus:: Success +Output:: + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: diff --git a/tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-false-with-single-threaded.js b/tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-false-with-single-threaded.js new file mode 100644 index 0000000000000..41ef118759e46 --- /dev/null +++ b/tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-false-with-single-threaded.js @@ -0,0 +1,326 @@ +currentDirectory::/home/src/workspaces/project +useCaseSensitiveFileNames::true +Input:: +//// [/home/src/tslibs/TS/Lib/lib.es5.d.ts] *new* +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } +interface ReadonlyArray {} +interface SymbolConstructor { + (desc?: string | number): symbol; + for(name: string): symbol; + readonly toStringTag: symbol; +} +declare var Symbol: SymbolConstructor; +interface Symbol { + readonly [Symbol.toStringTag]: string; +} +declare const console: { log(msg: any): void; }; +interface LibraryConsumer { property: RemovedGlobal; } +//// [/home/src/workspaces/project/consumer.ts] *new* +export const unchanged = 1; +//// [/home/src/workspaces/project/global.d.ts] *new* +interface RemovedGlobal {} +//// [/home/src/workspaces/project/module.d.ts] *new* +export interface Unrelated {} +//// [/home/src/workspaces/project/tsconfig.json] *new* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"lib":["es5"]}} + +tsgo --singleThreaded +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *new* +{"version":"FakeTSVersion","root":[[2,4]],"fileNames":["lib.es5.d.ts","./consumer.ts","./global.d.ts","./module.d.ts"],"fileInfos":[{"version":"f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }","affectsGlobalScope":true,"impliedNodeFormat":1},"b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;",{"version":"8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}","affectsGlobalScope":true,"impliedNodeFormat":1},"6c520878a353927f50be384ce898a985-export interface Unrelated {}"],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *new* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./consumer.ts", + "./global.d.ts", + "./module.d.ts" + ], + "original": [ + 2, + 4 + ] + } + ], + "fileNames": [ + "lib.es5.d.ts", + "./consumer.ts", + "./global.d.ts", + "./module.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "signature": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./global.d.ts", + "version": "8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}", + "signature": "8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./module.d.ts", + "version": "6c520878a353927f50be384ce898a985-export interface Unrelated {}", + "signature": "6c520878a353927f50be384ce898a985-export interface Unrelated {}", + "impliedNodeFormat": "CommonJS" + } + ], + "affectedFilesPendingEmit": [ + [ + "./consumer.ts", + "Js", + 2 + ] + ], + "size": 1240 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/workspaces/project/consumer.ts +*refresh* /home/src/workspaces/project/global.d.ts +*refresh* /home/src/workspaces/project/module.d.ts +Signatures:: + + +Edit [0]:: delete global and module declarations +//// [/home/src/workspaces/project/global.d.ts] *deleted* +//// [/home/src/workspaces/project/module.d.ts] *deleted* + +tsgo --singleThreaded +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +../../tslibs/TS/Lib/lib.es5.d.ts:23:39 - error TS2304: Cannot find name 'RemovedGlobal'. + +23 interface LibraryConsumer { property: RemovedGlobal; } +   ~~~~~~~~~~~~~ + + +Found 1 error in ../../tslibs/TS/Lib/lib.es5.d.ts:23 + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[2],"fileNames":["lib.es5.d.ts","./consumer.ts"],"fileInfos":[{"version":"f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;","signature":"93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n","impliedNodeFormat":1}],"semanticDiagnosticsPerFile":[[1,[{"pos":690,"end":703,"code":2304,"category":1,"messageKey":"Cannot_find_name_0_2304","messageArgs":["RemovedGlobal"]}]]],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./consumer.ts" + ], + "original": 2 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "./consumer.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "signature": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": 1 + } + } + ], + "semanticDiagnosticsPerFile": [ + [ + "lib.es5.d.ts", + [ + { + "pos": 690, + "end": 703, + "code": 2304, + "category": 1, + "messageKey": "Cannot_find_name_0_2304", + "messageArgs": [ + "RemovedGlobal" + ] + } + ] + ] + ], + "affectedFilesPendingEmit": [ + [ + "./consumer.ts", + "Js", + 2 + ] + ], + "size": 1291 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/workspaces/project/consumer.ts +Signatures:: +(computed .d.ts) /home/src/workspaces/project/consumer.ts + + +Edit [1]:: no change + +tsgo --singleThreaded +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +../../tslibs/TS/Lib/lib.es5.d.ts:23:39 - error TS2304: Cannot find name 'RemovedGlobal'. + +23 interface LibraryConsumer { property: RemovedGlobal; } +   ~~~~~~~~~~~~~ + + +Found 1 error in ../../tslibs/TS/Lib/lib.es5.d.ts:23 + + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: + + +Edit [2]:: restore global declaration +//// [/home/src/workspaces/project/global.d.ts] *new* +interface RemovedGlobal {} + +tsgo --singleThreaded +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[[2,3]],"fileNames":["lib.es5.d.ts","./consumer.ts","./global.d.ts"],"fileInfos":[{"version":"f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;","signature":"93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n","impliedNodeFormat":1},{"version":"8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}","affectsGlobalScope":true,"impliedNodeFormat":1}],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./consumer.ts", + "./global.d.ts" + ], + "original": [ + 2, + 3 + ] + } + ], + "fileNames": [ + "lib.es5.d.ts", + "./consumer.ts", + "./global.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "signature": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./global.d.ts", + "version": "8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}", + "signature": "8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + } + ], + "affectedFilesPendingEmit": [ + [ + "./consumer.ts", + "Js", + 2 + ] + ], + "size": 1278 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/workspaces/project/consumer.ts +*refresh* /home/src/workspaces/project/global.d.ts +Signatures:: +(computed .d.ts) /home/src/workspaces/project/consumer.ts +(used version) /home/src/workspaces/project/global.d.ts + + +Edit [3]:: no change + +tsgo --singleThreaded +ExitStatus:: Success +Output:: + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: diff --git a/tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-false.js b/tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-false.js new file mode 100644 index 0000000000000..76a26c7d0ec79 --- /dev/null +++ b/tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-false.js @@ -0,0 +1,326 @@ +currentDirectory::/home/src/workspaces/project +useCaseSensitiveFileNames::true +Input:: +//// [/home/src/tslibs/TS/Lib/lib.es5.d.ts] *new* +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } +interface ReadonlyArray {} +interface SymbolConstructor { + (desc?: string | number): symbol; + for(name: string): symbol; + readonly toStringTag: symbol; +} +declare var Symbol: SymbolConstructor; +interface Symbol { + readonly [Symbol.toStringTag]: string; +} +declare const console: { log(msg: any): void; }; +interface LibraryConsumer { property: RemovedGlobal; } +//// [/home/src/workspaces/project/consumer.ts] *new* +export const unchanged = 1; +//// [/home/src/workspaces/project/global.d.ts] *new* +interface RemovedGlobal {} +//// [/home/src/workspaces/project/module.d.ts] *new* +export interface Unrelated {} +//// [/home/src/workspaces/project/tsconfig.json] *new* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"lib":["es5"]}} + +tsgo +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *new* +{"version":"FakeTSVersion","root":[[2,4]],"fileNames":["lib.es5.d.ts","./consumer.ts","./global.d.ts","./module.d.ts"],"fileInfos":[{"version":"f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }","affectsGlobalScope":true,"impliedNodeFormat":1},"b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;",{"version":"8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}","affectsGlobalScope":true,"impliedNodeFormat":1},"6c520878a353927f50be384ce898a985-export interface Unrelated {}"],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *new* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./consumer.ts", + "./global.d.ts", + "./module.d.ts" + ], + "original": [ + 2, + 4 + ] + } + ], + "fileNames": [ + "lib.es5.d.ts", + "./consumer.ts", + "./global.d.ts", + "./module.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "signature": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./global.d.ts", + "version": "8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}", + "signature": "8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./module.d.ts", + "version": "6c520878a353927f50be384ce898a985-export interface Unrelated {}", + "signature": "6c520878a353927f50be384ce898a985-export interface Unrelated {}", + "impliedNodeFormat": "CommonJS" + } + ], + "affectedFilesPendingEmit": [ + [ + "./consumer.ts", + "Js", + 2 + ] + ], + "size": 1240 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/workspaces/project/consumer.ts +*refresh* /home/src/workspaces/project/global.d.ts +*refresh* /home/src/workspaces/project/module.d.ts +Signatures:: + + +Edit [0]:: delete global and module declarations +//// [/home/src/workspaces/project/global.d.ts] *deleted* +//// [/home/src/workspaces/project/module.d.ts] *deleted* + +tsgo +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +../../tslibs/TS/Lib/lib.es5.d.ts:23:39 - error TS2304: Cannot find name 'RemovedGlobal'. + +23 interface LibraryConsumer { property: RemovedGlobal; } +   ~~~~~~~~~~~~~ + + +Found 1 error in ../../tslibs/TS/Lib/lib.es5.d.ts:23 + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[2],"fileNames":["lib.es5.d.ts","./consumer.ts"],"fileInfos":[{"version":"f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;","signature":"93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n","impliedNodeFormat":1}],"semanticDiagnosticsPerFile":[[1,[{"pos":690,"end":703,"code":2304,"category":1,"messageKey":"Cannot_find_name_0_2304","messageArgs":["RemovedGlobal"]}]]],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./consumer.ts" + ], + "original": 2 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "./consumer.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "signature": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": 1 + } + } + ], + "semanticDiagnosticsPerFile": [ + [ + "lib.es5.d.ts", + [ + { + "pos": 690, + "end": 703, + "code": 2304, + "category": 1, + "messageKey": "Cannot_find_name_0_2304", + "messageArgs": [ + "RemovedGlobal" + ] + } + ] + ] + ], + "affectedFilesPendingEmit": [ + [ + "./consumer.ts", + "Js", + 2 + ] + ], + "size": 1291 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/workspaces/project/consumer.ts +Signatures:: +(computed .d.ts) /home/src/workspaces/project/consumer.ts + + +Edit [1]:: no change + +tsgo +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +../../tslibs/TS/Lib/lib.es5.d.ts:23:39 - error TS2304: Cannot find name 'RemovedGlobal'. + +23 interface LibraryConsumer { property: RemovedGlobal; } +   ~~~~~~~~~~~~~ + + +Found 1 error in ../../tslibs/TS/Lib/lib.es5.d.ts:23 + + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: + + +Edit [2]:: restore global declaration +//// [/home/src/workspaces/project/global.d.ts] *new* +interface RemovedGlobal {} + +tsgo +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[[2,3]],"fileNames":["lib.es5.d.ts","./consumer.ts","./global.d.ts"],"fileInfos":[{"version":"f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;","signature":"93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n","impliedNodeFormat":1},{"version":"8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}","affectsGlobalScope":true,"impliedNodeFormat":1}],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./consumer.ts", + "./global.d.ts" + ], + "original": [ + 2, + 3 + ] + } + ], + "fileNames": [ + "lib.es5.d.ts", + "./consumer.ts", + "./global.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "signature": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "f12cf4d0d7d3a1898ca4427fc3e56470-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface LibraryConsumer { property: RemovedGlobal; }", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./global.d.ts", + "version": "8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}", + "signature": "8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8fcf42c417de40bbb198049bfd5804b7-interface RemovedGlobal {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + } + ], + "affectedFilesPendingEmit": [ + [ + "./consumer.ts", + "Js", + 2 + ] + ], + "size": 1278 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/workspaces/project/consumer.ts +*refresh* /home/src/workspaces/project/global.d.ts +Signatures:: +(computed .d.ts) /home/src/workspaces/project/consumer.ts +(used version) /home/src/workspaces/project/global.d.ts + + +Edit [3]:: no change + +tsgo +ExitStatus:: Success +Output:: + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: diff --git a/tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-true-with-one-checker.js b/tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-true-with-one-checker.js new file mode 100644 index 0000000000000..a4d72679a2318 --- /dev/null +++ b/tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-true-with-one-checker.js @@ -0,0 +1,408 @@ +currentDirectory::/home/src/workspaces/project +useCaseSensitiveFileNames::true +Input:: +//// [/home/src/tslibs/TS/Lib/lib.es5.d.ts] *new* +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } +interface ReadonlyArray {} +interface SymbolConstructor { + (desc?: string | number): symbol; + for(name: string): symbol; + readonly toStringTag: symbol; +} +declare var Symbol: SymbolConstructor; +interface Symbol { + readonly [Symbol.toStringTag]: string; +} +declare const console: { log(msg: any): void; }; +interface Shared {} +//// [/home/src/workspaces/project/consumer.ts] *new* +export const unchanged = 1; +//// [/home/src/workspaces/project/global.d.ts] *new* +interface Shared {} +//// [/home/src/workspaces/project/module.d.ts] *new* +export interface Unrelated {} +//// [/home/src/workspaces/project/tsconfig.json] *new* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"lib":["es5"]}} + +tsgo --checkers 1 +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +../../tslibs/TS/Lib/lib.es5.d.ts:23:11 - error TS2428: All declarations of 'Shared' must have identical type parameters. + +23 interface Shared {} +   ~~~~~~ + +global.d.ts:1:11 - error TS2428: All declarations of 'Shared' must have identical type parameters. + +1 interface Shared {} +   ~~~~~~ + + +Found 2 errors in 2 files. + +Errors Files + 1 ../../tslibs/TS/Lib/lib.es5.d.ts:23 + 1 global.d.ts:1 + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *new* +{"version":"FakeTSVersion","root":[[2,4]],"fileNames":["lib.es5.d.ts","./consumer.ts","./global.d.ts","./module.d.ts"],"fileInfos":[{"version":"a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}","affectsGlobalScope":true,"impliedNodeFormat":1},"b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;",{"version":"35a5065018e48ace611d23c47b1c790a-interface Shared {}","affectsGlobalScope":true,"impliedNodeFormat":1},"6c520878a353927f50be384ce898a985-export interface Unrelated {}"],"semanticDiagnosticsPerFile":[[1,[{"pos":662,"end":668,"code":2428,"category":1,"messageKey":"All_declarations_of_0_must_have_identical_type_parameters_2428","messageArgs":["Shared"]}]],[3,[{"pos":10,"end":16,"code":2428,"category":1,"messageKey":"All_declarations_of_0_must_have_identical_type_parameters_2428","messageArgs":["Shared"]}]]],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *new* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./consumer.ts", + "./global.d.ts", + "./module.d.ts" + ], + "original": [ + 2, + 4 + ] + } + ], + "fileNames": [ + "lib.es5.d.ts", + "./consumer.ts", + "./global.d.ts", + "./module.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "signature": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./global.d.ts", + "version": "35a5065018e48ace611d23c47b1c790a-interface Shared {}", + "signature": "35a5065018e48ace611d23c47b1c790a-interface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "35a5065018e48ace611d23c47b1c790a-interface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./module.d.ts", + "version": "6c520878a353927f50be384ce898a985-export interface Unrelated {}", + "signature": "6c520878a353927f50be384ce898a985-export interface Unrelated {}", + "impliedNodeFormat": "CommonJS" + } + ], + "semanticDiagnosticsPerFile": [ + [ + "lib.es5.d.ts", + [ + { + "pos": 662, + "end": 668, + "code": 2428, + "category": 1, + "messageKey": "All_declarations_of_0_must_have_identical_type_parameters_2428", + "messageArgs": [ + "Shared" + ] + } + ] + ], + [ + "./global.d.ts", + [ + { + "pos": 10, + "end": 16, + "code": 2428, + "category": 1, + "messageKey": "All_declarations_of_0_must_have_identical_type_parameters_2428", + "messageArgs": [ + "Shared" + ] + } + ] + ] + ], + "affectedFilesPendingEmit": [ + [ + "./consumer.ts", + "Js", + 2 + ] + ], + "size": 1548 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/workspaces/project/consumer.ts +*refresh* /home/src/workspaces/project/global.d.ts +*refresh* /home/src/workspaces/project/module.d.ts +Signatures:: + + +Edit [0]:: delete global and module declarations +//// [/home/src/workspaces/project/global.d.ts] *deleted* +//// [/home/src/workspaces/project/module.d.ts] *deleted* + +tsgo --checkers 1 +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[2],"fileNames":["lib.es5.d.ts","./consumer.ts"],"fileInfos":[{"version":"a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;","signature":"93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n","impliedNodeFormat":1}],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./consumer.ts" + ], + "original": 2 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "./consumer.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "signature": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": 1 + } + } + ], + "affectedFilesPendingEmit": [ + [ + "./consumer.ts", + "Js", + 2 + ] + ], + "size": 1104 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/workspaces/project/consumer.ts +Signatures:: +(computed .d.ts) /home/src/workspaces/project/consumer.ts + + +Edit [1]:: no change + +tsgo --checkers 1 +ExitStatus:: Success +Output:: + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: + + +Edit [2]:: restore global declaration +//// [/home/src/workspaces/project/global.d.ts] *new* +interface Shared {} + +tsgo --checkers 1 +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +../../tslibs/TS/Lib/lib.es5.d.ts:23:11 - error TS2428: All declarations of 'Shared' must have identical type parameters. + +23 interface Shared {} +   ~~~~~~ + +global.d.ts:1:11 - error TS2428: All declarations of 'Shared' must have identical type parameters. + +1 interface Shared {} +   ~~~~~~ + + +Found 2 errors in 2 files. + +Errors Files + 1 ../../tslibs/TS/Lib/lib.es5.d.ts:23 + 1 global.d.ts:1 + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[[2,3]],"fileNames":["lib.es5.d.ts","./consumer.ts","./global.d.ts"],"fileInfos":[{"version":"a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;","signature":"93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n","impliedNodeFormat":1},{"version":"35a5065018e48ace611d23c47b1c790a-interface Shared {}","affectsGlobalScope":true,"impliedNodeFormat":1}],"semanticDiagnosticsPerFile":[[1,[{"pos":662,"end":668,"code":2428,"category":1,"messageKey":"All_declarations_of_0_must_have_identical_type_parameters_2428","messageArgs":["Shared"]}]],[3,[{"pos":10,"end":16,"code":2428,"category":1,"messageKey":"All_declarations_of_0_must_have_identical_type_parameters_2428","messageArgs":["Shared"]}]]],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./consumer.ts", + "./global.d.ts" + ], + "original": [ + 2, + 3 + ] + } + ], + "fileNames": [ + "lib.es5.d.ts", + "./consumer.ts", + "./global.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "signature": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./global.d.ts", + "version": "35a5065018e48ace611d23c47b1c790a-interface Shared {}", + "signature": "35a5065018e48ace611d23c47b1c790a-interface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "35a5065018e48ace611d23c47b1c790a-interface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + } + ], + "semanticDiagnosticsPerFile": [ + [ + "lib.es5.d.ts", + [ + { + "pos": 662, + "end": 668, + "code": 2428, + "category": 1, + "messageKey": "All_declarations_of_0_must_have_identical_type_parameters_2428", + "messageArgs": [ + "Shared" + ] + } + ] + ], + [ + "./global.d.ts", + [ + { + "pos": 10, + "end": 16, + "code": 2428, + "category": 1, + "messageKey": "All_declarations_of_0_must_have_identical_type_parameters_2428", + "messageArgs": [ + "Shared" + ] + } + ] + ] + ], + "affectedFilesPendingEmit": [ + [ + "./consumer.ts", + "Js", + 2 + ] + ], + "size": 1586 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/workspaces/project/consumer.ts +*refresh* /home/src/workspaces/project/global.d.ts +Signatures:: +(computed .d.ts) /home/src/workspaces/project/consumer.ts +(used version) /home/src/workspaces/project/global.d.ts + + +Edit [3]:: no change + +tsgo --checkers 1 +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +../../tslibs/TS/Lib/lib.es5.d.ts:23:11 - error TS2428: All declarations of 'Shared' must have identical type parameters. + +23 interface Shared {} +   ~~~~~~ + +global.d.ts:1:11 - error TS2428: All declarations of 'Shared' must have identical type parameters. + +1 interface Shared {} +   ~~~~~~ + + +Found 2 errors in 2 files. + +Errors Files + 1 ../../tslibs/TS/Lib/lib.es5.d.ts:23 + 1 global.d.ts:1 + + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: diff --git a/tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-true-with-single-threaded.js b/tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-true-with-single-threaded.js new file mode 100644 index 0000000000000..1f330f6ad4aa7 --- /dev/null +++ b/tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-true-with-single-threaded.js @@ -0,0 +1,408 @@ +currentDirectory::/home/src/workspaces/project +useCaseSensitiveFileNames::true +Input:: +//// [/home/src/tslibs/TS/Lib/lib.es5.d.ts] *new* +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } +interface ReadonlyArray {} +interface SymbolConstructor { + (desc?: string | number): symbol; + for(name: string): symbol; + readonly toStringTag: symbol; +} +declare var Symbol: SymbolConstructor; +interface Symbol { + readonly [Symbol.toStringTag]: string; +} +declare const console: { log(msg: any): void; }; +interface Shared {} +//// [/home/src/workspaces/project/consumer.ts] *new* +export const unchanged = 1; +//// [/home/src/workspaces/project/global.d.ts] *new* +interface Shared {} +//// [/home/src/workspaces/project/module.d.ts] *new* +export interface Unrelated {} +//// [/home/src/workspaces/project/tsconfig.json] *new* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"lib":["es5"]}} + +tsgo --singleThreaded +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +../../tslibs/TS/Lib/lib.es5.d.ts:23:11 - error TS2428: All declarations of 'Shared' must have identical type parameters. + +23 interface Shared {} +   ~~~~~~ + +global.d.ts:1:11 - error TS2428: All declarations of 'Shared' must have identical type parameters. + +1 interface Shared {} +   ~~~~~~ + + +Found 2 errors in 2 files. + +Errors Files + 1 ../../tslibs/TS/Lib/lib.es5.d.ts:23 + 1 global.d.ts:1 + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *new* +{"version":"FakeTSVersion","root":[[2,4]],"fileNames":["lib.es5.d.ts","./consumer.ts","./global.d.ts","./module.d.ts"],"fileInfos":[{"version":"a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}","affectsGlobalScope":true,"impliedNodeFormat":1},"b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;",{"version":"35a5065018e48ace611d23c47b1c790a-interface Shared {}","affectsGlobalScope":true,"impliedNodeFormat":1},"6c520878a353927f50be384ce898a985-export interface Unrelated {}"],"semanticDiagnosticsPerFile":[[1,[{"pos":662,"end":668,"code":2428,"category":1,"messageKey":"All_declarations_of_0_must_have_identical_type_parameters_2428","messageArgs":["Shared"]}]],[3,[{"pos":10,"end":16,"code":2428,"category":1,"messageKey":"All_declarations_of_0_must_have_identical_type_parameters_2428","messageArgs":["Shared"]}]]],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *new* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./consumer.ts", + "./global.d.ts", + "./module.d.ts" + ], + "original": [ + 2, + 4 + ] + } + ], + "fileNames": [ + "lib.es5.d.ts", + "./consumer.ts", + "./global.d.ts", + "./module.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "signature": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./global.d.ts", + "version": "35a5065018e48ace611d23c47b1c790a-interface Shared {}", + "signature": "35a5065018e48ace611d23c47b1c790a-interface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "35a5065018e48ace611d23c47b1c790a-interface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./module.d.ts", + "version": "6c520878a353927f50be384ce898a985-export interface Unrelated {}", + "signature": "6c520878a353927f50be384ce898a985-export interface Unrelated {}", + "impliedNodeFormat": "CommonJS" + } + ], + "semanticDiagnosticsPerFile": [ + [ + "lib.es5.d.ts", + [ + { + "pos": 662, + "end": 668, + "code": 2428, + "category": 1, + "messageKey": "All_declarations_of_0_must_have_identical_type_parameters_2428", + "messageArgs": [ + "Shared" + ] + } + ] + ], + [ + "./global.d.ts", + [ + { + "pos": 10, + "end": 16, + "code": 2428, + "category": 1, + "messageKey": "All_declarations_of_0_must_have_identical_type_parameters_2428", + "messageArgs": [ + "Shared" + ] + } + ] + ] + ], + "affectedFilesPendingEmit": [ + [ + "./consumer.ts", + "Js", + 2 + ] + ], + "size": 1548 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/workspaces/project/consumer.ts +*refresh* /home/src/workspaces/project/global.d.ts +*refresh* /home/src/workspaces/project/module.d.ts +Signatures:: + + +Edit [0]:: delete global and module declarations +//// [/home/src/workspaces/project/global.d.ts] *deleted* +//// [/home/src/workspaces/project/module.d.ts] *deleted* + +tsgo --singleThreaded +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[2],"fileNames":["lib.es5.d.ts","./consumer.ts"],"fileInfos":[{"version":"a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;","signature":"93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n","impliedNodeFormat":1}],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./consumer.ts" + ], + "original": 2 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "./consumer.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "signature": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": 1 + } + } + ], + "affectedFilesPendingEmit": [ + [ + "./consumer.ts", + "Js", + 2 + ] + ], + "size": 1104 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/workspaces/project/consumer.ts +Signatures:: +(computed .d.ts) /home/src/workspaces/project/consumer.ts + + +Edit [1]:: no change + +tsgo --singleThreaded +ExitStatus:: Success +Output:: + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: + + +Edit [2]:: restore global declaration +//// [/home/src/workspaces/project/global.d.ts] *new* +interface Shared {} + +tsgo --singleThreaded +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +../../tslibs/TS/Lib/lib.es5.d.ts:23:11 - error TS2428: All declarations of 'Shared' must have identical type parameters. + +23 interface Shared {} +   ~~~~~~ + +global.d.ts:1:11 - error TS2428: All declarations of 'Shared' must have identical type parameters. + +1 interface Shared {} +   ~~~~~~ + + +Found 2 errors in 2 files. + +Errors Files + 1 ../../tslibs/TS/Lib/lib.es5.d.ts:23 + 1 global.d.ts:1 + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[[2,3]],"fileNames":["lib.es5.d.ts","./consumer.ts","./global.d.ts"],"fileInfos":[{"version":"a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;","signature":"93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n","impliedNodeFormat":1},{"version":"35a5065018e48ace611d23c47b1c790a-interface Shared {}","affectsGlobalScope":true,"impliedNodeFormat":1}],"semanticDiagnosticsPerFile":[[1,[{"pos":662,"end":668,"code":2428,"category":1,"messageKey":"All_declarations_of_0_must_have_identical_type_parameters_2428","messageArgs":["Shared"]}]],[3,[{"pos":10,"end":16,"code":2428,"category":1,"messageKey":"All_declarations_of_0_must_have_identical_type_parameters_2428","messageArgs":["Shared"]}]]],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./consumer.ts", + "./global.d.ts" + ], + "original": [ + 2, + 3 + ] + } + ], + "fileNames": [ + "lib.es5.d.ts", + "./consumer.ts", + "./global.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "signature": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./global.d.ts", + "version": "35a5065018e48ace611d23c47b1c790a-interface Shared {}", + "signature": "35a5065018e48ace611d23c47b1c790a-interface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "35a5065018e48ace611d23c47b1c790a-interface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + } + ], + "semanticDiagnosticsPerFile": [ + [ + "lib.es5.d.ts", + [ + { + "pos": 662, + "end": 668, + "code": 2428, + "category": 1, + "messageKey": "All_declarations_of_0_must_have_identical_type_parameters_2428", + "messageArgs": [ + "Shared" + ] + } + ] + ], + [ + "./global.d.ts", + [ + { + "pos": 10, + "end": 16, + "code": 2428, + "category": 1, + "messageKey": "All_declarations_of_0_must_have_identical_type_parameters_2428", + "messageArgs": [ + "Shared" + ] + } + ] + ] + ], + "affectedFilesPendingEmit": [ + [ + "./consumer.ts", + "Js", + 2 + ] + ], + "size": 1586 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/workspaces/project/consumer.ts +*refresh* /home/src/workspaces/project/global.d.ts +Signatures:: +(computed .d.ts) /home/src/workspaces/project/consumer.ts +(used version) /home/src/workspaces/project/global.d.ts + + +Edit [3]:: no change + +tsgo --singleThreaded +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +../../tslibs/TS/Lib/lib.es5.d.ts:23:11 - error TS2428: All declarations of 'Shared' must have identical type parameters. + +23 interface Shared {} +   ~~~~~~ + +global.d.ts:1:11 - error TS2428: All declarations of 'Shared' must have identical type parameters. + +1 interface Shared {} +   ~~~~~~ + + +Found 2 errors in 2 files. + +Errors Files + 1 ../../tslibs/TS/Lib/lib.es5.d.ts:23 + 1 global.d.ts:1 + + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: diff --git a/tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-true.js b/tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-true.js new file mode 100644 index 0000000000000..6788208ad100f --- /dev/null +++ b/tsc/testdata/baselines/reference/tsc/incremental/retained-library-diagnostics-after-global-deletion-cleared-true.js @@ -0,0 +1,408 @@ +currentDirectory::/home/src/workspaces/project +useCaseSensitiveFileNames::true +Input:: +//// [/home/src/tslibs/TS/Lib/lib.es5.d.ts] *new* +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } +interface ReadonlyArray {} +interface SymbolConstructor { + (desc?: string | number): symbol; + for(name: string): symbol; + readonly toStringTag: symbol; +} +declare var Symbol: SymbolConstructor; +interface Symbol { + readonly [Symbol.toStringTag]: string; +} +declare const console: { log(msg: any): void; }; +interface Shared {} +//// [/home/src/workspaces/project/consumer.ts] *new* +export const unchanged = 1; +//// [/home/src/workspaces/project/global.d.ts] *new* +interface Shared {} +//// [/home/src/workspaces/project/module.d.ts] *new* +export interface Unrelated {} +//// [/home/src/workspaces/project/tsconfig.json] *new* +{"compilerOptions":{"incremental":true,"noEmit":true,"types":[],"lib":["es5"]}} + +tsgo +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +../../tslibs/TS/Lib/lib.es5.d.ts:23:11 - error TS2428: All declarations of 'Shared' must have identical type parameters. + +23 interface Shared {} +   ~~~~~~ + +global.d.ts:1:11 - error TS2428: All declarations of 'Shared' must have identical type parameters. + +1 interface Shared {} +   ~~~~~~ + + +Found 2 errors in 2 files. + +Errors Files + 1 ../../tslibs/TS/Lib/lib.es5.d.ts:23 + 1 global.d.ts:1 + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *new* +{"version":"FakeTSVersion","root":[[2,4]],"fileNames":["lib.es5.d.ts","./consumer.ts","./global.d.ts","./module.d.ts"],"fileInfos":[{"version":"a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}","affectsGlobalScope":true,"impliedNodeFormat":1},"b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;",{"version":"35a5065018e48ace611d23c47b1c790a-interface Shared {}","affectsGlobalScope":true,"impliedNodeFormat":1},"6c520878a353927f50be384ce898a985-export interface Unrelated {}"],"semanticDiagnosticsPerFile":[[1,[{"pos":662,"end":668,"code":2428,"category":1,"messageKey":"All_declarations_of_0_must_have_identical_type_parameters_2428","messageArgs":["Shared"]}]],[3,[{"pos":10,"end":16,"code":2428,"category":1,"messageKey":"All_declarations_of_0_must_have_identical_type_parameters_2428","messageArgs":["Shared"]}]]],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *new* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./consumer.ts", + "./global.d.ts", + "./module.d.ts" + ], + "original": [ + 2, + 4 + ] + } + ], + "fileNames": [ + "lib.es5.d.ts", + "./consumer.ts", + "./global.d.ts", + "./module.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "signature": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "impliedNodeFormat": "CommonJS" + }, + { + "fileName": "./global.d.ts", + "version": "35a5065018e48ace611d23c47b1c790a-interface Shared {}", + "signature": "35a5065018e48ace611d23c47b1c790a-interface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "35a5065018e48ace611d23c47b1c790a-interface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./module.d.ts", + "version": "6c520878a353927f50be384ce898a985-export interface Unrelated {}", + "signature": "6c520878a353927f50be384ce898a985-export interface Unrelated {}", + "impliedNodeFormat": "CommonJS" + } + ], + "semanticDiagnosticsPerFile": [ + [ + "lib.es5.d.ts", + [ + { + "pos": 662, + "end": 668, + "code": 2428, + "category": 1, + "messageKey": "All_declarations_of_0_must_have_identical_type_parameters_2428", + "messageArgs": [ + "Shared" + ] + } + ] + ], + [ + "./global.d.ts", + [ + { + "pos": 10, + "end": 16, + "code": 2428, + "category": 1, + "messageKey": "All_declarations_of_0_must_have_identical_type_parameters_2428", + "messageArgs": [ + "Shared" + ] + } + ] + ] + ], + "affectedFilesPendingEmit": [ + [ + "./consumer.ts", + "Js", + 2 + ] + ], + "size": 1548 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/workspaces/project/consumer.ts +*refresh* /home/src/workspaces/project/global.d.ts +*refresh* /home/src/workspaces/project/module.d.ts +Signatures:: + + +Edit [0]:: delete global and module declarations +//// [/home/src/workspaces/project/global.d.ts] *deleted* +//// [/home/src/workspaces/project/module.d.ts] *deleted* + +tsgo +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[2],"fileNames":["lib.es5.d.ts","./consumer.ts"],"fileInfos":[{"version":"a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;","signature":"93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n","impliedNodeFormat":1}],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./consumer.ts" + ], + "original": 2 + } + ], + "fileNames": [ + "lib.es5.d.ts", + "./consumer.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "signature": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": 1 + } + } + ], + "affectedFilesPendingEmit": [ + [ + "./consumer.ts", + "Js", + 2 + ] + ], + "size": 1104 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/workspaces/project/consumer.ts +Signatures:: +(computed .d.ts) /home/src/workspaces/project/consumer.ts + + +Edit [1]:: no change + +tsgo +ExitStatus:: Success +Output:: + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: + + +Edit [2]:: restore global declaration +//// [/home/src/workspaces/project/global.d.ts] *new* +interface Shared {} + +tsgo +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +../../tslibs/TS/Lib/lib.es5.d.ts:23:11 - error TS2428: All declarations of 'Shared' must have identical type parameters. + +23 interface Shared {} +   ~~~~~~ + +global.d.ts:1:11 - error TS2428: All declarations of 'Shared' must have identical type parameters. + +1 interface Shared {} +   ~~~~~~ + + +Found 2 errors in 2 files. + +Errors Files + 1 ../../tslibs/TS/Lib/lib.es5.d.ts:23 + 1 global.d.ts:1 + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[[2,3]],"fileNames":["lib.es5.d.ts","./consumer.ts","./global.d.ts"],"fileInfos":[{"version":"a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;","signature":"93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n","impliedNodeFormat":1},{"version":"35a5065018e48ace611d23c47b1c790a-interface Shared {}","affectsGlobalScope":true,"impliedNodeFormat":1}],"semanticDiagnosticsPerFile":[[1,[{"pos":662,"end":668,"code":2428,"category":1,"messageKey":"All_declarations_of_0_must_have_identical_type_parameters_2428","messageArgs":["Shared"]}]],[3,[{"pos":10,"end":16,"code":2428,"category":1,"messageKey":"All_declarations_of_0_must_have_identical_type_parameters_2428","messageArgs":["Shared"]}]]],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./consumer.ts", + "./global.d.ts" + ], + "original": [ + 2, + 3 + ] + } + ], + "fileNames": [ + "lib.es5.d.ts", + "./consumer.ts", + "./global.d.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es5.d.ts", + "version": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "signature": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a5af7e2c45fb7635b05dcb96b08fc584-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };\ninterface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./consumer.ts", + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "b8ccc95b7f8a123c2fed61f2394c7e72-export const unchanged = 1;", + "signature": "93ca091d3ab68cd75a241c9cc24ea4cc-export declare const unchanged = 1;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./global.d.ts", + "version": "35a5065018e48ace611d23c47b1c790a-interface Shared {}", + "signature": "35a5065018e48ace611d23c47b1c790a-interface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "35a5065018e48ace611d23c47b1c790a-interface Shared {}", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + } + ], + "semanticDiagnosticsPerFile": [ + [ + "lib.es5.d.ts", + [ + { + "pos": 662, + "end": 668, + "code": 2428, + "category": 1, + "messageKey": "All_declarations_of_0_must_have_identical_type_parameters_2428", + "messageArgs": [ + "Shared" + ] + } + ] + ], + [ + "./global.d.ts", + [ + { + "pos": 10, + "end": 16, + "code": 2428, + "category": 1, + "messageKey": "All_declarations_of_0_must_have_identical_type_parameters_2428", + "messageArgs": [ + "Shared" + ] + } + ] + ] + ], + "affectedFilesPendingEmit": [ + [ + "./consumer.ts", + "Js", + 2 + ] + ], + "size": 1586 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es5.d.ts +*refresh* /home/src/workspaces/project/consumer.ts +*refresh* /home/src/workspaces/project/global.d.ts +Signatures:: +(computed .d.ts) /home/src/workspaces/project/consumer.ts +(used version) /home/src/workspaces/project/global.d.ts + + +Edit [3]:: no change + +tsgo +ExitStatus:: DiagnosticsPresent_OutputsGenerated +Output:: +../../tslibs/TS/Lib/lib.es5.d.ts:23:11 - error TS2428: All declarations of 'Shared' must have identical type parameters. + +23 interface Shared {} +   ~~~~~~ + +global.d.ts:1:11 - error TS2428: All declarations of 'Shared' must have identical type parameters. + +1 interface Shared {} +   ~~~~~~ + + +Found 2 errors in 2 files. + +Errors Files + 1 ../../tslibs/TS/Lib/lib.es5.d.ts:23 + 1 global.d.ts:1 + + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: diff --git a/tsc/testdata/baselines/reference/tsc/incremental/unchecked-deleted-paths-with-no-emit-composite-false.js b/tsc/testdata/baselines/reference/tsc/incremental/unchecked-deleted-paths-with-no-emit-composite-false.js new file mode 100644 index 0000000000000..eb0802738f58a --- /dev/null +++ b/tsc/testdata/baselines/reference/tsc/incremental/unchecked-deleted-paths-with-no-emit-composite-false.js @@ -0,0 +1,351 @@ +currentDirectory::/home/src/workspaces/project +useCaseSensitiveFileNames::true +Input:: +//// [/home/src/workspaces/project/stable.ts] *new* +export const stable = 1; +//// [/home/src/workspaces/project/tsconfig.json] *new* +{"compilerOptions":{"incremental":true,"noCheck":true,"noEmit":true,"composite":false,"types":[]}} + +tsgo +ExitStatus:: Success +Output:: +//// [/home/src/tslibs/TS/Lib/lib.es2026.full.d.ts] *Lib* +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } +interface ReadonlyArray {} +interface SymbolConstructor { + (desc?: string | number): symbol; + for(name: string): symbol; + readonly toStringTag: symbol; +} +declare var Symbol: SymbolConstructor; +interface Symbol { + readonly [Symbol.toStringTag]: string; +} +declare const console: { log(msg: any): void; }; +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *new* +{"version":"FakeTSVersion","checkPending":true,"root":[2],"fileNames":["lib.es2026.full.d.ts","./stable.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},"a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;"],"options":{"composite":false},"semanticDiagnosticsPerFile":[1,2],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *new* +{ + "version": "FakeTSVersion", + "checkPending": true, + "root": [ + { + "files": [ + "./stable.ts" + ], + "original": 2 + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./stable.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./stable.ts", + "version": "a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;", + "signature": "a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;", + "impliedNodeFormat": "CommonJS" + } + ], + "options": { + "composite": false + }, + "semanticDiagnosticsPerFile": [ + "lib.es2026.full.d.ts", + "./stable.ts" + ], + "affectedFilesPendingEmit": [ + [ + "./stable.ts", + "Js", + 2 + ] + ], + "size": 1049 +} + +tsconfig.json:: +SemanticDiagnostics:: +*not cached* /home/src/tslibs/TS/Lib/lib.es2026.full.d.ts +*not cached* /home/src/workspaces/project/stable.ts +Signatures:: + + +Edit [0]:: add unchecked sources +//// [/home/src/workspaces/project/first.ts] *new* +export const first = 1; +//// [/home/src/workspaces/project/second.ts] *new* +export const second = 1; + +tsgo +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","checkPending":true,"root":[[2,4]],"fileNames":["lib.es2026.full.d.ts","./first.ts","./second.ts","./stable.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f0797a426fe2ceec01558a561a7f6171-export const first = 1;","noSignature":true,"impliedNodeFormat":1},{"version":"d17411b0bb90a14ce53a77aa0f2816e8-export const second = 1;","noSignature":true,"impliedNodeFormat":1},"a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;"],"options":{"composite":false},"semanticDiagnosticsPerFile":[1,4],"changeFileSet":[2,3],"affectedFilesPendingEmit":[4]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "checkPending": true, + "root": [ + { + "files": [ + "./first.ts", + "./second.ts", + "./stable.ts" + ], + "original": [ + 2, + 4 + ] + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./first.ts", + "./second.ts", + "./stable.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./first.ts", + "version": "f0797a426fe2ceec01558a561a7f6171-export const first = 1;", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "f0797a426fe2ceec01558a561a7f6171-export const first = 1;", + "noSignature": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./second.ts", + "version": "d17411b0bb90a14ce53a77aa0f2816e8-export const second = 1;", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "d17411b0bb90a14ce53a77aa0f2816e8-export const second = 1;", + "noSignature": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./stable.ts", + "version": "a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;", + "signature": "a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;", + "impliedNodeFormat": "CommonJS" + } + ], + "options": { + "composite": false + }, + "semanticDiagnosticsPerFile": [ + "lib.es2026.full.d.ts", + "./stable.ts" + ], + "changeFileSet": [ + "./first.ts", + "./second.ts" + ], + "affectedFilesPendingEmit": [ + [ + "./stable.ts", + "Js", + 4 + ] + ], + "size": 1327 +} + +tsconfig.json:: +SemanticDiagnostics:: +*not cached* /home/src/tslibs/TS/Lib/lib.es2026.full.d.ts +*not cached* /home/src/workspaces/project/first.ts +*not cached* /home/src/workspaces/project/second.ts +*not cached* /home/src/workspaces/project/stable.ts +Signatures:: + + +Edit [1]:: delete unchecked sources +//// [/home/src/workspaces/project/first.ts] *deleted* +//// [/home/src/workspaces/project/second.ts] *deleted* + +tsgo +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","checkPending":true,"root":[2],"fileNames":["lib.es2026.full.d.ts","./stable.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},"a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;"],"options":{"composite":false},"semanticDiagnosticsPerFile":[1,2],"affectedFilesPendingEmit":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "checkPending": true, + "root": [ + { + "files": [ + "./stable.ts" + ], + "original": 2 + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./stable.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./stable.ts", + "version": "a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;", + "signature": "a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;", + "impliedNodeFormat": "CommonJS" + } + ], + "options": { + "composite": false + }, + "semanticDiagnosticsPerFile": [ + "lib.es2026.full.d.ts", + "./stable.ts" + ], + "affectedFilesPendingEmit": [ + [ + "./stable.ts", + "Js", + 2 + ] + ], + "size": 1049 +} + +tsconfig.json:: +SemanticDiagnostics:: +*not cached* /home/src/tslibs/TS/Lib/lib.es2026.full.d.ts +*not cached* /home/src/workspaces/project/stable.ts +Signatures:: + + +Edit [2]:: no change + +tsgo +ExitStatus:: Success +Output:: + +tsconfig.json:: +SemanticDiagnostics:: +*not cached* /home/src/tslibs/TS/Lib/lib.es2026.full.d.ts +*not cached* /home/src/workspaces/project/stable.ts +Signatures:: + + +Edit [3]:: enable checking and emit +//// [/home/src/workspaces/project/tsconfig.json] *modified* +{"compilerOptions":{"incremental":true,"noCheck":false,"noEmit":false,"composite":false,"types":[]}} + +tsgo +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/stable.js] *new* +export const stable = 1; + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[2],"fileNames":["lib.es2026.full.d.ts","./stable.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},"a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;"],"options":{"composite":false}} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./stable.ts" + ], + "original": 2 + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./stable.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./stable.ts", + "version": "a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;", + "signature": "a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;", + "impliedNodeFormat": "CommonJS" + } + ], + "options": { + "composite": false + }, + "size": 963 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.full.d.ts +*refresh* /home/src/workspaces/project/stable.ts +Signatures:: + + +Edit [4]:: no change + +tsgo +ExitStatus:: Success +Output:: + +tsconfig.json:: +SemanticDiagnostics:: +Signatures:: diff --git a/tsc/testdata/baselines/reference/tsc/incremental/unchecked-deleted-paths-with-no-emit-composite-true.js b/tsc/testdata/baselines/reference/tsc/incremental/unchecked-deleted-paths-with-no-emit-composite-true.js new file mode 100644 index 0000000000000..4e8647b92eac7 --- /dev/null +++ b/tsc/testdata/baselines/reference/tsc/incremental/unchecked-deleted-paths-with-no-emit-composite-true.js @@ -0,0 +1,414 @@ +currentDirectory::/home/src/workspaces/project +useCaseSensitiveFileNames::true +Input:: +//// [/home/src/workspaces/project/stable.ts] *new* +export const stable = 1; +//// [/home/src/workspaces/project/tsconfig.json] *new* +{"compilerOptions":{"incremental":true,"noCheck":true,"noEmit":true,"composite":true,"types":[]}} + +tsgo +ExitStatus:: Success +Output:: +//// [/home/src/tslibs/TS/Lib/lib.es2026.full.d.ts] *Lib* +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } +interface ReadonlyArray {} +interface SymbolConstructor { + (desc?: string | number): symbol; + for(name: string): symbol; + readonly toStringTag: symbol; +} +declare var Symbol: SymbolConstructor; +interface Symbol { + readonly [Symbol.toStringTag]: string; +} +declare const console: { log(msg: any): void; }; +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *new* +{"version":"FakeTSVersion","checkPending":true,"root":[2],"fileNames":["lib.es2026.full.d.ts","./stable.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},"a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;"],"options":{"composite":true},"semanticDiagnosticsPerFile":[1,2],"affectedFilesPendingEmit":[[2,17]],"emitSignatures":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *new* +{ + "version": "FakeTSVersion", + "checkPending": true, + "root": [ + { + "files": [ + "./stable.ts" + ], + "original": 2 + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./stable.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./stable.ts", + "version": "a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;", + "signature": "a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;", + "impliedNodeFormat": "CommonJS" + } + ], + "options": { + "composite": true + }, + "semanticDiagnosticsPerFile": [ + "lib.es2026.full.d.ts", + "./stable.ts" + ], + "affectedFilesPendingEmit": [ + [ + "./stable.ts", + "Js|DtsEmit", + [ + 2, + 17 + ] + ] + ], + "emitSignatures": [ + { + "file": "./stable.ts", + "original": 2 + } + ], + "size": 1074 +} + +tsconfig.json:: +SemanticDiagnostics:: +*not cached* /home/src/tslibs/TS/Lib/lib.es2026.full.d.ts +*not cached* /home/src/workspaces/project/stable.ts +Signatures:: + + +Edit [0]:: add unchecked sources +//// [/home/src/workspaces/project/first.ts] *new* +export const first = 1; +//// [/home/src/workspaces/project/second.ts] *new* +export const second = 1; + +tsgo +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","checkPending":true,"root":[[2,4]],"fileNames":["lib.es2026.full.d.ts","./first.ts","./second.ts","./stable.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f0797a426fe2ceec01558a561a7f6171-export const first = 1;","signature":"58c32d2d0bfb71a22cb27c964beafdec-export declare const first = 1;\n","impliedNodeFormat":1},{"version":"d17411b0bb90a14ce53a77aa0f2816e8-export const second = 1;","signature":"0765be46bc16ca2bc80ac2cedcbb4379-export declare const second = 1;\n","impliedNodeFormat":1},"a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;"],"options":{"composite":true},"semanticDiagnosticsPerFile":[1,2,3,4],"affectedFilesPendingEmit":[[2,17],[3,17],[4,17]],"emitSignatures":[2,3,4]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "checkPending": true, + "root": [ + { + "files": [ + "./first.ts", + "./second.ts", + "./stable.ts" + ], + "original": [ + 2, + 4 + ] + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./first.ts", + "./second.ts", + "./stable.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./first.ts", + "version": "f0797a426fe2ceec01558a561a7f6171-export const first = 1;", + "signature": "58c32d2d0bfb71a22cb27c964beafdec-export declare const first = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "f0797a426fe2ceec01558a561a7f6171-export const first = 1;", + "signature": "58c32d2d0bfb71a22cb27c964beafdec-export declare const first = 1;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./second.ts", + "version": "d17411b0bb90a14ce53a77aa0f2816e8-export const second = 1;", + "signature": "0765be46bc16ca2bc80ac2cedcbb4379-export declare const second = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "d17411b0bb90a14ce53a77aa0f2816e8-export const second = 1;", + "signature": "0765be46bc16ca2bc80ac2cedcbb4379-export declare const second = 1;\n", + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./stable.ts", + "version": "a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;", + "signature": "a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;", + "impliedNodeFormat": "CommonJS" + } + ], + "options": { + "composite": true + }, + "semanticDiagnosticsPerFile": [ + "lib.es2026.full.d.ts", + "./first.ts", + "./second.ts", + "./stable.ts" + ], + "affectedFilesPendingEmit": [ + [ + "./first.ts", + "Js|DtsEmit", + [ + 2, + 17 + ] + ], + [ + "./second.ts", + "Js|DtsEmit", + [ + 3, + 17 + ] + ], + [ + "./stable.ts", + "Js|DtsEmit", + [ + 4, + 17 + ] + ] + ], + "emitSignatures": [ + { + "file": "./first.ts", + "original": 2 + }, + { + "file": "./second.ts", + "original": 3 + }, + { + "file": "./stable.ts", + "original": 4 + } + ], + "size": 1477 +} + +tsconfig.json:: +SemanticDiagnostics:: +*not cached* /home/src/tslibs/TS/Lib/lib.es2026.full.d.ts +*not cached* /home/src/workspaces/project/first.ts +*not cached* /home/src/workspaces/project/second.ts +*not cached* /home/src/workspaces/project/stable.ts +Signatures:: +(computed .d.ts) /home/src/workspaces/project/first.ts +(computed .d.ts) /home/src/workspaces/project/second.ts + + +Edit [1]:: delete unchecked sources +//// [/home/src/workspaces/project/first.ts] *deleted* +//// [/home/src/workspaces/project/second.ts] *deleted* + +tsgo +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","checkPending":true,"root":[2],"fileNames":["lib.es2026.full.d.ts","./stable.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},"a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;"],"options":{"composite":true},"semanticDiagnosticsPerFile":[1,2],"affectedFilesPendingEmit":[[2,17]],"emitSignatures":[2]} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "checkPending": true, + "root": [ + { + "files": [ + "./stable.ts" + ], + "original": 2 + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./stable.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./stable.ts", + "version": "a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;", + "signature": "a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;", + "impliedNodeFormat": "CommonJS" + } + ], + "options": { + "composite": true + }, + "semanticDiagnosticsPerFile": [ + "lib.es2026.full.d.ts", + "./stable.ts" + ], + "affectedFilesPendingEmit": [ + [ + "./stable.ts", + "Js|DtsEmit", + [ + 2, + 17 + ] + ] + ], + "emitSignatures": [ + { + "file": "./stable.ts", + "original": 2 + } + ], + "size": 1074 +} + +tsconfig.json:: +SemanticDiagnostics:: +*not cached* /home/src/tslibs/TS/Lib/lib.es2026.full.d.ts +*not cached* /home/src/workspaces/project/stable.ts +Signatures:: + + +Edit [2]:: no change + +tsgo +ExitStatus:: Success +Output:: + +tsconfig.json:: +SemanticDiagnostics:: +*not cached* /home/src/tslibs/TS/Lib/lib.es2026.full.d.ts +*not cached* /home/src/workspaces/project/stable.ts +Signatures:: + + +Edit [3]:: enable checking and emit +//// [/home/src/workspaces/project/tsconfig.json] *modified* +{"compilerOptions":{"incremental":true,"noCheck":false,"noEmit":false,"composite":true,"types":[]}} + +tsgo +ExitStatus:: Success +Output:: +//// [/home/src/workspaces/project/stable.d.ts] *new* +export declare const stable = 1; + +//// [/home/src/workspaces/project/stable.js] *new* +export const stable = 1; + +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo] *modified* +{"version":"FakeTSVersion","root":[2],"fileNames":["lib.es2026.full.d.ts","./stable.ts"],"fileInfos":[{"version":"8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;","signature":"4f0b9b6a4585d15920ed6ed137bfaa76-export declare const stable = 1;\n","impliedNodeFormat":1}],"options":{"composite":true},"latestChangedDtsFile":"./stable.d.ts"} +//// [/home/src/workspaces/project/tsconfig.tsbuildinfo.readable.baseline.txt] *modified* +{ + "version": "FakeTSVersion", + "root": [ + { + "files": [ + "./stable.ts" + ], + "original": 2 + } + ], + "fileNames": [ + "lib.es2026.full.d.ts", + "./stable.ts" + ], + "fileInfos": [ + { + "fileName": "lib.es2026.full.d.ts", + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "signature": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": "CommonJS", + "original": { + "version": "8859c12c614ce56ba9a18e58384a198f-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ninterface SymbolConstructor {\n (desc?: string | number): symbol;\n for(name: string): symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true, + "impliedNodeFormat": 1 + } + }, + { + "fileName": "./stable.ts", + "version": "a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;", + "signature": "4f0b9b6a4585d15920ed6ed137bfaa76-export declare const stable = 1;\n", + "impliedNodeFormat": "CommonJS", + "original": { + "version": "a8c0e4953cb503bd0c712ce4243dbd0a-export const stable = 1;", + "signature": "4f0b9b6a4585d15920ed6ed137bfaa76-export declare const stable = 1;\n", + "impliedNodeFormat": 1 + } + } + ], + "options": { + "composite": true + }, + "latestChangedDtsFile": "./stable.d.ts", + "size": 1117 +} + +tsconfig.json:: +SemanticDiagnostics:: +*refresh* /home/src/tslibs/TS/Lib/lib.es2026.full.d.ts +*refresh* /home/src/workspaces/project/stable.ts +Signatures:: +(stored at emit) /home/src/workspaces/project/stable.ts + + +Edit [4]:: no change + +tsgo +ExitStatus:: Success +Output:: + +tsconfig.json:: +SemanticDiagnostics:: +Signatures::