/* ValaSymbolResolver.c generated by valac 0.56.19, the Vala compiler
 * generated from ValaSymbolResolver.vala, do not modify */

/*-
 * Copyright (c) 2017-2018 elementary LLC. (https://elementary.io)
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 */

#include <vala.h>
#include <glib-object.h>
#include <gee.h>
#include <glib.h>

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define CODE_PLUGINS_TYPE_VALA_SYMBOL_RESOLVER (code_plugins_vala_symbol_resolver_get_type ())
#define CODE_PLUGINS_VALA_SYMBOL_RESOLVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CODE_PLUGINS_TYPE_VALA_SYMBOL_RESOLVER, CodePluginsValaSymbolResolver))
#define CODE_PLUGINS_VALA_SYMBOL_RESOLVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CODE_PLUGINS_TYPE_VALA_SYMBOL_RESOLVER, CodePluginsValaSymbolResolverClass))
#define CODE_PLUGINS_IS_VALA_SYMBOL_RESOLVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CODE_PLUGINS_TYPE_VALA_SYMBOL_RESOLVER))
#define CODE_PLUGINS_IS_VALA_SYMBOL_RESOLVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CODE_PLUGINS_TYPE_VALA_SYMBOL_RESOLVER))
#define CODE_PLUGINS_VALA_SYMBOL_RESOLVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CODE_PLUGINS_TYPE_VALA_SYMBOL_RESOLVER, CodePluginsValaSymbolResolverClass))

typedef struct _CodePluginsValaSymbolResolver CodePluginsValaSymbolResolver;
typedef struct _CodePluginsValaSymbolResolverClass CodePluginsValaSymbolResolverClass;
typedef struct _CodePluginsValaSymbolResolverPrivate CodePluginsValaSymbolResolverPrivate;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

struct _CodePluginsValaSymbolResolver {
	ValaSymbolResolver parent_instance;
	CodePluginsValaSymbolResolverPrivate * priv;
};

struct _CodePluginsValaSymbolResolverClass {
	ValaSymbolResolverClass parent_class;
};

struct _CodePluginsValaSymbolResolverPrivate {
	GeeTreeSet* properties;
	GeeTreeSet* symbols;
};

static gint CodePluginsValaSymbolResolver_private_offset;
static gpointer code_plugins_vala_symbol_resolver_parent_class = NULL;

VALA_EXTERN GType code_plugins_vala_symbol_resolver_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (CodePluginsValaSymbolResolver, vala_code_visitor_unref)
VALA_EXTERN GeeTreeSet* code_plugins_vala_symbol_resolver_get_properties_fields (CodePluginsValaSymbolResolver* self);
VALA_EXTERN GeeTreeSet* code_plugins_vala_symbol_resolver_get_symbols (CodePluginsValaSymbolResolver* self);
VALA_EXTERN void code_plugins_vala_symbol_resolver_clear (CodePluginsValaSymbolResolver* self);
static void code_plugins_vala_symbol_resolver_real_visit_class (ValaCodeVisitor* base,
                                                         ValaClass* s);
static void code_plugins_vala_symbol_resolver_real_visit_constant (ValaCodeVisitor* base,
                                                            ValaConstant* s);
static void code_plugins_vala_symbol_resolver_real_visit_delegate (ValaCodeVisitor* base,
                                                            ValaDelegate* s);
static void code_plugins_vala_symbol_resolver_real_visit_constructor (ValaCodeVisitor* base,
                                                               ValaConstructor* s);
static void code_plugins_vala_symbol_resolver_real_visit_destructor (ValaCodeVisitor* base,
                                                              ValaDestructor* s);
static void code_plugins_vala_symbol_resolver_real_visit_creation_method (ValaCodeVisitor* base,
                                                                   ValaCreationMethod* s);
static void code_plugins_vala_symbol_resolver_real_visit_enum (ValaCodeVisitor* base,
                                                        ValaEnum* s);
static void code_plugins_vala_symbol_resolver_real_visit_field (ValaCodeVisitor* base,
                                                         ValaField* s);
