Fix local and exported type alias merging (#36237)

* Fix local and exported type alias merging

* Add baselines
This commit is contained in:
Andrew Branch 2020-01-22 13:16:49 -08:00 committed by GitHub
parent 82a3eb5b5f
commit 1d5749ef78
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 38 additions and 1 deletions

View file

@ -29187,7 +29187,7 @@ namespace ts {
}
}
function checkExportsOnMergedDeclarations(node: Node): void {
function checkExportsOnMergedDeclarations(node: Declaration): void {
if (!produceDiagnostics) {
return;
}
@ -32493,6 +32493,7 @@ namespace ts {
checkGrammarDecoratorsAndModifiers(node);
checkTypeNameIsReserved(node.name, Diagnostics.Type_alias_name_cannot_be_0);
checkExportsOnMergedDeclarations(node);
checkTypeParameters(node.typeParameters);
checkSourceElement(node.type);
registerForUnusedIdentifiersCheck(node);

View file

@ -0,0 +1,12 @@
tests/cases/conformance/types/typeAliases/typeAliasesDoNotMerge.ts(1,13): error TS2395: Individual declarations in merged declaration 'A' must be all exported or all local.
tests/cases/conformance/types/typeAliases/typeAliasesDoNotMerge.ts(2,6): error TS2395: Individual declarations in merged declaration 'A' must be all exported or all local.
==== tests/cases/conformance/types/typeAliases/typeAliasesDoNotMerge.ts (2 errors) ====
export type A = {}
~
!!! error TS2395: Individual declarations in merged declaration 'A' must be all exported or all local.
type A = {}
~
!!! error TS2395: Individual declarations in merged declaration 'A' must be all exported or all local.

View file

@ -0,0 +1,8 @@
//// [typeAliasesDoNotMerge.ts]
export type A = {}
type A = {}
//// [typeAliasesDoNotMerge.js]
"use strict";
exports.__esModule = true;

View file

@ -0,0 +1,7 @@
=== tests/cases/conformance/types/typeAliases/typeAliasesDoNotMerge.ts ===
export type A = {}
>A : Symbol(A, Decl(typeAliasesDoNotMerge.ts, 0, 0))
type A = {}
>A : Symbol(A, Decl(typeAliasesDoNotMerge.ts, 0, 0), Decl(typeAliasesDoNotMerge.ts, 0, 18))

View file

@ -0,0 +1,7 @@
=== tests/cases/conformance/types/typeAliases/typeAliasesDoNotMerge.ts ===
export type A = {}
>A : import("tests/cases/conformance/types/typeAliases/typeAliasesDoNotMerge").A
type A = {}
>A : import("tests/cases/conformance/types/typeAliases/typeAliasesDoNotMerge").A

View file

@ -0,0 +1,2 @@
export type A = {}
type A = {}