typeprof 0.9.1 → 0.9.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: 481ba91ab18504fff44772720b462a9fa302e4eecddb559c3a5942710e081fa9
4
- data.tar.gz: 288ddfd1d6c9e198ea62e6564addf40ce851c91337801db44f2957c98b9f58f5
3
+ metadata.gz: 93a881a8e59226faae21acac435131d5961c85ab6c95192ae1261329a87fb6e1
4
+ data.tar.gz: 8165e47acb1e8d9770922b2ac10487d18ff1b4fd1efa5d4ab8f6f0b11aa15433
5
5
  SHA512:
6
- metadata.gz: 7f1eefdf5e92e2fa79a03979e36dd810ffcb337c426035acc384473e45fe6201487e8354608b4b87582515561b214e3ef339edd19e3980fab2873e6bc24cb9c5
7
- data.tar.gz: cd74500c47328634ab7991911f795e7ea9b5cc47c15e3540c7796b39c2d1d83661cd50b45623e92cf1f33cbf1e83c4c8b5796a5e5332c8e1f475d3f1d26c043c
6
+ metadata.gz: 43d0bc36fa68827aed7026cc7a52ca37b49d2c042bbaa32bffc9773afad296b81e27b5b4f97b31f24ff4030269f215034568175cae2c4a14bdc4bad8b502172f
7
+ data.tar.gz: 898d79a93ceae32f71b1c0fe0b9f2aa6a90477fbee58a582da91fe5e6f4e521062cb99549f8ae709d1f26f854a4b2765cdd455282fcdfa0ab9918c9015647ec9
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- typeprof (0.9.1)
4
+ typeprof (0.9.2)
5
5
  rbs (>= 0.20.1)
6
6
 
7
7
  GEM
@@ -117,6 +117,30 @@ module TypeProf
117
117
  end
118
118
  end
119
119
 
120
+ class TopStaticEnv
121
+ include Utils::StructuralEquality
122
+
123
+ def recv_ty
124
+ Type.bot
125
+ end
126
+
127
+ def blk_ty
128
+ Type.nil
129
+ end
130
+
131
+ def mod_func
132
+ false
133
+ end
134
+
135
+ def pub_meth
136
+ true
137
+ end
138
+
139
+ def merge(other)
140
+ raise unless other.is_a?(TopStaticEnv)
141
+ end
142
+ end
143
+
120
144
  class Env
121
145
  include Utils::StructuralEquality
122
146
 
@@ -69,7 +69,7 @@ module TypeProf
69
69
 
70
70
  prologue_ctx = Context.new(nil, nil, nil)
71
71
  prologue_ep = ExecutionPoint.new(prologue_ctx, -1, nil)
72
- prologue_env = Env.new(StaticEnv.new(:top, Type.nil, false, true), [], [], Utils::HashWrapper.new({}))
72
+ prologue_env = Env.new(TopStaticEnv.new, [], [], Utils::HashWrapper.new({}))
73
73
 
74
74
  Config.rb_files.each do |rb|
75
75
  if rb.is_a?(Array) # [String name, String content]
@@ -293,13 +293,13 @@ module TypeProf
293
293
  first = false
294
294
  end
295
295
  class_data.explicit_methods.each do |method_name, sigs|
296
- sigs = sigs.sort.join("\n" + indent + "#" + " " * (method_name.size + 6) + "| ")
296
+ sigs = sigs.sort.join("\n" + indent + "#" + " " * (method_name.size + 5) + "| ")
297
297
  output.puts indent + "# def #{ method_name }: #{ sigs }"
298
298
  first = false
299
299
  end
300
300
  prev_pub_meth = true
301
301
  class_data.iseq_methods.each do |method_name, (pub_meth, sigs)|
302
- sigs = sigs.sort.join("\n" + indent + " " * (method_name.size + 7) + "| ")
302
+ sigs = sigs.sort.join("\n" + indent + " " * (method_name.size + 6) + "| ")
303
303
  if prev_pub_meth != pub_meth
304
304
  output.puts indent + " #{ pub_meth ? "public" : "private" }"
305
305
  prev_pub_meth = pub_meth
@@ -1,3 +1,3 @@
1
1
  module TypeProf
2
- VERSION = "0.9.1"
2
+ VERSION = "0.9.2"
3
3
  end
@@ -21,7 +21,7 @@ __END__
21
21
  # Classes
22
22
  class Object
23
23
  # def foo: (Integer) -> Integer
24
- # | (String) -> String
24
+ # | (String) -> String
25
25
  private
26
26
  def ret_int: -> Integer
27
27
  def ret_str: -> String
@@ -19,5 +19,5 @@ class Object
19
19
  private
20
20
  def foo: -> nil
21
21
  def bar: -> Integer
22
- | -> String
22
+ | -> String
23
23
  end
@@ -0,0 +1,12 @@
1
+ def foo(n)
2
+ n.to_s
3
+ end
4
+
5
+ foo(42)
6
+
7
+ __END__
8
+ # Classes
9
+ class Object
10
+ private
11
+ def foo: (Integer) -> String
12
+ 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.9.1
4
+ version: 0.9.2
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-12-08 00:00:00.000000000 Z
11
+ date: 2020-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rbs
@@ -327,6 +327,7 @@ files:
327
327
  - smoke/retry1.rb
328
328
  - smoke/return.rb
329
329
  - smoke/reveal.rb
330
+ - smoke/simple.rb
330
331
  - smoke/singleton_class.rb
331
332
  - smoke/singleton_method.rb
332
333
  - smoke/step.rb
@@ -390,7 +391,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
390
391
  - !ruby/object:Gem::Version
391
392
  version: '0'
392
393
  requirements: []
393
- rubygems_version: 3.1.4
394
+ rubygems_version: 3.2.0.rc.2
394
395
  signing_key:
395
396
  specification_version: 4
396
397
  summary: TypeProf is a type analysis tool for Ruby code based on abstract interpretation