static void code_plugins_vala_symbol_resolver_real_visit_interface (ValaCodeVisitor* base,
                                                             ValaInterface* s);
static void code_plugins_vala_symbol_resolver_real_visit_method (ValaCodeVisitor* base,
                                                          ValaMethod* s);
static void code_plugins_vala_symbol_resolver_real_visit_namespace (ValaCodeVisitor* base,
                                                             ValaNamespace* s);
static void code_plugins_vala_symbol_resolver_real_visit_property (ValaCodeVisitor* base,
                                                            ValaProperty* s);
static void code_plugins_vala_symbol_resolver_real_visit_signal (ValaCodeVisitor* base,
                                                          ValaSignal* s);
static void code_plugins_vala_symbol_resolver_real_visit_struct (ValaCodeVisitor* base,
                                                          ValaStruct* s);
VALA_EXTERN CodePluginsValaSymbolResolver* code_plugins_vala_symbol_resolver_new (void);
VALA_EXTERN CodePluginsValaSymbolResolver* code_plugins_vala_symbol_resolver_construct (GType object_type);
static void code_plugins_vala_symbol_resolver_finalize (ValaCodeVisitor * obj);
static GType code_plugins_vala_symbol_resolver_get_type_once (void);

static inline gpointer
code_plugins_vala_symbol_resolver_get_instance_private (CodePluginsValaSymbolResolver* self)
{
	return G_STRUCT_MEMBER_P (self, CodePluginsValaSymbolResolver_private_offset);
}

GeeTreeSet*
code_plugins_vala_symbol_resolver_get_properties_fields (CodePluginsValaSymbolResolver* self)
{
	GeeTreeSet* return_fields = NULL;
	GeeTreeSet* _tmp0_;
	GeeTreeSet* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = gee_tree_set_new (VALA_TYPE_FIELD, NULL, NULL, NULL, NULL, NULL);
	return_fields = _tmp0_;
	{
		GeeIterator* _prop_it = NULL;
		GeeTreeSet* _tmp1_;
		GeeIterator* _tmp2_;
		_tmp1_ = self->priv->properties;
		_tmp2_ = gee_abstract_collection_iterator ((GeeAbstractCollection*) _tmp1_);
		_prop_it = _tmp2_;
		while (TRUE) {
			GeeIterator* _tmp3_;
			ValaProperty* prop = NULL;
			GeeIterator* _tmp4_;
			gpointer _tmp5_;
			ValaProperty* _tmp6_;
			ValaField* _tmp7_;
			ValaField* _tmp8_;
			_tmp3_ = _prop_it;
			if (!gee_iterator_next (_tmp3_)) {
				break;
			}
			_tmp4_ = _prop_it;
			_tmp5_ = gee_iterator_get (_tmp4_);
			prop = (ValaProperty*) _tmp5_;
			_tmp6_ = prop;
			_tmp7_ = vala_property_get_field (_tmp6_);
			_tmp8_ = _tmp7_;
			if (_tmp8_ != NULL) {
				GeeTreeSet* _tmp9_;
				ValaProperty* _tmp10_;
				ValaField* _tmp11_;
				ValaField* _tmp12_;
				_tmp9_ = return_fields;
				_tmp10_ = prop;
				_tmp11_ = vala_property_get_field (_tmp10_);
				_tmp12_ = _tmp11_;
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp9_, _tmp12_);
			}
		}
		_g_object_unref0 (_prop_it);
	}
	result = return_fields;
	return result;
}

GeeTreeSet*
code_plugins_vala_symbol_resolver_get_symbols (CodePluginsValaSymbolResolver* self)
{
	GeeTreeSet* return_symbols = NULL;
	GeeTreeSet* _tmp0_;
	GeeTreeSet* _tmp1_;
	GeeTreeSet* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = gee_tree_set_new (VALA_TYPE_SYMBOL, NULL, NULL, NULL, NULL, NULL);
	return_symbols = _tmp0_;
	_tmp1_ = self->priv->symbols;
	gee_collection_add_all ((GeeCollection*) return_symbols, (GeeCollection*) _tmp1_);
	result = return_symbols;
	return result;
}

