typeprof 0.1.2 → 0.4.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 (129) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/Gemfile +2 -2
  4. data/Gemfile.lock +10 -21
  5. data/LICENSE +21 -0
  6. data/README.md +1 -1
  7. data/doc/demo.md +398 -0
  8. data/doc/doc.ja.md +11 -1
  9. data/doc/doc.md +16 -7
  10. data/exe/typeprof +2 -1
  11. data/lib/typeprof.rb +9 -0
  12. data/lib/typeprof/analyzer.rb +455 -364
  13. data/lib/typeprof/arguments.rb +397 -0
  14. data/lib/typeprof/block.rb +133 -0
  15. data/lib/typeprof/builtin.rb +125 -116
  16. data/lib/typeprof/cli.rb +62 -71
  17. data/lib/typeprof/config.rb +114 -0
  18. data/lib/typeprof/container-type.rb +208 -27
  19. data/lib/typeprof/export.rb +201 -96
  20. data/lib/typeprof/import.rb +451 -365
  21. data/lib/typeprof/iseq.rb +43 -2
  22. data/lib/typeprof/method.rb +139 -100
  23. data/lib/typeprof/type.rb +138 -297
  24. data/lib/typeprof/utils.rb +4 -18
  25. data/lib/typeprof/version.rb +3 -0
  26. data/smoke/arguments2.rb +55 -0
  27. data/smoke/array-each3.rb +1 -4
  28. data/smoke/array12.rb +1 -1
  29. data/smoke/array6.rb +1 -0
  30. data/smoke/block-ambiguous.rb +36 -0
  31. data/smoke/block-args1-rest.rb +62 -0
  32. data/smoke/block-args1.rb +59 -0
  33. data/smoke/block-args2-rest.rb +62 -0
  34. data/smoke/block-args2.rb +59 -0
  35. data/smoke/block-args3-rest.rb +73 -0
  36. data/smoke/block-args3.rb +70 -0
  37. data/smoke/block-blockarg.rb +27 -0
  38. data/smoke/block-kwarg.rb +52 -0
  39. data/smoke/block11.rb +1 -1
  40. data/smoke/block13.rb +9 -0
  41. data/smoke/block13.rbs +3 -0
  42. data/smoke/block14.rb +17 -0
  43. data/smoke/block4.rb +2 -2
  44. data/smoke/block5.rb +1 -0
  45. data/smoke/block6.rb +1 -1
  46. data/smoke/block7.rb +0 -2
  47. data/smoke/block8.rb +2 -2
  48. data/smoke/block9.rb +1 -1
  49. data/smoke/blown.rb +1 -1
  50. data/smoke/class-hierarchy.rb +54 -0
  51. data/smoke/class-hierarchy2.rb +27 -0
  52. data/smoke/class.rb +2 -0
  53. data/smoke/constant1.rb +13 -5
  54. data/smoke/constant2.rb +2 -0
  55. data/smoke/cvar.rb +1 -0
  56. data/smoke/demo10.rb +1 -1
  57. data/smoke/demo5.rb +3 -0
  58. data/smoke/demo8.rb +2 -2
  59. data/smoke/demo9.rb +1 -3
  60. data/smoke/flow7.rb +1 -7
  61. data/smoke/flow8.rb +13 -0
  62. data/smoke/gvar.rb +1 -1
  63. data/smoke/gvar2.rb +17 -0
  64. data/smoke/gvar2.rbs +1 -0
  65. data/smoke/hash4.rb +1 -1
  66. data/smoke/inheritance2.rb +6 -0
  67. data/smoke/instance_eval.rb +1 -1
  68. data/smoke/int_times.rb +1 -1
  69. data/smoke/ivar3.rb +16 -0
  70. data/smoke/ivar3.rbs +3 -0
  71. data/smoke/keyword3.rb +1 -2
  72. data/smoke/keyword4.rb +1 -1
  73. data/smoke/manual-rbs2.rb +1 -1
  74. data/smoke/manual-rbs3.rb +12 -0
  75. data/smoke/manual-rbs3.rbs +3 -0
  76. data/smoke/module4.rb +5 -0
  77. data/smoke/multiple-superclass.rb +12 -0
  78. data/smoke/next2.rb +1 -1
  79. data/smoke/optional1.rb +1 -1
  80. data/smoke/optional2.rb +1 -1
  81. data/smoke/optional3.rb +10 -0
  82. data/smoke/proc4.rb +1 -1
  83. data/smoke/rbs-alias.rb +9 -0
  84. data/smoke/rbs-alias.rbs +4 -0
  85. data/smoke/rbs-attr.rb +26 -0
  86. data/smoke/rbs-attr.rbs +5 -0
  87. data/smoke/rbs-extend.rb +9 -0
  88. data/smoke/rbs-extend.rbs +7 -0
  89. data/smoke/rbs-interface.rb +24 -0
  90. data/smoke/rbs-interface.rbs +12 -0
  91. data/smoke/rbs-proc1.rb +9 -0
  92. data/smoke/rbs-proc1.rbs +3 -0
  93. data/smoke/rbs-proc2.rb +20 -0
  94. data/smoke/rbs-proc2.rbs +3 -0
  95. data/smoke/rbs-proc3.rb +13 -0
  96. data/smoke/rbs-proc3.rbs +4 -0
  97. data/smoke/rbs-record.rb +17 -0
  98. data/smoke/rbs-record.rbs +4 -0
  99. data/smoke/rbs-tyvar.rb +18 -0
  100. data/smoke/rbs-tyvar.rbs +5 -0
  101. data/smoke/rbs-tyvar2.rb +20 -0
  102. data/smoke/rbs-tyvar2.rbs +9 -0
  103. data/smoke/rbs-tyvar3.rb +25 -0
  104. data/smoke/rbs-tyvar3.rbs +4 -0
  105. data/smoke/rbs-vars.rb +39 -0
  106. data/smoke/rbs-vars.rbs +7 -0
  107. data/smoke/rest1.rb +1 -1
  108. data/smoke/rest2.rb +1 -1
  109. data/smoke/rest3.rb +1 -1
  110. data/smoke/rest5.rb +1 -1
  111. data/smoke/rest6.rb +1 -1
  112. data/smoke/retry1.rb +1 -1
  113. data/smoke/return.rb +1 -1
  114. data/smoke/singleton_method.rb +3 -0
  115. data/smoke/step.rb +1 -1
  116. data/smoke/struct.rb +6 -2
  117. data/smoke/struct3.rb +14 -0
  118. data/smoke/super1.rb +18 -0
  119. data/smoke/symbol-proc.rb +24 -0
  120. data/smoke/union-recv.rb +6 -0
  121. data/smoke/user-demo.rb +15 -0
  122. data/smoke/wrong-extend.rb +1 -0
  123. data/tools/setup-insns-def.rb +1 -1
  124. data/tools/stackprof-wrapper.rb +1 -1
  125. data/typeprof.gemspec +12 -4
  126. metadata +68 -10
  127. data/.gitmodules +0 -6
  128. data/run.sh +0 -3
  129. data/smoke/variadic1.rb.notyet +0 -5
