typeprof 0.9.0 → 0.12.0

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.
Files changed (182) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/main.yml +1 -1
  3. data/Gemfile.lock +6 -5
  4. data/doc/demo.md +2 -2
  5. data/doc/todo.md +133 -0
  6. data/lib/typeprof/analyzer.rb +89 -37
  7. data/lib/typeprof/block.rb +34 -0
  8. data/lib/typeprof/builtin.rb +169 -66
  9. data/lib/typeprof/cli.rb +7 -0
  10. data/lib/typeprof/config.rb +25 -3
  11. data/lib/typeprof/container-type.rb +24 -0
  12. data/lib/typeprof/export.rb +130 -69
  13. data/lib/typeprof/import.rb +82 -38
  14. data/lib/typeprof/iseq.rb +23 -4
  15. data/lib/typeprof/method.rb +29 -7
  16. data/lib/typeprof/type.rb +75 -13
  17. data/lib/typeprof/version.rb +1 -1
  18. data/smoke/alias.rb +4 -4
  19. data/smoke/alias2.rb +3 -1
  20. data/smoke/arguments.rb +2 -2
  21. data/smoke/arguments2.rb +5 -5
  22. data/smoke/array-each.rb +1 -1
  23. data/smoke/array-each3.rb +1 -1
  24. data/smoke/array-map.rb +1 -1
  25. data/smoke/array-map2.rb +1 -1
  26. data/smoke/array-map3.rb +3 -3
  27. data/smoke/array-mul.rb +2 -2
  28. data/smoke/array-plus1.rb +1 -1
  29. data/smoke/array-plus2.rb +1 -0
  30. data/smoke/array-range-aref.rb +11 -11
  31. data/smoke/array-replace.rb +1 -1
  32. data/smoke/array1.rb +5 -5
  33. data/smoke/array10.rb +1 -1
  34. data/smoke/array11.rb +1 -1
  35. data/smoke/array12.rb +1 -1
  36. data/smoke/array14.rb +1 -1
  37. data/smoke/array15.rb +1 -1
  38. data/smoke/array2.rb +2 -2
  39. data/smoke/array3.rb +1 -0
  40. data/smoke/array6.rb +2 -1
  41. data/smoke/array8.rb +1 -1
  42. data/smoke/array9.rb +1 -1
  43. data/smoke/attr-module.rb +1 -0
  44. data/smoke/attr-vis.rb +43 -0
  45. data/smoke/attr-vis.rbs +4 -0
  46. data/smoke/attr.rb +2 -2
  47. data/smoke/block-ambiguous.rb +4 -4
  48. data/smoke/block-args1-rest.rb +6 -5
  49. data/smoke/block-args1.rb +5 -5
  50. data/smoke/block-args2-rest.rb +6 -5
  51. data/smoke/block-args2.rb +5 -5
  52. data/smoke/block-args3-rest.rb +7 -6
  53. data/smoke/block-args3.rb +6 -6
  54. data/smoke/block-blockarg.rb +3 -3
  55. data/smoke/block-kwarg.rb +4 -4
  56. data/smoke/block1.rb +1 -1
  57. data/smoke/block10.rb +1 -1
  58. data/smoke/block11.rb +2 -2
  59. data/smoke/block2.rb +1 -1
  60. data/smoke/block3.rb +1 -1
  61. data/smoke/block5.rb +1 -0
  62. data/smoke/block_given.rb +37 -0
  63. data/smoke/class_method.rb +2 -2
  64. data/smoke/class_method2.rb +2 -2
  65. data/smoke/constant2.rb +3 -2
  66. data/smoke/context-sensitive1.rb +1 -1
  67. data/smoke/cvar.rb +3 -2
  68. data/smoke/define_method.rb +2 -2
  69. data/smoke/define_method3.rb +1 -0
  70. data/smoke/define_method4.rb +1 -1
  71. data/smoke/define_method6.rb +19 -0
  72. data/smoke/demo.rb +6 -6
  73. data/smoke/demo1.rb +1 -1
  74. data/smoke/demo11.rb +1 -1
  75. data/smoke/demo2.rb +1 -1
  76. data/smoke/demo3.rb +1 -1
  77. data/smoke/demo4.rb +3 -3
  78. data/smoke/demo5.rb +1 -1
  79. data/smoke/demo6.rb +2 -1
  80. data/smoke/demo7.rb +1 -1
  81. data/smoke/demo9.rb +1 -0
  82. data/smoke/dummy-execution1.rb +1 -1
  83. data/smoke/dummy-execution2.rb +1 -1
  84. data/smoke/dummy_element.rb +1 -1
  85. data/smoke/ensure1.rb +1 -1
  86. data/smoke/enum_for.rb +15 -0
  87. data/smoke/enum_for2.rb +17 -0
  88. data/smoke/fib.rb +2 -2
  89. data/smoke/flow1.rb +1 -1
  90. data/smoke/flow10.rb +17 -0
  91. data/smoke/flow2.rb +1 -1
  92. data/smoke/flow3.rb +1 -1
  93. data/smoke/flow5.rb +1 -1
  94. data/smoke/flow6.rb +1 -1
  95. data/smoke/flow7.rb +1 -1
  96. data/smoke/flow8.rb +1 -1
  97. data/smoke/flow9.rb +1 -1
  98. data/smoke/function.rb +1 -1
  99. data/smoke/gvar.rb +1 -1
  100. data/smoke/gvar2.rb +1 -1
  101. data/smoke/hash-fetch.rb +3 -3
  102. data/smoke/inheritance.rb +4 -4
  103. data/smoke/initialize.rb +3 -2
  104. data/smoke/instance_eval.rb +1 -1
  105. data/smoke/int_times.rb +1 -1
  106. data/smoke/integer.rb +1 -1
  107. data/smoke/ivar.rb +3 -2
  108. data/smoke/ivar2.rb +2 -2
  109. data/smoke/ivar3.rb +2 -1
  110. data/smoke/ivar4.rb +21 -0
  111. data/smoke/kernel-class.rb +1 -1
  112. data/smoke/keyword4.rb +1 -1
  113. data/smoke/kwrest.rb +1 -0
  114. data/smoke/kwsplat1.rb +2 -2
  115. data/smoke/kwsplat2.rb +1 -1
  116. data/smoke/manual-rbs.rb +2 -1
  117. data/smoke/manual-rbs3.rb +1 -0
  118. data/smoke/method_in_branch.rb +1 -1
  119. data/smoke/method_missing.rb +4 -3
  120. data/smoke/module3.rb +1 -1
  121. data/smoke/module4.rb +1 -0
  122. data/smoke/module5.rb +1 -1
  123. data/smoke/module_function1.rb +3 -2
  124. data/smoke/module_function2.rb +3 -2
  125. data/smoke/multiple-include.rb +1 -0
  126. data/smoke/next1.rb +1 -1
  127. data/smoke/object-send1.rb +3 -3
  128. data/smoke/optional1.rb +1 -1
  129. data/smoke/optional2.rb +1 -1
  130. data/smoke/optional3.rb +1 -1
  131. data/smoke/parameterizedd-self.rb +2 -1
  132. data/smoke/prepend1.rb +33 -0
  133. data/smoke/prepend2.rb +10 -0
  134. data/smoke/prepend2.rbs +9 -0
  135. data/smoke/primitive_method.rb +19 -0
  136. data/smoke/proc4.rb +1 -1
  137. data/smoke/public.rb +4 -0
  138. data/smoke/range.rb +1 -1
  139. data/smoke/rbs-attr.rb +2 -2
  140. data/smoke/rbs-proc2.rb +1 -1
  141. data/smoke/rbs-proc3.rb +1 -1
  142. data/smoke/rbs-tyvar4.rb +3 -2
  143. data/smoke/rbs-tyvar6.rb +3 -3
  144. data/smoke/redo1.rb +1 -1
  145. data/smoke/redo2.rb +1 -1
  146. data/smoke/rescue1.rb +1 -1
  147. data/smoke/rescue2.rb +1 -1
  148. data/smoke/rescue3.rb +1 -0
  149. data/smoke/rescue4.rb +1 -1
  150. data/smoke/respond_to.rb +1 -1
  151. data/smoke/rest1.rb +2 -2
  152. data/smoke/rest2.rb +1 -1
  153. data/smoke/rest3.rb +6 -6
  154. data/smoke/rest4.rb +2 -2
  155. data/smoke/rest5.rb +1 -1
  156. data/smoke/rest6.rb +1 -1
  157. data/smoke/retry1.rb +2 -2
  158. data/smoke/simple.rb +12 -0
  159. data/smoke/step.rb +3 -3
  160. data/smoke/struct-keyword_init.rb +6 -16
  161. data/smoke/struct.rb +1 -1
  162. data/smoke/struct2.rb +1 -1
  163. data/smoke/struct3.rb +1 -1
  164. data/smoke/struct4.rb +1 -1
  165. data/smoke/struct5.rb +2 -2
  166. data/smoke/struct6.rb +2 -2
  167. data/smoke/struct7.rb +1 -1
  168. data/smoke/super1.rb +4 -4
  169. data/smoke/super3.rb +3 -2
  170. data/smoke/super4.rb +7 -5
  171. data/smoke/super5.rb +6 -4
  172. data/smoke/symbol-proc-attr.rb +1 -1
  173. data/smoke/tap1.rb +2 -2
  174. data/smoke/toplevel.rb +1 -1
  175. data/smoke/type_var.rb +3 -3
  176. data/smoke/user-demo.rb +1 -1
  177. data/smoke/wrong-extend.rb +1 -0
  178. data/smoke/wrong-include.rb +1 -0
  179. data/smoke/wrong-include2.rb +1 -1
  180. data/testbed/goodcheck-Gemfile.lock +1 -1
  181. data/typeprof.gemspec +1 -1
  182. metadata +19 -5
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.0
4
+ version: 0.12.0
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-07 00:00:00.000000000 Z
11
+ date: 2021-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rbs
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.20.0
19
+ version: 1.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.20.0
26
+ version: 1.0.0
27
27
  description: |
