typeprof 0.8.0 → 0.11.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 (298) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +6 -5
  3. data/doc/demo.md +1 -1
  4. data/doc/todo.md +133 -0
  5. data/lib/typeprof/analyzer.rb +177 -76
  6. data/lib/typeprof/arguments.rb +2 -0
  7. data/lib/typeprof/block.rb +40 -2
  8. data/lib/typeprof/builtin.rb +279 -111
  9. data/lib/typeprof/cli.rb +5 -0
  10. data/lib/typeprof/config.rb +15 -1
  11. data/lib/typeprof/container-type.rb +5 -4
  12. data/lib/typeprof/export.rb +115 -70
  13. data/lib/typeprof/import.rb +71 -33
  14. data/lib/typeprof/iseq.rb +46 -11
  15. data/lib/typeprof/method.rb +42 -21
  16. data/lib/typeprof/type.rb +93 -15
  17. data/lib/typeprof/version.rb +1 -1
  18. data/smoke/alias.rb +4 -4
  19. data/smoke/alias2.rb +6 -4
  20. data/smoke/any1.rb +1 -1
  21. data/smoke/any2.rb +2 -2
  22. data/smoke/arguments.rb +2 -2
  23. data/smoke/arguments2.rb +10 -10
  24. data/smoke/array-each.rb +1 -1
  25. data/smoke/array-each2.rb +1 -1
  26. data/smoke/array-each3.rb +1 -1
  27. data/smoke/array-ltlt.rb +1 -1
  28. data/smoke/array-ltlt2.rb +1 -1
  29. data/smoke/array-map.rb +1 -1
  30. data/smoke/array-map2.rb +1 -1
  31. data/smoke/array-map3.rb +3 -3
  32. data/smoke/array-mul.rb +2 -2
  33. data/smoke/array-plus1.rb +1 -1
  34. data/smoke/array-plus2.rb +3 -2
  35. data/smoke/array-pop.rb +1 -1
  36. data/smoke/array-range-aref.rb +11 -11
  37. data/smoke/array-replace.rb +1 -1
  38. data/smoke/array-s-aref.rb +1 -1
  39. data/smoke/array1.rb +5 -5
  40. data/smoke/array10.rb +1 -1
  41. data/smoke/array11.rb +1 -1
  42. data/smoke/array12.rb +3 -3
  43. data/smoke/array13.rb +4 -4
  44. data/smoke/array14.rb +1 -1
  45. data/smoke/array15.rb +16 -0
  46. data/smoke/array2.rb +3 -3
  47. data/smoke/array3.rb +5 -4
  48. data/smoke/array4.rb +1 -1
  49. data/smoke/array5.rb +1 -1
  50. data/smoke/array6.rb +3 -2
  51. data/smoke/array7.rb +1 -1
  52. data/smoke/array8.rb +1 -1
  53. data/smoke/array9.rb +1 -1
  54. data/smoke/attr-module.rb +27 -0
  55. data/smoke/attr-vis.rb +43 -0
  56. data/smoke/attr-vis.rbs +4 -0
  57. data/smoke/attr.rb +5 -5
  58. data/smoke/autoload.rb +1 -1
  59. data/smoke/backtrace.rb +3 -3
  60. data/smoke/block-ambiguous.rb +8 -8
  61. data/smoke/block-args1-rest.rb +12 -11
  62. data/smoke/block-args1.rb +10 -10
  63. data/smoke/block-args2-rest.rb +12 -11
  64. data/smoke/block-args2.rb +10 -10
  65. data/smoke/block-args3-rest.rb +14 -13
  66. data/smoke/block-args3.rb +12 -12
  67. data/smoke/block-blockarg.rb +4 -4
  68. data/smoke/block-kwarg.rb +10 -10
  69. data/smoke/block1.rb +1 -1
  70. data/smoke/block10.rb +1 -1
  71. data/smoke/block11.rb +5 -5
  72. data/smoke/block12.rb +2 -2
  73. data/smoke/block14.rb +2 -2
  74. data/smoke/block2.rb +1 -1
  75. data/smoke/block3.rb +3 -3
  76. data/smoke/block4.rb +2 -2
  77. data/smoke/block5.rb +3 -2
  78. data/smoke/block6.rb +2 -2
  79. data/smoke/block7.rb +1 -1
  80. data/smoke/block8.rb +3 -3
  81. data/smoke/block9.rb +1 -1
  82. data/smoke/block_given.rb +37 -0
  83. data/smoke/blown.rb +1 -1
  84. data/smoke/break1.rb +2 -2
  85. data/smoke/break2.rb +1 -1
  86. data/smoke/break3.rb +13 -0
  87. data/smoke/case.rb +1 -1
  88. data/smoke/case2.rb +1 -1
  89. data/smoke/case3.rb +17 -0
  90. data/smoke/class-hierarchy.rb +5 -5
  91. data/smoke/class-hierarchy2.rb +3 -3
  92. data/smoke/class-new.rb +15 -0
  93. data/smoke/class_instance_var.rb +1 -1
  94. data/smoke/class_method.rb +2 -2
  95. data/smoke/class_method2.rb +2 -2
  96. data/smoke/class_method3.rb +2 -2
  97. data/smoke/constant1.rb +6 -6
  98. data/smoke/constant2.rb +5 -4
  99. data/smoke/constant3.rb +1 -1
  100. data/smoke/constant4.rb +1 -1
  101. data/smoke/context-sensitive1.rb +1 -1
  102. data/smoke/cvar.rb +6 -5
  103. data/smoke/cvar2.rb +2 -2
  104. data/smoke/define_method.rb +2 -2
  105. data/smoke/define_method2.rb +2 -2
  106. data/smoke/define_method3.rb +14 -0
  107. data/smoke/define_method3.rbs +3 -0
  108. data/smoke/define_method4.rb +15 -0
  109. data/smoke/define_method4.rbs +3 -0
  110. data/smoke/define_method5.rb +12 -0
  111. data/smoke/define_method6.rb +19 -0
  112. data/smoke/demo.rb +6 -6
  113. data/smoke/demo1.rb +1 -1
  114. data/smoke/demo10.rb +2 -2
  115. data/smoke/demo11.rb +1 -1
  116. data/smoke/demo2.rb +1 -1
  117. data/smoke/demo3.rb +1 -1
  118. data/smoke/demo4.rb +3 -3
  119. data/smoke/demo5.rb +1 -1
  120. data/smoke/demo6.rb +4 -3
  121. data/smoke/demo7.rb +1 -1
  122. data/smoke/demo8.rb +2 -2
  123. data/smoke/demo9.rb +3 -2
  124. data/smoke/dummy-execution1.rb +2 -2
  125. data/smoke/dummy-execution2.rb +2 -2
  126. data/smoke/dummy_element.rb +14 -0
  127. data/smoke/ensure1.rb +2 -2
  128. data/smoke/enum_for.rb +15 -0
  129. data/smoke/enum_for2.rb +17 -0
  130. data/smoke/enumerator.rb +2 -2
  131. data/smoke/expandarray1.rb +1 -1
  132. data/smoke/expandarray2.rb +1 -1
  133. data/smoke/fib.rb +2 -2
  134. data/smoke/flip-flop.rb +28 -0
  135. data/smoke/flow1.rb +1 -1
  136. data/smoke/flow10.rb +17 -0
  137. data/smoke/flow2.rb +1 -1
  138. data/smoke/flow3.rb +1 -1
  139. data/smoke/flow5.rb +1 -1
  140. data/smoke/flow6.rb +1 -1
  141. data/smoke/flow7.rb +1 -1
  142. data/smoke/flow8.rb +1 -1
  143. data/smoke/flow9.rb +12 -0
  144. data/smoke/freeze.rb +1 -1
  145. data/smoke/function.rb +2 -2
  146. data/smoke/gvar.rb +2 -2
  147. data/smoke/gvar2.rb +3 -3
  148. data/smoke/hash-bot.rb +12 -0
  149. data/smoke/hash-fetch.rb +3 -3
  150. data/smoke/hash-merge-bang.rb +1 -1
  151. data/smoke/hash1.rb +2 -2
  152. data/smoke/hash2.rb +1 -1
  153. data/smoke/hash3.rb +1 -1
  154. data/smoke/hash4.rb +1 -1
  155. data/smoke/hash5.rb +1 -1
  156. data/smoke/inheritance.rb +4 -4
  157. data/smoke/inheritance2.rb +2 -2
  158. data/smoke/initialize.rb +6 -5
  159. data/smoke/instance_eval.rb +2 -2
  160. data/smoke/instance_eval2.rb +10 -0
  161. data/smoke/instance_eval3.rb +25 -0
  162. data/smoke/int_times.rb +1 -1
  163. data/smoke/integer.rb +1 -1
  164. data/smoke/ivar.rb +5 -4
  165. data/smoke/ivar2.rb +4 -4
  166. data/smoke/ivar3.rb +4 -3
  167. data/smoke/ivar4.rb +21 -0
  168. data/smoke/kernel-class.rb +1 -1
  169. data/smoke/keyword1.rb +1 -1
  170. data/smoke/keyword2.rb +1 -1
  171. data/smoke/keyword3.rb +1 -1
  172. data/smoke/keyword4.rb +1 -1
  173. data/smoke/keyword5.rb +1 -1
  174. data/smoke/kwrest.rb +3 -2
  175. data/smoke/kwsplat1.rb +4 -4
  176. data/smoke/kwsplat2.rb +1 -1
  177. data/smoke/lit-complex.rb +10 -0
  178. data/smoke/lit-encoding.rb +10 -0
  179. data/smoke/manual-rbs.rb +5 -4
  180. data/smoke/manual-rbs2.rb +1 -1
  181. data/smoke/manual-rbs3.rb +3 -2
  182. data/smoke/masgn1.rb +1 -1
  183. data/smoke/masgn2.rb +2 -2
  184. data/smoke/masgn3.rb +1 -1
  185. data/smoke/method_in_branch.rb +3 -3
  186. data/smoke/method_missing.rb +5 -4
  187. data/smoke/module1.rb +2 -2
  188. data/smoke/module2.rb +1 -1
  189. data/smoke/module3.rb +3 -3
  190. data/smoke/module4.rb +3 -2
  191. data/smoke/module5.rb +17 -0
  192. data/smoke/module6.rb +40 -0
  193. data/smoke/module_function1.rb +4 -3
  194. data/smoke/module_function2.rb +4 -3
  195. data/smoke/multiple-include.rb +2 -1
  196. data/smoke/multiple-superclass.rb +1 -1
  197. data/smoke/next1.rb +2 -2
  198. data/smoke/next2.rb +1 -1
  199. data/smoke/object-send1.rb +3 -3
  200. data/smoke/object-send2.rb +10 -0
  201. data/smoke/object-send3.rb +18 -0
  202. data/smoke/once.rb +1 -1
  203. data/smoke/optional1.rb +1 -1
  204. data/smoke/optional2.rb +1 -1
  205. data/smoke/optional3.rb +1 -1
  206. data/smoke/parameterizedd-self.rb +3 -2
  207. data/smoke/parameterizedd-self2.rb +1 -1
  208. data/smoke/pathname1.rb +1 -1
  209. data/smoke/pathname2.rb +1 -1
  210. data/smoke/pattern-match1.rb +1 -1
  211. data/smoke/pattern-match2.rb +1 -1
  212. data/smoke/prepend1.rb +33 -0
  213. data/smoke/prepend2.rb +10 -0
  214. data/smoke/prepend2.rbs +9 -0
  215. data/smoke/primitive_method.rb +19 -0
  216. data/smoke/printf.rb +2 -2
  217. data/smoke/proc.rb +2 -2
  218. data/smoke/proc2.rb +1 -1
  219. data/smoke/proc3.rb +1 -1
  220. data/smoke/proc4.rb +1 -1
  221. data/smoke/proc5.rb +19 -0
  222. data/smoke/public.rb +38 -0
  223. data/smoke/range.rb +1 -1
  224. data/smoke/rbs-alias.rb +1 -1
  225. data/smoke/rbs-attr.rb +5 -5
  226. data/smoke/rbs-attr2.rb +1 -1
  227. data/smoke/rbs-extend.rb +1 -1
  228. data/smoke/rbs-interface.rb +4 -4
  229. data/smoke/rbs-module.rb +26 -0
  230. data/smoke/rbs-module.rbs +4 -0
  231. data/smoke/rbs-opt-and-rest.rb +10 -0
  232. data/smoke/rbs-opt-and-rest.rbs +3 -0
  233. data/smoke/rbs-proc1.rb +1 -1
  234. data/smoke/rbs-proc2.rb +2 -2
  235. data/smoke/rbs-proc3.rb +1 -1
  236. data/smoke/rbs-record.rb +2 -2
  237. data/smoke/rbs-tyvar.rb +2 -2
  238. data/smoke/rbs-tyvar2.rb +2 -2
  239. data/smoke/rbs-tyvar3.rb +2 -2
  240. data/smoke/rbs-tyvar4.rb +4 -3
  241. data/smoke/rbs-tyvar5.rb +1 -1
  242. data/smoke/rbs-tyvar6.rb +3 -3
  243. data/smoke/rbs-tyvar7.rb +1 -1
  244. data/smoke/rbs-vars.rb +6 -6
  245. data/smoke/redo1.rb +2 -2
  246. data/smoke/redo2.rb +2 -2
  247. data/smoke/req-keyword.rb +1 -1
  248. data/smoke/rescue1.rb +2 -2
  249. data/smoke/rescue2.rb +2 -2
  250. data/smoke/rescue3.rb +20 -0
  251. data/smoke/rescue4.rb +17 -0
  252. data/smoke/respond_to.rb +1 -1
  253. data/smoke/rest-farg.rb +1 -1
  254. data/smoke/rest1.rb +2 -2
  255. data/smoke/rest2.rb +1 -1
  256. data/smoke/rest3.rb +6 -6
  257. data/smoke/rest4.rb +2 -2
  258. data/smoke/rest5.rb +1 -1
  259. data/smoke/rest6.rb +1 -1
  260. data/smoke/retry1.rb +2 -2
  261. data/smoke/return.rb +1 -1
  262. data/smoke/simple.rb +12 -0
  263. data/smoke/singleton_method.rb +1 -1
  264. data/smoke/step.rb +3 -3
  265. data/smoke/string-split.rb +1 -1
  266. data/smoke/struct-keyword_init.rb +10 -0
  267. data/smoke/struct.rb +1 -1
  268. data/smoke/struct2.rb +4 -4
  269. data/smoke/struct3.rb +2 -2
  270. data/smoke/struct4.rb +7 -0
  271. data/smoke/struct5.rb +16 -0
  272. data/smoke/struct6.rb +15 -0
  273. data/smoke/struct7.rb +17 -0
  274. data/smoke/stub-keyword.rb +10 -0
  275. data/smoke/super1.rb +4 -4
  276. data/smoke/super2.rb +1 -1
  277. data/smoke/super3.rb +4 -3
  278. data/smoke/super4.rb +7 -5
  279. data/smoke/super5.rb +6 -4
  280. data/smoke/svar1.rb +1 -1
  281. data/smoke/symbol-proc-attr.rb +22 -0
  282. data/smoke/symbol-proc-attr2.rb +15 -0
  283. data/smoke/symbol-proc-bot.rb +13 -0
  284. data/smoke/symbol-proc.rb +3 -3
  285. data/smoke/tap1.rb +2 -2
  286. data/smoke/toplevel.rb +1 -1
  287. data/smoke/two-map.rb +2 -2
  288. data/smoke/type_var.rb +3 -3
  289. data/smoke/typed_method.rb +1 -1
  290. data/smoke/uninitialize-var.rb +1 -1
  291. data/smoke/union-recv.rb +2 -2
  292. data/smoke/user-demo.rb +3 -3
  293. data/smoke/wrong-extend.rb +3 -2
  294. data/smoke/wrong-include.rb +3 -2
  295. data/smoke/wrong-include2.rb +17 -0
  296. data/typeprof.gemspec +1 -1
  297. metadata +59 -6
  298. data/tools/stackprof-wrapper.rb +0 -10
