Remove version comparison logic and fix diagnostic message ordering

Co-authored-by: RyanCavanaugh <6685088+RyanCavanaugh@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2025-09-04 15:45:51 +00:00
parent dcfee6e161
commit 3a6002642f
2 changed files with 36 additions and 47 deletions

View File

@ -48001,39 +48001,28 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
const pos = getNonModifierTokenPosOfNode(node);
const span = getSpanOfTokenAtPosition(sourceFile, pos);
// Check if we should generate an error (TS 6.0+) or suggestion (older versions)
const currentVersion = new Version(versionMajorMinor);
const errorVersion = new Version("6.0");
const shouldError = currentVersion.compareTo(errorVersion) >= Comparison.EqualTo;
// Check if ignoreDeprecations should suppress this error
let shouldSuppress = false;
if (shouldError && compilerOptions.ignoreDeprecations) {
// Only valid ignoreDeprecations values: "5.0" and "6.0"
if (compilerOptions.ignoreDeprecations === "6.0") {
shouldSuppress = true;
}
}
if (shouldError && !shouldSuppress) {
// In TypeScript 6.0+, this is an error unless suppressed by ignoreDeprecations
const errorDiagnostic = createFileDiagnostic(
sourceFile,
span.start,
span.length,
Diagnostics.The_module_keyword_is_not_allowed_for_namespace_declarations_Use_the_namespace_keyword_instead,
);
diagnostics.add(errorDiagnostic);
}
else {
// In older versions or when suppressed, keep as suggestion
const suggestionDiagnostic = createFileDiagnostic(
sourceFile,
span.start,
span.length,
Diagnostics.A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_keyword_instead,
);
suggestionDiagnostics.add(suggestionDiagnostic);
// Check if ignoreDeprecations should suppress this error
const shouldSuppress = compilerOptions.ignoreDeprecations === "6.0";
if (!shouldSuppress) {
// Generate error for module keyword usage in namespace declarations
const errorDiagnostic = createFileDiagnostic(
sourceFile,
span.start,
span.length,
Diagnostics.The_module_keyword_is_not_allowed_for_namespace_declarations_Use_the_namespace_keyword_instead,
);
diagnostics.add(errorDiagnostic);
}
else {
// When suppressed by ignoreDeprecations, keep as suggestion
const suggestionDiagnostic = createFileDiagnostic(
sourceFile,
span.start,
span.length,
Diagnostics.A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_keyword_instead,
);
suggestionDiagnostics.add(suggestionDiagnostic);
}
}
}

View File

@ -1820,15 +1820,11 @@
"category": "Error",
"code": 1539
},
"A 'namespace' declaration should not be declared using the 'module' keyword. Please use the 'namespace' keyword instead.": {
"category": "Suggestion",
"code": 1540,
"reportsDeprecated": true
},
"The 'module' keyword is not allowed for namespace declarations. Use the 'namespace' keyword instead.": {
"category": "Error",
"code": 1547
},
"A 'namespace' declaration should not be declared using the 'module' keyword. Please use the 'namespace' keyword instead.": {
"category": "Suggestion",
"code": 1540,
"reportsDeprecated": true
},
"Type-only import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute.": {
"category": "Error",
"code": 1541
@ -1849,11 +1845,15 @@
"category": "Error",
"code": 1545
},
"'await using' declarations are not allowed in ambient contexts.": {
"category": "Error",
"code": 1546
},
"'await using' declarations are not allowed in ambient contexts.": {
"category": "Error",
"code": 1546
},
"The 'module' keyword is not allowed for namespace declarations. Use the 'namespace' keyword instead.": {
"category": "Error",
"code": 1547
},
"The types of '{0}' are incompatible between these types.": {
"category": "Error",
"code": 2200