typeprof 0.7.0 → 0.8.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 (184) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +5 -3
  3. data/lib/typeprof/analyzer.rb +35 -23
  4. data/lib/typeprof/builtin.rb +37 -3
  5. data/lib/typeprof/config.rb +2 -2
  6. data/lib/typeprof/export.rb +9 -3
  7. data/lib/typeprof/import.rb +4 -11
  8. data/lib/typeprof/method.rb +7 -4
  9. data/lib/typeprof/type.rb +3 -3
  10. data/lib/typeprof/version.rb +1 -1
  11. data/smoke/alias.rb +1 -0
  12. data/smoke/any1.rb +1 -0
  13. data/smoke/any2.rb +1 -0
  14. data/smoke/arguments.rb +1 -0
  15. data/smoke/arguments2.rb +1 -0
  16. data/smoke/array-each.rb +1 -0
  17. data/smoke/array-each2.rb +1 -0
  18. data/smoke/array-each3.rb +1 -0
  19. data/smoke/array-ltlt.rb +1 -0
  20. data/smoke/array-ltlt2.rb +1 -0
  21. data/smoke/array-map.rb +1 -0
  22. data/smoke/array-map2.rb +1 -0
  23. data/smoke/array-map3.rb +1 -0
  24. data/smoke/array-mul.rb +1 -0
  25. data/smoke/array-plus1.rb +1 -0
  26. data/smoke/array-pop.rb +1 -0
  27. data/smoke/array-range-aref.rb +1 -0
  28. data/smoke/array-replace.rb +1 -0
  29. data/smoke/array-s-aref.rb +1 -0
  30. data/smoke/array1.rb +1 -0
  31. data/smoke/array10.rb +1 -0
  32. data/smoke/array11.rb +1 -0
  33. data/smoke/array12.rb +1 -0
  34. data/smoke/array13.rb +1 -0
  35. data/smoke/array14.rb +1 -0
  36. data/smoke/array2.rb +1 -0
  37. data/smoke/array4.rb +1 -0
  38. data/smoke/array5.rb +1 -0
  39. data/smoke/array6.rb +1 -0
  40. data/smoke/array7.rb +1 -0
  41. data/smoke/array9.rb +1 -0
  42. data/smoke/autoload.rb +1 -0
  43. data/smoke/backtrace.rb +1 -0
  44. data/smoke/block-ambiguous.rb +1 -0
  45. data/smoke/block-args1-rest.rb +1 -0
  46. data/smoke/block-args1.rb +1 -0
  47. data/smoke/block-args2-rest.rb +1 -0
  48. data/smoke/block-args2.rb +1 -0
  49. data/smoke/block-args3-rest.rb +1 -0
  50. data/smoke/block-args3.rb +1 -0
  51. data/smoke/block-blockarg.rb +1 -0
  52. data/smoke/block-kwarg.rb +1 -0
  53. data/smoke/block1.rb +1 -0
  54. data/smoke/block10.rb +1 -0
  55. data/smoke/block11.rb +1 -0
  56. data/smoke/block12.rb +1 -0
  57. data/smoke/block14.rb +1 -0
  58. data/smoke/block2.rb +1 -0
  59. data/smoke/block4.rb +1 -0
  60. data/smoke/block5.rb +1 -0
  61. data/smoke/block6.rb +1 -0
  62. data/smoke/block7.rb +1 -0
  63. data/smoke/block8.rb +1 -0
  64. data/smoke/block9.rb +1 -0
  65. data/smoke/blown.rb +1 -0
  66. data/smoke/break1.rb +1 -0
  67. data/smoke/break2.rb +1 -0
  68. data/smoke/case.rb +1 -0
  69. data/smoke/case2.rb +1 -0
  70. data/smoke/class_method3.rb +2 -0
  71. data/smoke/constant2.rb +1 -0
  72. data/smoke/constant3.rb +1 -0
  73. data/smoke/constant4.rb +1 -0
  74. data/smoke/context-sensitive1.rb +1 -0
  75. data/smoke/cvar.rb +1 -0
  76. data/smoke/demo.rb +1 -0
  77. data/smoke/demo1.rb +1 -0
  78. data/smoke/demo10.rb +1 -0
  79. data/smoke/demo11.rb +1 -0
  80. data/smoke/demo2.rb +1 -0
  81. data/smoke/demo3.rb +1 -0
  82. data/smoke/demo7.rb +1 -0
  83. data/smoke/demo8.rb +1 -0
  84. data/smoke/demo9.rb +1 -0
  85. data/smoke/dummy-execution1.rb +1 -0
  86. data/smoke/ensure1.rb +1 -0
  87. data/smoke/enumerator.rb +1 -0
  88. data/smoke/expandarray1.rb +1 -0
  89. data/smoke/expandarray2.rb +1 -0
  90. data/smoke/flow1.rb +1 -0
  91. data/smoke/flow2.rb +1 -0
  92. data/smoke/flow3.rb +1 -0
  93. data/smoke/flow5.rb +1 -0
  94. data/smoke/flow6.rb +1 -0
  95. data/smoke/flow7.rb +1 -0
  96. data/smoke/flow8.rb +1 -0
  97. data/smoke/freeze.rb +1 -0
  98. data/smoke/function.rb +1 -0
  99. data/smoke/gvar.rb +1 -0
  100. data/smoke/gvar2.rb +1 -0
  101. data/smoke/hash-fetch.rb +1 -0
  102. data/smoke/hash-merge-bang.rb +1 -0
  103. data/smoke/hash1.rb +1 -0
  104. data/smoke/hash2.rb +1 -0
  105. data/smoke/hash3.rb +1 -0
  106. data/smoke/hash4.rb +1 -0
  107. data/smoke/initialize.rb +1 -0
  108. data/smoke/int_times.rb +1 -0
  109. data/smoke/integer.rb +1 -0
  110. data/smoke/ivar.rb +1 -0
  111. data/smoke/kernel-class.rb +1 -0
  112. data/smoke/keyword1.rb +1 -0
  113. data/smoke/keyword2.rb +1 -0
  114. data/smoke/keyword3.rb +1 -0
  115. data/smoke/keyword4.rb +1 -0
  116. data/smoke/keyword5.rb +1 -0
  117. data/smoke/kwsplat1.rb +1 -0
  118. data/smoke/kwsplat2.rb +1 -0
  119. data/smoke/manual-rbs.rb +1 -0
  120. data/smoke/manual-rbs2.rb +1 -0
  121. data/smoke/masgn1.rb +1 -0
  122. data/smoke/masgn2.rb +1 -0
  123. data/smoke/masgn3.rb +1 -0
  124. data/smoke/method_in_branch.rb +1 -0
  125. data/smoke/next1.rb +1 -0
  126. data/smoke/next2.rb +1 -0
  127. data/smoke/object-send1.rb +1 -0
  128. data/smoke/once.rb +1 -0
  129. data/smoke/optional1.rb +1 -0
  130. data/smoke/optional2.rb +1 -0
  131. data/smoke/optional3.rb +1 -0
  132. data/smoke/parameterizedd-self.rb +1 -0
  133. data/smoke/pathname1.rb +1 -0
  134. data/smoke/pathname2.rb +1 -0
  135. data/smoke/pattern-match1.rb +1 -0
  136. data/smoke/pattern-match2.rb +1 -0
  137. data/smoke/proc.rb +1 -0
  138. data/smoke/proc2.rb +1 -0
  139. data/smoke/proc3.rb +1 -0
  140. data/smoke/proc4.rb +1 -0
  141. data/smoke/range.rb +1 -0
  142. data/smoke/rbs-alias.rb +1 -0
  143. data/smoke/rbs-attr.rb +1 -0
  144. data/smoke/rbs-extend.rb +1 -0
  145. data/smoke/rbs-interface.rb +1 -0
  146. data/smoke/rbs-proc1.rb +1 -0
  147. data/smoke/rbs-proc2.rb +1 -0
  148. data/smoke/rbs-proc3.rb +1 -0
  149. data/smoke/rbs-record.rb +1 -0
  150. data/smoke/rbs-tyvar.rb +1 -0
  151. data/smoke/rbs-tyvar2.rb +1 -0
  152. data/smoke/rbs-tyvar3.rb +1 -0
  153. data/smoke/rbs-tyvar5.rb +1 -0
  154. data/smoke/rbs-tyvar6.rb +1 -0
  155. data/smoke/rbs-tyvar7.rb +1 -0
  156. data/smoke/rbs-vars.rb +1 -0
  157. data/smoke/redo1.rb +1 -0
  158. data/smoke/redo2.rb +1 -0
  159. data/smoke/req-keyword.rb +1 -0
  160. data/smoke/rescue1.rb +1 -0
  161. data/smoke/rescue2.rb +1 -0
  162. data/smoke/respond_to.rb +1 -0
  163. data/smoke/rest-farg.rb +1 -0
  164. data/smoke/rest1.rb +1 -0
  165. data/smoke/rest2.rb +1 -0
  166. data/smoke/rest3.rb +1 -0
  167. data/smoke/rest4.rb +1 -0
  168. data/smoke/rest5.rb +1 -0
  169. data/smoke/rest6.rb +1 -0
  170. data/smoke/retry1.rb +1 -0
  171. data/smoke/return.rb +1 -0
  172. data/smoke/step.rb +1 -0
  173. data/smoke/string-split.rb +1 -0
  174. data/smoke/struct2.rb +1 -0
  175. data/smoke/super1.rb +1 -0
  176. data/smoke/svar1.rb +1 -0
  177. data/smoke/symbol-proc.rb +1 -0
  178. data/smoke/tap1.rb +1 -0
  179. data/smoke/toplevel.rb +1 -0
  180. data/smoke/two-map.rb +1 -0
  181. data/smoke/type_var.rb +1 -0
  182. data/smoke/typed_method.rb +1 -0
  183. data/smoke/uninitialize-var.rb +1 -0
  184. metadata +3 -3
