typeprof 0.5.3 → 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 (208) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +6 -4
  3. data/doc/doc.ja.md +3 -4
  4. data/doc/doc.md +3 -4
  5. data/lib/typeprof/analyzer.rb +248 -166
  6. data/lib/typeprof/arguments.rb +12 -6
  7. data/lib/typeprof/builtin.rb +123 -23
  8. data/lib/typeprof/cli.rb +33 -34
  9. data/lib/typeprof/config.rb +6 -4
  10. data/lib/typeprof/container-type.rb +175 -112
  11. data/lib/typeprof/export.rb +23 -17
  12. data/lib/typeprof/import.rb +58 -53
  13. data/lib/typeprof/method.rb +59 -125
  14. data/lib/typeprof/type.rb +26 -14
  15. data/lib/typeprof/version.rb +1 -1
  16. data/smoke/alias.rb +1 -0
  17. data/smoke/any1.rb +1 -0
  18. data/smoke/any2.rb +1 -0
  19. data/smoke/arguments.rb +1 -0
  20. data/smoke/arguments2.rb +1 -0
  21. data/smoke/array-each.rb +1 -0
  22. data/smoke/array-each2.rb +1 -0
  23. data/smoke/array-each3.rb +2 -1
  24. data/smoke/array-ltlt.rb +1 -0
  25. data/smoke/array-ltlt2.rb +1 -0
  26. data/smoke/array-map.rb +1 -0
  27. data/smoke/array-map2.rb +1 -0
  28. data/smoke/array-map3.rb +1 -0
  29. data/smoke/array-mul.rb +1 -0
  30. data/smoke/array-plus1.rb +1 -0
  31. data/smoke/array-pop.rb +1 -0
  32. data/smoke/array-range-aref.rb +71 -0
  33. data/smoke/array-replace.rb +1 -0
  34. data/smoke/array-s-aref.rb +1 -0
  35. data/smoke/array1.rb +1 -0
  36. data/smoke/array10.rb +1 -0
  37. data/smoke/array11.rb +2 -1
  38. data/smoke/array12.rb +1 -0
  39. data/smoke/array13.rb +1 -0
  40. data/smoke/array14.rb +1 -0
  41. data/smoke/array2.rb +1 -0
  42. data/smoke/array4.rb +1 -0
  43. data/smoke/array5.rb +1 -0
  44. data/smoke/array6.rb +3 -2
  45. data/smoke/array7.rb +1 -0
  46. data/smoke/array8.rb +1 -1
  47. data/smoke/array9.rb +1 -0
  48. data/smoke/autoload.rb +14 -0
  49. data/smoke/backtrace.rb +1 -0
  50. data/smoke/block-ambiguous.rb +1 -0
  51. data/smoke/block-args1-rest.rb +1 -0
  52. data/smoke/block-args1.rb +1 -0
  53. data/smoke/block-args2-rest.rb +1 -0
  54. data/smoke/block-args2.rb +4 -3
  55. data/smoke/block-args3-rest.rb +1 -0
  56. data/smoke/block-args3.rb +5 -4
  57. data/smoke/block-blockarg.rb +2 -1
  58. data/smoke/block-kwarg.rb +1 -0
  59. data/smoke/block1.rb +1 -0
  60. data/smoke/block10.rb +1 -0
  61. data/smoke/block11.rb +1 -0
  62. data/smoke/block12.rb +1 -0
  63. data/smoke/block14.rb +1 -0
  64. data/smoke/block2.rb +1 -0
  65. data/smoke/block4.rb +1 -0
  66. data/smoke/block5.rb +2 -1
  67. data/smoke/block6.rb +1 -0
  68. data/smoke/block7.rb +1 -0
  69. data/smoke/block8.rb +1 -0
  70. data/smoke/block9.rb +1 -0
  71. data/smoke/blown.rb +1 -0
  72. data/smoke/break1.rb +1 -0
  73. data/smoke/break2.rb +1 -0
  74. data/smoke/case.rb +1 -0
  75. data/smoke/case2.rb +1 -0
  76. data/smoke/class_method3.rb +2 -0
  77. data/smoke/constant2.rb +2 -2
  78. data/smoke/constant3.rb +1 -0
  79. data/smoke/constant4.rb +1 -0
  80. data/smoke/context-sensitive1.rb +1 -0
  81. data/smoke/cvar.rb +1 -0
  82. data/smoke/define_method.rb +16 -0
  83. data/smoke/define_method2.rb +18 -0
  84. data/smoke/demo.rb +1 -0
  85. data/smoke/demo1.rb +1 -0
  86. data/smoke/demo10.rb +1 -0
  87. data/smoke/demo11.rb +1 -0
  88. data/smoke/demo2.rb +1 -0
  89. data/smoke/demo3.rb +1 -0
  90. data/smoke/demo5.rb +1 -1
  91. data/smoke/demo7.rb +1 -0
  92. data/smoke/demo8.rb +1 -0
  93. data/smoke/demo9.rb +2 -1
  94. data/smoke/dummy-execution1.rb +1 -0
  95. data/smoke/ensure1.rb +1 -0
  96. data/smoke/enumerator.rb +1 -0
  97. data/smoke/expandarray1.rb +1 -0
  98. data/smoke/expandarray2.rb +1 -0
  99. data/smoke/flow1.rb +1 -0
  100. data/smoke/flow2.rb +1 -0
  101. data/smoke/flow3.rb +1 -0
  102. data/smoke/flow5.rb +1 -0
  103. data/smoke/flow6.rb +1 -0
  104. data/smoke/flow7.rb +1 -0
  105. data/smoke/flow8.rb +1 -0
  106. data/smoke/freeze.rb +1 -0
  107. data/smoke/function.rb +1 -0
  108. data/smoke/gvar.rb +1 -0
  109. data/smoke/gvar2.rb +1 -0
  110. data/smoke/hash-fetch.rb +1 -0
  111. data/smoke/hash-merge-bang.rb +1 -0
  112. data/smoke/hash1.rb +3 -1
  113. data/smoke/hash2.rb +1 -0
  114. data/smoke/hash3.rb +1 -0
  115. data/smoke/hash4.rb +2 -1
  116. data/smoke/inheritance2.rb +2 -2
  117. data/smoke/initialize.rb +1 -0
  118. data/smoke/int_times.rb +1 -0
  119. data/smoke/integer.rb +1 -0
  120. data/smoke/ivar.rb +1 -0
  121. data/smoke/ivar2.rb +1 -1
  122. data/smoke/kernel-class.rb +2 -1
  123. data/smoke/keyword1.rb +1 -0
  124. data/smoke/keyword2.rb +1 -0
  125. data/smoke/keyword3.rb +1 -0
  126. data/smoke/keyword4.rb +1 -0
  127. data/smoke/keyword5.rb +1 -0
  128. data/smoke/kwrest.rb +12 -0
  129. data/smoke/kwrest.rbs +3 -0
  130. data/smoke/kwsplat1.rb +2 -1
  131. data/smoke/kwsplat2.rb +1 -0
  132. data/smoke/manual-rbs.rb +1 -0
  133. data/smoke/manual-rbs2.rb +1 -0
  134. data/smoke/masgn1.rb +1 -0
  135. data/smoke/masgn2.rb +1 -0
  136. data/smoke/masgn3.rb +1 -0
  137. data/smoke/method_in_branch.rb +1 -0
  138. data/smoke/method_missing.rb +28 -0
  139. data/smoke/multiple-superclass.rb +1 -1
  140. data/smoke/next1.rb +1 -0
  141. data/smoke/next2.rb +1 -0
  142. data/smoke/object-send1.rb +1 -0
  143. data/smoke/once.rb +1 -0
  144. data/smoke/optional1.rb +1 -0
  145. data/smoke/optional2.rb +1 -0
  146. data/smoke/optional3.rb +1 -0
  147. data/smoke/parameterizedd-self.rb +3 -2
  148. data/smoke/parameterizedd-self2.rb +15 -0
  149. data/smoke/pathname1.rb +1 -0
  150. data/smoke/pathname2.rb +1 -0
  151. data/smoke/pattern-match1.rb +1 -0
  152. data/smoke/pattern-match2.rb +1 -0
  153. data/smoke/proc.rb +1 -0
  154. data/smoke/proc2.rb +1 -0
  155. data/smoke/proc3.rb +1 -0
  156. data/smoke/proc4.rb +1 -0
  157. data/smoke/range.rb +1 -0
  158. data/smoke/rbs-alias.rb +1 -0
  159. data/smoke/rbs-attr.rb +3 -2
  160. data/smoke/rbs-attr2.rb +11 -0
  161. data/smoke/rbs-attr2.rbs +3 -0
  162. data/smoke/rbs-extend.rb +1 -0
  163. data/smoke/rbs-interface.rb +1 -0
  164. data/smoke/rbs-proc1.rb +1 -0
  165. data/smoke/rbs-proc2.rb +1 -0
  166. data/smoke/rbs-proc3.rb +1 -0
  167. data/smoke/rbs-record.rb +1 -0
  168. data/smoke/rbs-tyvar.rb +1 -0
  169. data/smoke/rbs-tyvar2.rb +1 -0
  170. data/smoke/rbs-tyvar3.rb +1 -0
  171. data/smoke/rbs-tyvar5.rb +1 -0
  172. data/smoke/rbs-tyvar6.rb +18 -0
  173. data/smoke/rbs-tyvar6.rbs +12 -0
  174. data/smoke/rbs-tyvar7.rb +12 -0
  175. data/smoke/rbs-tyvar7.rbs +7 -0
  176. data/smoke/rbs-vars.rb +1 -2
  177. data/smoke/redo1.rb +1 -0
  178. data/smoke/redo2.rb +1 -0
  179. data/smoke/req-keyword.rb +1 -0
  180. data/smoke/rescue1.rb +1 -0
  181. data/smoke/rescue2.rb +1 -0
  182. data/smoke/respond_to.rb +1 -0
  183. data/smoke/rest-farg.rb +1 -0
  184. data/smoke/rest1.rb +1 -0
  185. data/smoke/rest2.rb +1 -0
  186. data/smoke/rest3.rb +1 -0
  187. data/smoke/rest4.rb +1 -0
  188. data/smoke/rest5.rb +1 -0
  189. data/smoke/rest6.rb +1 -0
  190. data/smoke/retry1.rb +1 -0
  191. data/smoke/return.rb +1 -0
  192. data/smoke/step.rb +1 -0
  193. data/smoke/string-split.rb +1 -0
  194. data/smoke/struct.rb +2 -2
  195. data/smoke/struct2.rb +1 -0
  196. data/smoke/super1.rb +1 -0
  197. data/smoke/super4.rb +43 -0
  198. data/smoke/super5.rb +36 -0
  199. data/smoke/svar1.rb +1 -0
  200. data/smoke/symbol-proc.rb +1 -0
  201. data/smoke/tap1.rb +1 -0
  202. data/smoke/toplevel.rb +1 -0
  203. data/smoke/two-map.rb +1 -0
  204. data/smoke/type_var.rb +1 -0
  205. data/smoke/typed_method.rb +1 -0
  206. data/smoke/uninitialize-var.rb +1 -0
  207. data/smoke/union-recv.rb +2 -2
  208. metadata +18 -2
