lib/rbs/definition_builder.rb in rbs-3.6.0.pre.2 vs lib/rbs/definition_builder.rb in rbs-3.6.0.pre.3

- old
+ new

@@ -77,11 +77,11 @@ entry.type_params else raise end - Substitution.build(params.map(&:name), args) + AST::TypeParam.application(params, args) || Substitution.new() end def define_instance(definition, type_name, subst) one_ancestors = ancestor_builder.one_instance_ancestors(type_name) methods = method_builder.build_instance(type_name) @@ -547,19 +547,20 @@ interface_method_duplicates = Set[] #: Set[Symbol] interfaces_methods.each do |interface, (methods, member)| unless interface.args.empty? methods.type.is_a?(Types::Interface) or raise - params = methods.type.args.map do |arg| - arg.is_a?(Types::Variable) or raise - arg.name - end interface.args.each do |arg| validate_type_presence(arg) end - subst_ = subst + Substitution.build(params, interface.args) + type_params = env.interface_decls.fetch(interface.name).decl.type_params + if s = AST::TypeParam.application(type_params, interface.args) + subst_ = subst + s + else + subst_ = subst + end else subst_ = subst end methods.each do |method|