Skip to content

Commit 030fbdc

Browse files
Merge pull request #10046 from RyanCavanaugh/fix10045
Correctly check for ambient class flag
2 parents 1d979cc + cbb06ab commit 030fbdc

File tree

4 files changed

+33
-1
lines changed

4 files changed

+33
-1
lines changed

src/compiler/checker.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16227,7 +16227,7 @@ namespace ts {
1622716227
checkTypeAssignableTo(staticType, getTypeWithoutSignatures(staticBaseType), node.name || node,
1622816228
Diagnostics.Class_static_side_0_incorrectly_extends_base_class_static_side_1);
1622916229

16230-
if (baseType.symbol.valueDeclaration && !(baseType.symbol.valueDeclaration.flags & NodeFlags.Ambient)) {
16230+
if (baseType.symbol.valueDeclaration && !isInAmbientContext(baseType.symbol.valueDeclaration)) {
1623116231
if (!isBlockScopedNameDeclaredBeforeUse(baseType.symbol.valueDeclaration, node)) {
1623216232
error(baseTypeNode, Diagnostics.A_class_must_be_declared_after_its_base_class);
1623316233
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
=== tests/cases/compiler/a.d.ts ===
2+
3+
declare namespace ns {
4+
>ns : Symbol(ns, Decl(a.d.ts, 0, 0))
5+
6+
class SecondNS extends FirstNS { }
7+
>SecondNS : Symbol(SecondNS, Decl(a.d.ts, 1, 22))
8+
>FirstNS : Symbol(FirstNS, Decl(a.d.ts, 2, 36))
9+
10+
class FirstNS { }
11+
>FirstNS : Symbol(FirstNS, Decl(a.d.ts, 2, 36))
12+
}
13+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
=== tests/cases/compiler/a.d.ts ===
2+
3+
declare namespace ns {
4+
>ns : typeof ns
5+
6+
class SecondNS extends FirstNS { }
7+
>SecondNS : SecondNS
8+
>FirstNS : FirstNS
9+
10+
class FirstNS { }
11+
>FirstNS : FirstNS
12+
}
13+
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// @filename: a.d.ts
2+
3+
declare namespace ns {
4+
class SecondNS extends FirstNS { }
5+
class FirstNS { }
6+
}

0 commit comments

Comments
 (0)