@@ -0,0 +1,15 @@
1
+ class Foo < Struct.new(:foo)
2
+ def initialize(foo)
3
+ super(foo.to_s)
4
+ end
5
+ end
6
+
7
+ __END__
8
+ # Classes
9
+ class AnonymousStruct_generated_1 < Struct
10
+ attr_accessor foo(): untyped
11
+ end
12
+
13
+ class Foo < AnonymousStruct_generated_1
14
+ def initialize: (untyped foo) -> Foo
15
+ end
@@ -0,0 +1,17 @@
1
+ # I'm unsure how this is useful
2
+ # This test just checks if TypeProf raises no exception
3
+
4
+ class Foo < Struct
5
+ end
6
+
7
+ class Foo
8
+ def initialize
9
+ super
10
+ end
11
+ end
12
+
13
+ __END__
14
+ # Classes
15
+ class Foo < Struct
16
+ def initialize: -> Foo
17
+ end
@@ -0,0 +1,10 @@
1
+ def foo(age: nil)
2
+ end
3
+
4
+ foo(age: 1)
5
+ __END__
6
+ # Classes
7
+ class Object
8
+ private
9
+ def foo: (?age: Integer?) -> nil
10
+ end
@@ -35,7 +35,7 @@ __END__
35
35
  # Classes
