cast_off 0.2.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 (58) hide show
  1. data/README +578 -0
  2. data/README.en +256 -0
  3. data/bin/CastOff +145 -0
  4. data/cast_off.gemspec +25 -0
  5. data/ext/cast_off/cast_off.c.rb +1386 -0
  6. data/ext/cast_off/cast_off.h +24 -0
  7. data/ext/cast_off/depend +70 -0
  8. data/ext/cast_off/extconf.rb +19 -0
  9. data/ext/cast_off/generated_c_include/inline_api.h +507 -0
  10. data/ext/cast_off/generated_c_include/iter_api.h +595 -0
  11. data/ext/cast_off/generated_c_include/unbox_api.h.rb +76 -0
  12. data/ext/cast_off/generated_c_include/vm_api.h +751 -0
  13. data/ext/cast_off/ruby_source/atomic.h +56 -0
  14. data/ext/cast_off/ruby_source/constant.h +34 -0
  15. data/ext/cast_off/ruby_source/debug.h +41 -0
  16. data/ext/cast_off/ruby_source/eval_intern.h +234 -0
  17. data/ext/cast_off/ruby_source/gc.h +98 -0
  18. data/ext/cast_off/ruby_source/id.h +175 -0
  19. data/ext/cast_off/ruby_source/insns.inc +179 -0
  20. data/ext/cast_off/ruby_source/insns_info.inc +695 -0
  21. data/ext/cast_off/ruby_source/internal.h +227 -0
  22. data/ext/cast_off/ruby_source/iseq.h +125 -0
  23. data/ext/cast_off/ruby_source/manual_update.h +135 -0
  24. data/ext/cast_off/ruby_source/method.h +105 -0
  25. data/ext/cast_off/ruby_source/node.h +503 -0
  26. data/ext/cast_off/ruby_source/thread_pthread.h +51 -0
  27. data/ext/cast_off/ruby_source/thread_win32.h +40 -0
  28. data/ext/cast_off/ruby_source/vm_core.h +756 -0
  29. data/ext/cast_off/ruby_source/vm_exec.h +184 -0
  30. data/ext/cast_off/ruby_source/vm_insnhelper.c +1748 -0
  31. data/ext/cast_off/ruby_source/vm_insnhelper.h +220 -0
  32. data/ext/cast_off/ruby_source/vm_opts.h +51 -0
  33. data/lib/cast_off.rb +15 -0
  34. data/lib/cast_off/compile.rb +629 -0
  35. data/lib/cast_off/compile/basicblock.rb +144 -0
  36. data/lib/cast_off/compile/cfg.rb +391 -0
  37. data/lib/cast_off/compile/code_manager.rb +284 -0
  38. data/lib/cast_off/compile/configuration.rb +2368 -0
  39. data/lib/cast_off/compile/dependency.rb +240 -0
  40. data/lib/cast_off/compile/information.rb +775 -0
  41. data/lib/cast_off/compile/instruction.rb +446 -0
  42. data/lib/cast_off/compile/ir/call_ir.rb +2348 -0
  43. data/lib/cast_off/compile/ir/guard_ir.rb +423 -0
  44. data/lib/cast_off/compile/ir/jump_ir.rb +223 -0
  45. data/lib/cast_off/compile/ir/operand.rb +934 -0
  46. data/lib/cast_off/compile/ir/param_ir.rb +98 -0
  47. data/lib/cast_off/compile/ir/return_ir.rb +92 -0
  48. data/lib/cast_off/compile/ir/simple_ir.rb +808 -0
  49. data/lib/cast_off/compile/ir/sub_ir.rb +212 -0
  50. data/lib/cast_off/compile/iseq.rb +454 -0
  51. data/lib/cast_off/compile/method_information.rb +1384 -0
  52. data/lib/cast_off/compile/namespace/namespace.rb +556 -0
  53. data/lib/cast_off/compile/namespace/uuid.rb +323 -0
  54. data/lib/cast_off/compile/stack.rb +65 -0
  55. data/lib/cast_off/compile/translator.rb +1562 -0
  56. data/lib/cast_off/suggestion.rb +98 -0
  57. data/lib/cast_off/util.rb +58 -0
  58. metadata +107 -0
