typeprof 0.9.1 → 0.13.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 (188) 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 +163 -77
  7. data/lib/typeprof/block.rb +39 -4
  8. data/lib/typeprof/builtin.rb +195 -70
  9. data/lib/typeprof/cli.rb +7 -0
  10. data/lib/typeprof/config.rb +30 -14
  11. data/lib/typeprof/container-type.rb +24 -0
  12. data/lib/typeprof/export.rb +134 -74
  13. data/lib/typeprof/import.rb +87 -39
  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_eval.rb +22 -0
  64. data/smoke/class_method.rb +2 -2
  65. data/smoke/class_method2.rb +2 -2
  66. data/smoke/constant2.rb +3 -2
  67. data/smoke/context-sensitive1.rb +1 -1
  68. data/smoke/cvar.rb +3 -2
  69. data/smoke/define_method.rb +2 -2
  70. data/smoke/define_method3.rb +1 -0
  71. data/smoke/define_method4.rb +1 -1
  72. data/smoke/define_method6.rb +19 -0
  73. data/smoke/define_method7.rb +18 -0
  74. data/smoke/demo.rb +6 -6
  75. data/smoke/demo1.rb +1 -1
  76. data/smoke/demo11.rb +1 -1
  77. data/smoke/demo2.rb +1 -1
  78. data/smoke/demo3.rb +1 -1
  79. data/smoke/demo4.rb +3 -3
  80. data/smoke/demo5.rb +1 -1
  81. data/smoke/demo6.rb +2 -1
  82. data/smoke/demo7.rb +1 -1
  83. data/smoke/demo9.rb +1 -0
  84. data/smoke/dummy-execution1.rb +1 -1
  85. data/smoke/dummy-execution2.rb +1 -1
  86. data/smoke/dummy_element.rb +1 -1
  87. data/smoke/ensure1.rb +1 -1
  88. data/smoke/enum_for.rb +15 -0
  89. data/smoke/enum_for2.rb +17 -0
  90. data/smoke/extended.rb +38 -0
  91. data/smoke/fib.rb +2 -2
  92. data/smoke/flow1.rb +1 -1
  93. data/smoke/flow10.rb +17 -0
  94. data/smoke/flow2.rb +1 -1
  95. data/smoke/flow3.rb +1 -1
  96. data/smoke/flow5.rb +1 -1
  97. data/smoke/flow6.rb +1 -1
  98. data/smoke/flow7.rb +1 -1
  99. data/smoke/flow8.rb +1 -1
  100. data/smoke/flow9.rb +1 -1
  101. data/smoke/function.rb +1 -1
  102. data/smoke/gvar.rb +1 -1
  103. data/smoke/gvar2.rb +1 -1
  104. data/smoke/hash-fetch.rb +3 -3
  105. data/smoke/included.rb +38 -0
  106. data/smoke/inheritance.rb +4 -4
  107. data/smoke/inherited.rb +26 -0
  108. data/smoke/initialize.rb +3 -2
  109. data/smoke/instance_eval.rb +2 -2
  110. data/smoke/instance_eval4.rb +12 -0
  111. data/smoke/int_times.rb +1 -1
  112. data/smoke/integer.rb +1 -1
  113. data/smoke/ivar.rb +3 -2
  114. data/smoke/ivar2.rb +2 -2
  115. data/smoke/ivar3.rb +2 -1
  116. data/smoke/ivar4.rb +1 -0
  117. data/smoke/kernel-class.rb +1 -1
  118. data/smoke/keyword4.rb +1 -1
  119. data/smoke/kwrest.rb +1 -0
  120. data/smoke/kwsplat1.rb +2 -2
  121. data/smoke/kwsplat2.rb +1 -1
  122. data/smoke/manual-rbs.rb +2 -1
  123. data/smoke/manual-rbs3.rb +1 -0
  124. data/smoke/method_in_branch.rb +1 -1
  125. data/smoke/method_missing.rb +4 -3
  126. data/smoke/module3.rb +1 -1
  127. data/smoke/module4.rb +1 -0
  128. data/smoke/module5.rb +1 -1
  129. data/smoke/module_function1.rb +3 -2
  130. data/smoke/module_function2.rb +3 -2
  131. data/smoke/multiple-include.rb +1 -0
  132. data/smoke/next1.rb +1 -1
  133. data/smoke/object-send1.rb +3 -3
  134. data/smoke/optional1.rb +1 -1
  135. data/smoke/optional2.rb +1 -1
  136. data/smoke/optional3.rb +1 -1
  137. data/smoke/parameterizedd-self.rb +2 -1
  138. data/smoke/prepend1.rb +33 -0
  139. data/smoke/prepend2.rb +10 -0
  140. data/smoke/prepend2.rbs +9 -0
  141. data/smoke/primitive_method.rb +19 -0
  142. data/smoke/proc4.rb +1 -1
  143. data/smoke/public.rb +4 -0
  144. data/smoke/range.rb +1 -1
  145. data/smoke/rbs-attr.rb +2 -2
  146. data/smoke/rbs-proc2.rb +1 -1
  147. data/smoke/rbs-proc3.rb +1 -1
  148. data/smoke/rbs-tyvar4.rb +3 -2
  149. data/smoke/rbs-tyvar6.rb +3 -3
  150. data/smoke/redo1.rb +1 -1
  151. data/smoke/redo2.rb +1 -1
  152. data/smoke/rescue1.rb +1 -1
  153. data/smoke/rescue2.rb +1 -1
  154. data/smoke/rescue3.rb +1 -0
  155. data/smoke/rescue4.rb +1 -1
  156. data/smoke/respond_to.rb +1 -1
  157. data/smoke/rest1.rb +2 -2
  158. data/smoke/rest2.rb +1 -1
  159. data/smoke/rest3.rb +6 -6
  160. data/smoke/rest4.rb +2 -2
  161. data/smoke/rest5.rb +1 -1
  162. data/smoke/rest6.rb +1 -1
  163. data/smoke/retry1.rb +2 -2
  164. data/smoke/simple.rb +12 -0
  165. data/smoke/step.rb +3 -3
  166. data/smoke/struct-keyword_init.rb +6 -16
  167. data/smoke/struct.rb +1 -1
  168. data/smoke/struct2.rb +1 -1
  169. data/smoke/struct3.rb +1 -1
  170. data/smoke/struct4.rb +1 -1
  171. data/smoke/struct5.rb +2 -2
  172. data/smoke/struct6.rb +2 -2
  173. data/smoke/struct7.rb +1 -1
  174. data/smoke/super1.rb +4 -4
  175. data/smoke/super3.rb +3 -2
  176. data/smoke/super4.rb +7 -5
  177. data/smoke/super5.rb +6 -4
  178. data/smoke/symbol-proc-attr.rb +1 -1
  179. data/smoke/tap1.rb +2 -2
  180. data/smoke/toplevel.rb +1 -1
  181. data/smoke/type_var.rb +3 -3
  182. data/smoke/user-demo.rb +1 -1
  183. data/smoke/wrong-extend.rb +1 -0
  184. data/smoke/wrong-include.rb +1 -0
  185. data/smoke/wrong-include2.rb +1 -1
  186. data/testbed/goodcheck-Gemfile.lock +1 -1
  187. data/typeprof.gemspec +1 -1
  188. metadata +24 -5
