File tree Expand file tree Collapse file tree 1 file changed +15
-2
lines changed Expand file tree Collapse file tree 1 file changed +15
-2
lines changed Original file line number Diff line number Diff line change @@ -5868,8 +5868,21 @@ export class Compiler extends DiagnosticEmitter {
58685868 }
58695869 let resolvedTypeArguments = new Array < Type > ( numTypeParameters ) ;
58705870 for ( let i = 0 ; i < numTypeParameters ; ++ i ) {
5871- let inferredType = assert ( inferredTypes . get ( typeParameterNodes [ i ] . name . text ) ) ; // TODO
5872- resolvedTypeArguments [ i ] = inferredType ;
5871+ let name = typeParameterNodes [ i ] . name . text ;
5872+ if ( inferredTypes . has ( name ) ) {
5873+ let inferredType = inferredTypes . get ( name ) ;
5874+ if ( inferredType ) {
5875+ resolvedTypeArguments [ i ] = inferredType ;
5876+ continue ;
5877+ }
5878+ }
5879+ // unused template, e.g. `function test<T>(): void {...}` called as `test()`
5880+ // invalid because the type is effectively unknown inside the function body
5881+ this . error (
5882+ DiagnosticCode . Type_argument_expected ,
5883+ expression . expression . range . atEnd
5884+ ) ;
5885+ return this . module . unreachable ( ) ;
58735886 }
58745887 instance = this . resolver . resolveFunction (
58755888 prototype ,
You can’t perform that action at this time.
0 commit comments