@@ -0,0 +1,1384 @@
1
+ module CastOff
2
+ module Compiler
3
+ class MethodInformation
4
+ include CastOff::Util
5
+
6
+ attr_reader :method
7
+
8
+ InformationName = [
9
+ :destroy_reciever, :destroy_arguments, :escape_reciever, :escape_arguments, :side_effect
10
+ ]
11
+ def initialize(me, info)
12
+ @method = me
13
+ InformationName.each do |name|
14
+ instance_variable_set("@#{name}", true)
15
+ end
16
+ raise(ArgumentError.new("invalid information")) unless info.is_a?(Hash)
17
+ info.each do |(name, val)|
18
+ raise(ArgumentError.new("unknown information name #{name}")) unless InformationName.include?(name)
19
+ instance_variable_set("@#{name}", !!val)
20
+ end
21
+ end
22
+
23
+ InformationName.each do |name|
24
+ eval(<<-EOS)
25
+ def #{name}?
26
+ @#{name}
27
+ end
28
+ EOS
29
+ end
30
+
31
+ def ==(other)
32
+ eql?(other)
33
+ end
34
+
35
+ def eql?(other)
36
+ case other
37
+ when MethodInformation
38
+ ome = other.method
39
+ when MethodWrapper
40
+ ome = other
41
+ else
42
+ bug()
43
+ end
44
+ bug() unless @method.instance_of?(MethodWrapper)
45
+ bug() unless ome.instance_of?(MethodWrapper)
46
+ @method == ome
47
+ end
48
+
49
+ def hash()
50
+ bug() unless @method.instance_of?(MethodWrapper)
51
+ @method.hash
52
+ end
53
+
54
+ def self.use_builtin_library_information()
55
+ # ==
56
+ CastOff.set_method_information(BasicObject, :==, :class,
57
+ :destroy_reciever => false,
58
+ :destroy_arguments => false,
59
+ :escape_reciever => false,
60
+ :escape_arguments => false,
61
+ :side_effect => false)
62
+ CastOff.set_method_information(Module, :==, :class,
63
+ :destroy_reciever => false,
64
+ :destroy_arguments => false,
65
+ :escape_reciever => false,
66
+ :escape_arguments => false,
67
+ :side_effect => false)
68
+ CastOff.set_method_information(Comparable, :==, :module,
69
+ :destroy_reciever => false,
70
+ :destroy_arguments => false,
71
+ :escape_reciever => false,
72
+ :escape_arguments => false,
73
+ :side_effect => false)
74
+ CastOff.set_method_information(String, :==, :class,
75
+ :destroy_reciever => false,
76
+ :destroy_arguments => false,
77
+ :escape_reciever => false,
78
+ :escape_arguments => false,
79
+ :side_effect => false)
80
+ CastOff.set_method_information(Symbol, :==, :class,
81
+ :destroy_reciever => false,
82
+ :destroy_arguments => false,
83
+ :escape_reciever => false,
84
+ :escape_arguments => false,
85
+ :side_effect => false)
86
+ CastOff.set_method_information(Exception, :==, :class,
87
+ :destroy_reciever => false,
88
+ :destroy_arguments => false,
89
+ :escape_reciever => false,
90
+ :escape_arguments => false,
91
+ :side_effect => false)
92
+ CastOff.set_method_information(Fixnum, :==, :class,
93
+ :destroy_reciever => false,
94
+ :destroy_arguments => false,
95
+ :escape_reciever => false,
96
+ :escape_arguments => false,
97
+ :side_effect => false)
98
+ CastOff.set_method_information(Float, :==, :class,
99
+ :destroy_reciever => false,
100
+ :destroy_arguments => false,
101
+ :escape_reciever => false,
102
+ :escape_arguments => false,
103
+ :side_effect => false)
104
+ CastOff.set_method_information(Bignum, :==, :class,
105
+ :destroy_reciever => false,
106
+ :destroy_arguments => false,
107
+ :escape_reciever => false,
108
+ :escape_arguments => false,
109
+ :side_effect => false)
110
+ CastOff.set_method_information(Array, :==, :class,
111
+ :destroy_reciever => false,
112
+ :destroy_arguments => false,
113
+ :escape_reciever => false,
114
+ :escape_arguments => false,
115
+ :side_effect => false)
116
+ CastOff.set_method_information(Hash, :==, :class,
117
+ :destroy_reciever => false,
118
+ :destroy_arguments => false,
119
+ :escape_reciever => false,
120
+ :escape_arguments => false,
121
+ :side_effect => false)
122
+ CastOff.set_method_information(Regexp, :==, :class,
123
+ :destroy_reciever => false,
124
+ :destroy_arguments => false,
125
+ :escape_reciever => false,
126
+ :escape_arguments => false,
127
+ :side_effect => false)
128
+ CastOff.set_method_information(MatchData, :==, :class,
129
+ :destroy_reciever => false,
130
+ :destroy_arguments => false,
131
+ :escape_reciever => false,
132
+ :escape_arguments => false,
133
+ :side_effect => false)
134
+ CastOff.set_method_information(Range, :==, :class,
135
+ :destroy_reciever => false,
136
+ :destroy_arguments => false,
137
+ :escape_reciever => false,
138
+ :escape_arguments => false,
139
+ :side_effect => false)
140
+ CastOff.set_method_information(Random, :==, :class,
141
+ :destroy_reciever => false,
142
+ :destroy_arguments => false,
143
+ :escape_reciever => false,
144
+ :escape_arguments => false,
145
+ :side_effect => false)
146
+ CastOff.set_method_information(Rational, :==, :class,
147
+ :destroy_reciever => false,
148
+ :destroy_arguments => false,
149
+ :escape_reciever => false,
150
+ :escape_arguments => false,
151
+ :side_effect => false)
152
+ CastOff.set_method_information(Complex, :==, :class,
153
+ :destroy_reciever => false,
154
+ :destroy_arguments => false,
155
+ :escape_reciever => false,
156
+ :escape_arguments => false,
157
+ :side_effect => false)
158
+
159
+ # ===
160
+ CastOff.set_method_information(Kernel, :===, :module,
161
+ :destroy_reciever => false,
162
+ :destroy_arguments => false,
163
+ :escape_reciever => false,
164
+ :escape_arguments => false,
165
+ :side_effect => false)
166
+ CastOff.set_method_information(Module, :===, :class,
167
+ :destroy_reciever => false,
168
+ :destroy_arguments => false,
169
+ :escape_reciever => false,
170
+ :escape_arguments => false,
171
+ :side_effect => false)
172
+ CastOff.set_method_information(String, :===, :class,
173
+ :destroy_reciever => false,
174
+ :destroy_arguments => false,
175
+ :escape_reciever => false,
176
+ :escape_arguments => false,
177
+ :side_effect => false)
178
+ CastOff.set_method_information(Symbol, :===, :class,
179
+ :destroy_reciever => false,
180
+ :destroy_arguments => false,
181
+ :escape_reciever => false,
182
+ :escape_arguments => false,
183
+ :side_effect => false)
184
+ CastOff.set_method_information(Fixnum, :===, :class,
185
+ :destroy_reciever => false,
186
+ :destroy_arguments => false,
187
+ :escape_reciever => false,
188
+ :escape_arguments => false,
189
+ :side_effect => false)
190
+ CastOff.set_method_information(Float, :===, :class,
191
+ :destroy_reciever => false,
192
+ :destroy_arguments => false,
193
+ :escape_reciever => false,
194
+ :escape_arguments => false,
195
+ :side_effect => false)
196
+ CastOff.set_method_information(Bignum, :===, :class,
197
+ :destroy_reciever => false,
198
+ :destroy_arguments => false,
199
+ :escape_reciever => false,
200
+ :escape_arguments => false,
201
+ :side_effect => false)
202
+ CastOff.set_method_information(Regexp, :===, :class,
203
+ :destroy_reciever => false,
204
+ :destroy_arguments => false,
205
+ :escape_reciever => true,
206
+ :escape_arguments => false,
207
+ :side_effect => true)
208
+ CastOff.set_method_information(Range, :===, :class,
209
+ :destroy_reciever => false,
210
+ :destroy_arguments => false,
211
+ :escape_reciever => false,
212
+ :escape_arguments => false,
213
+ :side_effect => false)
214
+
215
+ # eql?
216
+ CastOff.set_method_information(Kernel, :eql?, :module,
217
+ :destroy_reciever => false,
218
+ :destroy_arguments => false,
219
+ :escape_reciever => false,
220
+ :escape_arguments => false,
221
+ :side_effect => false)
222
+ CastOff.set_method_information(String, :eql?, :class,
223
+ :destroy_reciever => false,
224
+ :destroy_arguments => false,
225
+ :escape_reciever => false,
226
+ :escape_arguments => false,
227
+ :side_effect => false)
228
+ CastOff.set_method_information(Numeric, :eql?, :class,
229
+ :destroy_reciever => false,
230
+ :destroy_arguments => false,
231
+ :escape_reciever => false,
232
+ :escape_arguments => false,
233
+ :side_effect => false)
234
+ CastOff.set_method_information(Float, :eql?, :class,
235
+ :destroy_reciever => false,
236
+ :destroy_arguments => false,
237
+ :escape_reciever => false,
238
+ :escape_arguments => false,
239
+ :side_effect => false)
240
+ CastOff.set_method_information(Bignum, :eql?, :class,
241
+ :destroy_reciever => false,
242
+ :destroy_arguments => false,
243
+ :escape_reciever => false,
244
+ :escape_arguments => false,
245
+ :side_effect => false)
246
+ CastOff.set_method_information(Array, :eql?, :class,
247
+ :destroy_reciever => false,
248
+ :destroy_arguments => false,
249
+ :escape_reciever => false,
250
+ :escape_arguments => false,
251
+ :side_effect => false)
252
+ CastOff.set_method_information(Hash, :eql?, :class,
253
+ :destroy_reciever => false,
254
+ :destroy_arguments => false,
255
+ :escape_reciever => false,
256
+ :escape_arguments => false,
257
+ :side_effect => false)
258
+ CastOff.set_method_information(Regexp, :eql?, :class,
259
+ :destroy_reciever => false,
260
+ :destroy_arguments => false,
261
+ :escape_reciever => false,
262
+ :escape_arguments => false,
263
+ :side_effect => false)
264
+ CastOff.set_method_information(MatchData, :eql?, :class,
265
+ :destroy_reciever => false,
266
+ :destroy_arguments => false,
267
+ :escape_reciever => false,
268
+ :escape_arguments => false,
269
+ :side_effect => false)
270
+ CastOff.set_method_information(Range, :eql?, :class,
271
+ :destroy_reciever => false,
272
+ :destroy_arguments => false,
273
+ :escape_reciever => false,
274
+ :escape_arguments => false,
275
+ :side_effect => false)
276
+ CastOff.set_method_information(Time, :eql?, :class,
277
+ :destroy_reciever => false,
278
+ :destroy_arguments => false,
279
+ :escape_reciever => false,
280
+ :escape_arguments => false,
281
+ :side_effect => false)
282
+ CastOff.set_method_information(Complex, :eql?, :class,
283
+ :destroy_reciever => false,
284
+ :destroy_arguments => false,
285
+ :escape_reciever => false,
286
+ :escape_arguments => false,
287
+ :side_effect => false)
288
+
289
+ # equal?
290
+ CastOff.set_method_information(BasicObject, :equal?, :class,
291
+ :destroy_reciever => false,
292
+ :destroy_arguments => false,
293
+ :escape_reciever => false,
294
+ :escape_arguments => false,
295
+ :side_effect => false)
296
+
297
+ # !=
298
+ CastOff.set_method_information(BasicObject, :!=, :class,
299
+ :destroy_reciever => false,
300
+ :destroy_arguments => false,
301
+ :escape_reciever => false,
302
+ :escape_arguments => false,
303
+ :side_effect => false)
304
+
305
+ # !
306
+ CastOff.set_method_information(BasicObject, :!, :class,
307
+ :destroy_reciever => false,
308
+ :destroy_arguments => false,
309
+ :escape_reciever => false,
310
+ :escape_arguments => false,
311
+ :side_effect => false)
312
+
313
+ # +
314
+ CastOff.set_method_information(String, :+, :class,
315
+ :destroy_reciever => false,
316
+ :destroy_arguments => false,
317
+ :escape_reciever => false,
318
+ :escape_arguments => false,
319
+ :side_effect => false)
320
+ CastOff.set_method_information(Fixnum, :+, :class,
321
+ :destroy_reciever => false,
322
+ :destroy_arguments => false,
323
+ :escape_reciever => false,
324
+ :escape_arguments => false,
325
+ :side_effect => false)
326
+ CastOff.set_method_information(Float, :+, :class,
327
+ :destroy_reciever => false,
328
+ :destroy_arguments => false,
329
+ :escape_reciever => false,
330
+ :escape_arguments => false,
331
+ :side_effect => false)
332
+ CastOff.set_method_information(Bignum, :+, :class,
333
+ :destroy_reciever => false,
334
+ :destroy_arguments => false,
335
+ :escape_reciever => false,
336
+ :escape_arguments => false,
337
+ :side_effect => false)
338
+ CastOff.set_method_information(Array, :+, :class,
339
+ :destroy_reciever => false,
340
+ :destroy_arguments => false,
341
+ :escape_reciever => false,
342
+ :escape_arguments => false,
343
+ :side_effect => false)
344
+ CastOff.set_method_information(Time, :+, :class,
345
+ :destroy_reciever => false,
346
+ :destroy_arguments => false,
347
+ :escape_reciever => false,
348
+ :escape_arguments => false,
349
+ :side_effect => false)
350
+ CastOff.set_method_information(Rational, :+, :class,
351
+ :destroy_reciever => false,
352
+ :destroy_arguments => false,
353
+ :escape_reciever => false,
354
+ :escape_arguments => false,
355
+ :side_effect => false)
356
+ CastOff.set_method_information(Complex, :+, :class,
357
+ :destroy_reciever => false,
358
+ :destroy_arguments => false,
359
+ :escape_reciever => false,
360
+ :escape_arguments => false,
361
+ :side_effect => false)
362
+
363
+ # -
364
+ CastOff.set_method_information(Fixnum, :-, :class,
365
+ :destroy_reciever => false,
366
+ :destroy_arguments => false,
367
+ :escape_reciever => false,
368
+ :escape_arguments => false,
369
+ :side_effect => false)
370
+ CastOff.set_method_information(Float, :-, :class,
371
+ :destroy_reciever => false,
372
+ :destroy_arguments => false,
373
+ :escape_reciever => false,
374
+ :escape_arguments => false,
375
+ :side_effect => false)
376
+ CastOff.set_method_information(Bignum, :-, :class,
377
+ :destroy_reciever => false,
378
+ :destroy_arguments => false,
379
+ :escape_reciever => false,
380
+ :escape_arguments => false,
381
+ :side_effect => false)
382
+ CastOff.set_method_information(Array, :-, :class,
383
+ :destroy_reciever => false,
384
+ :destroy_arguments => false,
385
+ :escape_reciever => false,
386
+ :escape_arguments => false,
387
+ :side_effect => false)
388
+ CastOff.set_method_information(Time, :-, :class,
389
+ :destroy_reciever => false,
390
+ :destroy_arguments => false,
391
+ :escape_reciever => false,
392
+ :escape_arguments => false,
393
+ :side_effect => false)
394
+ CastOff.set_method_information(Rational, :-, :class,
395
+ :destroy_reciever => false,
396
+ :destroy_arguments => false,
397
+ :escape_reciever => false,
398
+ :escape_arguments => false,
399
+ :side_effect => false)
400
+ CastOff.set_method_information(Complex, :-, :class,
401
+ :destroy_reciever => false,
402
+ :destroy_arguments => false,
403
+ :escape_reciever => false,
404
+ :escape_arguments => false,
405
+ :side_effect => false)
406
+
407
+ # *
408
+ CastOff.set_method_information(String, :*, :class,
409
+ :destroy_reciever => false,
410
+ :destroy_arguments => false,
411
+ :escape_reciever => false,
412
+ :escape_arguments => false,
413
+ :side_effect => false)
414
+ CastOff.set_method_information(Fixnum, :*, :class,
415
+ :destroy_reciever => false,
416
+ :destroy_arguments => false,
417
+ :escape_reciever => false,
418
+ :escape_arguments => false,
419
+ :side_effect => false)
420
+ CastOff.set_method_information(Float, :*, :class,
421
+ :destroy_reciever => false,
422
+ :destroy_arguments => false,
423
+ :escape_reciever => false,
424
+ :escape_arguments => false,
425
+ :side_effect => false)
426
+ CastOff.set_method_information(Bignum, :*, :class,
427
+ :destroy_reciever => false,
428
+ :destroy_arguments => false,
429
+ :escape_reciever => false,
430
+ :escape_arguments => false,
431
+ :side_effect => false)
432
+ CastOff.set_method_information(Array, :*, :class,
433
+ :destroy_reciever => false,
434
+ :destroy_arguments => false,
435
+ :escape_reciever => false,
436
+ :escape_arguments => false,
437
+ :side_effect => false)
438
+ CastOff.set_method_information(Rational, :*, :class,
439
+ :destroy_reciever => false,
440
+ :destroy_arguments => false,
441
+ :escape_reciever => false,
442
+ :escape_arguments => false,
443
+ :side_effect => false)
444
+ CastOff.set_method_information(Complex, :*, :class,
445
+ :destroy_reciever => false,
446
+ :destroy_arguments => false,
447
+ :escape_reciever => false,
448
+ :escape_arguments => false,
449
+ :side_effect => false)
450
+
451
+ # /
452
+ CastOff.set_method_information(Fixnum, :/, :class,
453
+ :destroy_reciever => false,
454
+ :destroy_arguments => false,
455
+ :escape_reciever => false,
456
+ :escape_arguments => false,
457
+ :side_effect => false)
458
+ CastOff.set_method_information(Float, :/, :class,
459
+ :destroy_reciever => false,
460
+ :destroy_arguments => false,
461
+ :escape_reciever => false,
462
+ :escape_arguments => false,
463
+ :side_effect => false)
464
+ CastOff.set_method_information(Bignum, :/, :class,
465
+ :destroy_reciever => false,
466
+ :destroy_arguments => false,
467
+ :escape_reciever => false,
468
+ :escape_arguments => false,
469
+ :side_effect => false)
470
+ CastOff.set_method_information(Rational, :/, :class,
471
+ :destroy_reciever => false,
472
+ :destroy_arguments => false,
473
+ :escape_reciever => false,
474
+ :escape_arguments => false,
475
+ :side_effect => false)
476
+ CastOff.set_method_information(Complex, :/, :class,
477
+ :destroy_reciever => false,
478
+ :destroy_arguments => false,
479
+ :escape_reciever => false,
480
+ :escape_arguments => false,
481
+ :side_effect => false)
482
+
483
+ # %
484
+ CastOff.set_method_information(String, :%, :class,
485
+ :destroy_reciever => false,
486
+ :destroy_arguments => false,
487
+ :escape_reciever => false,
488
+ :escape_arguments => false,
489
+ :side_effect => false)
490
+ CastOff.set_method_information(Numeric, :%, :class,
491
+ :destroy_reciever => false,
492
+ :destroy_arguments => false,
493
+ :escape_reciever => false,
494
+ :escape_arguments => false,
495
+ :side_effect => false)
496
+ CastOff.set_method_information(Fixnum, :%, :class,
497
+ :destroy_reciever => false,
498
+ :destroy_arguments => false,
499
+ :escape_reciever => false,
500
+ :escape_arguments => false,
501
+ :side_effect => false)
502
+ CastOff.set_method_information(Float, :%, :class,
503
+ :destroy_reciever => false,
504
+ :destroy_arguments => false,
505
+ :escape_reciever => false,
506
+ :escape_arguments => false,
507
+ :side_effect => false)
508
+ CastOff.set_method_information(Bignum, :%, :class,
509
+ :destroy_reciever => false,
510
+ :destroy_arguments => false,
511
+ :escape_reciever => false,
512
+ :escape_arguments => false,
513
+ :side_effect => false)
514
+
515
+ # |
516
+ CastOff.set_method_information(NilClass, :|, :class,
517
+ :destroy_reciever => false,
518
+ :destroy_arguments => false,
519
+ :escape_reciever => false,
520
+ :escape_arguments => false,
521
+ :side_effect => false)
522
+ CastOff.set_method_information(TrueClass, :|, :class,
523
+ :destroy_reciever => false,
524
+ :destroy_arguments => false,
525
+ :escape_reciever => false,
526
+ :escape_arguments => false,
527
+ :side_effect => false)
528
+ CastOff.set_method_information(FalseClass, :|, :class,
529
+ :destroy_reciever => false,
530
+ :destroy_arguments => false,
531
+ :escape_reciever => false,
532
+ :escape_arguments => false,
533
+ :side_effect => false)
534
+ CastOff.set_method_information(Fixnum, :|, :class,
535
+ :destroy_reciever => false,
536
+ :destroy_arguments => false,
537
+ :escape_reciever => false,
538
+ :escape_arguments => false,
539
+ :side_effect => false)
540
+ CastOff.set_method_information(Bignum, :|, :class,
541
+ :destroy_reciever => false,
542
+ :destroy_arguments => false,
543
+ :escape_reciever => false,
544
+ :escape_arguments => false,
545
+ :side_effect => false)
546
+ CastOff.set_method_information(Array, :|, :class,
547
+ :destroy_reciever => false,
548
+ :destroy_arguments => false,
549
+ :escape_reciever => false,
550
+ :escape_arguments => false,
551
+ :side_effect => false)
552
+
553
+ # &
554
+ CastOff.set_method_information(NilClass, :&, :class,
555
+ :destroy_reciever => false,
556
+ :destroy_arguments => false,
557
+ :escape_reciever => false,
558
+ :escape_arguments => false,
559
+ :side_effect => false)
560
+ CastOff.set_method_information(TrueClass, :&, :class,
561
+ :destroy_reciever => false,
562
+ :destroy_arguments => false,
563
+ :escape_reciever => false,
564
+ :escape_arguments => false,
565
+ :side_effect => false)
566
+ CastOff.set_method_information(FalseClass, :&, :class,
567
+ :destroy_reciever => false,
568
+ :destroy_arguments => false,
569
+ :escape_reciever => false,
570
+ :escape_arguments => false,
571
+ :side_effect => false)
572
+ CastOff.set_method_information(Fixnum, :&, :class,
573
+ :destroy_reciever => false,
574
+ :destroy_arguments => false,
575
+ :escape_reciever => false,
576
+ :escape_arguments => false,
577
+ :side_effect => false)
578
+ CastOff.set_method_information(Bignum, :&, :class,
579
+ :destroy_reciever => false,
580
+ :destroy_arguments => false,
581
+ :escape_reciever => false,
582
+ :escape_arguments => false,
583
+ :side_effect => false)
584
+ CastOff.set_method_information(Array, :&, :class,
585
+ :destroy_reciever => false,
586
+ :destroy_arguments => false,
587
+ :escape_reciever => false,
588
+ :escape_arguments => false,
589
+ :side_effect => false)
590
+
591
+ # <=>
592
+ CastOff.set_method_information(Kernel, :<=>, :module,
593
+ :destroy_reciever => false,
594
+ :destroy_arguments => false,
595
+ :escape_reciever => false,
596
+ :escape_arguments => false,
597
+ :side_effect => false)
598
+ CastOff.set_method_information(Module, :<=>, :class,
599
+ :destroy_reciever => false,
600
+ :destroy_arguments => false,
601
+ :escape_reciever => false,
602
+ :escape_arguments => false,
603
+ :side_effect => false)
604
+ CastOff.set_method_information(String, :<=>, :class,
605
+ :destroy_reciever => false,
606
+ :destroy_arguments => false,
607
+ :escape_reciever => false,
608
+ :escape_arguments => false,
609
+ :side_effect => false)
610
+ CastOff.set_method_information(Symbol, :<=>, :class,
611
+ :destroy_reciever => false,
612
+ :destroy_arguments => false,
613
+ :escape_reciever => false,
614
+ :escape_arguments => false,
615
+ :side_effect => false)
616
+ CastOff.set_method_information(Numeric, :<=>, :class,
617
+ :destroy_reciever => false,
618
+ :destroy_arguments => false,
619
+ :escape_reciever => false,
620
+ :escape_arguments => false,
621
+ :side_effect => false)
622
+ CastOff.set_method_information(Fixnum, :<=>, :class,
623
+ :destroy_reciever => false,
624
+ :destroy_arguments => false,
625
+ :escape_reciever => false,
626
+ :escape_arguments => false,
627
+ :side_effect => false)
628
+ CastOff.set_method_information(Float, :<=>, :class,
629
+ :destroy_reciever => false,
630
+ :destroy_arguments => false,
631
+ :escape_reciever => false,
632
+ :escape_arguments => false,
633
+ :side_effect => false)
634
+ CastOff.set_method_information(Bignum, :<=>, :class,
635
+ :destroy_reciever => false,
636
+ :destroy_arguments => false,
637
+ :escape_reciever => false,
638
+ :escape_arguments => false,
639
+ :side_effect => false)
640
+ CastOff.set_method_information(Array, :<=>, :class,
641
+ :destroy_reciever => false,
642
+ :destroy_arguments => false,
643
+ :escape_reciever => false,
644
+ :escape_arguments => false,
645
+ :side_effect => false)
646
+ CastOff.set_method_information(File::Stat, :<=>, :class,
647
+ :destroy_reciever => false,
648
+ :destroy_arguments => false,
649
+ :escape_reciever => false,
650
+ :escape_arguments => false,
651
+ :side_effect => false)
652
+ CastOff.set_method_information(Time, :<=>, :class,
653
+ :destroy_reciever => false,
654
+ :destroy_arguments => false,
655
+ :escape_reciever => false,
656
+ :escape_arguments => false,
657
+ :side_effect => false)
658
+ CastOff.set_method_information(Rational, :<=>, :class,
659
+ :destroy_reciever => false,
660
+ :destroy_arguments => false,
661
+ :escape_reciever => false,
662
+ :escape_arguments => false,
663
+ :side_effect => false)
664
+
665
+ # >
666
+ CastOff.set_method_information(Module, :>, :class,
667
+ :destroy_reciever => false,
668
+ :destroy_arguments => false,
669
+ :escape_reciever => false,
670
+ :escape_arguments => false,
671
+ :side_effect => false)
672
+ CastOff.set_method_information(Comparable, :>, :module,
673
+ :destroy_reciever => false,
674
+ :destroy_arguments => false,
675
+ :escape_reciever => false,
676
+ :escape_arguments => false,
677
+ :side_effect => false)
678
+ CastOff.set_method_information(Fixnum, :>, :class,
679
+ :destroy_reciever => false,
680
+ :destroy_arguments => false,
681
+ :escape_reciever => false,
682
+ :escape_arguments => false,
683
+ :side_effect => false)
684
+ CastOff.set_method_information(Float, :>, :class,
685
+ :destroy_reciever => false,
686
+ :destroy_arguments => false,
687
+ :escape_reciever => false,
688
+ :escape_arguments => false,
689
+ :side_effect => false)
690
+ CastOff.set_method_information(Bignum, :>, :class,
691
+ :destroy_reciever => false,
692
+ :destroy_arguments => false,
693
+ :escape_reciever => false,
694
+ :escape_arguments => false,
695
+ :side_effect => false)
696
+
697
+ # >=
698
+ CastOff.set_method_information(Module, :>=, :class,
699
+ :destroy_reciever => false,
700
+ :destroy_arguments => false,
701
+ :escape_reciever => false,
702
+ :escape_arguments => false,
703
+ :side_effect => false)
704
+ CastOff.set_method_information(Comparable, :>=, :module,
705
+ :destroy_reciever => false,
706
+ :destroy_arguments => false,
707
+ :escape_reciever => false,
708
+ :escape_arguments => false,
709
+ :side_effect => false)
710
+ CastOff.set_method_information(Fixnum, :>=, :class,
711
+ :destroy_reciever => false,
712
+ :destroy_arguments => false,
713
+ :escape_reciever => false,
714
+ :escape_arguments => false,
715
+ :side_effect => false)
716
+ CastOff.set_method_information(Float, :>=, :class,
717
+ :destroy_reciever => false,
718
+ :destroy_arguments => false,
719
+ :escape_reciever => false,
720
+ :escape_arguments => false,
721
+ :side_effect => false)
722
+ CastOff.set_method_information(Bignum, :>=, :class,
723
+ :destroy_reciever => false,
724
+ :destroy_arguments => false,
725
+ :escape_reciever => false,
726
+ :escape_arguments => false,
727
+ :side_effect => false)
728
+
729
+ # <
730
+ CastOff.set_method_information(Module, :<, :class,
731
+ :destroy_reciever => false,
732
+ :destroy_arguments => false,
733
+ :escape_reciever => false,
734
+ :escape_arguments => false,
735
+ :side_effect => false)
736
+ CastOff.set_method_information(Comparable, :<, :module,
737
+ :destroy_reciever => false,
738
+ :destroy_arguments => false,
739
+ :escape_reciever => false,
740
+ :escape_arguments => false,
741
+ :side_effect => false)
742
+ CastOff.set_method_information(Fixnum, :<, :class,
743
+ :destroy_reciever => false,
744
+ :destroy_arguments => false,
745
+ :escape_reciever => false,
746
+ :escape_arguments => false,
747
+ :side_effect => false)
748
+ CastOff.set_method_information(Float, :<, :class,
749
+ :destroy_reciever => false,
750
+ :destroy_arguments => false,
751
+ :escape_reciever => false,
752
+ :escape_arguments => false,
753
+ :side_effect => false)
754
+ CastOff.set_method_information(Bignum, :<, :class,
755
+ :destroy_reciever => false,
756
+ :destroy_arguments => false,
757
+ :escape_reciever => false,
758
+ :escape_arguments => false,
759
+ :side_effect => false)
760
+
761
+ # <=
762
+ CastOff.set_method_information(Module, :<=, :class,
763
+ :destroy_reciever => false,
764
+ :destroy_arguments => false,
765
+ :escape_reciever => false,
766
+ :escape_arguments => false,
767
+ :side_effect => false)
768
+ CastOff.set_method_information(Comparable, :<=, :module,
769
+ :destroy_reciever => false,
770
+ :destroy_arguments => false,
771
+ :escape_reciever => false,
772
+ :escape_arguments => false,
773
+ :side_effect => false)
774
+ CastOff.set_method_information(Fixnum, :<=, :class,
775
+ :destroy_reciever => false,
776
+ :destroy_arguments => false,
777
+ :escape_reciever => false,
778
+ :escape_arguments => false,
779
+ :side_effect => false)
780
+ CastOff.set_method_information(Float, :<=, :class,
781
+ :destroy_reciever => false,
782
+ :destroy_arguments => false,
783
+ :escape_reciever => false,
784
+ :escape_arguments => false,
785
+ :side_effect => false)
786
+ CastOff.set_method_information(Bignum, :<=, :class,
787
+ :destroy_reciever => false,
788
+ :destroy_arguments => false,
789
+ :escape_reciever => false,
790
+ :escape_arguments => false,
791
+ :side_effect => false)
792
+
793
+ # nil?
794
+ CastOff.set_method_information(Kernel, :nil?, :module,
795
+ :destroy_reciever => false,
796
+ :destroy_arguments => false,
797
+ :escape_reciever => false,
798
+ :escape_arguments => false,
799
+ :side_effect => false)
800
+ CastOff.set_method_information(NilClass, :nil?, :class,
801
+ :destroy_reciever => false,
802
+ :destroy_arguments => false,
803
+ :escape_reciever => false,
804
+ :escape_arguments => false,
805
+ :side_effect => false)
806
+
807
+ # to_s
808
+ CastOff.set_method_information(Kernel, :to_s, :module,
809
+ :destroy_reciever => false,
810
+ :destroy_arguments => false,
811
+ :escape_reciever => false,
812
+ :escape_arguments => false,
813
+ :side_effect => false)
814
+ CastOff.set_method_information(NilClass, :to_s, :class,
815
+ :destroy_reciever => false,
816
+ :destroy_arguments => false,
817
+ :escape_reciever => false,
818
+ :escape_arguments => false,
819
+ :side_effect => false)
820
+ CastOff.set_method_information(Module, :to_s, :class,
821
+ :destroy_reciever => false,
822
+ :destroy_arguments => false,
823
+ :escape_reciever => false,
824
+ :escape_arguments => false,
825
+ :side_effect => false)
826
+ CastOff.set_method_information(TrueClass, :to_s, :class,
827
+ :destroy_reciever => false,
828
+ :destroy_arguments => false,
829
+ :escape_reciever => false,
830
+ :escape_arguments => false,
831
+ :side_effect => false)
832
+ CastOff.set_method_information(FalseClass, :to_s, :class,
833
+ :destroy_reciever => false,
834
+ :destroy_arguments => false,
835
+ :escape_reciever => false,
836
+ :escape_arguments => false,
837
+ :side_effect => false)
838
+ CastOff.set_method_information(Encoding, :to_s, :class,
839
+ :destroy_reciever => false,
840
+ :destroy_arguments => false,
841
+ :escape_reciever => false,
842
+ :escape_arguments => false,
843
+ :side_effect => false)
844
+ CastOff.set_method_information(String, :to_s, :class,
845
+ :destroy_reciever => false,
846
+ :destroy_arguments => false,
847
+ :escape_reciever => true,
848
+ :escape_arguments => false,
849
+ :side_effect => false)
850
+ CastOff.set_method_information(Symbol, :to_s, :class,
851
+ :destroy_reciever => false,
852
+ :destroy_arguments => false,
853
+ :escape_reciever => false,
854
+ :escape_arguments => false,
855
+ :side_effect => false)
856
+ CastOff.set_method_information(Exception, :to_s, :class,
857
+ :destroy_reciever => false,
858
+ :destroy_arguments => false,
859
+ :escape_reciever => false,
860
+ :escape_arguments => false,
861
+ :side_effect => false)
862
+ CastOff.set_method_information(Fixnum, :to_s, :class,
863
+ :destroy_reciever => false,
864
+ :destroy_arguments => false,
865
+ :escape_reciever => false,
866
+ :escape_arguments => false,
867
+ :side_effect => false)
868
+ CastOff.set_method_information(Float, :to_s, :class,
869
+ :destroy_reciever => false,
870
+ :destroy_arguments => false,
871
+ :escape_reciever => false,
872
+ :escape_arguments => false,
873
+ :side_effect => false)
874
+ CastOff.set_method_information(Bignum, :to_s, :class,
875
+ :destroy_reciever => false,
876
+ :destroy_arguments => false,
877
+ :escape_reciever => false,
878
+ :escape_arguments => false,
879
+ :side_effect => false)
880
+ CastOff.set_method_information(Regexp, :to_s, :class,
881
+ :destroy_reciever => false,
882
+ :destroy_arguments => false,
883
+ :escape_reciever => false,
884
+ :escape_arguments => false,
885
+ :side_effect => false)
886
+ CastOff.set_method_information(MatchData, :to_s, :class,
887
+ :destroy_reciever => false,
888
+ :destroy_arguments => false,
889
+ :escape_reciever => false,
890
+ :escape_arguments => false,
891
+ :side_effect => false)
892
+ CastOff.set_method_information(Range, :to_s, :class,
893
+ :destroy_reciever => false,
894
+ :destroy_arguments => false,
895
+ :escape_reciever => false,
896
+ :escape_arguments => false,
897
+ :side_effect => false)
898
+ CastOff.set_method_information(Time, :to_s, :class,
899
+ :destroy_reciever => false,
900
+ :destroy_arguments => false,
901
+ :escape_reciever => false,
902
+ :escape_arguments => false,
903
+ :side_effect => false)
904
+ CastOff.set_method_information(Rational, :to_s, :class,
905
+ :destroy_reciever => false,
906
+ :destroy_arguments => false,
907
+ :escape_reciever => false,
908
+ :escape_arguments => false,
909
+ :side_effect => false)
910
+ CastOff.set_method_information(Complex, :to_s, :class,
911
+ :destroy_reciever => false,
912
+ :destroy_arguments => false,
913
+ :escape_reciever => false,
914
+ :escape_arguments => false,
915
+ :side_effect => false)
916
+
917
+ # <<
918
+ CastOff.set_method_information(String, :<<, :class,
919
+ :destroy_reciever => true,
920
+ :destroy_arguments => false,
921
+ :escape_reciever => true,
922
+ :escape_arguments => false,
923
+ :side_effect => true)
924
+ CastOff.set_method_information(Fixnum, :<<, :class,
925
+ :destroy_reciever => false,
926
+ :destroy_arguments => false,
927
+ :escape_reciever => false,
928
+ :escape_arguments => false,
929
+ :side_effect => false)
930
+ CastOff.set_method_information(Bignum, :<<, :class,
931
+ :destroy_reciever => false,
932
+ :destroy_arguments => false,
933
+ :escape_reciever => false,
934
+ :escape_arguments => false,
935
+ :side_effect => false)
936
+ CastOff.set_method_information(Array, :<<, :class,
937
+ :destroy_reciever => true,
938
+ :destroy_arguments => false,
939
+ :escape_reciever => true,
940
+ :escape_arguments => true,
941
+ :side_effect => true)
942
+
943
+ # []
944
+ CastOff.set_method_information(String, :[], :class,
945
+ :destroy_reciever => false,
946
+ :destroy_arguments => false,
947
+ :escape_reciever => false,
948
+ :escape_arguments => false,
949
+ :side_effect => false)
950
+ CastOff.set_method_information(Symbol, :[], :class,
951
+ :destroy_reciever => false,
952
+ :destroy_arguments => false,
953
+ :escape_reciever => false,
954
+ :escape_arguments => false,
955
+ :side_effect => false)
956
+ CastOff.set_method_information(Fixnum, :[], :class,
957
+ :destroy_reciever => false,
958
+ :destroy_arguments => false,
959
+ :escape_reciever => false,
960
+ :escape_arguments => false,
961
+ :side_effect => false)
962
+ CastOff.set_method_information(Bignum, :[], :class,
963
+ :destroy_reciever => false,
964
+ :destroy_arguments => false,
965
+ :escape_reciever => false,
966
+ :escape_arguments => false,
967
+ :side_effect => false)
968
+ CastOff.set_method_information(Array, :[], :class,
969
+ :destroy_reciever => false,
970
+ :destroy_arguments => false,
971
+ :escape_reciever => false,
972
+ :escape_arguments => false,
973
+ :side_effect => false)
974
+ CastOff.set_method_information(Hash, :[], :class,
975
+ :destroy_reciever => true,
976
+ :destroy_arguments => true,
977
+ :escape_reciever => true,
978
+ :escape_arguments => true,
979
+ :side_effect => true)
980
+
981
+ # []=
982
+ CastOff.set_method_information(String, :[]=, :class,
983
+ :destroy_reciever => true,
984
+ :destroy_arguments => false,
985
+ :escape_reciever => false,
986
+ :escape_arguments => true,
987
+ :side_effect => true)
988
+ CastOff.set_method_information(Array, :[]=, :class,
989
+ :destroy_reciever => true,
990
+ :destroy_arguments => false,
991
+ :escape_reciever => false,
992
+ :escape_arguments => true,
993
+ :side_effect => true)
994
+ CastOff.set_method_information(Hash, :[]=, :class,
995
+ :destroy_reciever => true,
996
+ :destroy_arguments => false,
997
+ :escape_reciever => false,
998
+ :escape_arguments => true,
999
+ :side_effect => true)
1000
+
1001
+ # concat
1002
+ CastOff.set_method_information(String, :concat, :class,
1003
+ :destroy_reciever => true,
1004
+ :destroy_arguments => false,
1005
+ :escape_reciever => true,
1006
+ :escape_arguments => false,
1007
+ :side_effect => true)
1008
+ CastOff.set_method_information(Array, :concat, :class,
1009
+ :destroy_reciever => true,
1010
+ :destroy_arguments => false,
1011
+ :escape_reciever => true,
1012
+ :escape_arguments => false,
1013
+ :side_effect => true)
1014
+
1015
+ # print
1016
+ CastOff.set_method_information(Kernel, :print, :module,
1017
+ :destroy_reciever => false,
1018
+ :destroy_arguments => false,
1019
+ :escape_reciever => false,
1020
+ :escape_arguments => false,
1021
+ :side_effect => true)
1022
+ CastOff.set_method_information(Kernel, :print, :singleton,
1023
+ :destroy_reciever => false,
1024
+ :destroy_arguments => false,
1025
+ :escape_reciever => false,
1026
+ :escape_arguments => false,
1027
+ :side_effect => true)
1028
+ CastOff.set_method_information(IO, :print, :class,
1029
+ :destroy_reciever => false,
1030
+ :destroy_arguments => false,
1031
+ :escape_reciever => false,
1032
+ :escape_arguments => false,
1033
+ :side_effect => true)
1034
+
1035
+ # puts
1036
+ CastOff.set_method_information(Kernel, :puts, :module,
1037
+ :destroy_reciever => false,
1038
+ :destroy_arguments => false,
1039
+ :escape_reciever => false,
1040
+ :escape_arguments => false,
1041
+ :side_effect => true)
1042
+ CastOff.set_method_information(Kernel, :puts, :singleton,
1043
+ :destroy_reciever => false,
1044
+ :destroy_arguments => false,
1045
+ :escape_reciever => false,
1046
+ :escape_arguments => false,
1047
+ :side_effect => true)
1048
+ CastOff.set_method_information(IO, :puts, :class,
1049
+ :destroy_reciever => false,
1050
+ :destroy_arguments => false,
1051
+ :escape_reciever => false,
1052
+ :escape_arguments => false,
1053
+ :side_effect => true)
1054
+
1055
+ # join
1056
+ CastOff.set_method_information(Array, :join, :class,
1057
+ :destroy_reciever => false,
1058
+ :destroy_arguments => false,
1059
+ :escape_reciever => false,
1060
+ :escape_arguments => false,
1061
+ :side_effect => false)
1062
+ CastOff.set_method_information(File, :join, :singleton,
1063
+ :destroy_reciever => false,
1064
+ :destroy_arguments => false,
1065
+ :escape_reciever => false,
1066
+ :escape_arguments => false,
1067
+ :side_effect => false)
1068
+
1069
+ # index
1070
+ CastOff.set_method_information(String, :index, :class,
1071
+ :destroy_reciever => false,
1072
+ :destroy_arguments => false,
1073
+ :escape_reciever => false,
1074
+ :escape_arguments => false,
1075
+ :side_effect => false)
1076
+ CastOff.set_method_information(Array, :index, :class,
1077
+ :destroy_reciever => false,
1078
+ :destroy_arguments => false,
1079
+ :escape_reciever => false,
1080
+ :escape_arguments => false,
1081
+ :side_effect => false)
1082
+ CastOff.set_method_information(Hash, :index, :class,
1083
+ :destroy_reciever => false,
1084
+ :destroy_arguments => false,
1085
+ :escape_reciever => false,
1086
+ :escape_arguments => false,
1087
+ :side_effect => false)
1088
+
1089
+ # sub
1090
+ CastOff.set_method_information(String, :sub, :class,
1091
+ :destroy_reciever => false,
1092
+ :destroy_arguments => false,
1093
+ :escape_reciever => false,
1094
+ :escape_arguments => false,
1095
+ :side_effect => false)
1096
+
1097
+ # sub!
1098
+ CastOff.set_method_information(String, :sub!, :class,
1099
+ :destroy_reciever => true,
1100
+ :destroy_arguments => false,
1101
+ :escape_reciever => true,
1102
+ :escape_arguments => false,
1103
+ :side_effect => true)
1104
+
1105
+ # gsub
1106
+ CastOff.set_method_information(String, :gsub, :class,
1107
+ :destroy_reciever => false,
1108
+ :destroy_arguments => false,
1109
+ :escape_reciever => false,
1110
+ :escape_arguments => false,
1111
+ :side_effect => false)
1112
+
1113
+ # gsub!
1114
+ CastOff.set_method_information(String, :gsub!, :class,
1115
+ :destroy_reciever => true,
1116
+ :destroy_arguments => false,
1117
+ :escape_reciever => true,
1118
+ :escape_arguments => false,
1119
+ :side_effect => true)
1120
+
1121
+ # strip
1122
+ CastOff.set_method_information(String, :strip, :class,
1123
+ :destroy_reciever => false,
1124
+ :destroy_arguments => false,
1125
+ :escape_reciever => false,
1126
+ :escape_arguments => false,
1127
+ :side_effect => false)
1128
+
1129
+ # tr
1130
+ CastOff.set_method_information(String, :tr, :class,
1131
+ :destroy_reciever => false,
1132
+ :destroy_arguments => false,
1133
+ :escape_reciever => false,
1134
+ :escape_arguments => false,
1135
+ :side_effect => false)
1136
+
1137
+ # tr!
1138
+ CastOff.set_method_information(String, :tr!, :class,
1139
+ :destroy_reciever => true,
1140
+ :destroy_arguments => false,
1141
+ :escape_reciever => true,
1142
+ :escape_arguments => false,
1143
+ :side_effect => true)
1144
+
1145
+ # count
1146
+ CastOff.set_method_information(String, :count, :class,
1147
+ :destroy_reciever => false,
1148
+ :destroy_arguments => false,
1149
+ :escape_reciever => false,
1150
+ :escape_arguments => false,
1151
+ :side_effect => false)
1152
+
1153
+ # split
1154
+ CastOff.set_method_information(String, :split, :class,
1155
+ :destroy_reciever => false,
1156
+ :destroy_arguments => false,
1157
+ :escape_reciever => false,
1158
+ :escape_arguments => false,
1159
+ :side_effect => false)
1160
+
1161
+ # include?
1162
+ CastOff.set_method_information(Array, :include?, :class,
1163
+ :destroy_reciever => false,
1164
+ :destroy_arguments => false,
1165
+ :escape_reciever => false,
1166
+ :escape_arguments => false,
1167
+ :side_effect => false)
1168
+
1169
+ # compact
1170
+ CastOff.set_method_information(Array, :compact, :class,
1171
+ :destroy_reciever => false,
1172
+ :destroy_arguments => false,
1173
+ :escape_reciever => false,
1174
+ :escape_arguments => false,
1175
+ :side_effect => false)
1176
+
1177
+ # flatten
1178
+ CastOff.set_method_information(Array, :flatten, :class,
1179
+ :destroy_reciever => false,
1180
+ :destroy_arguments => false,
1181
+ :escape_reciever => false,
1182
+ :escape_arguments => false,
1183
+ :side_effect => false)
1184
+
1185
+ # reverse
1186
+ CastOff.set_method_information(String, :reverse, :class,
1187
+ :destroy_reciever => false,
1188
+ :destroy_arguments => false,
1189
+ :escape_reciever => false,
1190
+ :escape_arguments => false,
1191
+ :side_effect => false)
1192
+ CastOff.set_method_information(Array, :reverse, :class,
1193
+ :destroy_reciever => false,
1194
+ :destroy_arguments => false,
1195
+ :escape_reciever => false,
1196
+ :escape_arguments => false,
1197
+ :side_effect => false)
1198
+
1199
+ # size
1200
+ CastOff.set_method_information(String, :size, :class,
1201
+ :destroy_reciever => false,
1202
+ :destroy_arguments => false,
1203
+ :escape_reciever => false,
1204
+ :escape_arguments => false,
1205
+ :side_effect => false)
1206
+ CastOff.set_method_information(Symbol, :size, :class,
1207
+ :destroy_reciever => false,
1208
+ :destroy_arguments => false,
1209
+ :escape_reciever => false,
1210
+ :escape_arguments => false,
1211
+ :side_effect => false)
1212
+ CastOff.set_method_information(Fixnum, :size, :class,
1213
+ :destroy_reciever => false,
1214
+ :destroy_arguments => false,
1215
+ :escape_reciever => false,
1216
+ :escape_arguments => false,
1217
+ :side_effect => false)
1218
+ CastOff.set_method_information(Bignum, :size, :class,
1219
+ :destroy_reciever => false,
1220
+ :destroy_arguments => false,
1221
+ :escape_reciever => false,
1222
+ :escape_arguments => false,
1223
+ :side_effect => false)
1224
+ CastOff.set_method_information(Hash, :size, :class,
1225
+ :destroy_reciever => false,
1226
+ :destroy_arguments => false,
1227
+ :escape_reciever => false,
1228
+ :escape_arguments => false,
1229
+ :side_effect => false)
1230
+ CastOff.set_method_information(Struct, :size, :class,
1231
+ :destroy_reciever => false,
1232
+ :destroy_arguments => false,
1233
+ :escape_reciever => false,
1234
+ :escape_arguments => false,
1235
+ :side_effect => false)
1236
+ CastOff.set_method_information(MatchData, :size, :class,
1237
+ :destroy_reciever => false,
1238
+ :destroy_arguments => false,
1239
+ :escape_reciever => false,
1240
+ :escape_arguments => false,
1241
+ :side_effect => false)
1242
+
1243
+ # length
1244
+ CastOff.set_method_information(String, :length, :class,
1245
+ :destroy_reciever => false,
1246
+ :destroy_arguments => false,
1247
+ :escape_reciever => false,
1248
+ :escape_arguments => false,
1249
+ :side_effect => false)
1250
+ CastOff.set_method_information(Symbol, :length, :class,
1251
+ :destroy_reciever => false,
1252
+ :destroy_arguments => false,
1253
+ :escape_reciever => false,
1254
+ :escape_arguments => false,
1255
+ :side_effect => false)
1256
+ CastOff.set_method_information(Array, :length, :class,
1257
+ :destroy_reciever => false,
1258
+ :destroy_arguments => false,
1259
+ :escape_reciever => false,
1260
+ :escape_arguments => false,
1261
+ :side_effect => false)
1262
+ CastOff.set_method_information(Hash, :length, :class,
1263
+ :destroy_reciever => false,
1264
+ :destroy_arguments => false,
1265
+ :escape_reciever => false,
1266
+ :escape_arguments => false,
1267
+ :side_effect => false)
1268
+ CastOff.set_method_information(Struct, :length, :class,
1269
+ :destroy_reciever => false,
1270
+ :destroy_arguments => false,
1271
+ :escape_reciever => false,
1272
+ :escape_arguments => false,
1273
+ :side_effect => false)
1274
+ CastOff.set_method_information(MatchData, :length, :class,
1275
+ :destroy_reciever => false,
1276
+ :destroy_arguments => false,
1277
+ :escape_reciever => false,
1278
+ :escape_arguments => false,
1279
+ :side_effect => false)
1280
+
1281
+ # empty?
1282
+ CastOff.set_method_information(String, :empty?, :class,
1283
+ :destroy_reciever => false,
1284
+ :destroy_arguments => false,
1285
+ :escape_reciever => false,
1286
+ :escape_arguments => false,
1287
+ :side_effect => false)
1288
+ CastOff.set_method_information(Symbol, :empty?, :class,
1289
+ :destroy_reciever => false,
1290
+ :destroy_arguments => false,
1291
+ :escape_reciever => false,
1292
+ :escape_arguments => false,
1293
+ :side_effect => false)
1294
+ CastOff.set_method_information(Array, :empty?, :class,
1295
+ :destroy_reciever => false,
1296
+ :destroy_arguments => false,
1297
+ :escape_reciever => false,
1298
+ :escape_arguments => false,
1299
+ :side_effect => false)
1300
+ CastOff.set_method_information(Hash, :empty?, :class,
1301
+ :destroy_reciever => false,
1302
+ :destroy_arguments => false,
1303
+ :escape_reciever => false,
1304
+ :escape_arguments => false,
1305
+ :side_effect => false)
1306
+
1307
+ # ^
1308
+ CastOff.set_method_information(NilClass, :^, :class,
1309
+ :destroy_reciever => false,
1310
+ :destroy_arguments => false,
1311
+ :escape_reciever => false,
1312
+ :escape_arguments => false,
1313
+ :side_effect => false)
1314
+ CastOff.set_method_information(TrueClass, :^, :class,
1315
+ :destroy_reciever => false,
1316
+ :destroy_arguments => false,
1317
+ :escape_reciever => false,
1318
+ :escape_arguments => false,
1319
+ :side_effect => false)
1320
+ CastOff.set_method_information(FalseClass, :^, :class,
1321
+ :destroy_reciever => false,
1322
+ :destroy_arguments => false,
1323
+ :escape_reciever => false,
1324
+ :escape_arguments => false,
1325
+ :side_effect => false)
1326
+ CastOff.set_method_information(Fixnum, :^, :class,
1327
+ :destroy_reciever => false,
1328
+ :destroy_arguments => false,
1329
+ :escape_reciever => false,
1330
+ :escape_arguments => false,
1331
+ :side_effect => false)
1332
+ CastOff.set_method_information(Bignum, :^, :class,
1333
+ :destroy_reciever => false,
1334
+ :destroy_arguments => false,
1335
+ :escape_reciever => false,
1336
+ :escape_arguments => false,
1337
+ :side_effect => false)
1338
+
1339
+ # chr
1340
+ CastOff.set_method_information(String, :chr, :class,
1341
+ :destroy_reciever => false,
1342
+ :destroy_arguments => false,
1343
+ :escape_reciever => false,
1344
+ :escape_arguments => false,
1345
+ :side_effect => false)
1346
+ CastOff.set_method_information(Integer, :chr, :class,
1347
+ :destroy_reciever => false,
1348
+ :destroy_arguments => false,
1349
+ :escape_reciever => false,
1350
+ :escape_arguments => false,
1351
+ :side_effect => false)
1352
+
1353
+ # last
1354
+ CastOff.set_method_information(Array, :last, :class,
1355
+ :destroy_reciever => false,
1356
+ :destroy_arguments => false,
1357
+ :escape_reciever => false,
1358
+ :escape_arguments => false,
1359
+ :side_effect => false)
1360
+ CastOff.set_method_information(Range, :last, :class,
1361
+ :destroy_reciever => false,
1362
+ :destroy_arguments => false,
1363
+ :escape_reciever => false,
1364
+ :escape_arguments => false,
1365
+ :side_effect => false)
1366
+
1367
+ # first
1368
+ CastOff.set_method_information(Array, :first, :class,
1369
+ :destroy_reciever => false,
1370
+ :destroy_arguments => false,
1371
+ :escape_reciever => false,
1372
+ :escape_arguments => false,
1373
+ :side_effect => false)
1374
+ CastOff.set_method_information(Range, :first, :class,
1375
+ :destroy_reciever => false,
1376
+ :destroy_arguments => false,
1377
+ :escape_reciever => false,
1378
+ :escape_arguments => false,
1379
+ :side_effect => false)
1380
+ end
1381
+ end
1382
+ end
1383
+ end
1384
+