@@ -1,3 +1,3 @@
1
1
  module TypeProf
2
- VERSION = "0.9.1"
2
+ VERSION = "0.13.0"
3
3
  end
data/smoke/alias.rb CHANGED
@@ -21,11 +21,11 @@ __END__
21
21
  # Classes
22
22
  class Object
23
23
  private
24
- def foo: (Integer) -> Integer
25
- def bar: (String) -> String
24
+ def foo: (Integer | String x) -> (Integer | String)
25
+ alias bar foo
26
26
  end
27
27
 
28
28
  class Test
29
- def baz: (Integer) -> Integer
30
- def qux: (String) -> String
29
+ def baz: (Integer | String x) -> (Integer | String)
30
+ alias qux baz
31
31
  end
data/smoke/alias2.rb CHANGED
@@ -15,5 +15,7 @@ class Foo
15
15
  @a: :x
16
16
  @b: :y
17
17
  @c: :z
18
- def initialize: (:x, :y, :z) -> [:x, :y, :z]
18
+
19
+ alias self.[] self.new
20
+ def initialize: (:x a, :y b, :z c) -> [:x, :y, :z]
19
21
  end
data/smoke/arguments.rb CHANGED
@@ -12,6 +12,6 @@ smoke/arguments.rb:6: [error] wrong number of arguments (given 2, expected 1)
12
12
  # Classes
