typeprof 0.8.0 → 0.11.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 +6 -5
- data/doc/demo.md +1 -1
- data/doc/todo.md +133 -0
- data/lib/typeprof/analyzer.rb +177 -76
- data/lib/typeprof/arguments.rb +2 -0
- data/lib/typeprof/block.rb +40 -2
- data/lib/typeprof/builtin.rb +279 -111
- data/lib/typeprof/cli.rb +5 -0
- data/lib/typeprof/config.rb +15 -1
- data/lib/typeprof/container-type.rb +5 -4
- data/lib/typeprof/export.rb +115 -70
- data/lib/typeprof/import.rb +71 -33
- data/lib/typeprof/iseq.rb +46 -11
- data/lib/typeprof/method.rb +42 -21
- data/lib/typeprof/type.rb +93 -15
- data/lib/typeprof/version.rb +1 -1
- data/smoke/alias.rb +4 -4
- data/smoke/alias2.rb +6 -4
- data/smoke/any1.rb +1 -1
- data/smoke/any2.rb +2 -2
- data/smoke/arguments.rb +2 -2
- data/smoke/arguments2.rb +10 -10
- data/smoke/array-each.rb +1 -1
- data/smoke/array-each2.rb +1 -1
- data/smoke/array-each3.rb +1 -1
- data/smoke/array-ltlt.rb +1 -1
- data/smoke/array-ltlt2.rb +1 -1
- data/smoke/array-map.rb +1 -1
- data/smoke/array-map2.rb +1 -1
- data/smoke/array-map3.rb +3 -3
- data/smoke/array-mul.rb +2 -2
- data/smoke/array-plus1.rb +1 -1
- data/smoke/array-plus2.rb +3 -2
- data/smoke/array-pop.rb +1 -1
- data/smoke/array-range-aref.rb +11 -11
- data/smoke/array-replace.rb +1 -1
- data/smoke/array-s-aref.rb +1 -1
- data/smoke/array1.rb +5 -5
- data/smoke/array10.rb +1 -1
- data/smoke/array11.rb +1 -1
- data/smoke/array12.rb +3 -3
- data/smoke/array13.rb +4 -4
- data/smoke/array14.rb +1 -1
- data/smoke/array15.rb +16 -0
- data/smoke/array2.rb +3 -3
- data/smoke/array3.rb +5 -4
- data/smoke/array4.rb +1 -1
- data/smoke/array5.rb +1 -1
- data/smoke/array6.rb +3 -2
- data/smoke/array7.rb +1 -1
- data/smoke/array8.rb +1 -1
- data/smoke/array9.rb +1 -1
- data/smoke/attr-module.rb +27 -0
- data/smoke/attr-vis.rb +43 -0
- data/smoke/attr-vis.rbs +4 -0
- data/smoke/attr.rb +5 -5
- data/smoke/autoload.rb +1 -1
- data/smoke/backtrace.rb +3 -3
- data/smoke/block-ambiguous.rb +8 -8
- data/smoke/block-args1-rest.rb +12 -11
- data/smoke/block-args1.rb +10 -10
- data/smoke/block-args2-rest.rb +12 -11
- data/smoke/block-args2.rb +10 -10
- data/smoke/block-args3-rest.rb +14 -13
- data/smoke/block-args3.rb +12 -12
- data/smoke/block-blockarg.rb +4 -4
- data/smoke/block-kwarg.rb +10 -10
- data/smoke/block1.rb +1 -1
- data/smoke/block10.rb +1 -1
- data/smoke/block11.rb +5 -5
- data/smoke/block12.rb +2 -2
- data/smoke/block14.rb +2 -2
- data/smoke/block2.rb +1 -1
- data/smoke/block3.rb +3 -3
- data/smoke/block4.rb +2 -2
- data/smoke/block5.rb +3 -2
- data/smoke/block6.rb +2 -2
- data/smoke/block7.rb +1 -1
- data/smoke/block8.rb +3 -3
- data/smoke/block9.rb +1 -1
- data/smoke/block_given.rb +37 -0
- data/smoke/blown.rb +1 -1
- data/smoke/break1.rb +2 -2
- data/smoke/break2.rb +1 -1
- data/smoke/break3.rb +13 -0
- data/smoke/case.rb +1 -1
- data/smoke/case2.rb +1 -1
- data/smoke/case3.rb +17 -0
- data/smoke/class-hierarchy.rb +5 -5
- data/smoke/class-hierarchy2.rb +3 -3
- data/smoke/class-new.rb +15 -0
- data/smoke/class_instance_var.rb +1 -1
- data/smoke/class_method.rb +2 -2
- data/smoke/class_method2.rb +2 -2
- data/smoke/class_method3.rb +2 -2
- data/smoke/constant1.rb +6 -6
- data/smoke/constant2.rb +5 -4
- data/smoke/constant3.rb +1 -1
- data/smoke/constant4.rb +1 -1
- data/smoke/context-sensitive1.rb +1 -1
- data/smoke/cvar.rb +6 -5
- data/smoke/cvar2.rb +2 -2
- data/smoke/define_method.rb +2 -2
- data/smoke/define_method2.rb +2 -2
- data/smoke/define_method3.rb +14 -0
- data/smoke/define_method3.rbs +3 -0
- data/smoke/define_method4.rb +15 -0
- data/smoke/define_method4.rbs +3 -0
- data/smoke/define_method5.rb +12 -0
- data/smoke/define_method6.rb +19 -0
- data/smoke/demo.rb +6 -6
- data/smoke/demo1.rb +1 -1
- data/smoke/demo10.rb +2 -2
- data/smoke/demo11.rb +1 -1
- data/smoke/demo2.rb +1 -1
- data/smoke/demo3.rb +1 -1
- data/smoke/demo4.rb +3 -3
- data/smoke/demo5.rb +1 -1
- data/smoke/demo6.rb +4 -3
- data/smoke/demo7.rb +1 -1
- data/smoke/demo8.rb +2 -2
- data/smoke/demo9.rb +3 -2
- data/smoke/dummy-execution1.rb +2 -2
- data/smoke/dummy-execution2.rb +2 -2
- data/smoke/dummy_element.rb +14 -0
- data/smoke/ensure1.rb +2 -2
- data/smoke/enum_for.rb +15 -0
- data/smoke/enum_for2.rb +17 -0
- data/smoke/enumerator.rb +2 -2
- data/smoke/expandarray1.rb +1 -1
- data/smoke/expandarray2.rb +1 -1
- data/smoke/fib.rb +2 -2
- data/smoke/flip-flop.rb +28 -0
- data/smoke/flow1.rb +1 -1
- data/smoke/flow10.rb +17 -0
- data/smoke/flow2.rb +1 -1
- data/smoke/flow3.rb +1 -1
- data/smoke/flow5.rb +1 -1
- data/smoke/flow6.rb +1 -1
- data/smoke/flow7.rb +1 -1
- data/smoke/flow8.rb +1 -1
- data/smoke/flow9.rb +12 -0
- data/smoke/freeze.rb +1 -1
- data/smoke/function.rb +2 -2
- data/smoke/gvar.rb +2 -2
- data/smoke/gvar2.rb +3 -3
- data/smoke/hash-bot.rb +12 -0
- data/smoke/hash-fetch.rb +3 -3
- data/smoke/hash-merge-bang.rb +1 -1
- data/smoke/hash1.rb +2 -2
- data/smoke/hash2.rb +1 -1
- data/smoke/hash3.rb +1 -1
- data/smoke/hash4.rb +1 -1
- data/smoke/hash5.rb +1 -1
- data/smoke/inheritance.rb +4 -4
- data/smoke/inheritance2.rb +2 -2
- data/smoke/initialize.rb +6 -5
- data/smoke/instance_eval.rb +2 -2
- data/smoke/instance_eval2.rb +10 -0
- data/smoke/instance_eval3.rb +25 -0
- data/smoke/int_times.rb +1 -1
- data/smoke/integer.rb +1 -1
- data/smoke/ivar.rb +5 -4
- data/smoke/ivar2.rb +4 -4
- data/smoke/ivar3.rb +4 -3
- data/smoke/ivar4.rb +21 -0
- data/smoke/kernel-class.rb +1 -1
- data/smoke/keyword1.rb +1 -1
- data/smoke/keyword2.rb +1 -1
- data/smoke/keyword3.rb +1 -1
- data/smoke/keyword4.rb +1 -1
- data/smoke/keyword5.rb +1 -1
- data/smoke/kwrest.rb +3 -2
- data/smoke/kwsplat1.rb +4 -4
- data/smoke/kwsplat2.rb +1 -1
- data/smoke/lit-complex.rb +10 -0
- data/smoke/lit-encoding.rb +10 -0
- data/smoke/manual-rbs.rb +5 -4
- data/smoke/manual-rbs2.rb +1 -1
- data/smoke/manual-rbs3.rb +3 -2
- data/smoke/masgn1.rb +1 -1
- data/smoke/masgn2.rb +2 -2
- data/smoke/masgn3.rb +1 -1
- data/smoke/method_in_branch.rb +3 -3
- data/smoke/method_missing.rb +5 -4
- data/smoke/module1.rb +2 -2
- data/smoke/module2.rb +1 -1
- data/smoke/module3.rb +3 -3
- data/smoke/module4.rb +3 -2
- data/smoke/module5.rb +17 -0
- data/smoke/module6.rb +40 -0
- data/smoke/module_function1.rb +4 -3
- data/smoke/module_function2.rb +4 -3
- data/smoke/multiple-include.rb +2 -1
- data/smoke/multiple-superclass.rb +1 -1
- data/smoke/next1.rb +2 -2
- data/smoke/next2.rb +1 -1
- data/smoke/object-send1.rb +3 -3
- data/smoke/object-send2.rb +10 -0
- data/smoke/object-send3.rb +18 -0
- data/smoke/once.rb +1 -1
- data/smoke/optional1.rb +1 -1
- data/smoke/optional2.rb +1 -1
- data/smoke/optional3.rb +1 -1
- data/smoke/parameterizedd-self.rb +3 -2
- data/smoke/parameterizedd-self2.rb +1 -1
- data/smoke/pathname1.rb +1 -1
- data/smoke/pathname2.rb +1 -1
- data/smoke/pattern-match1.rb +1 -1
- data/smoke/pattern-match2.rb +1 -1
- data/smoke/prepend1.rb +33 -0
- data/smoke/prepend2.rb +10 -0
- data/smoke/prepend2.rbs +9 -0
- data/smoke/primitive_method.rb +19 -0
- data/smoke/printf.rb +2 -2
- data/smoke/proc.rb +2 -2
- data/smoke/proc2.rb +1 -1
- data/smoke/proc3.rb +1 -1
- data/smoke/proc4.rb +1 -1
- data/smoke/proc5.rb +19 -0
- data/smoke/public.rb +38 -0
- data/smoke/range.rb +1 -1
- data/smoke/rbs-alias.rb +1 -1
- data/smoke/rbs-attr.rb +5 -5
- data/smoke/rbs-attr2.rb +1 -1
- data/smoke/rbs-extend.rb +1 -1
- data/smoke/rbs-interface.rb +4 -4
- data/smoke/rbs-module.rb +26 -0
- data/smoke/rbs-module.rbs +4 -0
- data/smoke/rbs-opt-and-rest.rb +10 -0
- data/smoke/rbs-opt-and-rest.rbs +3 -0
- data/smoke/rbs-proc1.rb +1 -1
- data/smoke/rbs-proc2.rb +2 -2
- data/smoke/rbs-proc3.rb +1 -1
- data/smoke/rbs-record.rb +2 -2
- data/smoke/rbs-tyvar.rb +2 -2
- data/smoke/rbs-tyvar2.rb +2 -2
- data/smoke/rbs-tyvar3.rb +2 -2
- data/smoke/rbs-tyvar4.rb +4 -3
- data/smoke/rbs-tyvar5.rb +1 -1
- data/smoke/rbs-tyvar6.rb +3 -3
- data/smoke/rbs-tyvar7.rb +1 -1
- data/smoke/rbs-vars.rb +6 -6
- data/smoke/redo1.rb +2 -2
- data/smoke/redo2.rb +2 -2
- data/smoke/req-keyword.rb +1 -1
- data/smoke/rescue1.rb +2 -2
- data/smoke/rescue2.rb +2 -2
- data/smoke/rescue3.rb +20 -0
- data/smoke/rescue4.rb +17 -0
- data/smoke/respond_to.rb +1 -1
- data/smoke/rest-farg.rb +1 -1
- data/smoke/rest1.rb +2 -2
- data/smoke/rest2.rb +1 -1
- data/smoke/rest3.rb +6 -6
- data/smoke/rest4.rb +2 -2
- data/smoke/rest5.rb +1 -1
- data/smoke/rest6.rb +1 -1
- data/smoke/retry1.rb +2 -2
- data/smoke/return.rb +1 -1
- data/smoke/simple.rb +12 -0
- data/smoke/singleton_method.rb +1 -1
- data/smoke/step.rb +3 -3
- data/smoke/string-split.rb +1 -1
- data/smoke/struct-keyword_init.rb +10 -0
- data/smoke/struct.rb +1 -1
- data/smoke/struct2.rb +4 -4
- data/smoke/struct3.rb +2 -2
- data/smoke/struct4.rb +7 -0
- data/smoke/struct5.rb +16 -0
- data/smoke/struct6.rb +15 -0
- data/smoke/struct7.rb +17 -0
- data/smoke/stub-keyword.rb +10 -0
- data/smoke/super1.rb +4 -4
- data/smoke/super2.rb +1 -1
- data/smoke/super3.rb +4 -3
- data/smoke/super4.rb +7 -5
- data/smoke/super5.rb +6 -4
- data/smoke/svar1.rb +1 -1
- data/smoke/symbol-proc-attr.rb +22 -0
- data/smoke/symbol-proc-attr2.rb +15 -0
- data/smoke/symbol-proc-bot.rb +13 -0
- data/smoke/symbol-proc.rb +3 -3
- data/smoke/tap1.rb +2 -2
- data/smoke/toplevel.rb +1 -1
- data/smoke/two-map.rb +2 -2
- data/smoke/type_var.rb +3 -3
- data/smoke/typed_method.rb +1 -1
- data/smoke/uninitialize-var.rb +1 -1
- data/smoke/union-recv.rb +2 -2
- data/smoke/user-demo.rb +3 -3
- data/smoke/wrong-extend.rb +3 -2
- data/smoke/wrong-include.rb +3 -2
- data/smoke/wrong-include2.rb +17 -0
- data/typeprof.gemspec +1 -1
- metadata +59 -6
- data/tools/stackprof-wrapper.rb +0 -10
data/smoke/module_function2.rb
CHANGED
@@ -18,11 +18,12 @@ Bar.new.bar
|
|
18
18
|
__END__
|
19
19
|
# Classes
|
20
20
|
module Foo
|
21
|
-
def foo
|
22
|
-
def self.foo
|
21
|
+
def foo: (:x | :y x) -> (:x | :y)
|
22
|
+
def self.foo: (:x | :y x) -> (:x | :y)
|
23
23
|
end
|
24
24
|
|
25
25
|
class Bar
|
26
26
|
include Foo
|
27
|
-
|
27
|
+
|
28
|
+
def bar: -> (:x | :y)
|
28
29
|
end
|
data/smoke/multiple-include.rb
CHANGED
data/smoke/next1.rb
CHANGED
data/smoke/next2.rb
CHANGED
data/smoke/object-send1.rb
CHANGED
@@ -17,7 +17,7 @@ __END__
|
|
17
17
|
# Classes
|
18
18
|
class Object
|
19
19
|
private
|
20
|
-
def foo
|
21
|
-
def bar
|
22
|
-
def dispatch
|
20
|
+
def foo: (Integer x) -> Integer
|
21
|
+
def bar: (Integer x) -> Integer
|
22
|
+
def dispatch: (:bar | :foo mid) -> Integer
|
23
23
|
end
|
data/smoke/once.rb
CHANGED
data/smoke/optional1.rb
CHANGED
@@ -10,5 +10,5 @@ __END__
|
|
10
10
|
# Classes
|
11
11
|
class Object
|
12
12
|
private
|
13
|
-
def foo
|
13
|
+
def foo: (String a, ?Integer | String o1, ?Integer | String o2, String z) -> ([String, Integer | String, Integer | String, String])
|
14
14
|
end
|
data/smoke/optional2.rb
CHANGED
@@ -12,5 +12,5 @@ __END__
|
|
12
12
|
# Classes
|
13
13
|
class Object
|
14
14
|
private
|
15
|
-
def foo
|
15
|
+
def foo: (String a, ?Integer | String o1, ?Integer | String o2, *String r, String z) -> ([String, Integer | String, Integer | String, Array[String], String])
|
16
16
|
end
|
data/smoke/optional3.rb
CHANGED
data/smoke/pathname1.rb
CHANGED
data/smoke/pathname2.rb
CHANGED
data/smoke/pattern-match1.rb
CHANGED
data/smoke/pattern-match2.rb
CHANGED
data/smoke/prepend1.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
module Mod
|
2
|
+
def foo
|
3
|
+
[42, super(:sym)]
|
4
|
+
end
|
5
|
+
end
|
6
|
+
|
7
|
+
class Foo
|
8
|
+
prepend Mod
|
9
|
+
|
10
|
+
def foo(sym_arg)
|
11
|
+
sym_arg.to_s
|
12
|
+
end
|
13
|
+
|
14
|
+
def bar
|
15
|
+
foo
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
__END__
|
20
|
+
# Errors
|
21
|
+
smoke/prepend1.rb:3: [error] no superclass method: Mod#foo
|
22
|
+
|
23
|
+
# Classes
|
24
|
+
module Mod
|
25
|
+
def foo: -> ([Integer, String | untyped])
|
26
|
+
end
|
27
|
+
|
28
|
+
class Foo
|
29
|
+
prepend Mod
|
30
|
+
|
31
|
+
def foo: (:sym | untyped sym_arg) -> (String | untyped)
|
32
|
+
def bar: -> ([Integer, String | untyped])
|
33
|
+
end
|
data/smoke/prepend2.rb
ADDED
data/smoke/prepend2.rbs
ADDED
data/smoke/printf.rb
CHANGED
data/smoke/proc.rb
CHANGED
data/smoke/proc2.rb
CHANGED
data/smoke/proc3.rb
CHANGED
data/smoke/proc4.rb
CHANGED
data/smoke/proc5.rb
ADDED
data/smoke/public.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
class Foo
|
2
|
+
def foo
|
3
|
+
end
|
4
|
+
|
5
|
+
private
|
6
|
+
|
7
|
+
def bar
|
8
|
+
end
|
9
|
+
|
10
|
+
public
|
11
|
+
|
12
|
+
def baz
|
13
|
+
end
|
14
|
+
|
15
|
+
private def qux
|
16
|
+
end
|
17
|
+
|
18
|
+
def corge
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
__END__
|
23
|
+
# Classes
|
24
|
+
class Foo
|
25
|
+
def foo: -> nil
|
26
|
+
|
27
|
+
private
|
28
|
+
def bar: -> nil
|
29
|
+
|
30
|
+
public
|
31
|
+
def baz: -> nil
|
32
|
+
|
33
|
+
private
|
34
|
+
def qux: -> nil
|
35
|
+
|
36
|
+
public
|
37
|
+
def corge: -> nil
|
38
|
+
end
|
data/smoke/range.rb
CHANGED
data/smoke/rbs-alias.rb
CHANGED
data/smoke/rbs-attr.rb
CHANGED
@@ -15,13 +15,13 @@ end
|
|
15
15
|
|
16
16
|
__END__
|
17
17
|
# Errors
|
18
|
-
smoke/rbs-attr.rb:11: [warning] inconsistent assignment to RBS-declared
|
19
|
-
smoke/rbs-attr.rb:13: [warning] inconsistent assignment to RBS-declared
|
18
|
+
smoke/rbs-attr.rb:11: [warning] inconsistent assignment to RBS-declared variable
|
19
|
+
smoke/rbs-attr.rb:13: [warning] inconsistent assignment to RBS-declared variable
|
20
20
|
|
21
21
|
# Classes
|
22
22
|
class Object
|
23
23
|
private
|
24
|
-
def read_test_1
|
25
|
-
def read_test_2
|
26
|
-
def write_test
|
24
|
+
def read_test_1: -> Integer
|
25
|
+
def read_test_2: -> Integer
|
26
|
+
def write_test: -> String
|
27
27
|
end
|
data/smoke/rbs-attr2.rb
CHANGED
data/smoke/rbs-extend.rb
CHANGED
data/smoke/rbs-interface.rb
CHANGED
@@ -18,8 +18,8 @@ __END__
|
|
18
18
|
# Classes
|
19
19
|
class Object
|
20
20
|
private
|
21
|
-
def get_module
|
22
|
-
def get_module_foo
|
23
|
-
def get_interface
|
24
|
-
def get_interface_foo
|
21
|
+
def get_module: -> M
|
22
|
+
def get_module_foo: -> Integer
|
23
|
+
def get_interface: -> _I
|
24
|
+
def get_interface_foo: -> Integer
|
25
25
|
end
|
data/smoke/rbs-module.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
module Foo
|
2
|
+
class << self
|
3
|
+
def foo
|
4
|
+
end
|
5
|
+
|
6
|
+
def foo2
|
7
|
+
foo
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def bar
|
12
|
+
end
|
13
|
+
|
14
|
+
def bar2
|
15
|
+
bar
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
__END__
|
20
|
+
# Classes
|
21
|
+
module Foo
|
22
|
+
# def self.foo: -> Integer
|
23
|
+
# def bar: -> Integer
|
24
|
+
def self.foo2: -> Integer
|
25
|
+
def bar2: -> Integer
|
26
|
+
end
|