katakata_irb 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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