From b31fc03b89ecb4b33f8e6db42f422d69f35181f6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 3 Sep 2025 23:23:00 +0000 Subject: [PATCH] Add baseUrl deprecation warning for TypeScript 6.0 Co-authored-by: DanielRosenwasser <972891+DanielRosenwasser@users.noreply.github.com> --- src/compiler/program.ts | 11 ++++++---- ...eprecatedCompilerOptionsBaseUrl.errors.txt | 22 +++++++++++++++++++ .../deprecatedCompilerOptionsBaseUrl.js | 19 ++++++++++++++++ .../deprecatedCompilerOptionsBaseUrl.symbols | 14 ++++++++++++ .../deprecatedCompilerOptionsBaseUrl.types | 20 +++++++++++++++++ ...deprecatedCompilerOptionsBaseUrlIgnored.js | 19 ++++++++++++++++ ...catedCompilerOptionsBaseUrlIgnored.symbols | 14 ++++++++++++ ...recatedCompilerOptionsBaseUrlIgnored.types | 20 +++++++++++++++++ .../deprecatedCompilerOptionsBaseUrl.ts | 18 +++++++++++++++ ...deprecatedCompilerOptionsBaseUrlIgnored.ts | 19 ++++++++++++++++ 10 files changed, 172 insertions(+), 4 deletions(-) create mode 100644 tests/baselines/reference/deprecatedCompilerOptionsBaseUrl.errors.txt create mode 100644 tests/baselines/reference/deprecatedCompilerOptionsBaseUrl.js create mode 100644 tests/baselines/reference/deprecatedCompilerOptionsBaseUrl.symbols create mode 100644 tests/baselines/reference/deprecatedCompilerOptionsBaseUrl.types create mode 100644 tests/baselines/reference/deprecatedCompilerOptionsBaseUrlIgnored.js create mode 100644 tests/baselines/reference/deprecatedCompilerOptionsBaseUrlIgnored.symbols create mode 100644 tests/baselines/reference/deprecatedCompilerOptionsBaseUrlIgnored.types create mode 100644 tests/cases/compiler/deprecatedCompilerOptionsBaseUrl.ts create mode 100644 tests/cases/compiler/deprecatedCompilerOptionsBaseUrlIgnored.ts diff --git a/src/compiler/program.ts b/src/compiler/program.ts index bdfb8d0151b..79adcbd04e7 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -4525,10 +4525,13 @@ export function createProgram(_rootNamesOrOptions: readonly string[] | CreatePro } }); - checkDeprecations("6.0", "7.0", createDiagnostic, createDeprecatedDiagnostic => { - if (options.moduleResolution === ModuleResolutionKind.Node10) { - createDeprecatedDiagnostic("moduleResolution", "node10"); - } + checkDeprecations("6.0", "7.0", createDiagnostic, createDeprecatedDiagnostic => { + if (options.moduleResolution === ModuleResolutionKind.Node10) { + createDeprecatedDiagnostic("moduleResolution", "node10"); + } + if (options.baseUrl) { + createDeprecatedDiagnostic("baseUrl"); + } }); } diff --git a/tests/baselines/reference/deprecatedCompilerOptionsBaseUrl.errors.txt b/tests/baselines/reference/deprecatedCompilerOptionsBaseUrl.errors.txt new file mode 100644 index 00000000000..73c4942390f --- /dev/null +++ b/tests/baselines/reference/deprecatedCompilerOptionsBaseUrl.errors.txt @@ -0,0 +1,22 @@ +/foo/tsconfig.json(3,9): error TS5101: Option 'baseUrl' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error. + + +==== /foo/tsconfig.json (1 errors) ==== + { + "compilerOptions": { + "baseUrl": "./src", + ~~~~~~~~~ +!!! error TS5101: Option 'baseUrl' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error. + "paths": { + "@app/*": ["app/*"], + "@lib/*": ["lib/*"] + } + } + } + +==== /foo/src/app/module.ts (0 errors) ==== + export const value = 42; + +==== /foo/src/main.ts (0 errors) ==== + import { value } from "@app/module"; + const result = value; \ No newline at end of file diff --git a/tests/baselines/reference/deprecatedCompilerOptionsBaseUrl.js b/tests/baselines/reference/deprecatedCompilerOptionsBaseUrl.js new file mode 100644 index 00000000000..9fb21bb565b --- /dev/null +++ b/tests/baselines/reference/deprecatedCompilerOptionsBaseUrl.js @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/deprecatedCompilerOptionsBaseUrl.ts] //// + +//// [module.ts] +export const value = 42; + +//// [main.ts] +import { value } from "@app/module"; +const result = value; + +//// [module.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.value = void 0; +exports.value = 42; +//// [main.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var module_1 = require("@app/module"); +var result = module_1.value; diff --git a/tests/baselines/reference/deprecatedCompilerOptionsBaseUrl.symbols b/tests/baselines/reference/deprecatedCompilerOptionsBaseUrl.symbols new file mode 100644 index 00000000000..78639bf650a --- /dev/null +++ b/tests/baselines/reference/deprecatedCompilerOptionsBaseUrl.symbols @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/deprecatedCompilerOptionsBaseUrl.ts] //// + +=== /foo/src/app/module.ts === +export const value = 42; +>value : Symbol(value, Decl(module.ts, 0, 12)) + +=== /foo/src/main.ts === +import { value } from "@app/module"; +>value : Symbol(value, Decl(main.ts, 0, 8)) + +const result = value; +>result : Symbol(result, Decl(main.ts, 1, 5)) +>value : Symbol(value, Decl(main.ts, 0, 8)) + diff --git a/tests/baselines/reference/deprecatedCompilerOptionsBaseUrl.types b/tests/baselines/reference/deprecatedCompilerOptionsBaseUrl.types new file mode 100644 index 00000000000..a88994f9f39 --- /dev/null +++ b/tests/baselines/reference/deprecatedCompilerOptionsBaseUrl.types @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/deprecatedCompilerOptionsBaseUrl.ts] //// + +=== /foo/src/app/module.ts === +export const value = 42; +>value : 42 +> : ^^ +>42 : 42 +> : ^^ + +=== /foo/src/main.ts === +import { value } from "@app/module"; +>value : 42 +> : ^^ + +const result = value; +>result : 42 +> : ^^ +>value : 42 +> : ^^ + diff --git a/tests/baselines/reference/deprecatedCompilerOptionsBaseUrlIgnored.js b/tests/baselines/reference/deprecatedCompilerOptionsBaseUrlIgnored.js new file mode 100644 index 00000000000..3f1fd9807af --- /dev/null +++ b/tests/baselines/reference/deprecatedCompilerOptionsBaseUrlIgnored.js @@ -0,0 +1,19 @@ +//// [tests/cases/compiler/deprecatedCompilerOptionsBaseUrlIgnored.ts] //// + +//// [module.ts] +export const value = 42; + +//// [main.ts] +import { value } from "@app/module"; +const result = value; + +//// [module.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.value = void 0; +exports.value = 42; +//// [main.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var module_1 = require("@app/module"); +var result = module_1.value; diff --git a/tests/baselines/reference/deprecatedCompilerOptionsBaseUrlIgnored.symbols b/tests/baselines/reference/deprecatedCompilerOptionsBaseUrlIgnored.symbols new file mode 100644 index 00000000000..c1c22f0c13c --- /dev/null +++ b/tests/baselines/reference/deprecatedCompilerOptionsBaseUrlIgnored.symbols @@ -0,0 +1,14 @@ +//// [tests/cases/compiler/deprecatedCompilerOptionsBaseUrlIgnored.ts] //// + +=== /foo/src/app/module.ts === +export const value = 42; +>value : Symbol(value, Decl(module.ts, 0, 12)) + +=== /foo/src/main.ts === +import { value } from "@app/module"; +>value : Symbol(value, Decl(main.ts, 0, 8)) + +const result = value; +>result : Symbol(result, Decl(main.ts, 1, 5)) +>value : Symbol(value, Decl(main.ts, 0, 8)) + diff --git a/tests/baselines/reference/deprecatedCompilerOptionsBaseUrlIgnored.types b/tests/baselines/reference/deprecatedCompilerOptionsBaseUrlIgnored.types new file mode 100644 index 00000000000..1e4ee28709b --- /dev/null +++ b/tests/baselines/reference/deprecatedCompilerOptionsBaseUrlIgnored.types @@ -0,0 +1,20 @@ +//// [tests/cases/compiler/deprecatedCompilerOptionsBaseUrlIgnored.ts] //// + +=== /foo/src/app/module.ts === +export const value = 42; +>value : 42 +> : ^^ +>42 : 42 +> : ^^ + +=== /foo/src/main.ts === +import { value } from "@app/module"; +>value : 42 +> : ^^ + +const result = value; +>result : 42 +> : ^^ +>value : 42 +> : ^^ + diff --git a/tests/cases/compiler/deprecatedCompilerOptionsBaseUrl.ts b/tests/cases/compiler/deprecatedCompilerOptionsBaseUrl.ts new file mode 100644 index 00000000000..05ccdd18ac3 --- /dev/null +++ b/tests/cases/compiler/deprecatedCompilerOptionsBaseUrl.ts @@ -0,0 +1,18 @@ +// @typeScriptVersion: 6.0 +// @filename: /foo/tsconfig.json +{ + "compilerOptions": { + "baseUrl": "./src", + "paths": { + "@app/*": ["app/*"], + "@lib/*": ["lib/*"] + } + } +} + +// @filename: /foo/src/app/module.ts +export const value = 42; + +// @filename: /foo/src/main.ts +import { value } from "@app/module"; +const result = value; \ No newline at end of file diff --git a/tests/cases/compiler/deprecatedCompilerOptionsBaseUrlIgnored.ts b/tests/cases/compiler/deprecatedCompilerOptionsBaseUrlIgnored.ts new file mode 100644 index 00000000000..b35ece912f3 --- /dev/null +++ b/tests/cases/compiler/deprecatedCompilerOptionsBaseUrlIgnored.ts @@ -0,0 +1,19 @@ +// @typeScriptVersion: 6.0 +// @filename: /foo/tsconfig.json +{ + "compilerOptions": { + "baseUrl": "./src", + "paths": { + "@app/*": ["app/*"], + "@lib/*": ["lib/*"] + }, + "ignoreDeprecations": "6.0" + } +} + +// @filename: /foo/src/app/module.ts +export const value = 42; + +// @filename: /foo/src/main.ts +import { value } from "@app/module"; +const result = value; \ No newline at end of file