13
13
  class Object
14
14
  private
15
- def foo: (untyped) -> nil
16
- def bar: (untyped) -> nil
15
+ def foo: (untyped x) -> nil
16
+ def bar: (untyped x) -> nil
17
17
  end
data/smoke/arguments2.rb CHANGED
@@ -44,13 +44,13 @@ __END__
44
44
  class Object
45
45
  private
46
46
  def f1: -> nil
47
- def f2: (:x, :y, :z) -> nil
48
- def f3: (?String, ?String) -> nil
49
- def f4: (*:a | :b | :c) -> nil
50
- def f5: (:x, ?String, :z) -> nil
47
+ def f2: (:x x, :y y, :z z) -> nil
48
+ def f3: (?String x, ?String y) -> nil
49
+ def f4: (*:a | :b | :c r) -> nil
50
+ def f5: (:x x, ?String y, :z z) -> nil
51
51
  def f6: (k: :kk) -> nil
52
52
  def f7: (?k: Integer) -> nil
53
53
  def f8: (?k: String) -> nil
54
- def f9: (**{k: :kk}) -> nil
54
+ def f9: (**:kk) -> nil
55
55
  def f10: { (Integer) -> nil } -> nil
56
56
  end
data/smoke/array-each.rb CHANGED
@@ -11,5 +11,5 @@ __END__
11
11
  # Classes
12
12
  class Object
13
13
  private
14
- def log: ((:sym | Integer | String)?) -> nil
14
+ def log: ((:sym | Integer | String)? x) -> nil
15
15
  end
data/smoke/array-each3.rb CHANGED
@@ -9,5 +9,5 @@ __END__
9
9
  # Classes
10
10
  class Object
11
11
  private
12
- def log: (bot) -> nil
12
+ def log: (bot x) -> nil
13
13
  end
data/smoke/array-map.rb CHANGED
@@ -8,5 +8,5 @@ __END__
8
8
  # Classes
9
9
  class Object
10
10
  private
11
- def foo: ([Integer, Integer, Integer]) -> Array[String]
11
+ def foo: ([Integer, Integer, Integer] a) -> Array[String]
12
12
  end
data/smoke/array-map2.rb CHANGED
@@ -7,5 +7,5 @@ __END__
7
7
  # Classes
8
8
  class Object
9
9
  private
10
- def foo: ([Integer, Integer, Integer]) -> (Array[Integer | String])
10
+ def foo: ([Integer, Integer, Integer] a) -> (Array[Integer | String])
11
11
  end
data/smoke/array-map3.rb CHANGED
@@ -17,7 +17,7 @@ __END__
17
17
  # Classes
18
18
  class Object
19
19
  private
20
- def map_test: ([Integer, Integer, Integer]) -> Array[String]
21
- def map_bang_test: ([Integer, Integer, Integer]) -> (Array[Integer | String])
22
- def map_bang_test_known_bug: ([Integer, Integer, Integer]) -> [Integer, Integer, Integer]
20
+ def map_test: ([Integer, Integer, Integer] a) -> Array[String]
21
+ def map_bang_test: ([Integer, Integer, Integer] a) -> (Array[Integer | String])
22
+ def map_bang_test_known_bug: ([Integer, Integer, Integer] a) -> [Integer, Integer, Integer]
23
23
  end
data/smoke/array-mul.rb CHANGED
@@ -13,6 +13,6 @@ __END__
13
13
  # Classes
