ext/rbs_extension/constants.c in rbs-3.2.1 vs ext/rbs_extension/constants.c in rbs-3.2.2

- old
+ new

@@ -73,79 +73,80 @@ VALUE RBS_Types; VALUE RBS_MethodType; VALUE RBS_ParsingError; +#define IMPORT_CONSTANT(var, parent, name) { var = rb_const_get(parent, rb_intern(name)); rb_gc_register_mark_object(var); } + void rbs__init_constants(void) { - ID id_RBS = rb_intern_const("RBS"); + IMPORT_CONSTANT(RBS, rb_cObject, "RBS"); + IMPORT_CONSTANT(RBS_ParsingError, RBS, "ParsingError"); - RBS = rb_const_get(rb_cObject, id_RBS); - RBS_ParsingError = rb_const_get(RBS, rb_intern("ParsingError")); - RBS_AST = rb_const_get(RBS, rb_intern("AST")); - RBS_AST_Comment = rb_const_get(RBS_AST, rb_intern("Comment")); - RBS_AST_Annotation = rb_const_get(RBS_AST, rb_intern("Annotation")); - RBS_AST_TypeParam = rb_const_get(RBS_AST, rb_intern("TypeParam")); + IMPORT_CONSTANT(RBS_AST, RBS, "AST"); + IMPORT_CONSTANT(RBS_AST_Comment, RBS_AST, "Comment"); + IMPORT_CONSTANT(RBS_AST_Annotation, RBS_AST, "Annotation"); + IMPORT_CONSTANT(RBS_AST_TypeParam, RBS_AST, "TypeParam"); - RBS_AST_Declarations = rb_const_get(RBS_AST, rb_intern("Declarations")); + IMPORT_CONSTANT(RBS_AST_Declarations, RBS_AST, "Declarations"); - RBS_AST_Declarations_TypeAlias = rb_const_get(RBS_AST_Declarations, rb_intern("TypeAlias")); - RBS_AST_Declarations_Constant = rb_const_get(RBS_AST_Declarations, rb_intern("Constant")); - RBS_AST_Declarations_Global = rb_const_get(RBS_AST_Declarations, rb_intern("Global")); - RBS_AST_Declarations_Interface = rb_const_get(RBS_AST_Declarations, rb_intern("Interface")); - RBS_AST_Declarations_Module = rb_const_get(RBS_AST_Declarations, rb_intern("Module")); - RBS_AST_Declarations_Module_Self = rb_const_get(RBS_AST_Declarations_Module, rb_intern("Self")); - RBS_AST_Declarations_Class = rb_const_get(RBS_AST_Declarations, rb_intern("Class")); - RBS_AST_Declarations_Class_Super = rb_const_get(RBS_AST_Declarations_Class, rb_intern("Super")); - RBS_AST_Declarations_ClassAlias = rb_const_get(RBS_AST_Declarations, rb_intern("ClassAlias")); - RBS_AST_Declarations_ModuleAlias = rb_const_get(RBS_AST_Declarations, rb_intern("ModuleAlias")); + IMPORT_CONSTANT(RBS_AST_Declarations_TypeAlias, RBS_AST_Declarations, "TypeAlias"); + IMPORT_CONSTANT(RBS_AST_Declarations_Constant, RBS_AST_Declarations, "Constant"); + IMPORT_CONSTANT(RBS_AST_Declarations_Global, RBS_AST_Declarations, "Global"); + IMPORT_CONSTANT(RBS_AST_Declarations_Interface, RBS_AST_Declarations, "Interface"); + IMPORT_CONSTANT(RBS_AST_Declarations_Module, RBS_AST_Declarations, "Module"); + IMPORT_CONSTANT(RBS_AST_Declarations_Module_Self, RBS_AST_Declarations_Module, "Self"); + IMPORT_CONSTANT(RBS_AST_Declarations_Class, RBS_AST_Declarations, "Class"); + IMPORT_CONSTANT(RBS_AST_Declarations_Class_Super, RBS_AST_Declarations_Class, "Super"); + IMPORT_CONSTANT(RBS_AST_Declarations_ClassAlias, RBS_AST_Declarations, "ClassAlias"); + IMPORT_CONSTANT(RBS_AST_Declarations_ModuleAlias, RBS_AST_Declarations, "ModuleAlias"); - RBS_AST_Directives = rb_const_get(RBS_AST, rb_intern("Directives")); - RBS_AST_Directives_Use = rb_const_get(RBS_AST_Directives, rb_intern("Use")); - RBS_AST_Directives_Use_SingleClause = rb_const_get(RBS_AST_Directives_Use, rb_intern("SingleClause")); - RBS_AST_Directives_Use_WildcardClause = rb_const_get(RBS_AST_Directives_Use, rb_intern("WildcardClause")); + IMPORT_CONSTANT(RBS_AST_Directives, RBS_AST, "Directives"); + IMPORT_CONSTANT(RBS_AST_Directives_Use, RBS_AST_Directives, "Use"); + IMPORT_CONSTANT(RBS_AST_Directives_Use_SingleClause, RBS_AST_Directives_Use, "SingleClause"); + IMPORT_CONSTANT(RBS_AST_Directives_Use_WildcardClause, RBS_AST_Directives_Use, "WildcardClause"); - RBS_AST_Members = rb_const_get(RBS_AST, rb_intern("Members")); - RBS_AST_Members_Alias = rb_const_get(RBS_AST_Members, rb_intern("Alias")); - RBS_AST_Members_AttrAccessor = rb_const_get(RBS_AST_Members, rb_intern("AttrAccessor")); - RBS_AST_Members_AttrReader = rb_const_get(RBS_AST_Members, rb_intern("AttrReader")); - RBS_AST_Members_AttrWriter = rb_const_get(RBS_AST_Members, rb_intern("AttrWriter")); - RBS_AST_Members_ClassInstanceVariable = rb_const_get(RBS_AST_Members, rb_intern("ClassInstanceVariable")); - RBS_AST_Members_ClassVariable = rb_const_get(RBS_AST_Members, rb_intern("ClassVariable")); - RBS_AST_Members_Extend = rb_const_get(RBS_AST_Members, rb_intern("Extend")); - RBS_AST_Members_Include = rb_const_get(RBS_AST_Members, rb_intern("Include")); - RBS_AST_Members_InstanceVariable = rb_const_get(RBS_AST_Members, rb_intern("InstanceVariable")); - RBS_AST_Members_MethodDefinition = rb_const_get(RBS_AST_Members, rb_intern("MethodDefinition")); - RBS_AST_Members_MethodDefinition_Overload = rb_const_get(RBS_AST_Members_MethodDefinition, rb_intern("Overload")); - RBS_AST_Members_Prepend = rb_const_get(RBS_AST_Members, rb_intern("Prepend")); - RBS_AST_Members_Private = rb_const_get(RBS_AST_Members, rb_intern("Private")); - RBS_AST_Members_Public = rb_const_get(RBS_AST_Members, rb_intern("Public")); + IMPORT_CONSTANT(RBS_AST_Members, RBS_AST, "Members"); + IMPORT_CONSTANT(RBS_AST_Members_Alias, RBS_AST_Members, "Alias"); + IMPORT_CONSTANT(RBS_AST_Members_AttrAccessor, RBS_AST_Members, "AttrAccessor"); + IMPORT_CONSTANT(RBS_AST_Members_AttrReader, RBS_AST_Members, "AttrReader"); + IMPORT_CONSTANT(RBS_AST_Members_AttrWriter, RBS_AST_Members, "AttrWriter"); + IMPORT_CONSTANT(RBS_AST_Members_ClassInstanceVariable, RBS_AST_Members, "ClassInstanceVariable"); + IMPORT_CONSTANT(RBS_AST_Members_ClassVariable, RBS_AST_Members, "ClassVariable"); + IMPORT_CONSTANT(RBS_AST_Members_Extend, RBS_AST_Members, "Extend"); + IMPORT_CONSTANT(RBS_AST_Members_Include, RBS_AST_Members, "Include"); + IMPORT_CONSTANT(RBS_AST_Members_InstanceVariable, RBS_AST_Members, "InstanceVariable"); + IMPORT_CONSTANT(RBS_AST_Members_MethodDefinition, RBS_AST_Members, "MethodDefinition"); + IMPORT_CONSTANT(RBS_AST_Members_MethodDefinition_Overload, RBS_AST_Members_MethodDefinition, "Overload"); + IMPORT_CONSTANT(RBS_AST_Members_Prepend, RBS_AST_Members, "Prepend"); + IMPORT_CONSTANT(RBS_AST_Members_Private, RBS_AST_Members, "Private"); + IMPORT_CONSTANT(RBS_AST_Members_Public, RBS_AST_Members, "Public"); - RBS_Namespace = rb_const_get(RBS, rb_intern("Namespace")); - RBS_TypeName = rb_const_get(RBS, rb_intern("TypeName")); - RBS_Types = rb_const_get(RBS, rb_intern("Types")); - RBS_Types_Alias = rb_const_get(RBS_Types, rb_intern("Alias")); - RBS_Types_Bases = rb_const_get(RBS_Types, rb_intern("Bases")); - RBS_Types_Bases_Any = rb_const_get(RBS_Types_Bases, rb_intern("Any")); - RBS_Types_Bases_Bool = rb_const_get(RBS_Types_Bases, rb_intern("Bool")); - RBS_Types_Bases_Bottom = rb_const_get(RBS_Types_Bases, rb_intern("Bottom")); - RBS_Types_Bases_Class = rb_const_get(RBS_Types_Bases, rb_intern("Class")); - RBS_Types_Bases_Instance = rb_const_get(RBS_Types_Bases, rb_intern("Instance")); - RBS_Types_Bases_Nil = rb_const_get(RBS_Types_Bases, rb_intern("Nil")); - RBS_Types_Bases_Self = rb_const_get(RBS_Types_Bases, rb_intern("Self")); - RBS_Types_Bases_Top = rb_const_get(RBS_Types_Bases, rb_intern("Top")); - RBS_Types_Bases_Void = rb_const_get(RBS_Types_Bases, rb_intern("Void")); - RBS_Types_Block = rb_const_get(RBS_Types, rb_intern("Block")); - RBS_Types_ClassInstance = rb_const_get(RBS_Types, rb_intern("ClassInstance")); - RBS_Types_ClassSingleton = rb_const_get(RBS_Types, rb_intern("ClassSingleton")); - RBS_Types_Function = rb_const_get(RBS_Types, rb_intern("Function")); - RBS_Types_Function_Param = rb_const_get(RBS_Types_Function, rb_intern("Param")); - RBS_Types_Interface = rb_const_get(RBS_Types, rb_intern("Interface")); - RBS_Types_Intersection = rb_const_get(RBS_Types, rb_intern("Intersection")); - RBS_Types_Literal = rb_const_get(RBS_Types, rb_intern("Literal")); - RBS_Types_Optional = rb_const_get(RBS_Types, rb_intern("Optional")); - RBS_Types_Proc = rb_const_get(RBS_Types, rb_intern("Proc")); - RBS_Types_Record = rb_const_get(RBS_Types, rb_intern("Record")); - RBS_Types_Tuple = rb_const_get(RBS_Types, rb_intern("Tuple")); - RBS_Types_Union = rb_const_get(RBS_Types, rb_intern("Union")); - RBS_Types_Variable = rb_const_get(RBS_Types, rb_intern("Variable")); - RBS_MethodType = rb_const_get(RBS, rb_intern("MethodType")); + IMPORT_CONSTANT(RBS_Namespace, RBS, "Namespace"); + IMPORT_CONSTANT(RBS_TypeName, RBS, "TypeName"); + IMPORT_CONSTANT(RBS_Types, RBS, "Types"); + IMPORT_CONSTANT(RBS_Types_Alias, RBS_Types, "Alias"); + IMPORT_CONSTANT(RBS_Types_Bases, RBS_Types, "Bases"); + IMPORT_CONSTANT(RBS_Types_Bases_Any, RBS_Types_Bases, "Any"); + IMPORT_CONSTANT(RBS_Types_Bases_Bool, RBS_Types_Bases, "Bool"); + IMPORT_CONSTANT(RBS_Types_Bases_Bottom, RBS_Types_Bases, "Bottom"); + IMPORT_CONSTANT(RBS_Types_Bases_Class, RBS_Types_Bases, "Class"); + IMPORT_CONSTANT(RBS_Types_Bases_Instance, RBS_Types_Bases, "Instance"); + IMPORT_CONSTANT(RBS_Types_Bases_Nil, RBS_Types_Bases, "Nil"); + IMPORT_CONSTANT(RBS_Types_Bases_Self, RBS_Types_Bases, "Self"); + IMPORT_CONSTANT(RBS_Types_Bases_Top, RBS_Types_Bases, "Top"); + IMPORT_CONSTANT(RBS_Types_Bases_Void, RBS_Types_Bases, "Void"); + IMPORT_CONSTANT(RBS_Types_Block, RBS_Types, "Block"); + IMPORT_CONSTANT(RBS_Types_ClassInstance, RBS_Types, "ClassInstance"); + IMPORT_CONSTANT(RBS_Types_ClassSingleton, RBS_Types, "ClassSingleton"); + IMPORT_CONSTANT(RBS_Types_Function, RBS_Types, "Function"); + IMPORT_CONSTANT(RBS_Types_Function_Param, RBS_Types_Function, "Param"); + IMPORT_CONSTANT(RBS_Types_Interface, RBS_Types, "Interface"); + IMPORT_CONSTANT(RBS_Types_Intersection, RBS_Types, "Intersection"); + IMPORT_CONSTANT(RBS_Types_Literal, RBS_Types, "Literal"); + IMPORT_CONSTANT(RBS_Types_Optional, RBS_Types, "Optional"); + IMPORT_CONSTANT(RBS_Types_Proc, RBS_Types, "Proc"); + IMPORT_CONSTANT(RBS_Types_Record, RBS_Types, "Record"); + IMPORT_CONSTANT(RBS_Types_Tuple, RBS_Types, "Tuple"); + IMPORT_CONSTANT(RBS_Types_Union, RBS_Types, "Union"); + IMPORT_CONSTANT(RBS_Types_Variable, RBS_Types, "Variable"); + IMPORT_CONSTANT(RBS_MethodType, RBS, "MethodType"); }