katakata_irb 0.1.1 → 0.1.2
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 +1 -1
- data/lib/katakata_irb/completor.rb +5 -0
- data/lib/katakata_irb/type_simulator.rb +9 -1
- data/lib/katakata_irb/types.rb +1 -1
- 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: 5d3d6ff924cd8fa8f05b097253525517a988c377d59e63ed1e5c6e5867cfde88
|
4
|
+
data.tar.gz: af6afd4a833e2b9bfd08a05877db80e45faadcac845be5148b53e3266d5539d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 35b76a766b99913226c5888b00efcc1c88c35ecb1bbb38338cf69a47772153caecb204bf5cad0a4f7affb475a179b0bd084ecd673c793260165731eef88a258b
|
7
|
+
data.tar.gz: e2dc520f4d5fe10a95795d5cbcdb784289e674c415a8eddea2c06883262f02847a5fd5b4fb7dc83d219e8a2add95e5fb5ed7c3d7000b4c83ea539825d50c5f20
|
data/Gemfile.lock
CHANGED
@@ -51,6 +51,11 @@ module KatakataIrb::Completor
|
|
51
51
|
end
|
52
52
|
IRB::InputCompletor::CompletionProc.define_singleton_method :call do |*args|
|
53
53
|
completion_proc.call(*args)
|
54
|
+
rescue => e
|
55
|
+
$error = e
|
56
|
+
KatakataIrb.log_puts
|
57
|
+
KatakataIrb.log_puts "#{e.inspect} stored to $error"
|
58
|
+
KatakataIrb.log_puts
|
54
59
|
end
|
55
60
|
end
|
56
61
|
|
@@ -693,7 +693,7 @@ class KatakataIrb::TypeSimulator
|
|
693
693
|
klass_types << KatakataIrb::Types::CLASS if klass_types.empty?
|
694
694
|
simulate_evaluate body_stmt, Scope.new(scope, { SELF => KatakataIrb::Types::UnionType[*klass_types], BREAK_RESULT => nil, NEXT_RESULT => nil, RETURN_RESULT => nil }, trace_cvar: false, trace_ivar: false, trace_lvar: false)
|
695
695
|
in [:for, fields, enum, statements]
|
696
|
-
fields = [fields] if fields in [:var_field,]
|
696
|
+
fields = [fields] if fields in [:var_field | :field | :aref_field,]
|
697
697
|
params = [:params, fields, nil, nil, nil, nil, nil, nil]
|
698
698
|
enum = simulate_evaluate enum, scope
|
699
699
|
extract_param_names(params).each { scope[_1] = KatakataIrb::Types::NIL }
|
@@ -893,6 +893,12 @@ class KatakataIrb::TypeSimulator
|
|
893
893
|
scope[name] = value || KatakataIrb::Types::OBJECT
|
894
894
|
in [:mlhs, *mlhs]
|
895
895
|
evaluate_massign mlhs, value || [], scope
|
896
|
+
in [:field, receiver,]
|
897
|
+
# (a=x).b, c = value
|
898
|
+
simulate_evaluate receiver, scope
|
899
|
+
in [:aref_field, *field]
|
900
|
+
# (a=x)[i=y, j=z], b = value
|
901
|
+
simulate_evaluate [:aref, *field], scope
|
896
902
|
in nil
|
897
903
|
# a, *, b = value
|
898
904
|
end
|
@@ -1047,6 +1053,8 @@ class KatakataIrb::TypeSimulator
|
|
1047
1053
|
items.each(&extract_mlhs)
|
1048
1054
|
in [:rest_param, item]
|
1049
1055
|
extract_mlhs.call item if item
|
1056
|
+
in [:field | :aref_field,]
|
1057
|
+
# a.b, c[i] = value
|
1050
1058
|
in [:excessed_comma]
|
1051
1059
|
end
|
1052
1060
|
end
|
data/lib/katakata_irb/types.rb
CHANGED
@@ -298,7 +298,7 @@ module KatakataIrb::Types
|
|
298
298
|
type.module_or_class if (type in SingletonType) && type.module_or_class.is_a?(Class)
|
299
299
|
end
|
300
300
|
if classes.empty?
|
301
|
-
klass =
|
301
|
+
klass = return_type.name.to_namespace.path.reduce(Object) { _1.const_get _2 }
|
302
302
|
classes << klass if klass in Class
|
303
303
|
end
|
304
304
|
if return_type.args
|
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.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- tompng
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-12-
|
11
|
+
date: 2022-12-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rbs
|