14
14
  class Object
15
15
  private
16
- def foo: ([Integer, Integer, Integer]) -> Array[Integer]
17
- def bar: ([Integer, Integer, Integer]) -> String
16
+ def foo: ([Integer, Integer, Integer] a) -> Array[Integer]
17
+ def bar: ([Integer, Integer, Integer] a) -> String
18
18
  end
data/smoke/array-plus1.rb CHANGED
@@ -7,5 +7,5 @@ __END__
7
7
  # Classes
8
8
  class Object
9
9
  private
10
- def log: (Array[:sym | Integer | String]) -> nil
10
+ def log: (Array[:sym | Integer | String] x) -> nil
11
11
  end
data/smoke/array-plus2.rb CHANGED
@@ -11,5 +11,6 @@ __END__
11
11
  # Classes
12
12
  class Foo
13
13
  @var: Array[Integer]
14
+
14
15
  def foo: -> Array[Integer]
15
16
  end
@@ -57,15 +57,15 @@ __END__
57
57
  # Classes
58
58
  class Object
59
59
  private
60
- def f1: (*:a | :b | :c | :d | :e) -> (Array[:a | :b | :c | :d | :e])
61
- def f2: (*:a | :b | :c | :d | :e) -> (Array[:a | :b | :c | :d | :e])
62
- def f3: (*:a | :b | :c | :d | :e) -> (Array[:a | :b | :c | :d | :e])
63
- def f4: (*:a | :b | :c | :d | :e) -> (Array[:a | :b | :c | :d | :e])
64
- def f5: (*:a | :b | :c | :d | :e) -> (Array[:a | :b | :c | :d | :e])
65
- def f6: (*:a | :b | :c | :d | :e) -> (Array[:a | :b | :c | :d | :e])
66
- def f7: (*:a | :b | :c | :d | :e) -> (Array[:a | :b | :c | :d | :e])
67
- def f8: (*:a | :b | :c | :d | :e) -> (Array[:a | :b | :c | :d | :e])
68
- def f9: (*:a | :b | :c | :d | :e) -> (Array[:a | :b | :c | :d | :e])
69
- def f10: (*:a | :b | :c | :d | :e) -> (Array[:a | :b | :c | :d | :e])
70
- def dispatch: (*:a | :b | :c | :d | :e) -> (Array[:a | :b | :c | :d | :e])
60
+ def f1: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
61
+ def f2: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
62
+ def f3: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
63
+ def f4: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
64
+ def f5: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
65
+ def f6: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
66
+ def f7: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
67
+ def f8: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
68
+ def f9: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
69
+ def f10: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
70
+ def dispatch: (*:a | :b | :c | :d | :e ary) -> (Array[:a | :b | :c | :d | :e])
71
71
  end
@@ -9,5 +9,5 @@ __END__
9
9
  # Classes
10
10
  class Object
11
11
  private
12
- def foo: ([Integer, Integer, Integer]) -> (Array[Integer | String])
12
+ def foo: ([Integer, Integer, Integer] a) -> (Array[Integer | String])
13
13
  end
data/smoke/array1.rb CHANGED
@@ -19,9 +19,9 @@ __END__
19
19
  # Classes
20
20
  class Object
21
21
  private
22
- def foo: ([Integer, String]) -> Integer
23
- def bar: (Integer) -> nil
24
- def baz: (String) -> nil
25
- def qux: (nil) -> nil
26
- def quux: (Integer | String) -> nil
22
+ def foo: ([Integer, String] a) -> Integer
23
+ def bar: (Integer n) -> nil
24
+ def baz: (String n) -> nil
25
+ def qux: (nil n) -> nil
26
+ def quux: (Integer | String n) -> nil
27
27
  end
data/smoke/array10.rb CHANGED
@@ -11,5 +11,5 @@ __END__
11
11
  # Classes
12
12
  class Object
13
13
  private
14
- def foo: ([:a, :b, :c]) -> :a
14
+ def foo: ([:a, :b, :c] a) -> :a
15
15
  end
