katakata_irb 0.1.6 → 0.1.7
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +5 -5
- data/README.md +3 -1
- data/lib/katakata_irb/completor.rb +4 -5
- data/lib/katakata_irb/scope.rb +6 -1
- data/lib/katakata_irb/type_simulator.rb +1 -2
- data/lib/katakata_irb/types.rb +17 -19
- data/lib/katakata_irb/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d50fd34032f33c722cce1adc7118a354b2fdc31736f6d00d9557b9b72b361b65
|
4
|
+
data.tar.gz: b874b7a2b3f65a91eebd447df6df55ae931d8050418942fd07b453611d8ff509
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c1d44c271e5ef109670345b8c85022553ab7618ffa30e4f979743912b30677fd8e9925d0b36c933d79f8aa0e7dc2be298e06db6f0a56cff442acb59b22ebc383
|
7
|
+
data.tar.gz: e64e94002296f792a6bdd9b5637f0bf065c4366de653eb15161b3bc9c7aca1598e880344f393106c0ce0e92497cd2d13ee1f604619b70ebe986090a8fa1e74a2
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
katakata_irb (0.1.
|
4
|
+
katakata_irb (0.1.7)
|
5
5
|
irb (>= 1.4.0)
|
6
6
|
rbs
|
7
7
|
|
@@ -9,12 +9,12 @@ GEM
|
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
11
|
io-console (0.6.0)
|
12
|
-
irb (1.6.
|
12
|
+
irb (1.6.4)
|
13
13
|
reline (>= 0.3.0)
|
14
|
-
minitest (5.
|
14
|
+
minitest (5.18.0)
|
15
15
|
rake (13.0.6)
|
16
|
-
rbs (
|
17
|
-
reline (0.3.
|
16
|
+
rbs (3.1.0)
|
17
|
+
reline (0.3.3)
|
18
18
|
io-console (~> 0.5)
|
19
19
|
|
20
20
|
PLATFORMS
|
data/README.md
CHANGED
@@ -120,10 +120,9 @@ module KatakataIrb::Completor
|
|
120
120
|
contents = types.filter_map do |type|
|
121
121
|
case type
|
122
122
|
when KatakataIrb::Types::InstanceType
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
"#{module_name}.itself" if module_name
|
123
|
+
type.inspect_without_params
|
124
|
+
else
|
125
|
+
type.inspect
|
127
126
|
end
|
128
127
|
end.uniq
|
129
128
|
return if contents.empty?
|
@@ -247,7 +246,7 @@ module KatakataIrb::Completor
|
|
247
246
|
# `require 'target'`
|
248
247
|
return [require_method.to_sym, name.rstrip]
|
249
248
|
end
|
250
|
-
if (target in [:@ident,]) && (expression in [:symbol,]) && (parents[-2] in [:args_add_block, Array =>
|
249
|
+
if (target in [:@ident,]) && (expression in [:symbol,]) && (parents[-2] in [:args_add_block, Array => _args, [:symbol_literal, ^expression]])
|
251
250
|
# `method(&:target)`
|
252
251
|
receiver_ref = [:var_ref, [:@ident, '_1', [0, 0]]]
|
253
252
|
block_statements = [receiver_ref]
|
data/lib/katakata_irb/scope.rb
CHANGED
@@ -707,13 +707,12 @@ class KatakataIrb::TypeSimulator
|
|
707
707
|
|
708
708
|
def evaluate_massign(sexp, values, scope)
|
709
709
|
values = sized_splat values, :to_ary, sexp.size unless values.is_a? Array
|
710
|
-
|
711
710
|
rest_index = sexp.find_index { _1 in [:rest_param, ]}
|
712
711
|
if rest_index
|
713
712
|
pre = rest_index ? sexp[0...rest_index] : sexp
|
714
713
|
post = rest_index ? sexp[rest_index + 1..] : []
|
715
714
|
sexp[rest_index] in [:rest_param, rest_field]
|
716
|
-
rest_values = values[pre.size
|
715
|
+
rest_values = values[pre.size...values.size - post.size] || []
|
717
716
|
rest_type = KatakataIrb::Types::InstanceType.new Array, Elem: KatakataIrb::Types::UnionType[*rest_values]
|
718
717
|
pairs = pre.zip(values.first(pre.size)) + [[rest_field, rest_type]] + post.zip(values.last(post.size))
|
719
718
|
else
|
data/lib/katakata_irb/types.rb
CHANGED
@@ -12,7 +12,7 @@ module KatakataIrb::Types
|
|
12
12
|
loader.add path: Pathname('sig')
|
13
13
|
RBS::DefinitionBuilder.new env: RBS::Environment.from_loader(loader).resolve_type_names
|
14
14
|
rescue => e
|
15
|
-
puts "\nKatakataIRB failed to initialize RBS::
|
15
|
+
puts "\r\nKatakataIRB failed to initialize RBS::DefinitionBuilder\r\n#{e}\r\n"
|
16
16
|
Object.new
|
17
17
|
end
|
18
18
|
|
@@ -196,16 +196,22 @@ module KatakataIrb::Types
|
|
196
196
|
def nillable?() = (@klass == NilClass)
|
197
197
|
def nonnillable() = self
|
198
198
|
def inspect
|
199
|
-
|
200
|
-
|
199
|
+
if params.empty?
|
200
|
+
inspect_without_params
|
201
|
+
else
|
202
|
+
params_string = "[#{params.map { "#{_1}: #{_2.inspect}" }.join(', ')}]"
|
203
|
+
"#{inspect_without_params}#{params_string}"
|
204
|
+
end
|
205
|
+
end
|
206
|
+
def inspect_without_params
|
207
|
+
if klass == NilClass
|
201
208
|
'nil'
|
202
|
-
|
209
|
+
elsif klass == TrueClass
|
203
210
|
'true'
|
204
|
-
|
211
|
+
elsif klass == FalseClass
|
205
212
|
'false'
|
206
213
|
else
|
207
|
-
|
208
|
-
"#{klass.name}#{params_string}"
|
214
|
+
klass.singleton_class? ? klass.superclass.to_s : klass.to_s
|
209
215
|
end
|
210
216
|
end
|
211
217
|
end
|
@@ -327,18 +333,10 @@ module KatakataIrb::Types
|
|
327
333
|
BOOLEAN
|
328
334
|
when RBS::Types::Bases::Instance
|
329
335
|
self_type.transform do |type|
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
case type.klass
|
335
|
-
in Class
|
336
|
-
InstanceType.new Class
|
337
|
-
in Module
|
338
|
-
InstanceType.new Module
|
339
|
-
else
|
340
|
-
OBJECT
|
341
|
-
end
|
336
|
+
if type.is_a?(SingletonType) && type.module_or_class.is_a?(Class)
|
337
|
+
InstanceType.new type.module_or_class
|
338
|
+
else
|
339
|
+
OBJECT
|
342
340
|
end
|
343
341
|
end
|
344
342
|
when RBS::Types::Union
|
data/lib/katakata_irb/version.rb
CHANGED
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.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- tompng
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-05-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: irb
|