Skip to content

Commit c1f84f8

Browse files
Fix
1 parent 6fce518 commit c1f84f8

File tree

3 files changed

+7
-5
lines changed

3 files changed

+7
-5
lines changed

src/resolver.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3449,13 +3449,12 @@ export class Resolver extends DiagnosticEmitter {
34493449
// A generic method cannot implement a non-generic interface method
34503450
// because monomorphization requires a concrete type to generate code,
34513451
// but virtual dispatch through the interface has no type arguments.
3452-
let ifaceMember = unimplemented.get(memberName);
3453-
if (ifaceMember
3452+
if (unimplemented.has(memberName)
34543453
&& member.kind == ElementKind.FunctionPrototype
3455-
&& ifaceMember.kind == ElementKind.FunctionPrototype
3454+
&& unimplemented.get(memberName)!.kind == ElementKind.FunctionPrototype
34563455
) {
34573456
let memberTypeParams = (<FunctionPrototype>member).typeParameterNodes;
3458-
let ifaceTypeParams = (<FunctionPrototype>ifaceMember).typeParameterNodes;
3457+
let ifaceTypeParams = (<FunctionPrototype>unimplemented.get(memberName)).typeParameterNodes;
34593458
let numMemberTypeParams = memberTypeParams ? memberTypeParams.length : 0;
34603459
let numIfaceTypeParams = ifaceTypeParams ? ifaceTypeParams.length : 0;
34613460
if (numMemberTypeParams != numIfaceTypeParams) continue;
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"asc_flags": [],
33
"stderr": [
4-
"TS2515: Non-abstract class 'override-typeparam-mismatch/CC' does not implement inherited abstract member 'foo' from 'override-typeparam-mismatch/I'."
4+
"TS2515: Non-abstract class 'override-typeparam-mismatch/CC' does not implement inherited abstract member 'foo' from 'override-typeparam-mismatch/I'.",
5+
"EOF"
56
]
67
}

tests/compiler/override-typeparam-mismatch.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,5 @@ class CC implements I {
1010

1111
let c:I = new CC();
1212
c.foo(1);
13+
14+
ERROR("EOF");

0 commit comments

Comments
 (0)