mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-05 08:11:30 -06:00
Fix: checkAliasSymbol crash when checking for @deprecated (#42971)
* Fix: checkAliasSymbol crash when checking for @deprecated It's possible that we shouldn't be creating symbol with no declarations from non-homomorphic mapped types, but for 4.2, the right fix is to make the @deprecated-check in checkAliasSymbol ensure that target.declarations is defined. * Add bug number and accept baselines
This commit is contained in:
parent
ccdd688e4f
commit
2c5cee59f0
@ -37124,7 +37124,7 @@ namespace ts {
|
||||
error(node, Diagnostics.Re_exporting_a_type_when_the_isolatedModules_flag_is_provided_requires_using_export_type);
|
||||
}
|
||||
|
||||
if (isImportSpecifier(node) && every(target.declarations, d => !!(getCombinedNodeFlags(d) & NodeFlags.Deprecated))) {
|
||||
if (isImportSpecifier(node) && target.declarations?.every(d => !!(getCombinedNodeFlags(d) & NodeFlags.Deprecated))) {
|
||||
addDeprecatedSuggestion(node.name, target.declarations, symbol.escapedName as string);
|
||||
}
|
||||
}
|
||||
|
||||
18
tests/baselines/reference/importPropertyFromMappedType.js
Normal file
18
tests/baselines/reference/importPropertyFromMappedType.js
Normal file
@ -0,0 +1,18 @@
|
||||
//// [tests/cases/compiler/importPropertyFromMappedType.ts] ////
|
||||
|
||||
//// [errors.d.ts]
|
||||
// #42957
|
||||
|
||||
export = createHttpError;
|
||||
declare const createHttpError: createHttpError.NamedConstructors;
|
||||
declare namespace createHttpError {
|
||||
type NamedConstructors = { [P in 'NotFound']: unknown;}
|
||||
}
|
||||
|
||||
//// [main.ts]
|
||||
import { NotFound } from './errors'
|
||||
|
||||
|
||||
//// [main.js]
|
||||
"use strict";
|
||||
exports.__esModule = true;
|
||||
@ -0,0 +1,23 @@
|
||||
=== tests/cases/compiler/errors.d.ts ===
|
||||
// #42957
|
||||
|
||||
export = createHttpError;
|
||||
>createHttpError : Symbol(createHttpError, Decl(errors.d.ts, 3, 13), Decl(errors.d.ts, 3, 65))
|
||||
|
||||
declare const createHttpError: createHttpError.NamedConstructors;
|
||||
>createHttpError : Symbol(createHttpError, Decl(errors.d.ts, 3, 13), Decl(errors.d.ts, 3, 65))
|
||||
>createHttpError : Symbol(createHttpError, Decl(errors.d.ts, 3, 13), Decl(errors.d.ts, 3, 65))
|
||||
>NamedConstructors : Symbol(createHttpError.NamedConstructors, Decl(errors.d.ts, 4, 35))
|
||||
|
||||
declare namespace createHttpError {
|
||||
>createHttpError : Symbol(createHttpError, Decl(errors.d.ts, 3, 13), Decl(errors.d.ts, 3, 65))
|
||||
|
||||
type NamedConstructors = { [P in 'NotFound']: unknown;}
|
||||
>NamedConstructors : Symbol(NamedConstructors, Decl(errors.d.ts, 4, 35))
|
||||
>P : Symbol(P, Decl(errors.d.ts, 5, 33))
|
||||
}
|
||||
|
||||
=== tests/cases/compiler/main.ts ===
|
||||
import { NotFound } from './errors'
|
||||
>NotFound : Symbol(NotFound, Decl(main.ts, 0, 8))
|
||||
|
||||
19
tests/baselines/reference/importPropertyFromMappedType.types
Normal file
19
tests/baselines/reference/importPropertyFromMappedType.types
Normal file
@ -0,0 +1,19 @@
|
||||
=== tests/cases/compiler/errors.d.ts ===
|
||||
// #42957
|
||||
|
||||
export = createHttpError;
|
||||
>createHttpError : createHttpError.NamedConstructors
|
||||
|
||||
declare const createHttpError: createHttpError.NamedConstructors;
|
||||
>createHttpError : createHttpError.NamedConstructors
|
||||
>createHttpError : any
|
||||
|
||||
declare namespace createHttpError {
|
||||
type NamedConstructors = { [P in 'NotFound']: unknown;}
|
||||
>NamedConstructors : NamedConstructors
|
||||
}
|
||||
|
||||
=== tests/cases/compiler/main.ts ===
|
||||
import { NotFound } from './errors'
|
||||
>NotFound : unknown
|
||||
|
||||
11
tests/cases/compiler/importPropertyFromMappedType.ts
Normal file
11
tests/cases/compiler/importPropertyFromMappedType.ts
Normal file
@ -0,0 +1,11 @@
|
||||
// #42957
|
||||
|
||||
// @filename: errors.d.ts
|
||||
export = createHttpError;
|
||||
declare const createHttpError: createHttpError.NamedConstructors;
|
||||
declare namespace createHttpError {
|
||||
type NamedConstructors = { [P in 'NotFound']: unknown;}
|
||||
}
|
||||
|
||||
// @filename: main.ts
|
||||
import { NotFound } from './errors'
|
||||
Loading…
x
Reference in New Issue
Block a user