36
36
  class Object
37
37
  private
38
- def log : (Baz) -> nil
38
+ def log: (Baz x) -> nil
39
39
  end
40
40
 
41
41
  class A
@@ -57,13 +57,13 @@ class Z
57
57
  end
58
58
 
59
59
  class Foo
60
- def f : (C) -> X
60
+ def f: (C x) -> X
61
61
  end
62
62
 
63
63
  class Bar < Foo
64
- def f : (B) -> Y
64
+ def f: (B x) -> Y
65
65
  end
66
66
 
67
67
  class Baz < Bar
68
- def f : (A) -> Z
68
+ def f: (A x) -> Z
69
69
  end
@@ -12,5 +12,5 @@ smoke/super2.rb:3: [error] no superclass method: Foo#f
12
12
 
13
13
  # Classes
14
14
  class Foo
15
- def f : -> untyped
15
+ def f: -> untyped
16
16
  end
@@ -13,7 +13,8 @@ Foo.new(1)
13
13
  __END__
14
14
  # Classes
15
15
  class Foo
16
- @a : Integer
17
- def self.new : (Integer) -> Foo
18
- def initialize : (Integer) -> Integer
16
+ @a: Integer
17
+
18
+ def self.new: (Integer a) -> Foo
19
+ def initialize: (Integer a) -> Integer
19
20
  end