void
code_plugins_vala_symbol_resolver_clear (CodePluginsValaSymbolResolver* self)
{
	GeeTreeSet* _tmp0_;
	GeeTreeSet* _tmp1_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->properties;
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp0_);
	_tmp1_ = self->priv->symbols;
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp1_);
}

static void
code_plugins_vala_symbol_resolver_real_visit_class (ValaCodeVisitor* base,
                                                    ValaClass* s)
{
	CodePluginsValaSymbolResolver * self;
	GeeTreeSet* _tmp0_;
	self = (CodePluginsValaSymbolResolver*) base;
	g_return_if_fail (s != NULL);
	_tmp0_ = self->priv->symbols;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, (ValaSymbol*) s);
	VALA_CODE_VISITOR_CLASS (code_plugins_vala_symbol_resolver_parent_class)->visit_class ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_SYMBOL_RESOLVER, ValaSymbolResolver), s);
}

static void
code_plugins_vala_symbol_resolver_real_visit_constant (ValaCodeVisitor* base,
                                                       ValaConstant* s)
{
	CodePluginsValaSymbolResolver * self;
	GeeTreeSet* _tmp0_;
	self = (CodePluginsValaSymbolResolver*) base;
	g_return_if_fail (s != NULL);
	_tmp0_ = self->priv->symbols;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, (ValaSymbol*) s);
	VALA_CODE_VISITOR_CLASS (code_plugins_vala_symbol_resolver_parent_class)->visit_constant ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_SYMBOL_RESOLVER, ValaSymbolResolver), s);
}

static void
code_plugins_vala_symbol_resolver_real_visit_delegate (ValaCodeVisitor* base,
                                                       ValaDelegate* s)
{
	CodePluginsValaSymbolResolver * self;
	GeeTreeSet* _tmp0_;
	self = (CodePluginsValaSymbolResolver*) base;
	g_return_if_fail (s != NULL);
	_tmp0_ = self->priv->symbols;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, (ValaSymbol*) s);
	VALA_CODE_VISITOR_CLASS (code_plugins_vala_symbol_resolver_parent_class)->visit_delegate ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_SYMBOL_RESOLVER, ValaSymbolResolver), s);
}

static void
code_plugins_vala_symbol_resolver_real_visit_constructor (ValaCodeVisitor* base,
                                                          ValaConstructor* s)
{
	CodePluginsValaSymbolResolver * self;
	GeeTreeSet* _tmp0_;
	self = (CodePluginsValaSymbolResolver*) base;
	g_return_if_fail (s != NULL);
	_tmp0_ = self->priv->symbols;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, (ValaSymbol*) s);
	VALA_CODE_VISITOR_CLASS (code_plugins_vala_symbol_resolver_parent_class)->visit_constructor ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_SYMBOL_RESOLVER, ValaSymbolResolver), s);
}

static void
code_plugins_vala_symbol_resolver_real_visit_destructor (ValaCodeVisitor* base,
                                                         ValaDestructor* s)
{
	CodePluginsValaSymbolResolver * self;
	GeeTreeSet* _tmp0_;
	self = (CodePluginsValaSymbolResolver*) base;
	g_return_if_fail (s != NULL);
	_tmp0_ = self->priv->symbols;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, (ValaSymbol*) s);
	VALA_CODE_VISITOR_CLASS (code_plugins_vala_symbol_resolver_parent_class)->visit_destructor ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_SYMBOL_RESOLVER, ValaSymbolResolver), s);
}

static void
code_plugins_vala_symbol_resolver_real_visit_creation_method (ValaCodeVisitor* base,
                                                              ValaCreationMethod* s)
{
	CodePluginsValaSymbolResolver * self;
	GeeTreeSet* _tmp0_;
	self = (CodePluginsValaSymbolResolver*) base;
	g_return_if_fail (s != NULL);
	_tmp0_ = self->priv->symbols;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, (ValaSymbol*) s);
	VALA_CODE_VISITOR_CLASS (code_plugins_vala_symbol_resolver_parent_class)->visit_creation_method ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_SYMBOL_RESOLVER, ValaSymbolResolver), s);
}

