From 51753ec7fa82fb5c3f7ef3c5766b0e84c47d3d21 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Wed, 31 Jan 2024 07:47:35 -0800 Subject: [PATCH] Annotate Symbol#to_s as leaf (#9769) --- string.c | 13 ------------- symbol.rb | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/string.c b/string.c index 4c0fe87635a5a9..08eb361bdac6ad 100644 --- a/string.c +++ b/string.c @@ -11693,17 +11693,6 @@ sym_inspect(VALUE sym) return str; } -/* - * call-seq: - * to_s -> string - * - * Returns a string representation of +self+ (not including the leading colon): - * - * :foo.to_s # => "foo" - * - * Related: Symbol#inspect, Symbol#name. - */ - VALUE rb_sym_to_s(VALUE sym) { @@ -12270,8 +12259,6 @@ Init_String(void) rb_define_method(rb_cSymbol, "==", sym_equal, 1); rb_define_method(rb_cSymbol, "===", sym_equal, 1); rb_define_method(rb_cSymbol, "inspect", sym_inspect, 0); - rb_define_method(rb_cSymbol, "to_s", rb_sym_to_s, 0); - rb_define_method(rb_cSymbol, "id2name", rb_sym_to_s, 0); rb_define_method(rb_cSymbol, "name", rb_sym2str, 0); /* in symbol.c */ rb_define_method(rb_cSymbol, "to_proc", rb_sym_to_proc, 0); /* in proc.c */ rb_define_method(rb_cSymbol, "succ", sym_succ, 0); diff --git a/symbol.rb b/symbol.rb index f31bf0bee3ae49..bfac11ae21b21d 100644 --- a/symbol.rb +++ b/symbol.rb @@ -1,4 +1,19 @@ class Symbol + # call-seq: + # to_s -> string + # + # Returns a string representation of +self+ (not including the leading colon): + # + # :foo.to_s # => "foo" + # + # Related: Symbol#inspect, Symbol#name. + def to_s + Primitive.attr! :leaf + Primitive.cexpr! 'rb_sym_to_s(self)' + end + + alias id2name to_s + # call-seq: # to_sym -> self #