typeprof 0.8.0 → 0.9.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 (281) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +3 -3
  3. data/lib/typeprof/analyzer.rb +96 -44
  4. data/lib/typeprof/arguments.rb +2 -0
  5. data/lib/typeprof/block.rb +6 -2
  6. data/lib/typeprof/builtin.rb +125 -62
  7. data/lib/typeprof/container-type.rb +5 -4
  8. data/lib/typeprof/export.rb +7 -7
  9. data/lib/typeprof/import.rb +14 -2
  10. data/lib/typeprof/iseq.rb +23 -7
  11. data/lib/typeprof/method.rb +13 -14
  12. data/lib/typeprof/type.rb +52 -2
  13. data/lib/typeprof/version.rb +1 -1
  14. data/smoke/alias.rb +4 -4
  15. data/smoke/alias2.rb +4 -4
  16. data/smoke/any1.rb +1 -1
  17. data/smoke/any2.rb +2 -2
  18. data/smoke/arguments.rb +2 -2
  19. data/smoke/arguments2.rb +10 -10
  20. data/smoke/array-each.rb +1 -1
  21. data/smoke/array-each2.rb +1 -1
  22. data/smoke/array-each3.rb +1 -1
  23. data/smoke/array-ltlt.rb +1 -1
  24. data/smoke/array-ltlt2.rb +1 -1
  25. data/smoke/array-map.rb +1 -1
  26. data/smoke/array-map2.rb +1 -1
  27. data/smoke/array-map3.rb +3 -3
  28. data/smoke/array-mul.rb +2 -2
  29. data/smoke/array-plus1.rb +1 -1
  30. data/smoke/array-plus2.rb +2 -2
  31. data/smoke/array-pop.rb +1 -1
  32. data/smoke/array-range-aref.rb +11 -11
  33. data/smoke/array-replace.rb +1 -1
  34. data/smoke/array-s-aref.rb +1 -1
  35. data/smoke/array1.rb +5 -5
  36. data/smoke/array10.rb +1 -1
  37. data/smoke/array11.rb +1 -1
  38. data/smoke/array12.rb +3 -3
  39. data/smoke/array13.rb +4 -4
  40. data/smoke/array14.rb +1 -1
  41. data/smoke/array15.rb +16 -0
  42. data/smoke/array2.rb +3 -3
  43. data/smoke/array3.rb +4 -4
  44. data/smoke/array4.rb +1 -1
  45. data/smoke/array5.rb +1 -1
  46. data/smoke/array6.rb +2 -2
  47. data/smoke/array7.rb +1 -1
  48. data/smoke/array8.rb +1 -1
  49. data/smoke/array9.rb +1 -1
  50. data/smoke/attr-module.rb +26 -0
  51. data/smoke/attr.rb +5 -5
  52. data/smoke/autoload.rb +1 -1
  53. data/smoke/backtrace.rb +3 -3
  54. data/smoke/block-ambiguous.rb +8 -8
  55. data/smoke/block-args1-rest.rb +11 -11
  56. data/smoke/block-args1.rb +10 -10
  57. data/smoke/block-args2-rest.rb +11 -11
  58. data/smoke/block-args2.rb +10 -10
  59. data/smoke/block-args3-rest.rb +13 -13
  60. data/smoke/block-args3.rb +12 -12
  61. data/smoke/block-blockarg.rb +4 -4
  62. data/smoke/block-kwarg.rb +10 -10
  63. data/smoke/block1.rb +1 -1
  64. data/smoke/block10.rb +1 -1
  65. data/smoke/block11.rb +5 -5
  66. data/smoke/block12.rb +2 -2
  67. data/smoke/block14.rb +2 -2
  68. data/smoke/block2.rb +1 -1
  69. data/smoke/block3.rb +3 -3
  70. data/smoke/block4.rb +2 -2
  71. data/smoke/block5.rb +2 -2
  72. data/smoke/block6.rb +2 -2
  73. data/smoke/block7.rb +1 -1
  74. data/smoke/block8.rb +3 -3
  75. data/smoke/block9.rb +1 -1
  76. data/smoke/blown.rb +1 -1
  77. data/smoke/break1.rb +2 -2
  78. data/smoke/break2.rb +1 -1
  79. data/smoke/break3.rb +13 -0
  80. data/smoke/case.rb +1 -1
  81. data/smoke/case2.rb +1 -1
  82. data/smoke/case3.rb +17 -0
  83. data/smoke/class-hierarchy.rb +5 -5
  84. data/smoke/class-hierarchy2.rb +3 -3
  85. data/smoke/class-new.rb +15 -0
  86. data/smoke/class_instance_var.rb +1 -1
  87. data/smoke/class_method.rb +2 -2
  88. data/smoke/class_method2.rb +2 -2
  89. data/smoke/class_method3.rb +2 -2
  90. data/smoke/constant1.rb +6 -6
  91. data/smoke/constant2.rb +4 -4
  92. data/smoke/constant3.rb +1 -1
  93. data/smoke/constant4.rb +1 -1
  94. data/smoke/context-sensitive1.rb +1 -1
  95. data/smoke/cvar.rb +5 -5
  96. data/smoke/cvar2.rb +2 -2
  97. data/smoke/define_method.rb +2 -2
  98. data/smoke/define_method2.rb +2 -2
  99. data/smoke/define_method3.rb +13 -0
  100. data/smoke/define_method3.rbs +3 -0
  101. data/smoke/define_method4.rb +15 -0
  102. data/smoke/define_method4.rbs +3 -0
  103. data/smoke/define_method5.rb +12 -0
  104. data/smoke/demo.rb +6 -6
  105. data/smoke/demo1.rb +1 -1
  106. data/smoke/demo10.rb +2 -2
  107. data/smoke/demo11.rb +1 -1
  108. data/smoke/demo2.rb +1 -1
  109. data/smoke/demo3.rb +1 -1
  110. data/smoke/demo4.rb +3 -3
  111. data/smoke/demo5.rb +1 -1
  112. data/smoke/demo6.rb +3 -3
  113. data/smoke/demo7.rb +1 -1
  114. data/smoke/demo8.rb +2 -2
  115. data/smoke/demo9.rb +2 -2
  116. data/smoke/dummy-execution1.rb +2 -2
  117. data/smoke/dummy-execution2.rb +2 -2
  118. data/smoke/dummy_element.rb +14 -0
  119. data/smoke/ensure1.rb +2 -2
  120. data/smoke/enumerator.rb +2 -2
  121. data/smoke/expandarray1.rb +1 -1
  122. data/smoke/expandarray2.rb +1 -1
  123. data/smoke/fib.rb +2 -2
  124. data/smoke/flip-flop.rb +28 -0
  125. data/smoke/flow1.rb +1 -1
  126. data/smoke/flow2.rb +1 -1
  127. data/smoke/flow3.rb +1 -1
  128. data/smoke/flow5.rb +1 -1
  129. data/smoke/flow6.rb +1 -1
  130. data/smoke/flow7.rb +1 -1
  131. data/smoke/flow8.rb +1 -1
  132. data/smoke/flow9.rb +12 -0
  133. data/smoke/freeze.rb +1 -1
  134. data/smoke/function.rb +2 -2
  135. data/smoke/gvar.rb +2 -2
  136. data/smoke/gvar2.rb +2 -2
  137. data/smoke/hash-bot.rb +12 -0
  138. data/smoke/hash-fetch.rb +3 -3
  139. data/smoke/hash-merge-bang.rb +1 -1
  140. data/smoke/hash1.rb +2 -2
  141. data/smoke/hash2.rb +1 -1
  142. data/smoke/hash3.rb +1 -1
  143. data/smoke/hash4.rb +1 -1
  144. data/smoke/hash5.rb +1 -1
  145. data/smoke/inheritance.rb +4 -4
  146. data/smoke/inheritance2.rb +2 -2
  147. data/smoke/initialize.rb +5 -5
  148. data/smoke/instance_eval.rb +2 -2
  149. data/smoke/instance_eval2.rb +10 -0
  150. data/smoke/instance_eval3.rb +25 -0
  151. data/smoke/int_times.rb +1 -1
  152. data/smoke/integer.rb +1 -1
  153. data/smoke/ivar.rb +4 -4
  154. data/smoke/ivar2.rb +4 -4
  155. data/smoke/ivar3.rb +2 -2
  156. data/smoke/kernel-class.rb +1 -1
  157. data/smoke/keyword1.rb +1 -1
  158. data/smoke/keyword2.rb +1 -1
  159. data/smoke/keyword3.rb +1 -1
  160. data/smoke/keyword4.rb +1 -1
  161. data/smoke/keyword5.rb +1 -1
  162. data/smoke/kwrest.rb +2 -2
  163. data/smoke/kwsplat1.rb +4 -4
  164. data/smoke/kwsplat2.rb +1 -1
  165. data/smoke/lit-complex.rb +10 -0
  166. data/smoke/lit-encoding.rb +10 -0
  167. data/smoke/manual-rbs.rb +3 -3
  168. data/smoke/manual-rbs2.rb +1 -1
  169. data/smoke/manual-rbs3.rb +2 -2
  170. data/smoke/masgn1.rb +1 -1
  171. data/smoke/masgn2.rb +2 -2
  172. data/smoke/masgn3.rb +1 -1
  173. data/smoke/method_in_branch.rb +2 -2
  174. data/smoke/method_missing.rb +4 -4
  175. data/smoke/module1.rb +2 -2
  176. data/smoke/module2.rb +1 -1
  177. data/smoke/module3.rb +2 -2
  178. data/smoke/module4.rb +2 -2
  179. data/smoke/module5.rb +17 -0
  180. data/smoke/module6.rb +40 -0
  181. data/smoke/module_function1.rb +3 -3
  182. data/smoke/module_function2.rb +3 -3
  183. data/smoke/multiple-include.rb +1 -1
  184. data/smoke/multiple-superclass.rb +1 -1
  185. data/smoke/next1.rb +2 -2
  186. data/smoke/next2.rb +1 -1
  187. data/smoke/object-send1.rb +3 -3
  188. data/smoke/object-send2.rb +10 -0
  189. data/smoke/object-send3.rb +18 -0
  190. data/smoke/once.rb +1 -1
  191. data/smoke/optional1.rb +1 -1
  192. data/smoke/optional2.rb +1 -1
  193. data/smoke/optional3.rb +1 -1
  194. data/smoke/parameterizedd-self.rb +2 -2
  195. data/smoke/parameterizedd-self2.rb +1 -1
  196. data/smoke/pathname1.rb +1 -1
  197. data/smoke/pathname2.rb +1 -1
  198. data/smoke/pattern-match1.rb +1 -1
  199. data/smoke/pattern-match2.rb +1 -1
  200. data/smoke/printf.rb +2 -2
  201. data/smoke/proc.rb +2 -2
  202. data/smoke/proc2.rb +1 -1
  203. data/smoke/proc3.rb +1 -1
  204. data/smoke/proc4.rb +1 -1
  205. data/smoke/proc5.rb +19 -0
  206. data/smoke/public.rb +34 -0
  207. data/smoke/range.rb +1 -1
  208. data/smoke/rbs-alias.rb +1 -1
  209. data/smoke/rbs-attr.rb +3 -3
  210. data/smoke/rbs-attr2.rb +1 -1
  211. data/smoke/rbs-extend.rb +1 -1
  212. data/smoke/rbs-interface.rb +4 -4
  213. data/smoke/rbs-module.rb +26 -0
  214. data/smoke/rbs-module.rbs +4 -0
  215. data/smoke/rbs-opt-and-rest.rb +10 -0
  216. data/smoke/rbs-opt-and-rest.rbs +3 -0
  217. data/smoke/rbs-proc1.rb +1 -1
  218. data/smoke/rbs-proc2.rb +2 -2
  219. data/smoke/rbs-proc3.rb +1 -1
  220. data/smoke/rbs-record.rb +2 -2
  221. data/smoke/rbs-tyvar.rb +2 -2
  222. data/smoke/rbs-tyvar2.rb +2 -2
  223. data/smoke/rbs-tyvar3.rb +2 -2
  224. data/smoke/rbs-tyvar4.rb +3 -3
  225. data/smoke/rbs-tyvar5.rb +1 -1
  226. data/smoke/rbs-tyvar6.rb +3 -3
  227. data/smoke/rbs-tyvar7.rb +1 -1
  228. data/smoke/rbs-vars.rb +6 -6
  229. data/smoke/redo1.rb +2 -2
  230. data/smoke/redo2.rb +2 -2
  231. data/smoke/req-keyword.rb +1 -1
  232. data/smoke/rescue1.rb +2 -2
  233. data/smoke/rescue2.rb +2 -2
  234. data/smoke/rescue3.rb +19 -0
  235. data/smoke/rescue4.rb +17 -0
  236. data/smoke/respond_to.rb +1 -1
  237. data/smoke/rest-farg.rb +1 -1
  238. data/smoke/rest1.rb +2 -2
  239. data/smoke/rest2.rb +1 -1
  240. data/smoke/rest3.rb +6 -6
  241. data/smoke/rest4.rb +2 -2
  242. data/smoke/rest5.rb +1 -1
  243. data/smoke/rest6.rb +1 -1
  244. data/smoke/retry1.rb +2 -2
  245. data/smoke/return.rb +1 -1
  246. data/smoke/singleton_method.rb +1 -1
  247. data/smoke/step.rb +3 -3
  248. data/smoke/string-split.rb +1 -1
  249. data/smoke/struct-keyword_init.rb +20 -0
  250. data/smoke/struct.rb +1 -1
  251. data/smoke/struct2.rb +4 -4
  252. data/smoke/struct3.rb +2 -2
  253. data/smoke/struct4.rb +7 -0
  254. data/smoke/struct5.rb +16 -0
  255. data/smoke/struct6.rb +15 -0
  256. data/smoke/struct7.rb +17 -0
  257. data/smoke/stub-keyword.rb +10 -0
  258. data/smoke/super1.rb +4 -4
  259. data/smoke/super2.rb +1 -1
  260. data/smoke/super3.rb +3 -3
  261. data/smoke/super4.rb +5 -5
  262. data/smoke/super5.rb +4 -4
  263. data/smoke/svar1.rb +1 -1
  264. data/smoke/symbol-proc-attr.rb +22 -0
  265. data/smoke/symbol-proc-attr2.rb +15 -0
  266. data/smoke/symbol-proc-bot.rb +13 -0
  267. data/smoke/symbol-proc.rb +3 -3
  268. data/smoke/tap1.rb +2 -2
  269. data/smoke/toplevel.rb +1 -1
  270. data/smoke/two-map.rb +2 -2
  271. data/smoke/type_var.rb +1 -1
  272. data/smoke/typed_method.rb +1 -1
  273. data/smoke/uninitialize-var.rb +1 -1
  274. data/smoke/union-recv.rb +2 -2
  275. data/smoke/user-demo.rb +3 -3
  276. data/smoke/wrong-extend.rb +2 -2
  277. data/smoke/wrong-include.rb +2 -2
  278. data/smoke/wrong-include2.rb +17 -0
  279. data/typeprof.gemspec +1 -1
  280. metadata +44 -5
  281. data/tools/stackprof-wrapper.rb +0 -10