@@ -11,5 +11,6 @@ smoke/any1.rb:2: [error] undefined method: Integer#undefined_method
11
11
 
12
12
  # Classes
13
13
  class Object
14
+ private
14
15
  def foo : -> untyped
15
16
  end
@@ -12,6 +12,7 @@ bar
12
12
  __END__
13
13
  # Classes
14
14
  class Object
15
+ private
15
16
  def foo : -> untyped
16
17
  def bar : -> Integer
17
18
  end
@@ -11,6 +11,7 @@ smoke/arguments.rb:6: [error] wrong number of arguments (given 2, expected 1)
11
11
 
12
12
  # Classes
13
13
  class Object
14
+ private
14
15
  def foo : (untyped) -> nil
15
16
  def bar : (untyped) -> nil
16
17
  end
@@ -42,6 +42,7 @@ f10 {|n| }
42
42
  __END__
43
43
  # Classes
44
44
  class Object
45
+ private
45
46
  def f1 : -> nil
46
47
  def f2 : (:x, :y, :z) -> nil
47
48
  def f3 : (?String, ?String) -> nil
@@ -10,5 +10,6 @@ log(nil)
10
10
  __END__
11
11
  # Classes
12
12
  class Object
13
+ private
13
14
  def log : ((:sym | Integer | String)?) -> nil
