typeprof 0.6.0 → 0.6.1

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