@@ -15,11 +15,11 @@ __END__
15
15
  # Classes
16
16
  class Object
17
17
  private
18
- def gen_foobar : -> FooBar
18
+ def gen_foobar: -> FooBar
19
19
  end
20
20
 
21
21
  class FooBar < Struct
22
- attr_accessor foo() : Integer | String
23
- attr_accessor bar() : :sym?
24
- def my_foo : -> (Integer | String)
22
+ attr_accessor foo(): Integer | String
23
+ attr_accessor bar(): :sym?
24
+ def my_foo: -> (Integer | String)
25
25
  end
@@ -8,7 +8,7 @@ __END__
8
8
  # Classes
9
9
  class App
10
10
  class FooBar < Struct
11
- attr_accessor foo() : Integer
12
- attr_accessor bar() : String
11
+ attr_accessor foo(): Integer
12
+ attr_accessor bar(): String
13
13
  end
14
14
  end
@@ -0,0 +1,7 @@
1
+ UndefinedConstant::Foo = Struct.new(:foo)
2
+
3
+ __END__
4
+ # Classes
5
+ class AnonymousStruct_generated_1 < Struct
6
+ attr_accessor foo(): untyped
7
+ end
@@ -0,0 +1,16 @@
1
+ Foo = Struct.new(:foo)
2
+
3
+ class Foo
4
+ def initialize(foo)
5
+ super(foo.to_s)
6
+ end
7
+ end
8
+
9
+ Foo.new(42)
10
+
11
+ __END__
12
+ # Classes
13
+ class Foo < Struct
14
+ attr_accessor foo(): String
15
+ def initialize: (Integer) -> Foo
16
+ end
@@ -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
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) -> 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
61
61
  end
