@@ -12,8 +12,7 @@ import type {
1212 SlangAstNodeClass
1313} from '../types.d.ts' ;
1414
15- type Constructor < T > = new ( ast : any , collected : CollectedMetadata ) => T ;
16- type ConstructorsFromInstances < U > = U extends any ? Constructor < U > : never ;
15+ type NodeConstructor < T > = new ( ast : any , collected : CollectedMetadata ) => T ;
1716type SlangPolymorphicNode = Extract < SlangAstNode , { variant : unknown } > ;
1817
1918type NonterminalVariantFactory <
@@ -29,7 +28,7 @@ export function createNonterminalVariantSimpleCreator<
2928 U extends SlangPolymorphicNode ,
3029 T extends StrictPolymorphicNode
3130> (
32- constructors : [ SlangAstNodeClass , ConstructorsFromInstances < T [ 'variant' ] > ] [ ]
31+ constructors : [ SlangAstNodeClass , NodeConstructor < T [ 'variant' ] > ] [ ]
3332) : NonterminalVariantFactory < U , T > {
3433 return ( variant , collected ) => {
3534 for ( const [ slangAstClass , constructor ] of constructors ) {
@@ -45,10 +44,10 @@ export function createNonterminalVariantCreator<
4544 U extends SlangPolymorphicNode ,
4645 T extends StrictPolymorphicNode
4746> (
48- constructors : [ SlangAstNodeClass , ConstructorsFromInstances < T [ 'variant' ] > ] [ ] ,
47+ constructors : [ SlangAstNodeClass , NodeConstructor < T [ 'variant' ] > ] [ ] ,
4948 extractVariantConstructors : [
5049 SlangAstNodeClass ,
51- ConstructorsFromInstances < StrictPolymorphicNode >
50+ NodeConstructor < StrictPolymorphicNode >
5251 ] [ ]
5352) : NonterminalVariantFactory < U , T > {
5453 const simpleCreator = createNonterminalVariantSimpleCreator < U , T > (
0 commit comments