diff --git a/src/testRunner/unittests/tsbuild/sample.ts b/src/testRunner/unittests/tsbuild/sample.ts index 49815d6375066..3eb0f4595bb2f 100644 --- a/src/testRunner/unittests/tsbuild/sample.ts +++ b/src/testRunner/unittests/tsbuild/sample.ts @@ -161,7 +161,10 @@ describe("unittests:: tsbuild:: on 'sample1' project", () => { }, { caption: "rebuilds when tsconfig changes", - edit: fs => replaceText(fs, "/src/tests/tsconfig.json", `"composite": true`, `"composite": true, "target": "es3"`), + edit: fs => { + replaceText(fs, "/src/tests/tsconfig.json", `"composite": true`, `"composite": true, "target": "es2020"`); + fs.writeFileSync("/lib/lib.es2020.full.d.ts", libContent); + }, }, ] }); diff --git a/tests/baselines/reference/tsbuild/sample1/can-detect-when-and-what-to-rebuild-discrepancies.js b/tests/baselines/reference/tsbuild/sample1/can-detect-when-and-what-to-rebuild-discrepancies.js deleted file mode 100644 index 33387eb5ad573..0000000000000 --- a/tests/baselines/reference/tsbuild/sample1/can-detect-when-and-what-to-rebuild-discrepancies.js +++ /dev/null @@ -1,339 +0,0 @@ -2:: rebuilds when tsconfig changes -*** Needs explanation -TsBuild info text without affectedFilesPendingEmit:: /src/tests/tsconfig.tsbuildinfo.readable.baseline.txt:: -CleanBuild: -{ - "program": { - "fileInfos": { - "../../lib/lib.d.ts": { - "version": "3858781397-/// \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 {}\ndeclare const console: { log(msg: any): void; };", - "affectsGlobalScope": true - }, - "./index.ts": { - "version": "3708260210-const m = 10;", - "affectsGlobalScope": true - } - }, - "root": [ - [ - 2, - "./index.ts" - ] - ], - "options": { - "composite": true, - "declaration": true, - "skipDefaultLibCheck": true, - "target": 0 - }, - "referencedMap": {}, - "semanticDiagnosticsPerFile": [ - "../../lib/lib.d.ts" - ], - "changeFileSet": [ - "./index.ts" - ], - "latestChangedDtsFile": "FakeFileName" - }, - "version": "FakeTSVersion" -} -IncrementalBuild: -{ - "program": { - "fileInfos": { - "../../lib/lib.d.ts": { - "version": "3858781397-/// \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 {}\ndeclare const console: { log(msg: any): void; };", - "affectsGlobalScope": true - }, - "./index.ts": { - "version": "3708260210-const m = 10;", - "affectsGlobalScope": true - } - }, - "root": [ - [ - 2, - "./index.ts" - ] - ], - "options": { - "composite": true, - "declaration": true, - "skipDefaultLibCheck": true, - "target": 0 - }, - "referencedMap": {}, - "semanticDiagnosticsPerFile": [ - "../../lib/lib.d.ts", - "./index.ts" - ], - "latestChangedDtsFile": "FakeFileName" - }, - "version": "FakeTSVersion" -} -Incremental signature is neither dts signature nor file version for File:: ./index.ts -Incremental:: { - "original": { - "version": "3708260210-const m = 10;", - "signature": "-357908916-declare const m = 10;\n", - "affectsGlobalScope": true - }, - "version": "3708260210-const m = 10;", - "signature": "-357908916-declare const m = 10;\n", - "affectsGlobalScope": true -} -Clean:: { - "original": { - "version": "3708260210-const m = 10;", - "signature": "2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n", - "affectsGlobalScope": true - }, - "version": "3708260210-const m = 10;", - "signature": "2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n", - "affectsGlobalScope": true -} -Dts Signature:: $undefined -Incremental Reference set is neither from dts nor files reference map for File:: ./index.ts:: -Incremental:: undefined -Clean:: [ - "../core/anothermodule.d.ts" -] -DtsExportsMap:: undefined -Incremental build contains affectedFilesPendingEmit, clean build does not have it: /src/tests/tsconfig.tsbuildinfo.readable.baseline.txt:: -Incremental buildInfoText:: { - "program": { - "fileNames": [ - "../../lib/lib.d.ts", - "./index.ts" - ], - "fileInfos": { - "../../lib/lib.d.ts": { - "original": { - "version": "3858781397-/// \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 {}\ndeclare const console: { log(msg: any): void; };", - "affectsGlobalScope": true - }, - "version": "3858781397-/// \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 {}\ndeclare const console: { log(msg: any): void; };", - "signature": "3858781397-/// \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 {}\ndeclare const console: { log(msg: any): void; };", - "affectsGlobalScope": true - }, - "./index.ts": { - "original": { - "version": "3708260210-const m = 10;", - "signature": "-357908916-declare const m = 10;\n", - "affectsGlobalScope": true - }, - "version": "3708260210-const m = 10;", - "signature": "-357908916-declare const m = 10;\n", - "affectsGlobalScope": true - } - }, - "root": [ - [ - 2, - "./index.ts" - ] - ], - "options": { - "composite": true, - "declaration": true, - "skipDefaultLibCheck": true, - "target": 0 - }, - "referencedMap": {}, - "exportedModulesMap": {}, - "semanticDiagnosticsPerFile": [ - "../../lib/lib.d.ts", - "./index.ts" - ], - "affectedFilesPendingEmit": [ - [ - "./index.ts", - "Js | Dts" - ] - ], - "latestChangedDtsFile": "./index.d.ts" - }, - "version": "FakeTSVersion", - "size": 938 -} -Clean buildInfoText:: { - "program": { - "fileNames": [ - "../../lib/lib.d.ts", - "./index.ts", - "../core/anothermodule.d.ts" - ], - "fileNamesList": [ - [ - "../core/anothermodule.d.ts" - ] - ], - "fileInfos": { - "../../lib/lib.d.ts": { - "original": { - "version": "3858781397-/// \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 {}\ndeclare const console: { log(msg: any): void; };", - "affectsGlobalScope": true - }, - "version": "3858781397-/// \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 {}\ndeclare const console: { log(msg: any): void; };", - "signature": "3858781397-/// \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 {}\ndeclare const console: { log(msg: any): void; };", - "affectsGlobalScope": true - }, - "./index.ts": { - "original": { - "version": "3708260210-const m = 10;", - "signature": "2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n", - "affectsGlobalScope": true - }, - "version": "3708260210-const m = 10;", - "signature": "2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n", - "affectsGlobalScope": true - } - }, - "root": [ - [ - 2, - "./index.ts" - ] - ], - "options": { - "composite": true, - "declaration": true, - "skipDefaultLibCheck": true, - "target": 0 - }, - "referencedMap": {}, - "exportedModulesMap": { - "./index.ts": [ - "../core/anothermodule.d.ts" - ] - }, - "semanticDiagnosticsPerFile": [ - "../../lib/lib.d.ts" - ], - "changeFileSet": [ - "./index.ts" - ], - "latestChangedDtsFile": "./index.d.ts" - }, - "version": "FakeTSVersion", - "size": 1040 -} -Incremental build contains ./index.ts file as pending emit, clean build does not have it: /src/tests/tsconfig.tsbuildinfo.readable.baseline.txt:: -Incremental buildInfoText:: { - "program": { - "fileNames": [ - "../../lib/lib.d.ts", - "./index.ts" - ], - "fileInfos": { - "../../lib/lib.d.ts": { - "original": { - "version": "3858781397-/// \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 {}\ndeclare const console: { log(msg: any): void; };", - "affectsGlobalScope": true - }, - "version": "3858781397-/// \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 {}\ndeclare const console: { log(msg: any): void; };", - "signature": "3858781397-/// \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 {}\ndeclare const console: { log(msg: any): void; };", - "affectsGlobalScope": true - }, - "./index.ts": { - "original": { - "version": "3708260210-const m = 10;", - "signature": "-357908916-declare const m = 10;\n", - "affectsGlobalScope": true - }, - "version": "3708260210-const m = 10;", - "signature": "-357908916-declare const m = 10;\n", - "affectsGlobalScope": true - } - }, - "root": [ - [ - 2, - "./index.ts" - ] - ], - "options": { - "composite": true, - "declaration": true, - "skipDefaultLibCheck": true, - "target": 0 - }, - "referencedMap": {}, - "exportedModulesMap": {}, - "semanticDiagnosticsPerFile": [ - "../../lib/lib.d.ts", - "./index.ts" - ], - "affectedFilesPendingEmit": [ - [ - "./index.ts", - "Js | Dts" - ] - ], - "latestChangedDtsFile": "./index.d.ts" - }, - "version": "FakeTSVersion", - "size": 938 -} -Clean buildInfoText:: { - "program": { - "fileNames": [ - "../../lib/lib.d.ts", - "./index.ts", - "../core/anothermodule.d.ts" - ], - "fileNamesList": [ - [ - "../core/anothermodule.d.ts" - ] - ], - "fileInfos": { - "../../lib/lib.d.ts": { - "original": { - "version": "3858781397-/// \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 {}\ndeclare const console: { log(msg: any): void; };", - "affectsGlobalScope": true - }, - "version": "3858781397-/// \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 {}\ndeclare const console: { log(msg: any): void; };", - "signature": "3858781397-/// \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 {}\ndeclare const console: { log(msg: any): void; };", - "affectsGlobalScope": true - }, - "./index.ts": { - "original": { - "version": "3708260210-const m = 10;", - "signature": "2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n", - "affectsGlobalScope": true - }, - "version": "3708260210-const m = 10;", - "signature": "2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n", - "affectsGlobalScope": true - } - }, - "root": [ - [ - 2, - "./index.ts" - ] - ], - "options": { - "composite": true, - "declaration": true, - "skipDefaultLibCheck": true, - "target": 0 - }, - "referencedMap": {}, - "exportedModulesMap": { - "./index.ts": [ - "../core/anothermodule.d.ts" - ] - }, - "semanticDiagnosticsPerFile": [ - "../../lib/lib.d.ts" - ], - "changeFileSet": [ - "./index.ts" - ], - "latestChangedDtsFile": "./index.d.ts" - }, - "version": "FakeTSVersion", - "size": 1040 -} \ No newline at end of file diff --git a/tests/baselines/reference/tsbuild/sample1/can-detect-when-and-what-to-rebuild.js b/tests/baselines/reference/tsbuild/sample1/can-detect-when-and-what-to-rebuild.js index dffe8cb1024f4..3125fcae76bd0 100644 --- a/tests/baselines/reference/tsbuild/sample1/can-detect-when-and-what-to-rebuild.js +++ b/tests/baselines/reference/tsbuild/sample1/can-detect-when-and-what-to-rebuild.js @@ -683,6 +683,21 @@ exports.multiply = multiply; Change:: rebuilds when tsconfig changes Input:: +//// [/lib/lib.es2020.full.d.ts] +/// +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 {} +declare const console: { log(msg: any): void; }; + //// [/src/tests/tsconfig.json] { "references": [ @@ -691,7 +706,7 @@ Input:: ], "files": ["index.ts"], "compilerOptions": { - "composite": true, "target": "es3", + "composite": true, "target": "es2020", "declaration": true, "forceConsistentCasingInFileNames": true, "skipDefaultLibCheck": true @@ -702,42 +717,38 @@ Input:: Output:: /lib/tsc --b /src/tests --verbose -[12:00:59 AM] Projects in this build: +[12:01:00 AM] Projects in this build: * src/core/tsconfig.json * src/logic/tsconfig.json * src/tests/tsconfig.json -[12:01:00 AM] Project 'src/core/tsconfig.json' is up to date because newest input 'src/core/index.ts' is older than output 'src/core/tsconfig.tsbuildinfo' +[12:01:01 AM] Project 'src/core/tsconfig.json' is up to date because newest input 'src/core/index.ts' is older than output 'src/core/tsconfig.tsbuildinfo' -[12:01:01 AM] Project 'src/logic/tsconfig.json' is up to date because newest input 'src/logic/index.ts' is older than output 'src/logic/tsconfig.tsbuildinfo' +[12:01:02 AM] Project 'src/logic/tsconfig.json' is up to date because newest input 'src/logic/index.ts' is older than output 'src/logic/tsconfig.tsbuildinfo' -[12:01:02 AM] Project 'src/tests/tsconfig.json' is out of date because output 'src/tests/tsconfig.tsbuildinfo' is older than input 'src/tests/tsconfig.json' +[12:01:03 AM] Project 'src/tests/tsconfig.json' is out of date because output 'src/tests/tsconfig.tsbuildinfo' is older than input 'src/tests/tsconfig.json' -[12:01:03 AM] Building project '/src/tests/tsconfig.json'... +[12:01:04 AM] Building project '/src/tests/tsconfig.json'... -src/tests/tsconfig.json:8:38 - error TS5107: Option 'target=ES3' is deprecated and will stop functioning in TypeScript 5.5. Specify compilerOption '"ignoreDeprecations": "5.0"' to silence this error. - -8 "composite": true, "target": "es3", -   ~~~~~ - - -Found 1 error. - -exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped +exitCode:: ExitStatus.Success +//// [/src/tests/index.js] +const m = 10; + + //// [/src/tests/tsconfig.tsbuildinfo] -{"program":{"fileNames":["../../lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"3858781397-/// \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 {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},{"version":"3708260210-const m = 10;","signature":"-357908916-declare const m = 10;\n","affectsGlobalScope":true}],"root":[2],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true,"target":0},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2],"affectedFilesPendingEmit":[2],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"} +{"program":{"fileNames":["../../lib/lib.es2020.full.d.ts","./index.ts"],"fileInfos":[{"version":"3858781397-/// \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 {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},{"version":"3708260210-const m = 10;","signature":"-357908916-declare const m = 10;\n","affectsGlobalScope":true}],"root":[2],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true,"target":7},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"} //// [/src/tests/tsconfig.tsbuildinfo.readable.baseline.txt] { "program": { "fileNames": [ - "../../lib/lib.d.ts", + "../../lib/lib.es2020.full.d.ts", "./index.ts" ], "fileInfos": { - "../../lib/lib.d.ts": { + "../../lib/lib.es2020.full.d.ts": { "original": { "version": "3858781397-/// \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 {}\ndeclare const console: { log(msg: any): void; };", "affectsGlobalScope": true @@ -767,23 +778,17 @@ exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped "composite": true, "declaration": true, "skipDefaultLibCheck": true, - "target": 0 + "target": 7 }, "referencedMap": {}, "exportedModulesMap": {}, "semanticDiagnosticsPerFile": [ - "../../lib/lib.d.ts", + "../../lib/lib.es2020.full.d.ts", "./index.ts" ], - "affectedFilesPendingEmit": [ - [ - "./index.ts", - "Js | Dts" - ] - ], "latestChangedDtsFile": "./index.d.ts" }, "version": "FakeTSVersion", - "size": 938 + "size": 919 }