@@ -21,23 +21,25 @@ E.new.f(:top)
21
21
  __END__
22
22
  # Classes
23
23
  module M1
24
- def f : (:D) -> nil
24
+ def f: (:D m) -> nil
25
25
  end
26
26
 
27
27
  module M2
28
- def f : (:E) -> nil
28
+ def f: (:E m) -> nil
29
29
  end
30
30
 
31
31
  class C
32
- def f : (:M1) -> nil
32
+ def f: (:M1 m) -> nil
33
33
  end
34
34
 
35
35
  class D < C
36
36
  include M1
37
- def f : (:M2) -> nil
37
+
38
+ def f: (:M2 m) -> nil
38
39
  end
39
40
 
40
41
  class E < D
41
42
  include M2
42
- def f : (:top) -> nil
43
+
44
+ def f: (:top m) -> nil
43
45
  end
@@ -18,19 +18,21 @@ E.new.f(:top)
18
18
  __END__
19
19
  # Classes
20
20
  module M
21
- def f : (:D | :E) -> nil
21
+ def f: (:D | :E m) -> nil
22
22
  end
23
23
 
24
24
  class C
25
- def f : (:M) -> nil
25
+ def f: (:M m) -> nil
26
26
  end
27
27
 
28
28
  class D < C
29
29
  include M
