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 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