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 {
5868
5868
}
5869
5869
let resolvedTypeArguments = new Array < Type > ( numTypeParameters ) ;
5870
5870
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 ( ) ;
5873
5886
}
5874
5887
instance = this . resolver . resolveFunction (
5875
5888
prototype ,
You can’t perform that action at this time.
0 commit comments