static void
code_plugins_vala_symbol_resolver_real_visit_enum (ValaCodeVisitor* base,
                                                   ValaEnum* s)
{
	CodePluginsValaSymbolResolver * self;
	GeeTreeSet* _tmp0_;
	self = (CodePluginsValaSymbolResolver*) base;
	g_return_if_fail (s != NULL);
	_tmp0_ = self->priv->symbols;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, (ValaSymbol*) s);
	VALA_CODE_VISITOR_CLASS (code_plugins_vala_symbol_resolver_parent_class)->visit_enum ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_SYMBOL_RESOLVER, ValaSymbolResolver), s);
}

static void
code_plugins_vala_symbol_resolver_real_visit_field (ValaCodeVisitor* base,
                                                    ValaField* s)
{
	CodePluginsValaSymbolResolver * self;
	GeeTreeSet* _tmp0_;
	self = (CodePluginsValaSymbolResolver*) base;
	g_return_if_fail (s != NULL);
	_tmp0_ = self->priv->symbols;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, (ValaSymbol*) s);
	VALA_CODE_VISITOR_CLASS (code_plugins_vala_symbol_resolver_parent_class)->visit_field ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_SYMBOL_RESOLVER, ValaSymbolResolver), s);
}

static void
code_plugins_vala_symbol_resolver_real_visit_interface (ValaCodeVisitor* base,
                                                        ValaInterface* s)
{
	CodePluginsValaSymbolResolver * self;
	GeeTreeSet* _tmp0_;
	self = (CodePluginsValaSymbolResolver*) base;
	g_return_if_fail (s != NULL);
	_tmp0_ = self->priv->symbols;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, (ValaSymbol*) s);
	VALA_CODE_VISITOR_CLASS (code_plugins_vala_symbol_resolver_parent_class)->visit_interface ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_SYMBOL_RESOLVER, ValaSymbolResolver), s);
}

static void
code_plugins_vala_symbol_resolver_real_visit_method (ValaCodeVisitor* base,
                                                     ValaMethod* s)
{
	CodePluginsValaSymbolResolver * self;
	GeeTreeSet* _tmp0_;
	self = (CodePluginsValaSymbolResolver*) base;
	g_return_if_fail (s != NULL);
	_tmp0_ = self->priv->symbols;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, (ValaSymbol*) s);
	VALA_CODE_VISITOR_CLASS (code_plugins_vala_symbol_resolver_parent_class)->visit_method ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_SYMBOL_RESOLVER, ValaSymbolResolver), s);
}

static void
code_plugins_vala_symbol_resolver_real_visit_namespace (ValaCodeVisitor* base,
                                                        ValaNamespace* s)
{
	CodePluginsValaSymbolResolver * self;
	GeeTreeSet* _tmp0_;
	self = (CodePluginsValaSymbolResolver*) base;
	g_return_if_fail (s != NULL);
	_tmp0_ = self->priv->symbols;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, (ValaSymbol*) s);
	VALA_CODE_VISITOR_CLASS (code_plugins_vala_symbol_resolver_parent_class)->visit_namespace ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_SYMBOL_RESOLVER, ValaSymbolResolver), s);
}

static void
code_plugins_vala_symbol_resolver_real_visit_property (ValaCodeVisitor* base,
                                                       ValaProperty* s)
{
	CodePluginsValaSymbolResolver * self;
	GeeTreeSet* _tmp0_;
	GeeTreeSet* _tmp1_;
	self = (CodePluginsValaSymbolResolver*) base;
	g_return_if_fail (s != NULL);
	_tmp0_ = self->priv->symbols;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, (ValaSymbol*) s);
	_tmp1_ = self->priv->properties;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp1_, s);
	VALA_CODE_VISITOR_CLASS (code_plugins_vala_symbol_resolver_parent_class)->visit_property ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_SYMBOL_RESOLVER, ValaSymbolResolver), s);
}