28
28
  TypeProf performs a type analysis of non-annotated Ruby code.
29
29
 
@@ -48,6 +48,7 @@ files:
48
48
  - doc/doc.ja.md
49
49
  - doc/doc.md
50
50
  - doc/ppl2019.pdf
51
+ - doc/todo.md
51
52
  - exe/typeprof
52
53
  - lib/typeprof.rb
53
54
  - lib/typeprof/analyzer.rb
@@ -103,6 +104,8 @@ files:
103
104
  - smoke/array8.rb
104
105
  - smoke/array9.rb
105
106
  - smoke/attr-module.rb
107
+ - smoke/attr-vis.rb
108
+ - smoke/attr-vis.rbs
106
109
  - smoke/attr.rb
107
110
  - smoke/autoload.rb
108
111
  - smoke/backtrace.rb
@@ -130,6 +133,7 @@ files:
130
133
  - smoke/block7.rb
131
134
  - smoke/block8.rb
132
135
  - smoke/block9.rb
136
+ - smoke/block_given.rb
133
137
  - smoke/blown.rb
134
138
  - smoke/break1.rb
135
139
  - smoke/break2.rb
@@ -159,6 +163,7 @@ files:
159
163
  - smoke/define_method4.rb
160
164
  - smoke/define_method4.rbs