@@ -0,0 +1,5 @@
1
+ class Cell[T]
2
+ def initialize : (T) -> void
3
+ def set_elem : (T) -> void
4
+ def get_elem : -> T
5
+ end
@@ -0,0 +1,20 @@
1
+ def foo
2
+ cell = Cell.new(:a1, :b1, :c1)
3
+ cell.set_a(:a2)
4
+ cell.set_b(:b2)
5
+ cell.set_c(:c2)
6
+ cell
7
+ end
8
+
9
+ def bar
10
+ foo.get_b
11
+ end
12
+
13
+ bar
14
+
15
+ __END__
16
+ # Classes
17
+ class Object
18
+ def foo : -> (Cell[:a1 | :a2, :b1 | :b2, :c1 | :c2])
19
+ def bar : -> (:b1 | :b2)
20
+ end
@@ -0,0 +1,9 @@
1
+ class Cell[A, B, C]
2
+ def initialize : (A, B, C) -> void
3
+ def set_a : (A) -> void
4
+ def set_b : (B) -> void
5
+ def set_c : (C) -> void
6
+ def get_a : -> A
7
+ def get_b : -> B
8
+ def get_c : -> C
9
+ end
@@ -0,0 +1,25 @@
1
+ class StringFoo
2
+ def initialize
3
+ @foo = Foo.new
4
+ end
5
+
6
+ def set
7
+ @foo.set("42")
8
+ end
9
+
10
+ def get
11
+ @foo.get
12
+ end
13
+ end
14
+
15
+ StringFoo.new.set
16
+ StringFoo.new.get
17
+
18
+ __END__
19
+ # Classes
20
+ class StringFoo
21
+ @foo : Foo[String] | Foo[bot]
22
+ def initialize : -> Foo[bot]
23
+ def set : -> void
24
+ def get : -> String
25
+ end
@@ -0,0 +1,4 @@
1
+ class Foo[X]
2
+ def set: (X) -> void
3
+ def get: -> X
4
+ end
@@ -0,0 +1,39 @@
1
+ def gvar_test
2
+ $gvar
3
+ end
4
+
5
+ class Foo
6
+ def const_test
7
+ CONST
8
+ end
9
+
10
+ def ivar_test
11
+ @ivar
12
+ end
13
+
14
+ def cvar_test
15
+ @@cvar
16
+ end
17
+
18
+ def self.cvar_test2
19
+ @@cvar
20
+ end
21
+ end
22
+
23
+ __END__
24
+ # Global variables
25
+ #$gvar : :gvar_example
26
+
27
+ # Classes
28
+ class Object
29
+ def gvar_test : -> :gvar_example
30
+ end
31
+
32
+ class Foo
33
+ # @ivar : :ivar_example
34
+ # @@cvar : :cvar_example
35
+ def const_test : -> :const_example
36
+ def ivar_test : -> :ivar_example
37
+ def cvar_test : -> :cvar_example
38
+ def self.cvar_test2 : -> :cvar_example
39
+ end
@@ -0,0 +1,7 @@
1
+ $gvar: :gvar_example
2
+
3
+ class Foo
4
+ CONST: :const_example
5
+ @ivar: :ivar_example
6
+ @@cvar: :cvar_example
7
+ end
@@ -21,5 +21,5 @@ __END__
21
21
  # Classes
