@@ -695,8 +695,9 @@ export class Compiler extends DiagnosticEmitter {
695
695
696
696
// traverse instances
697
697
case ElementKind . FUNCTION_PROTOTYPE : {
698
- let functionInstances = ( < FunctionPrototype > element ) . instances ;
699
- if ( functionInstances ) {
698
+ let functionPrototype = < FunctionPrototype > element ;
699
+ let functionInstances = functionPrototype . instances ;
700
+ if ( functionInstances !== null && functionInstances . size > 0 ) {
700
701
// TODO: for (let instance of instances.values()) {
701
702
for ( let _values = Map_values ( functionInstances ) , i = 0 , k = _values . length ; i < k ; ++ i ) {
702
703
let instance = unchecked ( _values [ i ] ) ;
@@ -707,12 +708,18 @@ export class Compiler extends DiagnosticEmitter {
707
708
}
708
709
this . ensureModuleExport ( instanceName , instance , prefix ) ;
709
710
}
711
+ } else if ( functionPrototype . is ( CommonFlags . GENERIC ) ) {
712
+ this . warning (
713
+ DiagnosticCode . Exported_generic_function_or_class_has_no_concrete_instances ,
714
+ functionPrototype . identifierNode . range
715
+ ) ;
710
716
}
711
717
break ;
712
718
}
713
719
case ElementKind . CLASS_PROTOTYPE : {
714
- let classInstances = ( < ClassPrototype > element ) . instances ;
715
- if ( classInstances ) {
720
+ let classPrototype = < ClassPrototype > element ;
721
+ let classInstances = classPrototype . instances ;
722
+ if ( classInstances !== null && classInstances . size > 0 ) {
716
723
// TODO: for (let instance of instances.values()) {
717
724
for ( let _values = Map_values ( classInstances ) , i = 0 , k = _values . length ; i < k ; ++ i ) {
718
725
let instance = unchecked ( _values [ i ] ) ;
@@ -723,6 +730,11 @@ export class Compiler extends DiagnosticEmitter {
723
730
}
724
731
this . ensureModuleExport ( instanceName , instance , prefix ) ;
725
732
}
733
+ } else if ( classPrototype . is ( CommonFlags . GENERIC ) ) {
734
+ this . warning (
735
+ DiagnosticCode . Exported_generic_function_or_class_has_no_concrete_instances ,
736
+ classPrototype . identifierNode . range
737
+ ) ;
726
738
}
727
739
break ;
728
740
}
0 commit comments