katakata_irb 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b1d8be38e882e8b24f1f3add323f4160e36d8300d9ae1d9e22572a6c7c272ad
4
- data.tar.gz: a2918483fbfd537fcfaa7fd6423727ec3a9b458da86329b803fc8f48dbe565d7
3
+ metadata.gz: 5d3d6ff924cd8fa8f05b097253525517a988c377d59e63ed1e5c6e5867cfde88
4
+ data.tar.gz: af6afd4a833e2b9bfd08a05877db80e45faadcac845be5148b53e3266d5539d8
5
5
  SHA512:
6
- metadata.gz: 7c9437f1bd885f507bac318bfef116f3c0aa86c606a694167b4436eb3e48e7b51789d9fcb8387155ec20cf28166fdb3fe0f162fbc9777f57758d74f368fcfad7
7
- data.tar.gz: b4512a603b807f8566dc5fb0d60cb0185e384b2c0129c6a91dceecbba4abd093df8d8a07ad9a817b18279fec7f9dfc6011560128b68e5e55e177ca9a7ae3a5dc
6
+ metadata.gz: 35b76a766b99913226c5888b00efcc1c88c35ecb1bbb38338cf69a47772153caecb204bf5cad0a4f7affb475a179b0bd084ecd673c793260165731eef88a258b
7
+ data.tar.gz: e2dc520f4d5fe10a95795d5cbcdb784289e674c415a8eddea2c06883262f02847a5fd5b4fb7dc83d219e8a2add95e5fb5ed7c3d7000b4c83ea539825d50c5f20
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- katakata_irb (0.1.1)
4
+ katakata_irb (0.1.2)
5
5
  rbs
6
6
 
7
7
  GEM
@@ -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
@@ -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 = Object.const_get(return_type.name.name)
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KatakataIrb
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.2"
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.1.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-18 00:00:00.000000000 Z
11
+ date: 2022-12-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rbs