22
22
  class Object
23
23
  def foo : (:a | Integer | String, *Integer | String, :z | Integer | String) -> (Array[Integer | String])
24
- def bar : (String, ?String, *String, String) -> Array[String]
24
+ def bar : (String, ?Integer | String, *String, String) -> Array[String]
25
25
  end
@@ -26,5 +26,5 @@ foo(*a)
26
26
  __END__
27
27
  # Classes
28
28
  class Object
29
- def foo : (:s | Integer | String, :s | Integer | String, :s | Integer | String) -> ([:s | Integer | String, :s | Integer | String, :s | Integer | String])
29
+ def foo : (Integer, String, :s) -> [Integer, String, :s]
30
30
  end
@@ -32,5 +32,5 @@ class Object
32
32
  def baz : (String, *String) -> nil
33
33
  def qux : (Integer, *String) -> nil
34
34
  def corge : (*Integer | String, Integer | String) -> nil
35
- def grault : (String, ?String, *String, String) -> nil
35
+ def grault : (String, ?Integer | String, *String, String) -> nil
36
36
  end
@@ -6,5 +6,5 @@ foo(42)
6
6
  __END__
7
7
  # Classes
8
8
  class Object
9
- def foo : (*Integer) -> Array[Integer]
9
+ def foo : (*Integer) -> [Integer]
10
10
  end