30
- def f : (:M) -> nil
30
+
31
+ def f: (:M m) -> nil
31
32
  end
32
33
 
33
34
  class E < D
34
35
  include M
35
- def f : (:top) -> nil
36
+
37
+ def f: (:top m) -> nil
36
38
  end
@@ -9,5 +9,5 @@ __END__
9
9
  # Classes
10
10
  class Object
11
11
  private
12
- def foo : -> [String?, String?]
12
+ def foo: -> [String?, String?]
13
13
  end
@@ -0,0 +1,22 @@
1
+ class Foo
2
+ attr_reader :foo
3
+ def initialize(foo)
4
+ @foo = foo
5
+ end
6
+ end
7
+
8
+ def log
9
+ [Foo.new(42)].map(&:foo)
10
+ end
11
+
12
+ __END__
13
+ # Classes
14
+ class Object
15
+ private
16
+ def log: -> (Array[Integer | untyped])
17
+ end
18
+
19
+ class Foo
20
+ attr_reader foo: Integer | untyped
21
+ def initialize: (Integer | untyped foo) -> (Integer | untyped)
22
+ end
@@ -0,0 +1,15 @@
1
+ class Foo
2
+ attr_reader :foo
3
+ def initialize
4
+ @foo = [42]
5
+ end
6
+ end
7
+
8
+ [Foo.new].flat_map(&:foo)
9
+
10
+ __END__
11
+ # Classes
12
+ class Foo
13
+ attr_reader foo: [Integer]
14
+ def initialize: -> [Integer]
15
+ end
@@ -0,0 +1,13 @@
1
+ # This method call invokes (bottom type).boo, so the analysis may terminate
2
+ # Currently, SymbolBlock translates bot receiver to any type
3
+ [].each(&:boo)
4
+
5
+ def foo
6
+ end
7
+
8
+ __END__
9
+ # Classes
10
+ class Object
11
+ private
12
+ def foo: -> nil
13
+ end
@@ -16,10 +16,10 @@ __END__
16
16
  # Classes
17
17
  class Object
18
18
  private
19
- def foo : -> Array[String]
20
- def bar : -> Array[:foo]
19
+ def foo: -> Array[String]
20
+ def bar: -> Array[:foo]
21
21
  end
22
22
 
23
23
  class Foo
24
- def foo : -> :foo
24
+ def foo: -> :foo
25
25
  end
@@ -13,6 +13,6 @@ __END__
13
13
  # Classes
14
14
  class Object
15
15
  private
16
- def bar : (Integer) -> nil
17
- def foo : (Integer) -> Integer
16
+ def bar: (Integer x) -> nil
17
+ def foo: (Integer x) -> Integer
18
18
  end
@@ -9,5 +9,5 @@ __END__
9
9
  # Classes
