Skip to content

Commit 67322b5

Browse files
committed
Use RBS::TypeName.parse in RBS>=3.8
RBS::TypeName(name) is deprecated in RBS 3.8.0. Use RBS::TypeName.parse(name) added in RBS 3.8.0 if possible.
1 parent ca96d8d commit 67322b5

1 file changed

Lines changed: 13 additions & 2 deletions

File tree

lib/repl_type_completor/types.rb

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,22 @@ def self.class_name_of(klass)
5757
Methods::MODULE_NAME_METHOD.bind_call klass
5858
end
5959

60+
if RBS::TypeName.respond_to?(:parse) # RBS >= 3.8.0
61+
def self.rbs_absolute_type_name(name)
62+
RBS::TypeName.parse(name).absolute!
63+
end
64+
else
65+
def self.rbs_absolute_type_name(name)
66+
# Deprecated in RBS 3.8.0
67+
RBS::TypeName(name).absolute!
68+
end
69+
end
70+
6071
def self.rbs_search_method(klass, method_name, singleton)
6172
klass.ancestors.each do |ancestor|
6273
name = class_name_of ancestor
6374
next unless name && rbs_builder
64-
type_name = RBS::TypeName(name).absolute!
75+
type_name = rbs_absolute_type_name(name)
6576
definition = (singleton ? rbs_builder.build_singleton(type_name) : rbs_builder.build_instance(type_name)) rescue nil
6677
method = definition.methods[method_name] if definition
6778
return method if method
@@ -211,7 +222,7 @@ def rbs_methods
211222
name = Types.class_name_of(@klass)
212223
return {} unless name && Types.rbs_builder
213224

214-
type_name = RBS::TypeName(name).absolute!
225+
type_name = Types.rbs_absolute_type_name(name)
215226
Types.rbs_builder.build_instance(type_name).methods rescue {}
216227
end
217228
def inspect

0 commit comments

Comments
 (0)