data/smoke/array11.rb CHANGED
@@ -10,5 +10,5 @@ __END__
10
10
  # Classes
11
11
  class Object
12
12
  private
13
- def array: (Array[Integer] | Hash[Integer, Integer] | String) -> (Array[Hash[Integer, Integer] | Integer | String])
13
+ def array: (Array[Integer] | Hash[Integer, Integer] | String obj) -> (Array[Hash[Integer, Integer] | Integer | String])
14
14
  end
data/smoke/array12.rb CHANGED
@@ -19,7 +19,7 @@ __END__
19
19
  # Classes
20
20
  class Object
21
21
  private
22
- def bar: ([Integer]) -> nil
22
+ def bar: ([Integer] x) -> nil
23
23
  def test_yield: { -> nil } -> nil
24
24
  def foo: -> [Integer]
25
25
  end
data/smoke/array14.rb CHANGED
@@ -10,5 +10,5 @@ __END__
10
10
  # Classes
11
11
  class Object
12
12
  private
13
- def f: (:a, :b, :c) -> :c
13
+ def f: (:a a, :b b, :c c) -> :c
14
14
  end
data/smoke/array15.rb CHANGED
@@ -12,5 +12,5 @@ Foo.new[1] = "str"
12
12
  __END__
13
13
  # Classes
14
14
  class Foo
15
- def []=: (*Integer | String) -> Array[bot]
15
+ def []=: (*Integer | String args) -> Array[bot]
16
16
  end
data/smoke/array2.rb CHANGED
@@ -23,6 +23,6 @@ __END__
23
23
  class Object
24
24
  private
25
25
  def foo: -> [[String]]
26
- def bar: ([[Integer]]) -> [[String]]
27
- def log: ([[Integer]]) -> nil
26
+ def bar: ([[Integer]] a) -> [[String]]
27
+ def log: ([[Integer]] a) -> nil
28
28
  end
data/smoke/array3.rb CHANGED
@@ -19,6 +19,7 @@ __END__
19
19
  # Classes
20
20
  class Foo
21
21
  @ary: [Integer, String?, :sym]
22
+
22
23
  def initialize: -> [Integer, String, :sym]
23
24
  def foo: -> String?
24
25
  def bar: -> nil
data/smoke/array6.rb CHANGED
@@ -11,6 +11,7 @@ __END__
11
11
  # Classes
12
12
  class Object
13
13
  ARY: Array[bot]
14
+
14
15
  private
15
- def foo: (Integer, String) -> Array[bot]
16
+ def foo: (Integer i, String v) -> Array[bot]
16
17
  end
data/smoke/array8.rb CHANGED
@@ -9,5 +9,5 @@ end
9
9
  __END__
10
10
  # Classes
11
11
  class Foo
12
- def self.foo: (Array[bot]) -> Array[bot]
12
+ def self.foo: (Array[bot] a) -> Array[bot]
13
13
  end
data/smoke/array9.rb CHANGED
@@ -9,5 +9,5 @@ __END__
9
9
  # Classes
10
10
  class Object
11
11
  private
12
- def foo: (Array[:a | :b | :c]) -> nil
12
+ def foo: (Array[:a | :b | :c] a) -> nil
13
13
  end
data/smoke/attr-module.rb CHANGED
@@ -16,6 +16,7 @@ __END__
16
16
  # Classes
17
17
  module Foo
18
18
  self.@foo: Integer
19
+
19
20
  attr_accessor foo: untyped
20
21
  attr_accessor self.foo: Integer
21
22
  end
