lib/rbs/variance_calculator.rb in rbs-0.4.0 vs lib/rbs/variance_calculator.rb in rbs-0.5.0

- old
+ new

@@ -105,12 +105,22 @@ when :invariant result.invariant(type.name) end end when Types::ClassInstance, Types::Interface - decl = env.find_class(type.name) + NoTypeFoundError.check!(type.name, + env: env, + location: type.location) + + type_params = case type + when Types::ClassInstance + env.class_decls[type.name]&.type_params + when Types::Interface + env.interface_decls[type.name]&.decl&.type_params + end + type.args.each.with_index do |ty, i| - var = decl.type_params.params[i] + var = type_params.params[i] case var.variance when :invariant type(ty, result: result, context: :invariant) when :covariant type(ty, result: result, context: context)