@@ -7,5 +7,5 @@ foo("x", "x")
7
7
  __END__
8
8
  # Classes
9
9
  class Object
10
- def foo : (?String, *String) -> [Array[String]]
10
+ def foo : (?Integer | String, *String) -> [Array[String]]
11
11
  end
@@ -16,5 +16,5 @@ __END__
16
16
  # Classes
17
17
  class Object
18
18
  def bar : (Integer | String) -> (Integer | String)
19
- def foo : (Integer) -> (Integer | String)
19
+ def foo : (Integer | String) -> (Integer | String)
20
20
  end
@@ -1,5 +1,5 @@
1
1
  def foo
2
- loop do |_|
2
+ loop do
3
3
  return 42
4
4
  end
5
5
  nil
@@ -7,3 +7,6 @@ end
7
7
 
8
8
  __END__
9
9
  # Classes
10
+ class Object
11
+ V : Object
12
+ end
@@ -12,6 +12,6 @@ __END__
12
12
  # Classes
13
13
  class Object
14
14
  def log1 : (Integer | Numeric) -> nil
15
- def log2 : (untyped) -> nil
15
+ def log2 : (void) -> nil
16
16
  def log3 : (Enumerator[Integer | Numeric]) -> nil
17
17
  end
@@ -1,9 +1,13 @@
1
- # tentative
1
+ # tentative: Currently, the hidden instance variable belongs to Foo, not Anonymous Struct.
2
+ # Thus, it outputs "untyped"
2
3
  class Foo < Struct.new(:a)
3
4
  end
4
5
  Foo.new.a = 1
5
6
  __END__
6
7
  # Classes
7
- class (Struct) < Struct
8
+ class (Anonymous Struct) < Struct
8
9
  attr_accessor a() : untyped
9
10
  end
11
+
12
+ class Foo < (Anonymous Struct)
13
+ end
@@ -0,0 +1,14 @@
1
+ class App
2
+ FooBar = Struct.new(:foo, :bar)
3
+ end
4
+
5
+ App::FooBar.new(1, "str")
6
+
7
+ __END__
8
+ # Classes
9
+ class App
10
+ class FooBar < Struct
11
+ attr_accessor foo() : Integer
12
+ attr_accessor bar() : String
13
+ end
14
+ end
@@ -37,6 +37,24 @@ class Object
37
37
  def log : (Baz) -> nil
38
38
  end
39
39
 
40
+ class A
41
+ end
42
+
43
+ class B
44
+ end
45
+
46
+ class C
47
+ end
48
+
49
+ class X
50
+ end
51
+
52
+ class Y
53
+ end
54
+
55
+ class Z
56
+ end
57
+
40
58
  class Foo
41
59
  def f : (C) -> X
42
60
  end
@@ -0,0 +1,24 @@
1
+ def foo
2
+ [1, :sym, "str"].map(&:to_s)
3
+ end
4
+
5
+ class Foo
6
+ def foo
7
+ :foo
8
+ end
9
+ end
10
+
11
+ def bar
12
+ [Foo.new].map(&:foo)
13
+ end
14
+
15
+ __END__
16
+ # Classes
17
+ class Object
18
+ def foo : -> Array[String]
19
+ def bar : -> Array[:foo]
20
+ end
21
+
22
+ class Foo
23
+ def foo : -> :foo
24
+ end
@@ -27,3 +27,9 @@ end
27
27
  class Base < SuperBase
28
28
  def self.foo : -> (A.class | B.class)
29
29
  end
30
+
31
+ class A < Base
32
+ end
33
+
34
+ class B < Base
35
+ end
@@ -0,0 +1,15 @@
1
+ class User
2
+ def foo(name: "str", age: 0)
3
+ @name, @age = name, age
4
+ end
5
+
6
+ attr_reader :name, :age
7
+ end
8
+
9
+ __END__
10
+ # Classes
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])
15
+ end
@@ -21,5 +21,6 @@ module Bar
21
21
  end