10
10
  class Object
11
11
  private
12
- def foo : (Integer) -> Integer
12
+ def foo: (Integer x) -> Integer
13
13
  end
@@ -13,6 +13,6 @@ __END__
13
13
  # Classes
14
14
  class Object
15
15
  private
16
- def foo : -> Array[String]
17
- def bar : -> Array[Integer]
16
+ def foo: -> Array[String]
17
+ def bar: -> Array[Integer]
18
18
  end
@@ -1,5 +1,5 @@
1
- def number?(type)
2
- %w[integer float].include?(type).then { puts 1 }
1
+ def number?(ty)
2
+ %w[integer float].include?(ty).then { puts 1 }
3
3
  end
4
4
  number?('string')
5
5
 
@@ -7,5 +7,5 @@ __END__
7
7
  # Classes
8
8
  class Object
9
9
  private
10
- def number? : (String) -> nil
10
+ def number?: (String ty) -> nil
11
11
  end
@@ -12,5 +12,5 @@ smoke/typed_method.rb:6: [error] undefined method: Object#unknown
12
12
  # Classes
13
13
  class Object
14
14
  private
15
- def foo : -> Float
15
+ def foo: -> Float
16
16
  end
@@ -9,5 +9,5 @@ __END__
9
9
  # Classes
10
10
  class Object
11
11
  private
12
- def foo : -> nil
12
+ def foo: -> nil
13
13
  end
@@ -21,11 +21,11 @@ end
21
21
  __END__
22
22
  # Classes
23
23
  class SuperBase
24
- def self.foo : -> (singleton(A) | singleton(B))
24
+ def self.foo: -> (singleton(A) | singleton(B))
25
25
  end
26
26
 
27
27
  class Base < SuperBase
28
- def self.foo : -> (singleton(A) | singleton(B))
28
+ def self.foo: -> (singleton(A) | singleton(B))
29
29
  end
30
30
 
31
31
  class A < Base
@@ -9,7 +9,7 @@ end
9
9
  __END__
10
10
  # Classes
11
11
  class User
12
- attr_reader name : String | untyped
13
- attr_reader age : Integer | untyped
14
- def foo : (?name: String | untyped, ?age: Integer | untyped) -> ([String | untyped, Integer | untyped])
12
+ def foo: (?name: String | untyped, ?age: Integer | untyped) -> ([String | untyped, Integer | untyped])
13
+ attr_reader name: String | untyped
14
+ attr_reader age: Integer | untyped
15
15
  end
@@ -17,10 +17,11 @@ end
17
17
  __END__
18
18
  # Classes
19
19
  module Bar
20
- def bar : -> :bar
20
+ def bar: -> :bar
21
21
  end
22
22
 
23
23
  module Foo
24
24
  extend Bar
25
- def foo : -> :foo
25
+
26
+ def foo: -> :foo
26
27
  end
@@ -17,10 +17,11 @@ end
17
17
  __END__
18
18
  # Classes
19
19
  module Bar
20
- def bar : -> :bar
20
+ def bar: -> :bar
21
21
  end
22
22
 
23
23
  module Foo
24
24
  include Bar
25
- def foo : -> :foo
25
+
26
+ def foo: -> :foo
26
27
  end
@@ -0,0 +1,17 @@
1
+ class Foo
2
+ end
3
+
4
+ class Bar
5
+ include Foo
6
+ end
7
+
8
+ __END__
9
+ # Errors
10
+ smoke/wrong-include2.rb:5: [warning] attempted to include/extend non-module; ignored
11
+
12
+ # Classes
13
+ class Foo
14
+ end
15
+
16
+ class Bar
17
+ end
@@ -30,5 +30,5 @@ Gem::Specification.new do |spec|
30
30
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
31
  spec.require_paths = ["lib"]
32
32
 
33
- spec.add_runtime_dependency "rbs", ">= 0.17.0"
33
+ spec.add_runtime_dependency "rbs", ">= 1.0.0"
34
34
  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.8.0
4
+ version: 0.11.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-01 00:00:00.000000000 Z
11
+ date: 2020-12-24 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.17.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.17.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
@@ -93,6 +94,7 @@ files:
93
94
  - smoke/array12.rb
94
95
  - smoke/array13.rb
95
96
  - smoke/array14.rb
97
+ - smoke/array15.rb
96
98
  - smoke/array2.rb
97
99
  - smoke/array3.rb
98
100
  - smoke/array4.rb
@@ -101,6 +103,9 @@ files:
101
103
  - smoke/array7.rb
102
104
  - smoke/array8.rb
103
105
  - smoke/array9.rb