62
62
 
63
63
  class Bar < Foo
64
- def f : (B) -> Y
64
+ def f: (B) -> Y
65
65
  end
66
66
 
67
67
  class Baz < Bar
68
- def f : (A) -> Z
68
+ def f: (A) -> 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,7 @@ 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
+ def self.new: (Integer) -> Foo
18
+ def initialize: (Integer) -> Integer
19
19
  end
@@ -21,23 +21,23 @@ E.new.f(:top)
21
21
  __END__
22
22
  # Classes
23
23
  module M1
24
- def f : (:D) -> nil
24
+ def f: (:D) -> nil
25
25
  end
26
26
 
27
27
  module M2
28
- def f : (:E) -> nil
28
+ def f: (:E) -> nil
29
29
  end
30
30
 
31
31
  class C
32
- def f : (:M1) -> nil
32
+ def f: (:M1) -> nil
33
33
  end
34
34
 
35
35
  class D < C
36
36
  include M1
37
- def f : (:M2) -> nil
37
+ def f: (:M2) -> nil
38
38
  end
39
39
 
40
40
  class E < D
41
41
  include M2
42
- def f : (:top) -> nil
42
+ def f: (:top) -> nil
43
43
  end
@@ -18,19 +18,19 @@ 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) -> nil
22
22
  end