161
165
  - smoke/define_method5.rb
166
+ - smoke/define_method6.rb
162
167
  - smoke/demo.rb
163
168
  - smoke/demo1.rb
164
169
  - smoke/demo10.rb
@@ -175,12 +180,15 @@ files:
175
180
  - smoke/dummy-execution2.rb
176
181
  - smoke/dummy_element.rb
177
182
  - smoke/ensure1.rb
183
+ - smoke/enum_for.rb
184
+ - smoke/enum_for2.rb
178
185
  - smoke/enumerator.rb
179
186
  - smoke/expandarray1.rb
180
187
  - smoke/expandarray2.rb
181
188
  - smoke/fib.rb
182
189
  - smoke/flip-flop.rb
183
190
  - smoke/flow1.rb
191
+ - smoke/flow10.rb
184
192
  - smoke/flow2.rb
185
193
  - smoke/flow3.rb
186
194
  - smoke/flow4.rb
@@ -215,6 +223,7 @@ files:
215
223
  - smoke/ivar2.rb
216
224
  - smoke/ivar3.rb
217
225
  - smoke/ivar3.rbs
226
+ - smoke/ivar4.rb
218
227
  - smoke/kernel-class.rb
219
228
  - smoke/keyword1.rb
220
229
  - smoke/keyword2.rb
@@ -263,6 +272,10 @@ files:
263
272
  - smoke/pathname2.rb
264
273
  - smoke/pattern-match1.rb
265
274
  - smoke/pattern-match2.rb
275
+ - smoke/prepend1.rb
276
+ - smoke/prepend2.rb
277
+ - smoke/prepend2.rbs
278
+ - smoke/primitive_method.rb
266
279
  - smoke/printf.rb
267
280
  - smoke/proc.rb
268
281
  - smoke/proc2.rb
@@ -326,6 +339,7 @@ files:
326
339
  - smoke/retry1.rb
327
340
  - smoke/return.rb
328
341
  - smoke/reveal.rb
342
+ - smoke/simple.rb
329
343
  - smoke/singleton_class.rb
330
344
  - smoke/singleton_method.rb
331
345
  - smoke/step.rb
@@ -389,7 +403,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
389
403
  - !ruby/object:Gem::Version
390
404
  version: '0'
391
405
  requirements: []
392
- rubygems_version: 3.2.0.rc.2
406
+ rubygems_version: 3.2.3
393
407
  signing_key:
394
408
  specification_version: 4
395
409
  summary: TypeProf is a type analysis tool for Ruby code based on abstract interpretation