@@ -9,5 +9,5 @@ end
9
9
  __END__
10
10
  # Classes
11
11
  class Foo
12
- def self.foo : ([]) -> []
12
+ def self.foo : (Array[bot]) -> Array[bot]
13
13
  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
@@ -0,0 +1,14 @@
1
+ autoload(:Pathname, "pathname")
2
+
3
+ def foo
4
+ Pathname.new("foo")
5
+ end
6
+
7
+ foo
8
+
9
+ __END__
10
+ # Classes
11
+ class Object
12
+ private
13
+ def foo : -> Pathname
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,12 +46,13 @@ end
46
46
  __END__
47
47
  # Classes
48
48
  class Object
49
+ private
49
50
  def f1 : { -> nil } -> ^(nil, *bot, nil) -> nil
50
- def log1 : (nil, [], nil) -> nil
51
+ def log1 : (nil, Array[bot], nil) -> nil
51
52
  def f2 : { (:a) -> nil } -> ^(:a, *bot, nil) -> nil
52
- def log2 : (:a, [], nil) -> nil
53
+ def log2 : (:a, Array[bot], nil) -> nil
53
54
  def f3 : { (:a, :b) -> nil } -> ^(:a, *bot, :b) -> nil
54
- def log3 : (:a, [], :b) -> nil
55
+ def log3 : (:a, Array[bot], :b) -> nil
55
56
  def f4 : { (:a, :b, :c) -> nil } -> ^(:a, *:b, :c) -> nil