23
23
 
24
24
  class C
25
- def f : (:M) -> nil
25
+ def f: (:M) -> nil
26
26
  end
27
27
 
28
28
  class D < C
29
29
  include M
30
- def f : (:M) -> nil
30
+ def f: (:M) -> nil
31
31
  end
32
32
 
33
33
  class E < D
34
34
  include M
35
- def f : (:top) -> nil
35
+ def f: (:top) -> nil
36
36
  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) -> (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) -> nil
17
+ def foo: (Integer) -> 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) -> 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
@@ -7,5 +7,5 @@ __END__
7
7
  # Classes
8
8
  class Object
9
9
  private
10
- def number? : (String) -> nil
10
+ def number?: (String) -> 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
+ attr_reader name: String | untyped
13
+ attr_reader age: Integer | untyped
14
+ def foo: (?name: String | untyped, ?age: Integer | untyped) -> ([String | untyped, Integer | untyped])
15
15
  end
@@ -17,10 +17,10 @@ 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
+ def foo: -> :foo
26
26
  end
@@ -17,10 +17,10 @@ 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
+ def foo: -> :foo
26
26
  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] including something that is not a module
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", ">= 0.20.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.9.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-07 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: 0.20.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: 0.20.0
27
27
  description: |
28
28
  TypeProf performs a type analysis of non-annotated Ruby code.