14
15
  end
@@ -11,5 +11,6 @@ foo
11
11
  __END__
12
12
  # Classes
13
13
  class Object
14
+ private
14
15
  def foo : -> ((Integer | String)?)
15
16
  end
@@ -8,5 +8,6 @@ end
8
8
  __END__
9
9
  # Classes
10
10
  class Object
11
+ private
11
12
  def log : (bot) -> nil
12
13
  end
@@ -9,5 +9,6 @@ foo
9
9
  __END__
10
10
  # Classes
11
11
  class Object
12
+ private
12
13
  def foo : -> (Array[Integer | String])
13
14
  end
@@ -12,5 +12,6 @@ foo
12
12
  __END__
13
13
  # Classes
14
14
  class Object
15
+ private
15
16
  def foo : -> (Array[Integer | String])
16
17
  end
@@ -7,5 +7,6 @@ foo([1, 2, 3])
7
7
  __END__
8
8
  # Classes
9
9
  class Object
10
+ private
10
11
  def foo : ([Integer, Integer, Integer]) -> Array[String]
11
12
  end
@@ -6,5 +6,6 @@ foo([1, 2, 3])
6
6
  __END__
7
7
  # Classes
8
8
  class Object
9
+ private
9
10
  def foo : ([Integer, Integer, Integer]) -> (Array[Integer | String])
