diff options
author | Takashi Kokubun <[email protected]> | 2020-06-27 10:07:47 -0700 |
---|---|---|
committer | GitHub <[email protected]> | 2020-06-27 10:07:47 -0700 |
commit | 0703e014713ae92f4c8a2b31e385718dc2452eac (patch) | |
tree | 12bb9303b135f8c907d7ca002114620eabd4caf9 /integer.rb | |
parent | 247dd8743e153eb31d31472c81dfb64da25d7600 (diff) |
Mark some Integer methods as inline (#3264)
Notes
Notes:
Merged-By: k0kubun <[email protected]>
Diffstat (limited to 'integer.rb')
-rw-r--r-- | integer.rb | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/integer.rb b/integer.rb index cc2e58948f..fe1e8a0560 100644 --- a/integer.rb +++ b/integer.rb @@ -1,4 +1,82 @@ class Integer + def abs + Primitive.attr! 'inline' + Primitive.cexpr! 'rb_int_abs(self)' + end + + def bit_length + Primitive.attr! 'inline' + Primitive.cexpr! 'rb_int_bit_length(self)' + end + + # call-seq: + # int.even? -> true or false + # + # Returns +true+ if +int+ is an even number. + def even? + Primitive.attr! 'inline' + Primitive.cexpr! 'int_even_p(self)' + end + + # call-seq: + # int.integer? -> true + # + # Since +int+ is already an Integer, this always returns +true+. + def integer? + Primitive.attr! 'inline' + Primitive.cexpr! 'Qtrue' + end + + def magnitude + Primitive.attr! 'inline' + Primitive.cexpr! 'rb_int_abs(self)' + end + + # call-seq: + # int.odd? -> true or false + # + # Returns +true+ if +int+ is an odd number. + def odd? + Primitive.attr! 'inline' + Primitive.cexpr! 'rb_int_odd_p(self)' + end + + # call-seq: + # int.ord -> self + # + # Returns the +int+ itself. + # + # 97.ord #=> 97 + # + # This method is intended for compatibility to character literals + # in Ruby 1.9. + # + # For example, <code>?a.ord</code> returns 97 both in 1.8 and 1.9. + def ord + Primitive.attr! 'inline' + Primitive.cexpr! 'self' + end + + # call-seq: + # int.to_i -> integer + # + # Since +int+ is already an Integer, returns +self+. + # + # #to_int is an alias for #to_i. + def to_i + Primitive.attr! 'inline' + Primitive.cexpr! 'self' + end + + # call-seq: + # int.to_int -> integer + # + # Since +int+ is already an Integer, returns +self+. + def to_int + Primitive.attr! 'inline' + Primitive.cexpr! 'self' + end + # call-seq: # int.zero? -> true or false # |