29
29
 
@@ -93,6 +93,7 @@ files:
93
93
  - smoke/array12.rb
94
94
  - smoke/array13.rb
95
95
  - smoke/array14.rb
96
+ - smoke/array15.rb
96
97
  - smoke/array2.rb
97
98
  - smoke/array3.rb
98
99
  - smoke/array4.rb
@@ -101,6 +102,7 @@ files:
101
102
  - smoke/array7.rb
102
103
  - smoke/array8.rb
103
104
  - smoke/array9.rb
105
+ - smoke/attr-module.rb
104
106
  - smoke/attr.rb
105
107
  - smoke/autoload.rb
106
108
  - smoke/backtrace.rb
@@ -131,10 +133,13 @@ files:
131
133
  - smoke/blown.rb
132
134
  - smoke/break1.rb
133
135
  - smoke/break2.rb
136
+ - smoke/break3.rb
134
137
  - smoke/case.rb
135
138
  - smoke/case2.rb
139
+ - smoke/case3.rb
136
140
  - smoke/class-hierarchy.rb
137
141
  - smoke/class-hierarchy2.rb
142
+ - smoke/class-new.rb
138
143
  - smoke/class.rb
139
144
  - smoke/class_instance_var.rb
140
145
  - smoke/class_method.rb
@@ -149,6 +154,11 @@ files:
149
154
  - smoke/cvar2.rb