static void
code_plugins_vala_symbol_resolver_real_visit_signal (ValaCodeVisitor* base,
                                                     ValaSignal* s)
{
	CodePluginsValaSymbolResolver * self;
	GeeTreeSet* _tmp0_;
	self = (CodePluginsValaSymbolResolver*) base;
	g_return_if_fail (s != NULL);
	_tmp0_ = self->priv->symbols;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, (ValaSymbol*) s);
	VALA_CODE_VISITOR_CLASS (code_plugins_vala_symbol_resolver_parent_class)->visit_signal ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_SYMBOL_RESOLVER, ValaSymbolResolver), s);
}

static void
code_plugins_vala_symbol_resolver_real_visit_struct (ValaCodeVisitor* base,
                                                     ValaStruct* s)
{
	CodePluginsValaSymbolResolver * self;
	GeeTreeSet* _tmp0_;
	self = (CodePluginsValaSymbolResolver*) base;
	g_return_if_fail (s != NULL);
	_tmp0_ = self->priv->symbols;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp0_, (ValaSymbol*) s);
	VALA_CODE_VISITOR_CLASS (code_plugins_vala_symbol_resolver_parent_class)->visit_struct ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_SYMBOL_RESOLVER, ValaSymbolResolver), s);
}

CodePluginsValaSymbolResolver*
code_plugins_vala_symbol_resolver_construct (GType object_type)
{
	CodePluginsValaSymbolResolver* self = NULL;
	self = (CodePluginsValaSymbolResolver*) vala_symbol_resolver_construct (object_type);
	return self;
}

CodePluginsValaSymbolResolver*
code_plugins_vala_symbol_resolver_new (void)
{
	return code_plugins_vala_symbol_resolver_construct (CODE_PLUGINS_TYPE_VALA_SYMBOL_RESOLVER);
}

static void
code_plugins_vala_symbol_resolver_class_init (CodePluginsValaSymbolResolverClass * klass,
                                              gpointer klass_data)
{
	code_plugins_vala_symbol_resolver_parent_class = g_type_class_peek_parent (klass);
	((ValaCodeVisitorClass *) klass)->finalize = code_plugins_vala_symbol_resolver_finalize;
	g_type_class_adjust_private_offset (klass, &CodePluginsValaSymbolResolver_private_offset);
	((ValaCodeVisitorClass *) klass)->visit_class = (void (*) (ValaCodeVisitor*, ValaClass*)) code_plugins_vala_symbol_resolver_real_visit_class;
	((ValaCodeVisitorClass *) klass)->visit_constant = (void (*) (ValaCodeVisitor*, ValaConstant*)) code_plugins_vala_symbol_resolver_real_visit_constant;
	((ValaCodeVisitorClass *) klass)->visit_delegate = (void (*) (ValaCodeVisitor*, ValaDelegate*)) code_plugins_vala_symbol_resolver_real_visit_delegate;
	((ValaCodeVisitorClass *) klass)->visit_constructor = (void (*) (ValaCodeVisitor*, ValaConstructor*)) code_plugins_vala_symbol_resolver_real_visit_constructor;
	((ValaCodeVisitorClass *) klass)->visit_destructor = (void (*) (ValaCodeVisitor*, ValaDestructor*)) code_plugins_vala_symbol_resolver_real_visit_destructor;
	((ValaCodeVisitorClass *) klass)->visit_creation_method = (void (*) (ValaCodeVisitor*, ValaCreationMethod*)) code_plugins_vala_symbol_resolver_real_visit_creation_method;
	((ValaCodeVisitorClass *) klass)->visit_enum = (void (*) (ValaCodeVisitor*, ValaEnum*)) code_plugins_vala_symbol_resolver_real_visit_enum;
	((ValaCodeVisitorClass *) klass)->visit_field = (void (*) (ValaCodeVisitor*, ValaField*)) code_plugins_vala_symbol_resolver_real_visit_field;
	((ValaCodeVisitorClass *) klass)->visit_interface = (void (*) (ValaCodeVisitor*, ValaInterface*)) code_plugins_vala_symbol_resolver_real_visit_interface;
	((ValaCodeVisitorClass *) klass)->visit_method = (void (*) (ValaCodeVisitor*, ValaMethod*)) code_plugins_vala_symbol_resolver_real_visit_method;
	((ValaCodeVisitorClass *) klass)->visit_namespace = (void (*) (ValaCodeVisitor*, ValaNamespace*)) code_plugins_vala_symbol_resolver_real_visit_namespace;
	((ValaCodeVisitorClass *) klass)->visit_property = (void (*) (ValaCodeVisitor*, ValaProperty*)) code_plugins_vala_symbol_resolver_real_visit_property;
	((ValaCodeVisitorClass *) klass)->visit_signal = (void (*) (ValaCodeVisitor*, ValaSignal*)) code_plugins_vala_symbol_resolver_real_visit_signal;
	((ValaCodeVisitorClass *) klass)->visit_struct = (void (*) (ValaCodeVisitor*, ValaStruct*)) code_plugins_vala_symbol_resolver_real_visit_struct;
}