106
+ - smoke/attr-module.rb
107
+ - smoke/attr-vis.rb
108
+ - smoke/attr-vis.rbs
104
109
  - smoke/attr.rb
105
110
  - smoke/autoload.rb
106
111
  - smoke/backtrace.rb
@@ -128,13 +133,17 @@ files:
128
133
  - smoke/block7.rb
129
134
  - smoke/block8.rb
130
135
  - smoke/block9.rb
136
+ - smoke/block_given.rb
131
137
  - smoke/blown.rb
132
138
  - smoke/break1.rb
133
139
  - smoke/break2.rb
140
+ - smoke/break3.rb
134
141
  - smoke/case.rb
135
142
  - smoke/case2.rb
143
+ - smoke/case3.rb
136
144
  - smoke/class-hierarchy.rb
137
145
  - smoke/class-hierarchy2.rb
146
+ - smoke/class-new.rb
138
147
  - smoke/class.rb
139
148
  - smoke/class_instance_var.rb
140
149
  - smoke/class_method.rb
@@ -149,6 +158,12 @@ files:
149
158
  - smoke/cvar2.rb
150
159
  - smoke/define_method.rb
151
160
  - smoke/define_method2.rb
161
+ - smoke/define_method3.rb
162
+ - smoke/define_method3.rbs
163
+ - smoke/define_method4.rb
164
+ - smoke/define_method4.rbs
165
+ - smoke/define_method5.rb
166
+ - smoke/define_method6.rb
152
167
  - smoke/demo.rb
153
168
  - smoke/demo1.rb
154
169
  - smoke/demo10.rb
@@ -163,12 +178,17 @@ files:
163
178
  - smoke/demo9.rb
164
179
  - smoke/dummy-execution1.rb
165
180
  - smoke/dummy-execution2.rb
181
+ - smoke/dummy_element.rb
166
182
  - smoke/ensure1.rb
183
+ - smoke/enum_for.rb
184
+ - smoke/enum_for2.rb
167
185
  - smoke/enumerator.rb
168
186
  - smoke/expandarray1.rb
169
187
  - smoke/expandarray2.rb
170
188
  - smoke/fib.rb
189
+ - smoke/flip-flop.rb
171
190
  - smoke/flow1.rb
191
+ - smoke/flow10.rb
172
192
  - smoke/flow2.rb
173
193
  - smoke/flow3.rb
174
194
  - smoke/flow4.rb
@@ -176,12 +196,14 @@ files:
176
196
  - smoke/flow6.rb
177
197
  - smoke/flow7.rb
178
198
  - smoke/flow8.rb
199
+ - smoke/flow9.rb
179
200
  - smoke/for.rb
180
201
  - smoke/freeze.rb
181
202
  - smoke/function.rb
182
203
  - smoke/gvar.rb
183
204
  - smoke/gvar2.rb
184
205
  - smoke/gvar2.rbs
206
+ - smoke/hash-bot.rb
185
207
  - smoke/hash-fetch.rb
186
208
  - smoke/hash-merge-bang.rb
187
209
  - smoke/hash1.rb
@@ -193,12 +215,15 @@ files:
193
215
  - smoke/inheritance2.rb
194
216
  - smoke/initialize.rb
195
217
  - smoke/instance_eval.rb
218
+ - smoke/instance_eval2.rb
219
+ - smoke/instance_eval3.rb
196
220
  - smoke/int_times.rb
197
221
  - smoke/integer.rb
198
222
  - smoke/ivar.rb
199
223
  - smoke/ivar2.rb
200
224
  - smoke/ivar3.rb
201
225
  - smoke/ivar3.rbs
226
+ - smoke/ivar4.rb
202
227
  - smoke/kernel-class.rb
203
228
  - smoke/keyword1.rb
204
229
  - smoke/keyword2.rb
@@ -209,6 +234,8 @@ files:
209
234
  - smoke/kwrest.rbs
210
235
  - smoke/kwsplat1.rb
211
236
  - smoke/kwsplat2.rb
237
+ - smoke/lit-complex.rb
238
+ - smoke/lit-encoding.rb
212
239
  - smoke/manual-rbs.rb
213
240
  - smoke/manual-rbs.rbs
214
241
  - smoke/manual-rbs2.rb
@@ -224,6 +251,8 @@ files:
224
251
  - smoke/module2.rb
225
252
  - smoke/module3.rb
226
253
  - smoke/module4.rb
254
+ - smoke/module5.rb
255
+ - smoke/module6.rb
227
256
  - smoke/module_function1.rb
228
257
  - smoke/module_function2.rb
229
258
  - smoke/multiple-include.rb
