rigortype 0.0.8 → 0.0.9
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/README.md +195 -21
- data/data/builtins/ruby_core/encoding.yml +210 -0
- data/data/builtins/ruby_core/exception.yml +641 -0
- data/data/builtins/ruby_core/numeric.yml +3 -2
- data/data/builtins/ruby_core/proc.yml +731 -0
- data/data/builtins/ruby_core/random.yml +166 -0
- data/data/builtins/ruby_core/re.yml +689 -0
- data/data/builtins/ruby_core/struct.yml +449 -0
- data/lib/rigor/analysis/runner.rb +19 -3
- data/lib/rigor/builtins/imported_refinements.rb +6 -1
- data/lib/rigor/cache/rbs_class_ancestor_table.rb +63 -0
- data/lib/rigor/cache/rbs_class_type_param_names.rb +60 -0
- data/lib/rigor/cache/rbs_constant_table.rb +15 -51
- data/lib/rigor/cache/rbs_descriptor.rb +53 -0
- data/lib/rigor/cache/rbs_environment.rb +52 -0
- data/lib/rigor/cache/rbs_environment_marshal_patch.rb +40 -0
- data/lib/rigor/cache/rbs_known_class_names.rb +43 -0
- data/lib/rigor/cache/store.rb +79 -15
- data/lib/rigor/cli.rb +36 -4
- data/lib/rigor/environment/rbs_hierarchy.rb +18 -5
- data/lib/rigor/environment/rbs_loader.rb +137 -25
- data/lib/rigor/environment.rb +11 -2
- data/lib/rigor/flow_contribution.rb +128 -0
- data/lib/rigor/inference/builtins/encoding_catalog.rb +67 -0
- data/lib/rigor/inference/builtins/exception_catalog.rb +92 -0
- data/lib/rigor/inference/builtins/proc_catalog.rb +122 -0
- data/lib/rigor/inference/builtins/random_catalog.rb +58 -0
- data/lib/rigor/inference/builtins/re_catalog.rb +81 -0
- data/lib/rigor/inference/builtins/struct_catalog.rb +55 -0
- data/lib/rigor/inference/expression_typer.rb +26 -1
- data/lib/rigor/inference/method_dispatcher/constant_folding.rb +16 -1
- data/lib/rigor/inference/method_dispatcher/literal_string_folding.rb +87 -0
- data/lib/rigor/inference/method_dispatcher.rb +2 -0
- data/lib/rigor/inference/narrowing.rb +29 -14
- data/lib/rigor/rbs_extended.rb +55 -0
- data/lib/rigor/type/combinator.rb +72 -0
- data/lib/rigor/type/refined.rb +50 -2
- data/lib/rigor/version.rb +1 -1
- data/lib/rigor.rb +6 -0
- data/sig/rigor.rbs +3 -1
- metadata +21 -1
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# DO NOT EDIT — generated by tool/extract_builtin_catalog.rb
|
|
2
|
+
---
|
|
3
|
+
schema_version: 1
|
|
4
|
+
generated_from:
|
|
5
|
+
ruby_init_c: references/ruby/random.c
|
|
6
|
+
ruby_prelude:
|
|
7
|
+
rbs:
|
|
8
|
+
- references/rbs/core/random.rbs
|
|
9
|
+
purity_levels:
|
|
10
|
+
leaf: Prelude :leaf marker (VM-enforced) or C body uses no dispatch/yield/mutation.
|
|
11
|
+
trivial: Prelude method body is a literal return (self/true/false/nil/Integer).
|
|
12
|
+
leaf_when_numeric: C body falls through to rb_num_coerce_* only when an operand
|
|
13
|
+
is non-numeric; safe to fold when every argument is a concrete numeric.
|
|
14
|
+
inline_block: Prelude method carries :inline_block or :use_block; block-dependent.
|
|
15
|
+
block_dependent: C body yields or checks rb_block_given_p.
|
|
16
|
+
mutates_self: C body checks rb_check_frozen — typically a prelude to mutation.
|
|
17
|
+
dispatch: C body calls user-redefinable methods (rb_funcall*, rb_equal, rb_Float,
|
|
18
|
+
num_funcall*, etc).
|
|
19
|
+
unknown: C body not located in indexed C files.
|
|
20
|
+
classes:
|
|
21
|
+
Random:
|
|
22
|
+
parent: base
|
|
23
|
+
defined_at: references/ruby/random.c:1863
|
|
24
|
+
includes: []
|
|
25
|
+
constants: {}
|
|
26
|
+
aliases: {}
|
|
27
|
+
instance_methods:
|
|
28
|
+
initialize_copy:
|
|
29
|
+
source: c
|
|
30
|
+
cfunc: rand_mt_copy
|
|
31
|
+
arity: 1
|
|
32
|
+
defined_at: references/ruby/random.c:1870
|
|
33
|
+
c_body_at: references/ruby/random.c:829
|
|
34
|
+
c_effects: []
|
|
35
|
+
purity: leaf
|
|
36
|
+
rbs:
|
|
37
|
+
- "(self object) -> self"
|
|
38
|
+
rbs_at: references/rbs/core/random.rbs:176
|
|
39
|
+
"==":
|
|
40
|
+
source: c
|
|
41
|
+
cfunc: rand_mt_equal
|
|
42
|
+
arity: 1
|
|
43
|
+
defined_at: references/ruby/random.c:1875
|
|
44
|
+
c_body_at: references/ruby/random.c:1657
|
|
45
|
+
c_effects:
|
|
46
|
+
- dispatch
|
|
47
|
+
purity: dispatch
|
|
48
|
+
rbs:
|
|
49
|
+
- "(untyped arg0) -> bool"
|
|
50
|
+
rbs_at: references/rbs/core/random.rbs:71
|
|
51
|
+
initialize:
|
|
52
|
+
source: c
|
|
53
|
+
cfunc: random_init
|
|
54
|
+
arity: -1
|
|
55
|
+
defined_at: references/ruby/random.c:1878
|
|
56
|
+
c_body_at: references/ruby/random.c:413
|
|
57
|
+
c_effects:
|
|
58
|
+
- mutate
|
|
59
|
+
- dispatch
|
|
60
|
+
- raises
|
|
61
|
+
purity: mutates_self
|
|
62
|
+
rbs:
|
|
63
|
+
- "(?Integer seed) -> void"
|
|
64
|
+
rbs_at: references/rbs/core/random.rbs:36
|
|
65
|
+
rand:
|
|
66
|
+
source: c
|
|
67
|
+
cfunc: random_rand
|
|
68
|
+
arity: -1
|
|
69
|
+
defined_at: references/ruby/random.c:1879
|
|
70
|
+
c_body_at: references/ruby/random.c:1574
|
|
71
|
+
c_effects: []
|
|
72
|
+
purity: leaf
|
|
73
|
+
bytes:
|
|
74
|
+
source: c
|
|
75
|
+
cfunc: random_bytes
|
|
76
|
+
arity: 1
|
|
77
|
+
defined_at: references/ruby/random.c:1880
|
|
78
|
+
c_body_at: references/ruby/random.c:1302
|
|
79
|
+
c_effects:
|
|
80
|
+
- dispatch
|
|
81
|
+
purity: dispatch
|
|
82
|
+
seed:
|
|
83
|
+
source: c
|
|
84
|
+
cfunc: random_get_seed
|
|
85
|
+
arity: 0
|
|
86
|
+
defined_at: references/ruby/random.c:1881
|
|
87
|
+
c_body_at: references/ruby/random.c:822
|
|
88
|
+
c_effects: []
|
|
89
|
+
purity: leaf
|
|
90
|
+
rbs:
|
|
91
|
+
- "() -> Integer"
|
|
92
|
+
rbs_at: references/rbs/core/random.rbs:172
|
|
93
|
+
singleton_methods:
|
|
94
|
+
srand:
|
|
95
|
+
source: c
|
|
96
|
+
cfunc: rb_f_srand
|
|
97
|
+
arity: -1
|
|
98
|
+
defined_at: references/ruby/random.c:1884
|
|
99
|
+
c_body_at: references/ruby/random.c:985
|
|
100
|
+
c_effects:
|
|
101
|
+
- dispatch
|
|
102
|
+
purity: dispatch
|
|
103
|
+
rbs:
|
|
104
|
+
- "(?Integer number) -> Integer"
|
|
105
|
+
rbs_at: references/rbs/core/random.rbs:138
|
|
106
|
+
rand:
|
|
107
|
+
source: c
|
|
108
|
+
cfunc: random_s_rand
|
|
109
|
+
arity: -1
|
|
110
|
+
defined_at: references/ruby/random.c:1885
|
|
111
|
+
c_body_at: references/ruby/random.c:1731
|
|
112
|
+
c_effects: []
|
|
113
|
+
purity: leaf
|
|
114
|
+
rbs:
|
|
115
|
+
- "(?0) -> Float"
|
|
116
|
+
- "(Integer | ::Range[Integer] max) -> Integer"
|
|
117
|
+
- "(Float | ::Range[Float] max) -> Float"
|
|
118
|
+
- "[T < Numeric] (::Range[T]) -> T"
|
|
119
|
+
rbs_at: references/rbs/core/random.rbs:94
|
|
120
|
+
bytes:
|
|
121
|
+
source: c
|
|
122
|
+
cfunc: random_s_bytes
|
|
123
|
+
arity: 1
|
|
124
|
+
defined_at: references/ruby/random.c:1886
|
|
125
|
+
c_body_at: references/ruby/random.c:1348
|
|
126
|
+
c_effects:
|
|
127
|
+
- dispatch
|
|
128
|
+
purity: dispatch
|
|
129
|
+
rbs:
|
|
130
|
+
- "(Integer size) -> String"
|
|
131
|
+
rbs_at: references/rbs/core/random.rbs:45
|
|
132
|
+
seed:
|
|
133
|
+
source: c
|
|
134
|
+
cfunc: random_s_seed
|
|
135
|
+
arity: 0
|
|
136
|
+
defined_at: references/ruby/random.c:1887
|
|
137
|
+
c_body_at: references/ruby/random.c:1370
|
|
138
|
+
c_effects: []
|
|
139
|
+
purity: leaf
|
|
140
|
+
rbs:
|
|
141
|
+
- "() -> ::Integer"
|
|
142
|
+
rbs_at: references/rbs/core/random.rbs:114
|
|
143
|
+
new_seed:
|
|
144
|
+
source: c
|
|
145
|
+
cfunc: random_seed
|
|
146
|
+
arity: 0
|
|
147
|
+
defined_at: references/ruby/random.c:1888
|
|
148
|
+
c_body_at: references/ruby/random.c:771
|
|
149
|
+
c_effects: []
|
|
150
|
+
purity: leaf
|
|
151
|
+
rbs:
|
|
152
|
+
- "() -> Integer"
|
|
153
|
+
rbs_at: references/rbs/core/random.rbs:82
|
|
154
|
+
urandom:
|
|
155
|
+
source: c
|
|
156
|
+
cfunc: random_raw_seed
|
|
157
|
+
arity: 1
|
|
158
|
+
defined_at: references/ruby/random.c:1889
|
|
159
|
+
c_body_at: references/ruby/random.c:797
|
|
160
|
+
c_effects:
|
|
161
|
+
- raises
|
|
162
|
+
purity: leaf
|
|
163
|
+
rbs:
|
|
164
|
+
- "(Integer) -> String"
|
|
165
|
+
rbs_at: references/rbs/core/random.rbs:155
|
|
166
|
+
undefined: []
|