static void
code_plugins_vala_symbol_resolver_instance_init (CodePluginsValaSymbolResolver * self,
                                                 gpointer klass)
{
	GeeTreeSet* _tmp0_;
	GeeTreeSet* _tmp1_;
	self->priv = code_plugins_vala_symbol_resolver_get_instance_private (self);
	_tmp0_ = gee_tree_set_new (VALA_TYPE_PROPERTY, NULL, NULL, NULL, NULL, NULL);
	self->priv->properties = _tmp0_;
	_tmp1_ = gee_tree_set_new (VALA_TYPE_SYMBOL, NULL, NULL, NULL, NULL, NULL);
	self->priv->symbols = _tmp1_;
}

static void
code_plugins_vala_symbol_resolver_finalize (ValaCodeVisitor * obj)
{
	CodePluginsValaSymbolResolver * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, CODE_PLUGINS_TYPE_VALA_SYMBOL_RESOLVER, CodePluginsValaSymbolResolver);
	_g_object_unref0 (self->priv->properties);
	_g_object_unref0 (self->priv->symbols);
	VALA_CODE_VISITOR_CLASS (code_plugins_vala_symbol_resolver_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
code_plugins_vala_symbol_resolver_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (CodePluginsValaSymbolResolverClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) code_plugins_vala_symbol_resolver_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CodePluginsValaSymbolResolver), 0, (GInstanceInitFunc) code_plugins_vala_symbol_resolver_instance_init, NULL };
	GType code_plugins_vala_symbol_resolver_type_id;
	code_plugins_vala_symbol_resolver_type_id = g_type_register_static (VALA_TYPE_SYMBOL_RESOLVER, "CodePluginsValaSymbolResolver", &g_define_type_info, G_TYPE_FLAG_NONE);
	CodePluginsValaSymbolResolver_private_offset = g_type_add_instance_private (code_plugins_vala_symbol_resolver_type_id, sizeof (CodePluginsValaSymbolResolverPrivate));
	return code_plugins_vala_symbol_resolver_type_id;
}

GType
code_plugins_vala_symbol_resolver_get_type (void)
{
	static gsize code_plugins_vala_symbol_resolver_type_id__once = 0;
	if (g_once_init_enter (&code_plugins_vala_symbol_resolver_type_id__once)) {
		GType code_plugins_vala_symbol_resolver_type_id;
		code_plugins_vala_symbol_resolver_type_id = code_plugins_vala_symbol_resolver_get_type_once ();
		g_once_init_leave (&code_plugins_vala_symbol_resolver_type_id__once, code_plugins_vala_symbol_resolver_type_id);
	}
	return code_plugins_vala_symbol_resolver_type_id__once;
}