22
22
 
23
23
  module Foo
24
+ extend Bar
24
25
  def foo : -> :foo
25
26
  end
@@ -26,5 +26,5 @@ File.read(ARGV[0]).scan(r) do
26
26
  end
27
27
  INSN_TABLE[name.to_sym] = operands
28
28
  end
29
- target = File.join(__dir__, "../lib/type-profiler/insns-def.rb")
29
+ target = File.join(__dir__, "../lib/typeprof/insns-def.rb")
30
30
  File.write(target, "TypeProf::INSN_TABLE = " + INSN_TABLE.pretty_inspect)
@@ -3,7 +3,7 @@
3
3
  require "stackprof"
4
4
  StackProf.start(mode: :cpu, out: "stackprof-cpu.dump", raw: true, interval: 1000)
5
5
  begin
6
- load File.join(__dir__, "../exe/type-profiler")
6
+ load File.join(__dir__, "../exe/typeprof")
7
7
  ensure
8
8
  StackProf.stop
9
9
  StackProf.results
@@ -1,12 +1,20 @@
1
+ require_relative 'lib/typeprof/version'
2
+
1
3
  Gem::Specification.new do |spec|
2
4
  spec.name = "typeprof" # temporal
3
- spec.version = "0.1.2"
5
+ spec.version = TypeProf::VERSION
4
6
  spec.authors = ["Yusuke Endoh"]
5
7
  spec.email = ["mame@ruby-lang.org"]
6
8
 
7
9
  spec.summary = %q{TypeProf is a type analysis tool for Ruby code based on abstract interpretation}
8
- spec.description = %q{TypeProf is a type analysis tool for Ruby code based on abstract interpretation}
9
- spec.homepage = "https://github.com/mame/ruby-type-profiler"
10
+ spec.description = <<~EOD
11
+ TypeProf performs a type analysis of non-annotated Ruby code.
12
+
13
+ It abstractly executes input Ruby code in a level of types instead of values, gathers what types are passed to and returned by methods, and prints the analysis result in RBS format, a standard type description format for Ruby 3.0.
14
+
15
+ This tool is planned to be bundled with Ruby 3.0.
16
+ EOD
17
+ spec.homepage = "https://github.com/ruby/typeprof"
10
18
  spec.license = "MIT"
11
19
  spec.required_ruby_version = Gem::Requirement.new(">= 2.7")
12
20
 
@@ -22,5 +30,5 @@ Gem::Specification.new do |spec|
22
30
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
31
  spec.require_paths = ["lib"]
24
32
 
25
- spec.add_runtime_dependency "rbs", ">= 0.12.0"
33
+ spec.add_runtime_dependency "rbs", ">= 0.13.1"
26
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.1.2
4
+ version: 0.4.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-10-08 00:00:00.000000000 Z
11
+ date: 2020-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rbs
@@ -16,15 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.12.0
19
+ version: 0.13.1
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.12.0
27
- description: TypeProf is a type analysis tool for Ruby code based on abstract interpretation
26
+ version: 0.13.1
27
+ description: |
28
+ TypeProf performs a type analysis of non-annotated Ruby code.
29
+
30
+ It abstractly executes input Ruby code in a level of types instead of values, gathers what types are passed to and returned by methods, and prints the analysis result in RBS format, a standard type description format for Ruby 3.0.
31
+
32
+ This tool is planned to be bundled with Ruby 3.0.
28
33
  email:
29
34
  - mame@ruby-lang.org
30
35
  executables:
@@ -34,19 +39,23 @@ extra_rdoc_files: []
34
39
  files:
35
40
  - ".github/workflows/main.yml"
36
41
  - ".gitignore"
37
- - ".gitmodules"
38
42
  - Gemfile
39
43
  - Gemfile.lock