data/smoke/attr-vis.rb ADDED
@@ -0,0 +1,43 @@
1
+ class Foo
2
+ def initialize
3
+ @foo = 42
4
+ end
5
+
6
+ private
7
+ attr_accessor :foo
8
+
9
+ public
10
+ def get_foo
11
+ foo
12
+ end
13
+ def set_foo(arg)
14
+ self.foo = arg
15
+ end
16
+ def get_bar
17
+ bar
18
+ end
19
+ def set_bar(arg)
20
+ self.bar = arg
21
+ end
22
+ end
23
+
24
+ Foo.new.set_foo("str")
25
+ Foo.new.set_bar("str")
26
+
27
+ __END__
28
+ # Errors
29
+ smoke/attr-vis.rb:20: [warning] inconsistent assignment to RBS-declared variable
30
+
31
+ # Classes
32
+ class Foo
33
+ def initialize: -> Integer
34
+
35
+ private
36
+ attr_accessor foo: Integer | String
37
+
38
+ public
39
+ def get_foo: -> (Integer | String)
40
+ def set_foo: (String arg) -> String
41
+ def get_bar: -> Integer
42
+ def set_bar: (String arg) -> String
43
+ end
@@ -0,0 +1,4 @@
1
+ class Foo
2
+ private
3
+ attr_accessor bar: Integer
4
+ end
data/smoke/attr.rb CHANGED
@@ -20,9 +20,9 @@ foo.c = :ccc
20
20
  __END__
21
21
  # Classes
22
22
  class Foo
23
+ def initialize: (:aaa a) -> :aaa
23
24
  attr_reader a: :aaa
24
25
  attr_writer b: :bbb
25
- attr_accessor c: :ccc
26
- def initialize: (:aaa) -> :aaa
27
26
  def get_b: -> :bbb
27
+ attr_accessor c: :ccc
28
28
  end
@@ -27,11 +27,11 @@ __END__
27
27
  class Object
28
28
  private
29
29
  def f1: { (:a, :b, :c) -> nil } -> nil
30
- def log1: (:a) -> nil
30
+ def log1: (:a x) -> nil
31
31
  def f2: { (:a, :b, :c) -> nil } -> nil
32
- def log2: (:a) -> nil
32
+ def log2: (:a x) -> nil
33
33
  def f3: { ([:a, :b, :c]) -> nil } -> nil
34
- def log3: ([:a, :b, :c]) -> nil
34
+ def log3: ([:a, :b, :c] x) -> nil
35
35
  def f4: { ([:a, :b, :c]) -> nil } -> nil
36
- def log4: (:a) -> nil
36
+ def log4: (:a x) -> nil
37
37
  end
@@ -49,15 +49,16 @@ __END__
49
49
  # Classes
50
50
  class Object
51
51
  StringArray: Array[String]
52
+
52
53
  private
53
54
  def f1: { (*String) -> nil } -> (^(String, ?:opt | String, String) -> nil)
54
- def log1: (String, :opt | String, String) -> nil
55
+ def log1: (String a, :opt | String o, String c) -> nil
55
56
  def f2: { (:a, *String) -> nil } -> (^(:a, ?:opt | String, String) -> nil)
56
- def log2: (:a, :opt | String, String) -> nil
57
+ def log2: (:a a, :opt | String o, String c) -> nil
57
58
  def f3: { (:a, :b, *String) -> nil } -> (^(:a, ?:b | :opt, :b | String) -> nil)
58
- def log3: (:a, :b | :opt, :b | String) -> nil
59
+ def log3: (:a a, :b | :opt o, :b | String c) -> nil
59
60
  def f4: { (:a, :b, :c, *String) -> nil } -> (^(:a, ?:b | :opt, :b | :c) -> nil)
60
- def log4: (:a, :b | :opt, :b | :c) -> nil
61
+ def log4: (:a a, :b | :opt o, :b | :c c) -> nil
61
62
  def f5: { (:a, :b, :c, :d, *String) -> nil } -> (^(:a, ?:b | :opt, :b | :c) -> nil)
62
- def log5: (:a, :b | :opt, :b | :c) -> nil
63
+ def log5: (:a a, :b | :opt o, :b | :c c) -> nil
63
64
  end
data/smoke/block-args1.rb CHANGED
@@ -48,13 +48,13 @@ __END__
48
48
  class Object
49
49
  private
50
50
  def f1: { -> nil } -> ^(nil, ?:opt, nil) -> nil
