typeprof 0.3.0 → 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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/doc/demo.md +398 -0
- data/doc/doc.ja.md +4 -0
- data/doc/doc.md +4 -0
- data/lib/typeprof.rb +8 -0
- data/lib/typeprof/analyzer.rb +229 -245
- data/lib/typeprof/arguments.rb +397 -0
- data/lib/typeprof/block.rb +133 -0
- data/lib/typeprof/builtin.rb +14 -10
- data/lib/typeprof/container-type.rb +94 -17
- data/lib/typeprof/export.rb +185 -108
- data/lib/typeprof/import.rb +76 -54
- data/lib/typeprof/iseq.rb +27 -2
- data/lib/typeprof/method.rb +87 -73
- data/lib/typeprof/type.rb +125 -309
- data/lib/typeprof/version.rb +1 -1
- data/smoke/arguments2.rb +1 -1
- data/smoke/array-each3.rb +1 -4
- data/smoke/array12.rb +1 -1
- data/smoke/array6.rb +1 -0
- data/smoke/block-ambiguous.rb +36 -0
- data/smoke/block-args1-rest.rb +62 -0
- data/smoke/block-args1.rb +59 -0
- data/smoke/block-args2-rest.rb +62 -0
- data/smoke/block-args2.rb +59 -0
- data/smoke/block-args3-rest.rb +73 -0
- data/smoke/block-args3.rb +70 -0
- data/smoke/block-blockarg.rb +27 -0
- data/smoke/block-kwarg.rb +52 -0
- data/smoke/block11.rb +1 -1
- data/smoke/block14.rb +17 -0
- data/smoke/block4.rb +2 -2
- data/smoke/block5.rb +1 -0
- data/smoke/block6.rb +1 -1
- data/smoke/block7.rb +0 -2
- data/smoke/block8.rb +2 -2
- data/smoke/block9.rb +1 -1
- data/smoke/blown.rb +1 -1
- data/smoke/class-hierarchy.rb +54 -0
- data/smoke/class-hierarchy2.rb +27 -0
- data/smoke/constant1.rb +11 -6
- data/smoke/constant2.rb +2 -0
- data/smoke/cvar.rb +1 -0
- data/smoke/demo10.rb +1 -1
- data/smoke/demo8.rb +2 -2
- data/smoke/demo9.rb +1 -3
- data/smoke/flow7.rb +1 -7
- data/smoke/flow8.rb +13 -0
- data/smoke/instance_eval.rb +1 -1
- data/smoke/int_times.rb +1 -1
- data/smoke/multiple-superclass.rb +4 -0
- data/smoke/next2.rb +1 -1
- data/smoke/optional3.rb +10 -0
- data/smoke/proc4.rb +1 -1
- data/smoke/rbs-proc1.rb +9 -0
- data/smoke/rbs-proc1.rbs +3 -0
- data/smoke/rbs-proc2.rb +20 -0
- data/smoke/rbs-proc2.rbs +3 -0
- data/smoke/rbs-proc3.rb +13 -0
- data/smoke/rbs-proc3.rbs +4 -0
- data/smoke/rbs-record.rb +17 -0
- data/smoke/rbs-record.rbs +4 -0
- data/smoke/rbs-tyvar3.rb +25 -0
- data/smoke/rbs-tyvar3.rbs +4 -0
- data/smoke/rest2.rb +1 -1
- data/smoke/rest5.rb +1 -1
- data/smoke/return.rb +1 -1
- data/smoke/singleton_method.rb +3 -0
- data/smoke/struct.rb +4 -3
- data/smoke/struct3.rb +14 -0
- data/smoke/symbol-proc.rb +24 -0
- metadata +31 -3
- data/smoke/variadic1.rb.notyet +0 -5
data/smoke/rbs-proc2.rbs
ADDED
data/smoke/rbs-proc3.rb
ADDED
data/smoke/rbs-proc3.rbs
ADDED
data/smoke/rbs-record.rb
ADDED
data/smoke/rbs-tyvar3.rb
ADDED
|
@@ -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
|
data/smoke/rest2.rb
CHANGED
|
@@ -26,5 +26,5 @@ foo(*a)
|
|
|
26
26
|
__END__
|
|
27
27
|
# Classes
|
|
28
28
|
class Object
|
|
29
|
-
def foo : (
|
|
29
|
+
def foo : (Integer, String, :s) -> [Integer, String, :s]
|
|
30
30
|
end
|
data/smoke/rest5.rb
CHANGED
data/smoke/return.rb
CHANGED
data/smoke/singleton_method.rb
CHANGED
data/smoke/struct.rb
CHANGED
|
@@ -1,12 +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
|
|
10
11
|
|
|
11
|
-
class Foo < (Struct)
|
|
12
|
+
class Foo < (Anonymous Struct)
|
|
12
13
|
end
|
data/smoke/struct3.rb
ADDED
|
@@ -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
|
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.
|
|
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-
|
|
11
|
+
date: 2020-11-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rbs
|
|
@@ -44,12 +44,15 @@ files:
|
|
|
44
44
|
- LICENSE
|
|
45
45
|
- README.md
|
|
46
46
|
- Rakefile
|
|
47
|
+
- doc/demo.md
|
|
47
48
|
- doc/doc.ja.md
|
|
48
49
|
- doc/doc.md
|
|
49
50
|
- doc/ppl2019.pdf
|
|
50
51
|
- exe/typeprof
|
|
51
52
|
- lib/typeprof.rb
|
|
52
53
|
- lib/typeprof/analyzer.rb
|
|
54
|
+
- lib/typeprof/arguments.rb
|
|
55
|
+
- lib/typeprof/block.rb
|
|
53
56
|
- lib/typeprof/builtin.rb
|
|
54
57
|
- lib/typeprof/cli.rb
|
|
55
58
|
- lib/typeprof/config.rb
|
|
@@ -99,12 +102,22 @@ files:
|
|
|
99
102
|
- smoke/array9.rb
|
|
100
103
|
- smoke/attr.rb
|
|
101
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
|
|
102
114
|
- smoke/block1.rb
|
|
103
115
|
- smoke/block10.rb
|
|
104
116
|
- smoke/block11.rb
|
|
105
117
|
- smoke/block12.rb
|
|
106
118
|
- smoke/block13.rb
|
|
107
119
|
- smoke/block13.rbs
|
|
120
|
+
- smoke/block14.rb
|
|
108
121
|
- smoke/block2.rb
|
|
109
122
|
- smoke/block3.rb
|
|
110
123
|
- smoke/block4.rb
|
|
@@ -118,6 +131,8 @@ files:
|
|
|
118
131
|
- smoke/break2.rb
|
|
119
132
|
- smoke/case.rb
|
|
120
133
|
- smoke/case2.rb
|
|
134
|
+
- smoke/class-hierarchy.rb
|
|
135
|
+
- smoke/class-hierarchy2.rb
|
|
121
136
|
- smoke/class.rb
|
|
122
137
|
- smoke/class_instance_var.rb
|
|
123
138
|
- smoke/class_method.rb
|
|
@@ -156,6 +171,7 @@ files:
|
|
|
156
171
|
- smoke/flow5.rb
|
|
157
172
|
- smoke/flow6.rb
|
|
158
173
|
- smoke/flow7.rb
|
|
174
|
+
- smoke/flow8.rb
|
|
159
175
|
- smoke/for.rb
|
|
160
176
|
- smoke/freeze.rb
|
|
161
177
|
- smoke/function.rb
|
|
@@ -210,6 +226,7 @@ files:
|
|
|
210
226
|
- smoke/once.rb
|
|
211
227
|
- smoke/optional1.rb
|
|
212
228
|
- smoke/optional2.rb
|
|
229
|
+
- smoke/optional3.rb
|
|
213
230
|
- smoke/parameterizedd-self.rb
|
|
214
231
|
- smoke/pathname1.rb
|
|
215
232
|
- smoke/pathname2.rb
|
|
@@ -227,10 +244,20 @@ files:
|
|
|
227
244
|
- smoke/rbs-extend.rbs
|
|
228
245
|
- smoke/rbs-interface.rb
|
|
229
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
|
|
230
255
|
- smoke/rbs-tyvar.rb
|
|
231
256
|
- smoke/rbs-tyvar.rbs
|
|
232
257
|
- smoke/rbs-tyvar2.rb
|
|
233
258
|
- smoke/rbs-tyvar2.rbs
|
|
259
|
+
- smoke/rbs-tyvar3.rb
|
|
260
|
+
- smoke/rbs-tyvar3.rbs
|
|
234
261
|
- smoke/rbs-vars.rb
|
|
235
262
|
- smoke/rbs-vars.rbs
|
|
236
263
|
- smoke/redo1.rb
|
|
@@ -255,10 +282,12 @@ files:
|
|
|
255
282
|
- smoke/string-split.rb
|
|
256
283
|
- smoke/struct.rb
|
|
257
284
|
- smoke/struct2.rb
|
|
285
|
+
- smoke/struct3.rb
|
|
258
286
|
- smoke/super1.rb
|
|
259
287
|
- smoke/super2.rb
|
|
260
288
|
- smoke/super3.rb
|
|
261
289
|
- smoke/svar1.rb
|
|
290
|
+
- smoke/symbol-proc.rb
|
|
262
291
|
- smoke/tap1.rb
|
|
263
292
|
- smoke/toplevel.rb
|
|
264
293
|
- smoke/two-map.rb
|
|
@@ -266,7 +295,6 @@ files:
|
|
|
266
295
|
- smoke/typed_method.rb
|
|
267
296
|
- smoke/union-recv.rb
|
|
268
297
|
- smoke/user-demo.rb
|
|
269
|
-
- smoke/variadic1.rb.notyet
|
|
270
298
|
- smoke/wrong-extend.rb
|
|
271
299
|
- smoke/wrong-include.rb
|
|
272
300
|
- smoke/wrong-rbs.rb
|