@@ -23,16 +23,16 @@ def build_ancestors(self_ancestor, ancestors: [], building_ancestors: [], locati
2323 case self_ancestor
2424 when Definition ::Ancestor ::Instance
2525 args = self_ancestor . args
26- params = decl . type_params
26+ param_names = decl . type_params . each . map ( & :name )
2727
2828 InvalidTypeApplicationError . check! (
2929 type_name : self_ancestor . name ,
3030 args : args ,
31- params : params ,
31+ params : decl . type_params ,
3232 location : location || decl . location
3333 )
3434
35- sub = Substitution . build ( params , args )
35+ sub = Substitution . build ( param_names , args )
3636
3737 case decl
3838 when AST ::Declarations ::Class
@@ -203,7 +203,7 @@ def build_instance(type_name)
203203 try_cache type_name , cache : instance_cache do
204204 decl = env . find_class ( type_name )
205205 self_ancestor = Definition ::Ancestor ::Instance . new ( name : type_name ,
206- args : Types ::Variable . build ( decl . type_params ) )
206+ args : Types ::Variable . build ( decl . type_params . each . map ( & :name ) ) )
207207 self_type = Types ::ClassInstance . new ( name : type_name , args : self_ancestor . args , location : nil )
208208
209209 case decl
@@ -323,7 +323,7 @@ def build_one_instance(type_name, extension_name: nil)
323323 case decl
324324 when AST ::Declarations ::Class , AST ::Declarations ::Module
325325 self_type = Types ::ClassInstance . new ( name : type_name ,
326- args : Types ::Variable . build ( decl . type_params ) ,
326+ args : Types ::Variable . build ( decl . type_params . each . map ( & :name ) ) ,
327327 location : nil )
328328 ancestors = [ Definition ::Ancestor ::Instance . new ( name : type_name , args : self_type . args ) ]
329329 when AST ::Declarations ::Extension
@@ -462,7 +462,7 @@ def build_one_instance(type_name, extension_name: nil)
462462 InvalidTypeApplicationError . check! (
463463 type_name : absolute_name ,
464464 args : absolute_args ,
465- params : interface_definition . type_params ,
465+ params : interface_definition . type_params_decl ,
466466 location : member . location
467467 )
468468
@@ -584,7 +584,7 @@ def build_one_singleton(type_name, extension_name: nil)
584584 InvalidTypeApplicationError . check! (
585585 type_name : absolute_name ,
586586 args : absolute_args ,
587- params : interface_definition . type_params ,
587+ params : interface_definition . type_params_decl ,
588588 location : member . location
589589 )
590590
@@ -705,7 +705,7 @@ def try_cache(type_name, cache:)
705705 def build_interface ( type_name , declaration )
706706 self_type = Types ::Interface . new (
707707 name : type_name ,
708- args : declaration . type_params . map { |x | Types ::Variable . new ( name : x , location : nil ) } ,
708+ args : declaration . type_params . each . map { |p | Types ::Variable . new ( name : p . name , location : nil ) } ,
709709 location : nil
710710 )
711711
@@ -728,7 +728,7 @@ def build_interface(type_name, declaration)
728728 location : member . location
729729 )
730730
731- sub = Substitution . build ( type_params , args )
731+ sub = Substitution . build ( type_params . each . map ( & :name ) , args )
732732 mixin . methods . each do |name , method |
733733 definition . methods [ name ] = method . sub ( sub )
734734 end
0 commit comments