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
20VALUE rb_to_symbol_type(VALUE obj);
21VALUE rb_sym_intern(
const char *ptr,
long len,
rb_encoding *enc);
22VALUE rb_sym_intern_ascii(
const char *ptr,
long len);
23VALUE rb_sym_intern_ascii_cstr(
const char *ptr);
24int rb_is_const_name(VALUE name);
25int rb_is_class_name(VALUE name);
26int rb_is_instance_name(VALUE name);
27int rb_is_local_name(VALUE name);
28PUREFUNC(
int rb_is_const_sym(VALUE sym));
29PUREFUNC(
int rb_is_attrset_sym(VALUE sym));
30ID rb_make_internal_id(
void);
31ID rb_make_temporary_id(
size_t n);
32void 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))