10
11
  end
@@ -16,6 +16,7 @@ map_bang_test_known_bug([1, 2, 3])
16
16
  __END__
17
17
  # Classes
18
18
  class Object
19
+ private
19
20
  def map_test : ([Integer, Integer, Integer]) -> Array[String]
20
21
  def map_bang_test : ([Integer, Integer, Integer]) -> (Array[Integer | String])
21
22
  def map_bang_test_known_bug : ([Integer, Integer, Integer]) -> [Integer, Integer, Integer]
@@ -12,6 +12,7 @@ bar([1, 2, 3])
12
12
  __END__
13
13
  # Classes
14
14
  class Object
15
+ private
15
16
  def foo : ([Integer, Integer, Integer]) -> Array[Integer]
16
17
  def bar : ([Integer, Integer, Integer]) -> String
17
18
  end
@@ -6,5 +6,6 @@ log([1] + ["str"] + [2] + [:sym])
6
6
  __END__
7
7
  # Classes
8
8
  class Object
9
+ private
9
10
  def log : (Array[:sym | Integer | String]) -> nil
10
11
  end
@@ -7,5 +7,6 @@ foo
7
7
  __END__
8
8
  # Classes
9
9
  class Object
10
+ private
10
11
  def foo : -> (:sym | Integer | String)
11
12
  end
@@ -56,6 +56,7 @@ dispatch(:a, :b, :c, :d, :e)
56
56
  __END__
57
57
  # Classes
58
58
  class Object
59
+ private
59
60
  def f1 : (*:a | :b | :c | :d | :e) -> (Array[:a | :b | :c | :d | :e])
60
61
  def f2 : (*:a | :b | :c | :d | :e) -> (Array[:a | :b | :c | :d | :e])
61
62
  def f3 : (*:a | :b | :c | :d | :e) -> (Array[:a | :b | :c | :d | :e])
@@ -8,5 +8,6 @@ foo([1, 2, 3])
8
8
  __END__
9
9
  # Classes
10
10
  class Object
11
+ private
11
12
  def foo : ([Integer, Integer, Integer]) -> (Array[Integer | String])
12
13
  end
@@ -7,5 +7,6 @@ foo
7
7
  __END__
8
8
  # Classes
9
9
  class Object
10
+ private
10
11
  def foo : -> (Array[Integer | String])
11
12
  end
@@ -18,6 +18,7 @@ quux(a[n])
18
18
  __END__
19
19
  # Classes
20
20
  class Object
21
+ private
21
22
  def foo : ([Integer, String]) -> Integer
22
23
  def bar : (Integer) -> nil
23
24
  def baz : (String) -> nil
@@ -10,5 +10,6 @@ foo([:a, :b, :c])
10
10
  __END__
11
11
  # Classes
12
12
  class Object
13
+ private
13
14
  def foo : ([:a, :b, :c]) -> :a
14
15
  end
@@ -9,5 +9,6 @@ array("foo")
9
9
  __END__
10
10
  # Classes
11
11
  class Object
12
+ private
12
13
  def array : (Array[Integer] | Hash[Integer, Integer] | String) -> (Array[Hash[Integer, Integer] | Integer | String])
13
14
  end
@@ -18,6 +18,7 @@ foo
18
18
  __END__
19
19
  # Classes
20
20
  class Object
21
+ private
21
22
  def bar : ([Integer]) -> nil
22
23
  def test_yield : { -> nil } -> nil
23
24
  def foo : -> [Integer]
@@ -23,6 +23,7 @@ end
23
23
  __END__
24
24
  # Classes
25
25
  class Object
26
+ private
26
27
  def tuple_set : -> [:a, :b, :z]
27
28
  def tuple_get : -> :c
28
29
  def seq_set : -> (Array[:a | :b | :c | :z])
@@ -9,5 +9,6 @@ f(:a, :b, :c)
9
9
  __END__
10
10
  # Classes
11
11
  class Object
12
+ private
12
13
  def f : (:a, :b, :c) -> :c
13
14
  end
@@ -21,6 +21,7 @@ log(a)
21
21
  __END__
22
22
  # Classes
23
23
  class Object
24
+ private
24
25
  def foo : -> [[String]]
25
26
  def bar : ([[Integer]]) -> [[String]]