51
- def log1: (nil, :opt, nil) -> nil
51
+ def log1: (nil a, :opt o, nil c) -> nil
52
52
  def f2: { (:a) -> nil } -> ^(:a, ?:opt, nil) -> nil
53
- def log2: (:a, :opt, nil) -> nil
53
+ def log2: (:a a, :opt o, nil c) -> nil
54
54
  def f3: { (:a, :b) -> nil } -> ^(:a, ?:opt, :b) -> nil
55
- def log3: (:a, :opt, :b) -> nil
55
+ def log3: (:a a, :opt o, :b c) -> nil
56
56
  def f4: { (:a, :b, :c) -> nil } -> (^(:a, ?:b | :opt, :c) -> nil)
57
- def log4: (:a, :b | :opt, :c) -> nil
57
+ def log4: (:a a, :b | :opt o, :c c) -> nil
58
58
  def f5: { (:a, :b, :c, :d) -> nil } -> (^(:a, ?:b | :opt, :c) -> nil)
59
- def log5: (:a, :b | :opt, :c) -> nil
59
+ def log5: (:a a, :b | :opt o, :c c) -> nil
60
60
  end
@@ -49,15 +49,16 @@ __END__
49
49
  # Classes
50
50
  class Object
51
51
  StringArray: Array[String]
52
+
52
53
  private
53
54
  def f1: { (*String) -> nil } -> ^(String, *String, String) -> nil
54
- def log1: (String, Array[String], String) -> nil
55
+ def log1: (String a, Array[String] r, String c) -> nil
55
56
  def f2: { (:a, *String) -> nil } -> ^(:a, *String, String) -> nil
56
- def log2: (:a, Array[String], String) -> nil
57
+ def log2: (:a a, Array[String] r, String c) -> nil
57
58
  def f3: { (:a, :b, *String) -> nil } -> (^(:a, *:b | String, :b | String) -> nil)
58
- def log3: (:a, Array[:b | String], :b | String) -> nil
59
+ def log3: (:a a, Array[:b | String] r, :b | String c) -> nil
59
60
  def f4: { (:a, :b, :c, *String) -> nil } -> (^(:a, *:b | :c | String, :c | String) -> nil)
60
- def log4: (:a, Array[:b | :c | String], :c | String) -> nil
61
+ def log4: (:a a, Array[:b | :c | String] r, :c | String c) -> nil
61
62
  def f5: { (:a, :b, :c, :d, *String) -> nil } -> (^(:a, *:b | :c | :d | String, :d | String) -> nil)
62
- def log5: (:a, Array[:b | :c | :d | String], :d | String) -> nil
63
+ def log5: (:a a, Array[:b | :c | :d | String] r, :d | String c) -> nil
63
64
  end
data/smoke/block-args2.rb CHANGED
@@ -48,13 +48,13 @@ __END__
48
48
  class Object
49
49
  private
50
50
  def f1: { -> nil } -> ^(nil, *bot, nil) -> nil
51
- def log1: (nil, Array[bot], nil) -> nil
51
+ def log1: (nil a, Array[bot] r, nil c) -> nil
52
52
  def f2: { (:a) -> nil } -> ^(:a, *bot, nil) -> nil
53
- def log2: (:a, Array[bot], nil) -> nil
53
+ def log2: (:a a, Array[bot] r, nil c) -> nil
54
54
  def f3: { (:a, :b) -> nil } -> ^(:a, *bot, :b) -> nil
55
- def log3: (:a, Array[bot], :b) -> nil
55
+ def log3: (:a a, Array[bot] r, :b c) -> nil
56
56
  def f4: { (:a, :b, :c) -> nil } -> ^(:a, *:b, :c) -> nil
57
- def log4: (:a, [:b], :c) -> nil
57
+ def log4: (:a a, [:b] r, :c c) -> nil
58
58
  def f5: { (:a, :b, :c, :d) -> nil } -> (^(:a, *:b | :c, :d) -> nil)
59
- def log5: (:a, [:b, :c], :d) -> nil
59
+ def log5: (:a a, [:b, :c] r, :d c) -> nil
60
60
  end