150
155
  - smoke/define_method.rb
151
156
  - smoke/define_method2.rb
157
+ - smoke/define_method3.rb
158
+ - smoke/define_method3.rbs
159
+ - smoke/define_method4.rb
160
+ - smoke/define_method4.rbs
161
+ - smoke/define_method5.rb
152
162
  - smoke/demo.rb
153
163
  - smoke/demo1.rb
154
164
  - smoke/demo10.rb
@@ -163,11 +173,13 @@ files:
163
173
  - smoke/demo9.rb
164
174
  - smoke/dummy-execution1.rb
165
175
  - smoke/dummy-execution2.rb
176
+ - smoke/dummy_element.rb
166
177
  - smoke/ensure1.rb
167
178
  - smoke/enumerator.rb
168
179
  - smoke/expandarray1.rb
169
180
  - smoke/expandarray2.rb
170
181
  - smoke/fib.rb
182
+ - smoke/flip-flop.rb
171
183
  - smoke/flow1.rb
172
184
  - smoke/flow2.rb
173
185
  - smoke/flow3.rb
@@ -176,12 +188,14 @@ files:
176
188
  - smoke/flow6.rb
177
189
  - smoke/flow7.rb
178
190
  - smoke/flow8.rb
191
+ - smoke/flow9.rb
179
192
  - smoke/for.rb
180
193
  - smoke/freeze.rb
181
194
  - smoke/function.rb
182
195
  - smoke/gvar.rb
183
196
  - smoke/gvar2.rb
184
197
  - smoke/gvar2.rbs
198
+ - smoke/hash-bot.rb
185
199
  - smoke/hash-fetch.rb
186
200
  - smoke/hash-merge-bang.rb
187
201
  - smoke/hash1.rb
@@ -193,6 +207,8 @@ files:
193
207
  - smoke/inheritance2.rb
194
208
  - smoke/initialize.rb
195
209
  - smoke/instance_eval.rb
210
+ - smoke/instance_eval2.rb
211
+ - smoke/instance_eval3.rb
196
212
  - smoke/int_times.rb
197
213
  - smoke/integer.rb
198
214
  - smoke/ivar.rb
@@ -209,6 +225,8 @@ files:
209
225
  - smoke/kwrest.rbs
210
226
  - smoke/kwsplat1.rb
211
227
  - smoke/kwsplat2.rb
228
+ - smoke/lit-complex.rb
229
+ - smoke/lit-encoding.rb
212
230
  - smoke/manual-rbs.rb
213
231
  - smoke/manual-rbs.rbs
214
232
  - smoke/manual-rbs2.rb
