Skip to content

Commit 15f07e6

Browse files
committed
Fix #4506: Remove assert to allow for invalid patterns already flagged erlier by the checker
1 parent 3bb2c57 commit 15f07e6

File tree

4 files changed

+41
-1
lines changed

4 files changed

+41
-1
lines changed

src/compiler/checker.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2429,7 +2429,7 @@ namespace ts {
24292429
return false;
24302430

24312431
default:
2432-
Debug.fail("isDeclarationVisible unknown: SyntaxKind: " + node.kind);
2432+
return false;
24332433
}
24342434
}
24352435
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
tests/cases/compiler/declarationEmit_invalidExport.ts(3,3): error TS7027: Unreachable code detected.
2+
tests/cases/compiler/declarationEmit_invalidExport.ts(5,30): error TS4081: Exported type alias 'MyClass' has or is using private name 'myClass'.
3+
tests/cases/compiler/declarationEmit_invalidExport.ts(6,1): error TS1128: Declaration or statement expected.
4+
5+
6+
==== tests/cases/compiler/declarationEmit_invalidExport.ts (3 errors) ====
7+
8+
if (false) {
9+
export var myClass = 0;
10+
~~~~~~
11+
!!! error TS7027: Unreachable code detected.
12+
}
13+
export type MyClass = typeof myClass;
14+
~~~~~~~
15+
!!! error TS4081: Exported type alias 'MyClass' has or is using private name 'myClass'.
16+
}
17+
~
18+
!!! error TS1128: Declaration or statement expected.
19+
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
//// [declarationEmit_invalidExport.ts]
2+
3+
if (false) {
4+
export var myClass = 0;
5+
}
6+
export type MyClass = typeof myClass;
7+
}
8+
9+
10+
//// [declarationEmit_invalidExport.js]
11+
"use strict";
12+
if (false) {
13+
exports.myClass = 0;
14+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// @declaration: true
2+
3+
if (false) {
4+
export var myClass = 0;
5+
}
6+
export type MyClass = typeof myClass;
7+
}

0 commit comments

Comments
 (0)