static void vala_ccode_file_instance_init (ValaCCodeFile * self) {
	GHashFunc _tmp0_;
	GEqualFunc _tmp1_;
	ValaHashSet* _tmp2_;
	GHashFunc _tmp3_;
	GEqualFunc _tmp4_;
	ValaHashSet* _tmp5_;
	ValaCCodeFragment* _tmp6_;
	ValaCCodeFragment* _tmp7_;
	ValaCCodeFragment* _tmp8_;
	ValaCCodeFragment* _tmp9_;
	ValaCCodeFragment* _tmp10_;
	ValaCCodeFragment* _tmp11_;
	ValaCCodeFragment* _tmp12_;
	self->priv = VALA_CCODE_FILE_GET_PRIVATE (self);
	_tmp0_ = g_str_hash;
	_tmp1_ = g_str_equal;
	_tmp2_ = vala_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, _tmp0_, _tmp1_);
	self->priv->declarations = (ValaSet*) _tmp2_;
	_tmp3_ = g_str_hash;
	_tmp4_ = g_str_equal;
	_tmp5_ = vala_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, _tmp3_, _tmp4_);
	self->priv->includes = (ValaSet*) _tmp5_;
	_tmp6_ = vala_ccode_fragment_new ();
	self->priv->comments = _tmp6_;
	_tmp7_ = vala_ccode_fragment_new ();
	self->priv->include_directives = _tmp7_;
	_tmp8_ = vala_ccode_fragment_new ();
	self->priv->type_declaration = _tmp8_;
	_tmp9_ = vala_ccode_fragment_new ();
	self->priv->type_definition = _tmp9_;
	_tmp10_ = vala_ccode_fragment_new ();
	self->priv->type_member_declaration = _tmp10_;
	_tmp11_ = vala_ccode_fragment_new ();
	self->priv->constant_declaration = _tmp11_;
	_tmp12_ = vala_ccode_fragment_new ();
	self->priv->type_member_definition = _tmp12_;
	self->ref_count = 1;
}
static ValaCCodeFragment* vala_class_register_function_real_get_type_interface_init_declaration (ValaTypeRegisterFunction* base) {
	ValaClassRegisterFunction * self;
	ValaCCodeFragment* result = NULL;
	ValaCCodeFragment* _tmp0_;
	ValaCCodeFragment* frag;
	self = (ValaClassRegisterFunction*) base;
	_tmp0_ = vala_ccode_fragment_new ();
	frag = _tmp0_;
	{
		ValaClass* _tmp1_;
		ValaList* _tmp2_ = NULL;
		ValaList* _base_type_list;
		ValaList* _tmp3_;
		gint _tmp4_;
		gint _tmp5_;
		gint _base_type_size;
		gint _base_type_index;
		_tmp1_ = self->priv->_class_reference;
		_tmp2_ = vala_class_get_base_types (_tmp1_);
		_base_type_list = _tmp2_;
		_tmp3_ = _base_type_list;
		_tmp4_ = vala_collection_get_size ((ValaCollection*) _tmp3_);
		_tmp5_ = _tmp4_;
		_base_type_size = _tmp5_;
		_base_type_index = -1;
		while (TRUE) {
			gint _tmp6_;
			gint _tmp7_;
			gint _tmp8_;
			ValaList* _tmp9_;
			gint _tmp10_;
			gpointer _tmp11_ = NULL;
			ValaDataType* base_type;
			ValaDataType* _tmp12_;
			ValaTypeSymbol* _tmp13_;
			ValaTypeSymbol* _tmp14_;
			ValaDataType* _tmp15_;
			ValaTypeSymbol* _tmp16_;
			ValaTypeSymbol* _tmp17_;
			ValaInterface* _tmp18_;
			ValaInterface* iface;
			ValaInterface* _tmp19_;
			gchar* _tmp20_ = NULL;
			gchar* _tmp21_;
			gchar* _tmp22_ = NULL;
			gchar* _tmp23_;
			gchar* iface_info_name;
			ValaCCodeDeclaration* _tmp24_;
			ValaCCodeDeclaration* ctypedecl;
			ValaCCodeDeclaration* _tmp25_;
			ValaCCodeDeclaration* _tmp26_;
			const gchar* _tmp27_;
			ValaClass* _tmp28_;
			gchar* _tmp29_ = NULL;
			gchar* _tmp30_;
			ValaInterface* _tmp31_;
			gchar* _tmp32_ = NULL;
			gchar* _tmp33_;
			gchar* _tmp34_ = NULL;
			gchar* _tmp35_;
			ValaCCodeConstant* _tmp36_;
			ValaCCodeConstant* _tmp37_;
			ValaCCodeVariableDeclarator* _tmp38_;
			ValaCCodeVariableDeclarator* _tmp39_;
			ValaCCodeFragment* _tmp40_;
			ValaCCodeDeclaration* _tmp41_;
			_tmp6_ = _base_type_index;
			_base_type_index = _tmp6_ + 1;
			_tmp7_ = _base_type_index;
			_tmp8_ = _base_type_size;
			if (!(_tmp7_ < _tmp8_)) {
				break;
			}
			_tmp9_ = _base_type_list;
			_tmp10_ = _base_type_index;
			_tmp11_ = vala_list_get (_tmp9_, _tmp10_);
			base_type = (ValaDataType*) _tmp11_;
			_tmp12_ = base_type;
			_tmp13_ = vala_data_type_get_data_type (_tmp12_);
			_tmp14_ = _tmp13_;
			if (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp14_, VALA_TYPE_INTERFACE)) {
				_vala_code_node_unref0 (base_type);
				continue;
			}
			_tmp15_ = base_type;
			_tmp16_ = vala_data_type_get_data_type (_tmp15_);
			_tmp17_ = _tmp16_;
			_tmp18_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, VALA_TYPE_INTERFACE, ValaInterface));
			iface = _tmp18_;
			_tmp19_ = iface;
			_tmp20_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp19_, NULL);
			_tmp21_ = _tmp20_;
			_tmp22_ = g_strdup_printf ("%s_info", _tmp21_);
			_tmp23_ = _tmp22_;
			_g_free0 (_tmp21_);
			iface_info_name = _tmp23_;
			_tmp24_ = vala_ccode_declaration_new ("const GInterfaceInfo");
			ctypedecl = _tmp24_;
			_tmp25_ = ctypedecl;
			vala_ccode_declaration_set_modifiers (_tmp25_, VALA_CCODE_MODIFIERS_STATIC);
			_tmp26_ = ctypedecl;
			_tmp27_ = iface_info_name;
			_tmp28_ = self->priv->_class_reference;
			_tmp29_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp28_, NULL);
			_tmp30_ = _tmp29_;
			_tmp31_ = iface;
			_tmp32_ = vala_ccode_base_module_get_ccode_lower_case_name ((ValaCodeNode*) _tmp31_, NULL);
			_tmp33_ = _tmp32_;
			_tmp34_ = g_strdup_printf ("{ (GInterfaceInitFunc) %s_%s_interface_init, (GInterfaceFinalizeFunc) " \
"NULL, NULL}", _tmp30_, _tmp33_);
			_tmp35_ = _tmp34_;
			_tmp36_ = vala_ccode_constant_new (_tmp35_);
			_tmp37_ = _tmp36_;
			_tmp38_ = vala_ccode_variable_declarator_new (_tmp27_, (ValaCCodeExpression*) _tmp37_, NULL);
			_tmp39_ = _tmp38_;
			vala_ccode_declaration_add_declarator (_tmp26_, (ValaCCodeDeclarator*) _tmp39_);
			_vala_ccode_node_unref0 (_tmp39_);
			_vala_ccode_node_unref0 (_tmp37_);
			_g_free0 (_tmp35_);
			_g_free0 (_tmp33_);
			_g_free0 (_tmp30_);
			_tmp40_ = frag;
			_tmp41_ = ctypedecl;
			vala_ccode_fragment_append (_tmp40_, (ValaCCodeNode*) _tmp41_);
			_vala_ccode_node_unref0 (ctypedecl);
			_g_free0 (iface_info_name);
			_vala_code_node_unref0 (iface);
			_vala_code_node_unref0 (base_type);
		}
		_vala_iterable_unref0 (_base_type_list);
	}
	result = frag;
	return result;
}