1 #ifndef INTERNAL_SYMBOL_H
2 #define INTERNAL_SYMBOL_H
13 #include "internal/compilers.h"
15 #ifdef rb_sym_intern_ascii_cstr
16 # undef rb_sym_intern_ascii_cstr
22 VALUE rb_sym_intern_ascii(
const char *ptr,
long len);
23 VALUE rb_sym_intern_ascii_cstr(
const char *ptr);
24 int rb_is_const_name(
VALUE name);
25 int rb_is_class_name(
VALUE name);
26 int rb_is_instance_name(
VALUE name);
27 int rb_is_local_name(
VALUE name);
28 PUREFUNC(
int rb_is_const_sym(
VALUE sym));
29 PUREFUNC(
int rb_is_attrset_sym(
VALUE sym));
30 ID rb_make_internal_id(
void);
31 ID rb_make_temporary_id(
size_t n);
32 void rb_gc_free_dsymbol(
VALUE);
34 #if __has_builtin(__builtin_constant_p)
35 #define rb_sym_intern_ascii_cstr(ptr) \
36 (__builtin_constant_p(ptr) ? \
37 rb_sym_intern_ascii((ptr), (long)strlen(ptr)) : \
38 rb_sym_intern_ascii_cstr(ptr))
uintptr_t ID
Type that represents a Ruby identifier such as a variable name.
uintptr_t VALUE
Type that represents a Ruby object.