44
+ - LICENSE
40
45
  - README.md
41
46
  - Rakefile
47
+ - doc/demo.md
42
48
  - doc/doc.ja.md
43
49
  - doc/doc.md
44
50
  - doc/ppl2019.pdf
45
51
  - exe/typeprof
46
52
  - lib/typeprof.rb
47
53
  - lib/typeprof/analyzer.rb
54
+ - lib/typeprof/arguments.rb
55
+ - lib/typeprof/block.rb
48
56
  - lib/typeprof/builtin.rb
49
57
  - lib/typeprof/cli.rb
58
+ - lib/typeprof/config.rb
50
59
  - lib/typeprof/container-type.rb
51
60
  - lib/typeprof/export.rb
52
61
  - lib/typeprof/import.rb
@@ -55,13 +64,14 @@ files:
55
64
  - lib/typeprof/method.rb
56
65
  - lib/typeprof/type.rb
57
66
  - lib/typeprof/utils.rb
58
- - run.sh
67
+ - lib/typeprof/version.rb
59
68
  - smoke/alias.rb
60
69
  - smoke/alias2.rb
61
70
  - smoke/any-cbase.rb
62
71
  - smoke/any1.rb
63
72
  - smoke/any2.rb
64
73
  - smoke/arguments.rb
74
+ - smoke/arguments2.rb
65
75
  - smoke/array-each.rb
66
76
  - smoke/array-each2.rb
67
77
  - smoke/array-each3.rb
@@ -92,10 +102,22 @@ files:
92
102
  - smoke/array9.rb
93
103
  - smoke/attr.rb
94
104
  - smoke/backtrace.rb
105
+ - smoke/block-ambiguous.rb
106
+ - smoke/block-args1-rest.rb
107
+ - smoke/block-args1.rb
108
+ - smoke/block-args2-rest.rb
109
+ - smoke/block-args2.rb
110
+ - smoke/block-args3-rest.rb
111
+ - smoke/block-args3.rb
112
+ - smoke/block-blockarg.rb
113
+ - smoke/block-kwarg.rb
95
114
  - smoke/block1.rb
96
115
  - smoke/block10.rb
97
116
  - smoke/block11.rb
98
117
  - smoke/block12.rb
118
+ - smoke/block13.rb
119
+ - smoke/block13.rbs
120
+ - smoke/block14.rb
99
121
  - smoke/block2.rb
100
122
  - smoke/block3.rb
101
123
  - smoke/block4.rb
@@ -109,6 +131,8 @@ files:
109
131
  - smoke/break2.rb
110
132
  - smoke/case.rb
111
133
  - smoke/case2.rb
134
+ - smoke/class-hierarchy.rb
135
+ - smoke/class-hierarchy2.rb
112
136
  - smoke/class.rb
113
137
  - smoke/class_instance_var.rb
114
138
  - smoke/class_method.rb
@@ -147,10 +171,13 @@ files:
147
171
  - smoke/flow5.rb
148
172
  - smoke/flow6.rb
149
173
  - smoke/flow7.rb
174
+ - smoke/flow8.rb
150
175
  - smoke/for.rb
151
176
  - smoke/freeze.rb
152
177
  - smoke/function.rb
153
178
  - smoke/gvar.rb
179
+ - smoke/gvar2.rb
180
+ - smoke/gvar2.rbs
154
181
  - smoke/hash-fetch.rb
155
182
  - smoke/hash1.rb
156
183
  - smoke/hash2.rb
@@ -165,6 +192,8 @@ files:
165
192
  - smoke/integer.rb
166
193
  - smoke/ivar.rb
167
194
  - smoke/ivar2.rb
195
+ - smoke/ivar3.rb
196
+ - smoke/ivar3.rbs
168
197
  - smoke/kernel-class.rb
169
198
  - smoke/keyword1.rb
170
199
  - smoke/keyword2.rb