26
27
  def log : ([[Integer]]) -> nil
@@ -10,5 +10,6 @@ foo
10
10
  __END__
11
11
  # Classes
12
12
  class Object
13
+ private
13
14
  def foo : -> [Integer]?
14
15
  end
@@ -9,5 +9,6 @@ foo
9
9
  __END__
10
10
  # Classes
11
11
  class Object
12
+ private
12
13
  def foo : -> [untyped]
13
14
  end
@@ -11,5 +11,6 @@ __END__
11
11
  # Classes
12
12
  class Object
13
13
  ARY : Array[bot]
14
+ private
14
15
  def foo : (Integer, String) -> Array[bot]
15
16
  end
@@ -9,5 +9,6 @@ foo
9
9
  __END__
10
10
  # Classes
11
11
  class Object
12
+ private
12
13
  def foo : -> (Array[Integer | String])
13
14
  end
@@ -8,5 +8,6 @@ foo([:a])
8
8
  __END__
9
9
  # Classes
10
10
  class Object
11
+ private
11
12
  def foo : (Array[:a | :b | :c]) -> nil
12
13
  end
@@ -9,5 +9,6 @@ foo
9
9
  __END__
10
10
  # Classes
11
11
  class Object
12
+ private
12
13
  def foo : -> Pathname
13
14
  end
@@ -26,6 +26,7 @@ smoke/backtrace.rb:2: [error] undefined method: Object#unknown_method
26
26
 
27
27
  # Classes
28
28
  class Object
29
+ private
29
30
  def foo : -> untyped
30
31
  def bar : -> untyped
31
32
  def baz : -> untyped
@@ -25,6 +25,7 @@ f4 {|x,| log4(x) }
25
25
  __END__
26
26
  # Classes
27
27
  class Object
28
+ private
28
29
  def f1 : { (:a, :b, :c) -> nil } -> nil
29
30
  def log1 : (:a) -> nil
30
31
  def f2 : { (:a, :b, :c) -> nil } -> nil
@@ -49,6 +49,7 @@ __END__
49
49
  # Classes
50
50
  class Object
51
51
  StringArray : Array[String]
52
+ private
52
53
  def f1 : { (*String) -> nil } -> (^(String, ?:opt | String, String) -> nil)
53
54
  def log1 : (String, :opt | String, String) -> nil
54
55
  def f2 : { (:a, *String) -> nil } -> (^(:a, ?:opt | String, String) -> nil)
@@ -46,6 +46,7 @@ end
46
46
  __END__
47
47
  # Classes
48
48
  class Object
49
+ private
49
50
  def f1 : { -> nil } -> ^(nil, ?:opt, nil) -> nil
50
51
  def log1 : (nil, :opt, nil) -> nil
51
52
  def f2 : { (:a) -> nil } -> ^(:a, ?:opt, nil) -> nil
@@ -49,6 +49,7 @@ __END__
49
49
  # Classes
50
50
  class Object
51
51
  StringArray : Array[String]
52
+ private
52
53
  def f1 : { (*String) -> nil } -> ^(String, *String, String) -> nil
53
54
  def log1 : (String, Array[String], String) -> nil
54
55
  def f2 : { (:a, *String) -> nil } -> ^(:a, *String, String) -> nil
@@ -46,6 +46,7 @@ end
46
46
  __END__
47
47
  # Classes
48
48
  class Object
49
+ private
49
50
  def f1 : { -> nil } -> ^(nil, *bot, nil) -> nil
50
51
  def log1 : (nil, Array[bot], nil) -> nil
51
52
  def f2 : { (:a) -> nil } -> ^(:a, *bot, nil) -> nil
@@ -58,6 +58,7 @@ __END__
58
58
  # Classes
59
59
  class Object
60
60
  StringArray : Array[String]
61
+ private
61
62
  def f1 : { (*String) -> nil } -> (^(String, ?:opt | String, *String, String) -> nil)
62
63
  def log1 : (String, :opt | String, Array[String], String) -> nil
63
64
  def f2 : { (:a, *String) -> nil } -> (^(:a, ?:opt | String, *String, String) -> nil)
@@ -55,6 +55,7 @@ end
55
55
  __END__
56
56
  # Classes
57
57
  class Object
