rigortype 0.0.7 → 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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +195 -21
  3. data/data/builtins/ruby_core/encoding.yml +210 -0
  4. data/data/builtins/ruby_core/exception.yml +641 -0
  5. data/data/builtins/ruby_core/numeric.yml +3 -2
  6. data/data/builtins/ruby_core/proc.yml +731 -0
  7. data/data/builtins/ruby_core/random.yml +166 -0
  8. data/data/builtins/ruby_core/re.yml +689 -0
  9. data/data/builtins/ruby_core/struct.yml +449 -0
  10. data/lib/rigor/analysis/diagnostic.rb +28 -2
  11. data/lib/rigor/analysis/runner.rb +19 -3
  12. data/lib/rigor/builtins/imported_refinements.rb +6 -1
  13. data/lib/rigor/cache/descriptor.rb +278 -0
  14. data/lib/rigor/cache/rbs_class_ancestor_table.rb +63 -0
  15. data/lib/rigor/cache/rbs_class_type_param_names.rb +60 -0
  16. data/lib/rigor/cache/rbs_constant_table.rb +47 -0
  17. data/lib/rigor/cache/rbs_descriptor.rb +53 -0
  18. data/lib/rigor/cache/rbs_environment.rb +52 -0
  19. data/lib/rigor/cache/rbs_environment_marshal_patch.rb +40 -0
  20. data/lib/rigor/cache/rbs_known_class_names.rb +43 -0
  21. data/lib/rigor/cache/store.rb +325 -0
  22. data/lib/rigor/cli.rb +88 -7
  23. data/lib/rigor/environment/rbs_hierarchy.rb +18 -5
  24. data/lib/rigor/environment/rbs_loader.rb +148 -25
  25. data/lib/rigor/environment.rb +11 -2
  26. data/lib/rigor/flow_contribution.rb +128 -0
  27. data/lib/rigor/inference/builtins/encoding_catalog.rb +67 -0
  28. data/lib/rigor/inference/builtins/exception_catalog.rb +92 -0
  29. data/lib/rigor/inference/builtins/proc_catalog.rb +122 -0
  30. data/lib/rigor/inference/builtins/random_catalog.rb +58 -0
  31. data/lib/rigor/inference/builtins/re_catalog.rb +81 -0
  32. data/lib/rigor/inference/builtins/struct_catalog.rb +55 -0
  33. data/lib/rigor/inference/expression_typer.rb +26 -1
  34. data/lib/rigor/inference/method_dispatcher/constant_folding.rb +16 -1
  35. data/lib/rigor/inference/method_dispatcher/literal_string_folding.rb +87 -0
  36. data/lib/rigor/inference/method_dispatcher.rb +2 -0
  37. data/lib/rigor/inference/narrowing.rb +29 -14
  38. data/lib/rigor/rbs_extended.rb +55 -0
  39. data/lib/rigor/type/combinator.rb +72 -0
  40. data/lib/rigor/type/refined.rb +50 -2
  41. data/lib/rigor/version.rb +1 -1
  42. data/lib/rigor.rb +9 -0
  43. data/sig/rigor.rbs +3 -1
  44. metadata +24 -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: []