@@ -177,6 +206,8 @@ files:
177
206
  - smoke/manual-rbs.rbs
178
207
  - smoke/manual-rbs2.rb
179
208
  - smoke/manual-rbs2.rbs
209
+ - smoke/manual-rbs3.rb
210
+ - smoke/manual-rbs3.rbs
180
211
  - smoke/masgn1.rb
181
212
  - smoke/masgn2.rb
182
213
  - smoke/masgn3.rb
@@ -195,6 +226,7 @@ files:
195
226
  - smoke/once.rb
196
227
  - smoke/optional1.rb
197
228
  - smoke/optional2.rb
229
+ - smoke/optional3.rb
198
230
  - smoke/parameterizedd-self.rb
199
231
  - smoke/pathname1.rb
200
232
  - smoke/pathname2.rb
@@ -204,6 +236,30 @@ files:
204
236
  - smoke/proc3.rb
205
237
  - smoke/proc4.rb
206
238
  - smoke/range.rb
239
+ - smoke/rbs-alias.rb
240
+ - smoke/rbs-alias.rbs
241
+ - smoke/rbs-attr.rb
242
+ - smoke/rbs-attr.rbs
243
+ - smoke/rbs-extend.rb
244
+ - smoke/rbs-extend.rbs
245
+ - smoke/rbs-interface.rb
246
+ - smoke/rbs-interface.rbs
247
+ - smoke/rbs-proc1.rb
248
+ - smoke/rbs-proc1.rbs
249
+ - smoke/rbs-proc2.rb
250
+ - smoke/rbs-proc2.rbs
251
+ - smoke/rbs-proc3.rb
252
+ - smoke/rbs-proc3.rbs
253
+ - smoke/rbs-record.rb
254
+ - smoke/rbs-record.rbs
255
+ - smoke/rbs-tyvar.rb
256
+ - smoke/rbs-tyvar.rbs
257
+ - smoke/rbs-tyvar2.rb
258
+ - smoke/rbs-tyvar2.rbs
259
+ - smoke/rbs-tyvar3.rb
260
+ - smoke/rbs-tyvar3.rbs
261
+ - smoke/rbs-vars.rb
262
+ - smoke/rbs-vars.rbs
207
263
  - smoke/redo1.rb
208
264
  - smoke/redo2.rb
209
265
  - smoke/req-keyword.rb
@@ -226,17 +282,19 @@ files:
226
282
  - smoke/string-split.rb
227
283
  - smoke/struct.rb
228
284
  - smoke/struct2.rb
285
+ - smoke/struct3.rb
229
286
  - smoke/super1.rb
230
287
  - smoke/super2.rb
231
288
  - smoke/super3.rb
232
289
  - smoke/svar1.rb
290
+ - smoke/symbol-proc.rb
233
291
  - smoke/tap1.rb
234
292
  - smoke/toplevel.rb
235
293
  - smoke/two-map.rb
236
294
  - smoke/type_var.rb
237
295
  - smoke/typed_method.rb
238
296
  - smoke/union-recv.rb
239
- - smoke/variadic1.rb.notyet
297
+ - smoke/user-demo.rb
240
298
  - smoke/wrong-extend.rb
241
299
  - smoke/wrong-include.rb
242
300
  - smoke/wrong-rbs.rb
@@ -248,11 +306,11 @@ files:
248
306
  - tools/setup-insns-def.rb
249
307
  - tools/stackprof-wrapper.rb
250
308
  - typeprof.gemspec
251
- homepage: https://github.com/mame/ruby-type-profiler
309
+ homepage: https://github.com/ruby/typeprof
252
310
  licenses:
253
311
  - MIT
254
312
  metadata:
255
- homepage_uri: https://github.com/mame/ruby-type-profiler
313
+ homepage_uri: https://github.com/ruby/typeprof
256
314
  source_code_uri: https://github.com/ruby/typeprof
257
315
  post_install_message:
258
316
  rdoc_options: []