typeprof 0.6.0 → 0.6.1

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: '080db9120b2b069f8a1385e3696851212a2271652f73b8627d5337d2d26d8f2b'
4
- data.tar.gz: 969e38b2a1b64ec3fbe90551b440418901c8af028c7126b1f56acaca3818d2b1
3
+ metadata.gz: 3dedfe8da717afcf508820efe445a790336ab877156d5b2de3683ab5043c18ab
4
+ data.tar.gz: 345fa1163af50a1b01fef26a83a835bfd7813453c6132ebb1036fe8178dd9757
5
5
  SHA512:
6
- metadata.gz: 322bff1d2a49e9a2729012064e393138cb9e4b81472e1c75b14a2d55a4fe3616ef3efc5ecf5df3a156a418ff6ad0281c24c2c585c61a733db0c6e4d05ceb6595
7
- data.tar.gz: 78de3b56104b239c272938a9877bfdd49ccf20df8dbd360bf5fe7ef3c342e1d746c2adbf957fd511c03156258effe630c440941e600d58b7e7cd914ff11ca4d5
6
+ metadata.gz: 48972d2ab935ff782a0651eda48afa301531d5c5fff4f1a9ba17d29c54323b127fc3013c29863c21b26d77e81230c2e0318d58d3cde680c57b611c5a77a1214b
7
+ data.tar.gz: dc29d8282f165f9ddaabecf97f4eb81aaaa43c5defe1d63d083ef1147c2c0e6d2def961fa07f339587902d8524ee66940da742a5b30cd48dcccdcd94262883a8
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- typeprof (0.6.0)
4
+ typeprof (0.6.1)
5
5
  rbs (>= 0.17.0)
6
6
 
7
7
  GEM
@@ -62,6 +62,7 @@ module TypeProf
62
62
  class RBS2JSON
63
63
  def initialize(all_env, cur_env)
64
64
  @all_env, @cur_env = all_env, cur_env
65
+ @env_walker = RBS::EnvironmentWalker.new(env: @cur_env) # Currently, only each_type_name is used
65
66
  end
66
67
 
67
68
  def dump_json
@@ -237,7 +238,7 @@ module TypeProf
237
238
  @all_env.class_decls[name].decls.each do |decl|
238
239
  decl = decl.decl
239
240
  next if decl.is_a?(RBS::AST::Declarations::Module)
240
- each_ancestor(decl) {|name| queue << [:visit, name] }
241
+ each_reference(decl) {|name| queue << [:visit, name] }
241
242
  end
242
243
  queue << [:visit, name.namespace.to_type_name] if !name.namespace.empty?
243
244
  end
@@ -252,13 +253,23 @@ module TypeProf
252
253
  end
253
254
  end
254
255
 
255
- def each_ancestor(decl, &blk)
256
+ def each_reference(decl, &blk)
256
257
  yield decl.name
257
- super_class = decl.super_class || RBS::BuiltinNames::Object
258
+ if decl.super_class
259
+ name = decl.super_class.name
260
+ args = decl.super_class.args
261
+ if args
262
+ args.each do |ty|
263
+ @env_walker.each_type_name(ty, &blk)
264
+ end
265
+ end
266
+ else
267
+ name = RBS::BuiltinNames::Object.name
268
+ end
258
269
  return if decl.name == RBS::BuiltinNames::BasicObject.name
259
- return if decl.name == super_class.name
260
- @all_env.class_decls[super_class.name].decls.each do |decl|
261
- each_ancestor(decl.decl, &blk)
270
+ return if decl.name == name
271
+ @all_env.class_decls[name].decls.each do |decl|
272
+ each_reference(decl.decl, &blk)
262
273
  end
263
274
  end
264
275
 
@@ -1,3 +1,3 @@
1
1
  module TypeProf
2
- VERSION = "0.6.0"
2
+ VERSION = "0.6.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: typeprof
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yusuke Endoh
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-17 00:00:00.000000000 Z
11
+ date: 2020-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rbs