@@ -224,6 +242,8 @@ files:
224
242
  - smoke/module2.rb
225
243
  - smoke/module3.rb
226
244
  - smoke/module4.rb
245
+ - smoke/module5.rb
246
+ - smoke/module6.rb
227
247
  - smoke/module_function1.rb
228
248
  - smoke/module_function2.rb
229
249
  - smoke/multiple-include.rb
@@ -231,6 +251,8 @@ files:
231
251
  - smoke/next1.rb
232
252
  - smoke/next2.rb
233
253
  - smoke/object-send1.rb
254
+ - smoke/object-send2.rb
255
+ - smoke/object-send3.rb
234
256
  - smoke/once.rb
235
257
  - smoke/optional1.rb
236
258
  - smoke/optional2.rb
@@ -246,6 +268,8 @@ files:
246
268
  - smoke/proc2.rb
247
269
  - smoke/proc3.rb
248
270
  - smoke/proc4.rb
271
+ - smoke/proc5.rb
272
+ - smoke/public.rb
249
273
  - smoke/range.rb
250
274
  - smoke/rbs-alias.rb
251
275
  - smoke/rbs-alias.rbs
@@ -257,6 +281,10 @@ files:
257
281
  - smoke/rbs-extend.rbs
258
282
  - smoke/rbs-interface.rb
259
283
  - smoke/rbs-interface.rbs
284
+ - smoke/rbs-module.rb
285
+ - smoke/rbs-module.rbs
286
+ - smoke/rbs-opt-and-rest.rb
287
+ - smoke/rbs-opt-and-rest.rbs
260
288
  - smoke/rbs-proc1.rb
261
289
  - smoke/rbs-proc1.rbs
262
290
  - smoke/rbs-proc2.rb
@@ -285,6 +313,8 @@ files:
285
313
  - smoke/req-keyword.rb
286
314
  - smoke/rescue1.rb
287
315
  - smoke/rescue2.rb
316
+ - smoke/rescue3.rb
317
+ - smoke/rescue4.rb
288
318
  - smoke/respond_to.rb
289
319
  - smoke/rest-farg.rb
290
320
  - smoke/rest1.rb
@@ -300,15 +330,24 @@ files:
300
330
  - smoke/singleton_method.rb
301
331
  - smoke/step.rb
302
332
  - smoke/string-split.rb
333
+ - smoke/struct-keyword_init.rb
303
334
  - smoke/struct.rb
304
335
  - smoke/struct2.rb
305
336
  - smoke/struct3.rb
337
+ - smoke/struct4.rb
338
+ - smoke/struct5.rb
339
+ - smoke/struct6.rb
340
+ - smoke/struct7.rb
341
+ - smoke/stub-keyword.rb
306
342
  - smoke/super1.rb
307
343
  - smoke/super2.rb
308
344
  - smoke/super3.rb
309
345
  - smoke/super4.rb
310
346
  - smoke/super5.rb
311
347
  - smoke/svar1.rb
348
+ - smoke/symbol-proc-attr.rb
349
+ - smoke/symbol-proc-attr2.rb
350
+ - smoke/symbol-proc-bot.rb
312
351
  - smoke/symbol-proc.rb
313
352
  - smoke/tap1.rb
314
353
  - smoke/toplevel.rb
@@ -320,6 +359,7 @@ files:
320
359
  - smoke/user-demo.rb
321
360
  - smoke/wrong-extend.rb
322
361
  - smoke/wrong-include.rb
362
+ - smoke/wrong-include2.rb
323
363
  - smoke/wrong-rbs.rb
324
364
  - smoke/wrong-rbs.rbs
325
365
  - testbed/ao.rb
@@ -327,7 +367,6 @@ files:
327
367
  - testbed/goodcheck-Gemfile.lock
328
368
  - tools/coverage.rb
329
369
  - tools/setup-insns-def.rb
330
- - tools/stackprof-wrapper.rb
331
370
  - typeprof.gemspec
332
371
  homepage: https://github.com/ruby/typeprof
333
372
  licenses: