katakata_irb 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,7 +16,7 @@ module KatakataIrb::Types
16
16
  loader = RBS::CLI::LibraryOptions.new.loader
17
17
  loader.add path: Pathname('sig')
18
18
  RBS::DefinitionBuilder.new env: RBS::Environment.from_loader(loader).resolve_type_names
19
- rescue => e
19
+ rescue LoadError, StandardError => e
20
20
  @rbs_load_error = e
21
21
  puts "\r\nKatakataIRB failed to initialize RBS::DefinitionBuilder: #{e.class}\r\n"
22
22
  puts "See `KatakataIrb::Types.rbs_load_error` for more details.\r\n"
@@ -35,7 +35,7 @@ module KatakataIrb::Types
35
35
  def self.rbs_search_method(klass, method_name, singleton)
36
36
  klass.ancestors.each do |ancestor|
37
37
  name = class_name_of ancestor
38
- next unless name
38
+ next unless name && rbs_builder
39
39
  type_name = RBS::TypeName(name).absolute!
40
40
  definition = (singleton ? rbs_builder.build_singleton(type_name) : rbs_builder.build_instance(type_name)) rescue nil
41
41
  method = definition.methods[method_name] if definition
@@ -78,7 +78,7 @@ module KatakataIrb::Types
78
78
  [t, t.klass, false]
79
79
  end
80
80
  end
81
- has_splat = args_types.any? { _1 in Splat }
81
+ has_splat = args_types.any? { _1.is_a? Splat }
82
82
  methods_with_score = receivers.flat_map do |receiver_type, klass, singleton|
83
83
  method = rbs_search_method klass, method_name, singleton
84
84
  next [] unless method
@@ -98,7 +98,7 @@ module KatakataIrb::Types
98
98
  args += [InstanceType.new(Hash, K: SYMBOL, V: kw_value_type)]
99
99
  end
100
100
  if has_splat
101
- score += 1 if args.count { !(_1 in Splat) } <= reqs.size + opts.size + trailings.size
101
+ score += 1 if args.count { !(_1.is_a? Splat) } <= reqs.size + opts.size + trailings.size
102
102
  elsif reqs.size + trailings.size <= args.size && (rest || args.size <= reqs.size + opts.size + trailings.size)
103
103
  score += 2
104
104
  centers = args[reqs.size...-trailings.size]
@@ -207,7 +207,7 @@ module KatakataIrb::Types
207
207
  def nonnillable() = self
208
208
  def rbs_methods
209
209
  name = KatakataIrb::Types.class_name_of(@klass)
210
- return {} unless name
210
+ return {} unless name && KatakataIrb::Types.rbs_builder
211
211
 
212
212
  type_name = RBS::TypeName(name).absolute!
213
213
  KatakataIrb::Types.rbs_builder.build_instance(type_name).methods rescue {}
@@ -375,11 +375,11 @@ module KatakataIrb::Types
375
375
  when RBS::Types::Variable
376
376
  if extra_vars.key? return_type.name
377
377
  extra_vars[return_type.name]
378
- elsif self_type in InstanceType
378
+ elsif self_type.is_a? InstanceType
379
379
  self_type.params[return_type.name] || OBJECT
380
- elsif self_type in UnionType
380
+ elsif self_type.is_a? UnionType
381
381
  types = self_type.types.filter_map do |t|
382
- t.params[return_type.name] if t in InstanceType
382
+ t.params[return_type.name] if t.is_a? InstanceType
383
383
  end
384
384
  UnionType[*types]
385
385
  else
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KatakataIrb
4
- VERSION = "0.2.0"
4
+ VERSION = "0.2.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: katakata_irb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - tompng
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-14 00:00:00.000000000 Z
11
+ date: 2023-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: irb
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 0.13.0
47
+ version: 0.14.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 0.13.0
54
+ version: 0.14.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rbs
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -83,7 +83,7 @@ files:
83
83
  - lib/katakata_irb.rb
84
84
  - lib/katakata_irb/completor.rb
85
85
  - lib/katakata_irb/scope.rb
86
- - lib/katakata_irb/type_simulator.rb
86
+ - lib/katakata_irb/type_analyzer.rb
87
87
  - lib/katakata_irb/types.rb
88
88
  - lib/katakata_irb/version.rb
89
89
  - sig/katakata_irb.rbs