@@ -231,6 +260,8 @@ files:
231
260
  - smoke/next1.rb
232
261
  - smoke/next2.rb
233
262
  - smoke/object-send1.rb
263
+ - smoke/object-send2.rb
264
+ - smoke/object-send3.rb
234
265
  - smoke/once.rb
235
266
  - smoke/optional1.rb
236
267
  - smoke/optional2.rb
@@ -241,11 +272,17 @@ files:
241
272
  - smoke/pathname2.rb
242
273
  - smoke/pattern-match1.rb
243
274
  - smoke/pattern-match2.rb
275
+ - smoke/prepend1.rb
276
+ - smoke/prepend2.rb
277
+ - smoke/prepend2.rbs
278
+ - smoke/primitive_method.rb
244
279
  - smoke/printf.rb
245
280
  - smoke/proc.rb
246
281
  - smoke/proc2.rb
247
282
  - smoke/proc3.rb
248
283
  - smoke/proc4.rb
284
+ - smoke/proc5.rb
285
+ - smoke/public.rb
249
286
  - smoke/range.rb
250
287
  - smoke/rbs-alias.rb
251
288
  - smoke/rbs-alias.rbs
@@ -257,6 +294,10 @@ files:
257
294
  - smoke/rbs-extend.rbs
258
295
  - smoke/rbs-interface.rb
259
296
  - smoke/rbs-interface.rbs
297
+ - smoke/rbs-module.rb
298
+ - smoke/rbs-module.rbs
299
+ - smoke/rbs-opt-and-rest.rb
300
+ - smoke/rbs-opt-and-rest.rbs
260
301
  - smoke/rbs-proc1.rb
261
302
  - smoke/rbs-proc1.rbs
262
303
  - smoke/rbs-proc2.rb
@@ -285,6 +326,8 @@ files:
285
326
  - smoke/req-keyword.rb
286
327
  - smoke/rescue1.rb
287
328
  - smoke/rescue2.rb
329
+ - smoke/rescue3.rb
330
+ - smoke/rescue4.rb
288
331
  - smoke/respond_to.rb
289
332
  - smoke/rest-farg.rb
290
333
  - smoke/rest1.rb
@@ -296,19 +339,29 @@ files:
296
339
  - smoke/retry1.rb
297
340
  - smoke/return.rb
298
341
  - smoke/reveal.rb
342
+ - smoke/simple.rb
299
343
  - smoke/singleton_class.rb
300
344
  - smoke/singleton_method.rb
301
345
  - smoke/step.rb
302
346
  - smoke/string-split.rb
347
+ - smoke/struct-keyword_init.rb
303
348
  - smoke/struct.rb
304
349
  - smoke/struct2.rb
305
350
  - smoke/struct3.rb
351
+ - smoke/struct4.rb
352
+ - smoke/struct5.rb
353
+ - smoke/struct6.rb
354
+ - smoke/struct7.rb
355
+ - smoke/stub-keyword.rb
306
356
  - smoke/super1.rb
307
357
  - smoke/super2.rb
308
358
  - smoke/super3.rb
309
359
  - smoke/super4.rb
310
360
  - smoke/super5.rb
311
361
  - smoke/svar1.rb
362
+ - smoke/symbol-proc-attr.rb
363
+ - smoke/symbol-proc-attr2.rb
364
+ - smoke/symbol-proc-bot.rb
312
365
  - smoke/symbol-proc.rb
313
366
  - smoke/tap1.rb
314
367
  - smoke/toplevel.rb
@@ -320,6 +373,7 @@ files:
320
373
  - smoke/user-demo.rb
321
374
  - smoke/wrong-extend.rb
322
375
  - smoke/wrong-include.rb
376
+ - smoke/wrong-include2.rb
323
377
  - smoke/wrong-rbs.rb
324
378
  - smoke/wrong-rbs.rbs
325
379
  - testbed/ao.rb
@@ -327,7 +381,6 @@ files:
327
381
  - testbed/goodcheck-Gemfile.lock
328
382
  - tools/coverage.rb
329
383
  - tools/setup-insns-def.rb
330
- - tools/stackprof-wrapper.rb
331
384
  - typeprof.gemspec
332
385
  homepage: https://github.com/ruby/typeprof
333
386
  licenses:
@@ -350,7 +403,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
350
403
  - !ruby/object:Gem::Version
351
404
  version: '0'
352
405
  requirements: []
353
- rubygems_version: 3.2.0.rc.2
406
+ rubygems_version: 3.2.3
354
407
  signing_key:
355
408
  specification_version: 4
356
409
  summary: TypeProf is a type analysis tool for Ruby code based on abstract interpretation