58
+ private
58
59
  def f1 : { -> nil } -> ^(nil, ?:opt, *bot, nil) -> nil
59
60
  def log1 : (nil, :opt, Array[bot], nil) -> nil
60
61
  def f2 : { (:a) -> nil } -> ^(:a, ?:opt, *bot, nil) -> nil
@@ -20,6 +20,7 @@ end
20
20
  __END__
21
21
  # Classes
22
22
  class Object
23
+ private
23
24
  def log1 : (:a) -> nil
24
25
  def log2 : (:b) -> nil
25
26
  def log3 : (:c) -> nil
@@ -39,6 +39,7 @@ smoke/block-kwarg.rb:31: [error] no argument for required keywords
39
39
 
40
40
  # Classes
41
41
  class Object
42
+ private
42
43
  def f1 : { -> nil } -> nil
43
44
  def log1 : (Integer) -> nil
44
45
  def f2 : { -> nil } -> nil
@@ -18,5 +18,6 @@ end
18
18
  __END__
19
19
  # Classes
20
20
  class Object
21
+ private
21
22
  def foo : (:sym | String) { (:sym | Integer | String) -> (:sym | Integer | String) } -> (:sym | Integer | String)
22
23
  end
@@ -10,5 +10,6 @@ foo([1], ["str"])
10
10
  __END__
11
11
  # Classes
12
12
  class Object
13
+ private
13
14
  def foo : ([Integer], [String]) -> ([Integer | String])
14
15
  end
@@ -31,6 +31,7 @@ bar
31
31
  __END__
32
32
  # Classes
33
33
  class Object
34
+ private
34
35
  def log1 : (Integer?) -> nil
35
36
  def log2 : (Integer?) -> nil
36
37
  def foo : -> Integer?
@@ -17,6 +17,7 @@ bar
17
17
  __END__
18
18
  # Classes
19
19
  class Object
20
+ private
20
21
  def foo : -> [:foo]
21
22
  def bar : -> [:bar]
22
23
  end
@@ -13,5 +13,6 @@ $blk : ^(Integer) -> nil
13
13
 
14
14
  # Classes
15
15
  class Object
16
+ private
16
17
  def foo : { (Integer) -> nil } -> nil
17
18
  end
@@ -10,5 +10,6 @@ end
10
10
  __END__
11
11
  # Classes
12
12
  class Object
13
+ private
13
14
  def foo : (Integer) { (Integer) -> String } -> String
14
15
  end
@@ -13,6 +13,7 @@ bar(&blk)
13
13
  __END__
14
14
  # Classes
15
15
  class Object
16
+ private
16
17
  def foo : { (:sym | String) -> (:sym | String) } -> (:sym | String)
17
18
  def bar : { (:sym | String) -> (:sym | String) } -> (:sym | String)
18
19
  end
@@ -15,5 +15,6 @@ __END__
15
15
  # Classes
16
16
  class Object
17
17
  F : ^(Integer) -> String
18
+ private
18
19
  def foo : { (:sym) -> String } -> String
19
20
  end
@@ -15,6 +15,7 @@ foo
15
15
  __END__
16
16
  # Classes
17
17
  class Object
18
+ private
18
19
  def bar : { -> String } -> String
19
20
  def foo : -> (Integer | String)
20
21
  end
@@ -14,5 +14,6 @@ smoke/block7.rb:8: [error] wrong argument type Integer<1> (expected Proc)
14
14
 
15
15
  # Classes
16
16
  class Object
17
+ private
17
18
  def foo : -> untyped
18
19
  end
@@ -21,6 +21,7 @@ foo
21
21
  __END__
22
22
  # Classes
23
23
  class Object
24
+ private
24
25
  def bar : { -> String } -> String
25
26
  def baz : { -> String } -> String
26
27
  def foo : -> (Integer | String)
@@ -8,5 +8,6 @@ foo { }
8
8
  __END__
9
9
  # Classes
10
10
  class Object
11
+ private
11
12
  def foo : { -> nil } -> Integer
12
13
  end
@@ -8,5 +8,6 @@ foo { }
8
8
  __END__
9
9
  # Classes
10
10
  class Object
11
+ private
11
12
  def foo : { -> nil } -> [^-> nil]
12
13
  end