56
57
  def log4 : (:a, [:b], :c) -> nil
57
58
  def f5 : { (:a, :b, :c, :d) -> nil } -> (^(:a, *:b | :c, :d) -> 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,14 +55,15 @@ end
55
55
  __END__
56
56
  # Classes
57
57
  class Object
58
+ private
58
59
  def f1 : { -> nil } -> ^(nil, ?:opt, *bot, nil) -> nil
59
- def log1 : (nil, :opt, [], nil) -> nil
60
+ def log1 : (nil, :opt, Array[bot], nil) -> nil
60
61
  def f2 : { (:a) -> nil } -> ^(:a, ?:opt, *bot, nil) -> nil
61
- def log2 : (:a, :opt, [], nil) -> nil
62
+ def log2 : (:a, :opt, Array[bot], nil) -> nil
62
63
  def f3 : { (:a, :b) -> nil } -> ^(:a, ?:opt, *bot, :b) -> nil
63
- def log3 : (:a, :opt, [], :b) -> nil
64
+ def log3 : (:a, :opt, Array[bot], :b) -> nil
64
65
  def f4 : { (:a, :b, :c) -> nil } -> (^(:a, ?:b | :opt, *bot, :c) -> nil)
65
- def log4 : (:a, :b | :opt, [], :c) -> nil
66
+ def log4 : (:a, :b | :opt, Array[bot], :c) -> nil
66
67
  def f5 : { (:a, :b, :c, :d) -> nil } -> (^(:a, ?:b | :opt, *:c, :d) -> nil)
67
68
  def log5 : (:a, :b | :opt, [:c], :d) -> nil
68
69
  def f6 : { (:a, :b, :c, :d, :e) -> nil } -> (^(:a, ?:b | :opt, *:c | :d, :e) -> nil)
@@ -20,8 +20,9 @@ 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
26
- def f : { { (:a) -> :b } -> :c } -> :d
27
+ def f : { -> :c } -> :d
27
28
  end
@@ -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
- def foo : { (:sym) { (Integer) -> String } -> String } -> String
18
+ private
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
@@ -13,6 +13,7 @@ bar
13
13
  __END__
14
14
  # Classes
15
15
  class Object
16
+ private
16
17
  def foo : { (Integer) -> bot } -> bot
17
18
  def bar : -> String
18
19
  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
@@ -12,5 +12,6 @@ foo
12
12
  __END__
13
13
  # Classes
14
14
  class Object
15
+ private
15
16
  def foo : -> ((:sym | Integer)?)
16
17
  end
@@ -13,5 +13,6 @@ foo
13
13
  __END__
14
14
  # Classes
15
15
  class Object
16
+ private
16
17
  def foo : -> ((:sym | Integer)?)
17
18
  end
@@ -19,9 +19,11 @@ v.foo
19
19
  __END__
20
20
  # Classes
21
21
  class ForWin
22
+ private
22
23
  def self.foo : -> nil
23
24
  end
24
25
 
25
26
  class ForLinux
27
+ private
26
28
  def self.foo : -> nil
27
29
  end
@@ -24,12 +24,12 @@ smoke/constant2.rb:15: [warning] already initialized constant Object::BAR
24
24
 
25
25
  # Classes
26
26
  class Object
27
- C : String
28
27
  BAR : String
28
+ private
29
29
  def foo : (Integer | untyped) -> nil
30
30
  def log : (String) -> nil
31
31
  end
32
32
 
33
- class C(dummy)
33
+ class C
34
34
  def foo : -> nil
35
35
  end
@@ -5,5 +5,6 @@ foo
5
5
  __END__
6
6
  # Classes
7
7
  class Object
8
+ private
8
9
  def foo : -> untyped
9
10
  end
@@ -7,5 +7,6 @@ foo
7
7
  __END__
8
8
  # Classes
9
9
  class Object
10
+ private
10
11
  def foo : -> Complex
11
12
  end
@@ -8,5 +8,6 @@ foo(x || 1)
8
8
  __END__
9
9
  # Classes
10
10
  class Object
11
+ private
11
12
  def foo : (Integer) -> Integer
12
13
  end
@@ -18,6 +18,7 @@ A.new.foo
18
18
  __END__
19
19
  # Classes
20
20
  class Object
21
+ private
21
22
  def log1 : (Integer) -> nil
22
23
  def log2 : (Integer) -> nil
23
24
  end
@@ -0,0 +1,16 @@
1
+ class Foo
2
+ def bar(n)
3
+ :BAR
4
+ end
5
+
6
+ define_method(:foo) do |n|
7
+ bar(:FOO)
8
+ end
9
+ end
10
+
11
+ __END__
12
+ # Classes
13
+ class Foo
14
+ def bar : (:FOO | untyped) -> :BAR
15
+ def foo : (untyped) -> :BAR
16
+ end
@@ -0,0 +1,18 @@
1
+ class C
2
+ x = :x
3
+ define_method(:foo) do
4
+ x
5
+ end
6
+ define_method(:bar) do
7
+ x
8
+ end
9
+ end
10
+
11
+ C.new.foo
12
+
13
+ __END__
14
+ # Classes
15
+ class C
16
+ def foo : -> :x
17
+ def bar : -> :x
18
+ end
@@ -65,6 +65,7 @@ B.new.foo("str")
65
65
  __END__
66
66
  # Classes
67
67
  class Object
68
+ private
68
69
  def foo : (bool) -> (Integer | String)
69
70
  def identity : (:sym | Integer | String) -> (:sym | Integer | String)
70
71
  def fib : (Integer) -> Integer
@@ -12,5 +12,6 @@ foo(false)
12
12
  __END__
13
13
  # Classes
14
14
  class Object
15
+ private
15
16
  def foo : (bool) -> (Integer | String)
16
17
  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
@@ -7,5 +7,6 @@ swap(a)
7
7
  __END__
8
8
  # Classes
9
9
  class Object
10
+ private
10
11
  def swap : ([Integer, String]) -> [String, Integer]
11
12
  end
@@ -10,5 +10,6 @@ my_to_s(:sym)
10
10
  __END__
11
11
  # Classes
12
12
  class Object
13
+ private
13
14
  def my_to_s : (:sym | Integer | String) -> String
14
15
  end
@@ -12,5 +12,6 @@ fib(40000)
12
12
  __END__
13
13
  # Classes
14
14
  class Object
15
+ private
15
16
  def fib : (Integer) -> Integer
16
17
  end
@@ -9,7 +9,7 @@ B.foo(Integer)
9
9
  __END__
10
10
  # Classes
11
11
  class A
12
- def self.foo : (Integer | Integer.class) -> String
12
+ def self.foo : (Integer | singleton(Integer)) -> String
13
13
  end
14
14
 
15
15
  class B < A
@@ -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