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

#include <glib-object.h>
#include <glib.h>
#include <gobject/gvaluecollector.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 TYPE_FOO (foo_get_type ())
#define FOO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FOO, Foo))
#define FOO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FOO, FooClass))
#define IS_FOO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FOO))
#define IS_FOO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FOO))
#define FOO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FOO, FooClass))

typedef struct _Foo Foo;
typedef struct _FooClass FooClass;
typedef struct _FooPrivate FooPrivate;
typedef struct _ParamSpecFoo ParamSpecFoo;
#define _foo_unref0(var) ((var == NULL) ? NULL : (var = (foo_unref (var), NULL)))
#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);

struct _Foo {
	GTypeInstance parent_instance;
	volatile int ref_count;
	FooPrivate * priv;
};

struct _FooClass {
	GTypeClass parent_class;
	void (*finalize) (Foo *self);
};

struct _FooPrivate {
	gint _property;
};

struct _ParamSpecFoo {
	GParamSpec parent_instance;
};

static gint Foo_private_offset;
static gpointer foo_parent_class = NULL;

VALA_EXTERN gpointer foo_ref (gpointer instance);
VALA_EXTERN void foo_unref (gpointer instance);
VALA_EXTERN GParamSpec* param_spec_foo (const gchar* name,
                            const gchar* nick,
                            const gchar* blurb,
                            GType object_type,
                            GParamFlags flags);
VALA_EXTERN void value_set_foo (GValue* value,
                    gpointer v_object);
VALA_EXTERN void value_take_foo (GValue* value,
                     gpointer v_object);
VALA_EXTERN gpointer value_get_foo (const GValue* value);
VALA_EXTERN GType foo_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (Foo, foo_unref)
VALA_EXTERN Foo* foo_new (void);
VALA_EXTERN Foo* foo_construct (GType object_type);
VALA_EXTERN void foo_set_property (Foo* self,
                       gint value);
VALA_EXTERN gint foo_get_property (Foo* self);
static void foo_finalize (Foo * obj);
static GType foo_get_type_once (void);
static void _vala_main (void);

static inline gpointer
foo_get_instance_private (Foo* self)
{
	return G_STRUCT_MEMBER_P (self, Foo_private_offset);
}

Foo*
foo_construct (GType object_type)
{
	Foo* self = NULL;
	self = (Foo*) g_type_create_instance (object_type);
	{
		gint res = 0;
		gint _tmp0_;
		gint _tmp1_;
		gint _tmp2_;
		foo_set_property (self, 1);
		_tmp0_ = self->priv->_property;
		_tmp1_ = self->priv->_property;
		foo_set_property (self, _tmp1_ + 1);
		res = _tmp0_ + _tmp1_;
		_vala_assert (res == 2, "res == 2");
		_tmp2_ = self->priv->_property;
		_vala_assert (_tmp2_ == 2, "property == 2");
	}
	{
		gint res = 0;
		gint _tmp3_;
		gint _tmp4_;
		gint _tmp5_;
		foo_set_property (self, 1);
		_tmp3_ = self->priv->_property;
		foo_set_property (self, _tmp3_ + 1);
		_tmp4_ = self->priv->_property;
		res = _tmp3_ + _tmp4_;
		_vala_assert (res == 3, "res == 3");
		_tmp5_ = self->priv->_property;
		_vala_assert (_tmp5_ == 2, "property == 2");
	}
	{
		gint res = 0;
		gint _tmp6_;
		gint _tmp7_;
		gint _tmp8_;
		gint _tmp9_;
		foo_set_property (self, 1);
		_tmp6_ = self->priv->_property;
		_tmp7_ = self->priv->_property;
		_tmp7_ = _tmp7_ + 1;
		_tmp8_ = _tmp7_;
		foo_set_property (self, _tmp8_);
		res = _tmp6_ + _tmp8_;
		_vala_assert (res == 3, "res == 3");
		_tmp9_ = self->priv->_property;
		_vala_assert (_tmp9_ == 2, "property == 2");
	}
	{
		gint res = 0;
		gint _tmp10_;
		gint _tmp11_;
		gint _tmp12_;
		gint _tmp13_;
		foo_set_property (self, 1);
		_tmp10_ = self->priv->_property;
		_tmp10_ = _tmp10_ + 1;
		_tmp11_ = _tmp10_;
		foo_set_property (self, _tmp11_);
		_tmp12_ = self->priv->_property;
		res = _tmp11_ + _tmp12_;
		_vala_assert (res == 4, "res == 4");
		_tmp13_ = self->priv->_property;
		_vala_assert (_tmp13_ == 2, "property == 2");
	}
	{
		gint _tmp14_;
		gint _tmp15_;
		foo_set_property (self, 1);
		_tmp14_ = self->priv->_property;
		foo_set_property (self, _tmp14_ + 1);
		_vala_assert (_tmp14_ == 1, "property++ == 1");
		_tmp15_ = self->priv->_property;
		_vala_assert (_tmp15_ == 2, "property == 2");
	}
	{
		gint _tmp16_;
		gint _tmp17_;
		gint _tmp18_;
		foo_set_property (self, 1);
		_tmp16_ = self->priv->_property;
		_tmp16_ = _tmp16_ + 1;
		_tmp17_ = _tmp16_;
		foo_set_property (self, _tmp17_);
		_vala_assert (_tmp17_ == 2, "++property == 2");
		_tmp18_ = self->priv->_property;
		_vala_assert (_tmp18_ == 2, "property == 2");
	}
	{
		gint res = 0;
		gint _tmp19_;
		gint _tmp20_;
		gint _tmp21_;
		foo_set_property (self, 1);
		_tmp19_ = self->priv->_property;
		_tmp20_ = self->priv->_property;
		foo_set_property (self, _tmp20_ - 1);
		res = _tmp19_ + _tmp20_;
		_vala_assert (res == 2, "res == 2");
		_tmp21_ = self->priv->_property;
		_vala_assert (_tmp21_ == 0, "property == 0");
	}
	{
		gint res = 0;
		gint _tmp22_;
		gint _tmp23_;
		gint _tmp24_;
		foo_set_property (self, 1);
		_tmp22_ = self->priv->_property;
		foo_set_property (self, _tmp22_ - 1);
		_tmp23_ = self->priv->_property;
		res = _tmp22_ + _tmp23_;
		_vala_assert (res == 1, "res == 1");
		_tmp24_ = self->priv->_property;
		_vala_assert (_tmp24_ == 0, "property == 0");
	}
	{
		gint res = 0;
		gint _tmp25_;
		gint _tmp26_;
		gint _tmp27_;
		gint _tmp28_;
		foo_set_property (self, 1);
		_tmp25_ = self->priv->_property;
		_tmp26_ = self->priv->_property;
		_tmp26_ = _tmp26_ - 1;
		_tmp27_ = _tmp26_;
		foo_set_property (self, _tmp27_);
		res = _tmp25_ + _tmp27_;
		_vala_assert (res == 1, "res == 1");
		_tmp28_ = self->priv->_property;
		_vala_assert (_tmp28_ == 0, "property == 0");
	}
	{
		gint res = 0;
		gint _tmp29_;
		gint _tmp30_;
		gint _tmp31_;
		gint _tmp32_;
		foo_set_property (self, 1);
		_tmp29_ = self->priv->_property;
		_tmp29_ = _tmp29_ - 1;
		_tmp30_ = _tmp29_;
		foo_set_property (self, _tmp30_);
		_tmp31_ = self->priv->_property;
		res = _tmp30_ + _tmp31_;
		_vala_assert (res == 0, "res == 0");
		_tmp32_ = self->priv->_property;
		_vala_assert (_tmp32_ == 0, "property == 0");
	}
	{
		gint _tmp33_;
		gint _tmp34_;
		foo_set_property (self, 1);
		_tmp33_ = self->priv->_property;
		foo_set_property (self, _tmp33_ - 1);
		_vala_assert (_tmp33_ == 1, "property-- == 1");
		_tmp34_ = self->priv->_property;
		_vala_assert (_tmp34_ == 0, "property == 0");
	}
	{
		gint _tmp35_;
		gint _tmp36_;
		gint _tmp37_;
		foo_set_property (self, 1);
		_tmp35_ = self->priv->_property;
		_tmp35_ = _tmp35_ - 1;
		_tmp36_ = _tmp35_;
		foo_set_property (self, _tmp36_);
		_vala_assert (_tmp36_ == 0, "--property == 0");
		_tmp37_ = self->priv->_property;
		_vala_assert (_tmp37_ == 0, "property == 0");
	}
	return self;
}

Foo*
foo_new (void)
{
	return foo_construct (TYPE_FOO);
}

gint
foo_get_property (Foo* self)
{
	gint result;
	g_return_val_if_fail (IS_FOO (self), 0);
	result = self->priv->_property;
	return result;
}

void
foo_set_property (Foo* self,
                  gint value)
{
	g_return_if_fail (IS_FOO (self));
	self->priv->_property = value;
}

static void
value_foo_init (GValue* value)
{
	value->data[0].v_pointer = NULL;
}

static void
value_foo_free_value (GValue* value)
{
	if (value->data[0].v_pointer) {
		foo_unref (value->data[0].v_pointer);
	}
}

static void
value_foo_copy_value (const GValue* src_value,
                      GValue* dest_value)
{
	if (src_value->data[0].v_pointer) {
		dest_value->data[0].v_pointer = foo_ref (src_value->data[0].v_pointer);
	} else {
		dest_value->data[0].v_pointer = NULL;
	}
}

static gpointer
value_foo_peek_pointer (const GValue* value)
{
	return value->data[0].v_pointer;
}

static gchar*
value_foo_collect_value (GValue* value,
                         guint n_collect_values,
                         GTypeCValue* collect_values,
                         guint collect_flags)
{
	if (collect_values[0].v_pointer) {
		Foo * object;
		object = collect_values[0].v_pointer;
		if (object->parent_instance.g_class == NULL) {
			return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
		} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
			return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
		}
		value->data[0].v_pointer = foo_ref (object);
	} else {
		value->data[0].v_pointer = NULL;
	}
	return NULL;
}

static gchar*
value_foo_lcopy_value (const GValue* value,
                       guint n_collect_values,
                       GTypeCValue* collect_values,
                       guint collect_flags)
{
	Foo ** object_p;
	object_p = collect_values[0].v_pointer;
	if (!object_p) {
		return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
	}
	if (!value->data[0].v_pointer) {
		*object_p = NULL;
	} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
		*object_p = value->data[0].v_pointer;
	} else {
		*object_p = foo_ref (value->data[0].v_pointer);
	}
	return NULL;
}

GParamSpec*
param_spec_foo (const gchar* name,
                const gchar* nick,
                const gchar* blurb,
                GType object_type,
                GParamFlags flags)
{
	ParamSpecFoo* spec;
	g_return_val_if_fail (g_type_is_a (object_type, TYPE_FOO), NULL);
	spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
	G_PARAM_SPEC (spec)->value_type = object_type;
	return G_PARAM_SPEC (spec);
}

gpointer
value_get_foo (const GValue* value)
{
	g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_FOO), NULL);
	return value->data[0].v_pointer;
}

void
value_set_foo (GValue* value,
               gpointer v_object)
{
	Foo * old;
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_FOO));
	old = value->data[0].v_pointer;
	if (v_object) {
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_FOO));
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
		value->data[0].v_pointer = v_object;
		foo_ref (value->data[0].v_pointer);
	} else {
		value->data[0].v_pointer = NULL;
	}
	if (old) {
		foo_unref (old);
	}
}

void
value_take_foo (GValue* value,
                gpointer v_object)
{
	Foo * old;
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_FOO));
	old = value->data[0].v_pointer;
	if (v_object) {
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_FOO));
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
		value->data[0].v_pointer = v_object;
	} else {
		value->data[0].v_pointer = NULL;
	}
	if (old) {
		foo_unref (old);
	}
}

static void
foo_class_init (FooClass * klass,
                gpointer klass_data)
{
	foo_parent_class = g_type_class_peek_parent (klass);
	((FooClass *) klass)->finalize = foo_finalize;
	g_type_class_adjust_private_offset (klass, &Foo_private_offset);
}

static void
foo_instance_init (Foo * self,
                   gpointer klass)
{
	self->priv = foo_get_instance_private (self);
	self->ref_count = 1;
}

static void
foo_finalize (Foo * obj)
{
	Foo * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_FOO, Foo);
	g_signal_handlers_destroy (self);
}

static GType
foo_get_type_once (void)
{
	static const GTypeValueTable g_define_type_value_table = { value_foo_init, value_foo_free_value, value_foo_copy_value, value_foo_peek_pointer, "p", value_foo_collect_value, "p", value_foo_lcopy_value };
	static const GTypeInfo g_define_type_info = { sizeof (FooClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) foo_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Foo), 0, (GInstanceInitFunc) foo_instance_init, &g_define_type_value_table };
	static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
	GType foo_type_id;
	foo_type_id = g_type_register_fundamental (g_type_fundamental_next (), "Foo", &g_define_type_info, &g_define_type_fundamental_info, 0);
	Foo_private_offset = g_type_add_instance_private (foo_type_id, sizeof (FooPrivate));
	return foo_type_id;
}

GType
foo_get_type (void)
{
	static volatile gsize foo_type_id__once = 0;
	if (g_once_init_enter (&foo_type_id__once)) {
		GType foo_type_id;
		foo_type_id = foo_get_type_once ();
		g_once_init_leave (&foo_type_id__once, foo_type_id);
	}
	return foo_type_id__once;
}

gpointer
foo_ref (gpointer instance)
{
	Foo * self;
	self = instance;
	g_atomic_int_inc (&self->ref_count);
	return instance;
}

void
foo_unref (gpointer instance)
{
	Foo * self;
	self = instance;
	if (g_atomic_int_dec_and_test (&self->ref_count)) {
		FOO_GET_CLASS (self)->finalize (self);
		g_type_free_instance ((GTypeInstance *) self);
	}
}

static void
_vala_main (void)
{
	Foo* foo = NULL;
	Foo* _tmp0_;
	_tmp0_ = foo_new ();
	foo = _tmp0_;
	{
		gint res = 0;
		gint _tmp1_;
		gint _tmp2_;
		gint _tmp3_;
		gint _tmp4_;
		gint _tmp5_;
		gint _tmp6_;
		foo_set_property (foo, 1);
		_tmp1_ = foo_get_property (foo);
		_tmp2_ = _tmp1_;
		_tmp3_ = foo_get_property (foo);
		_tmp4_ = _tmp3_;
		foo_set_property (foo, _tmp4_ + 1);
		res = _tmp2_ + _tmp4_;
		_vala_assert (res == 2, "res == 2");
		_tmp5_ = foo_get_property (foo);
		_tmp6_ = _tmp5_;
		_vala_assert (_tmp6_ == 2, "foo.property == 2");
	}
	{
		gint res = 0;
		gint _tmp7_;
		gint _tmp8_;
		gint _tmp9_;
		gint _tmp10_;
		gint _tmp11_;
		gint _tmp12_;
		foo_set_property (foo, 1);
		_tmp7_ = foo_get_property (foo);
		_tmp8_ = _tmp7_;
		foo_set_property (foo, _tmp8_ + 1);
		_tmp9_ = foo_get_property (foo);
		_tmp10_ = _tmp9_;
		res = _tmp8_ + _tmp10_;
		_vala_assert (res == 3, "res == 3");
		_tmp11_ = foo_get_property (foo);
		_tmp12_ = _tmp11_;
		_vala_assert (_tmp12_ == 2, "foo.property == 2");
	}
	{
		gint res = 0;
		gint _tmp13_;
		gint _tmp14_;
		gint _tmp15_;
		gint _tmp16_;
		gint _tmp17_;
		gint _tmp18_;
		gint _tmp19_;
		foo_set_property (foo, 1);
		_tmp13_ = foo_get_property (foo);
		_tmp14_ = _tmp13_;
		_tmp15_ = foo_get_property (foo);
		_tmp16_ = _tmp15_;
		_tmp16_ = _tmp16_ + 1;
		_tmp17_ = _tmp16_;
		foo_set_property (foo, _tmp17_);
		res = _tmp14_ + _tmp17_;
		_vala_assert (res == 3, "res == 3");
		_tmp18_ = foo_get_property (foo);
		_tmp19_ = _tmp18_;
		_vala_assert (_tmp19_ == 2, "foo.property == 2");
	}
	{
		gint res = 0;
		gint _tmp20_;
		gint _tmp21_;
		gint _tmp22_;
		gint _tmp23_;
		gint _tmp24_;
		gint _tmp25_;
		gint _tmp26_;
		foo_set_property (foo, 1);
		_tmp20_ = foo_get_property (foo);
		_tmp21_ = _tmp20_;
		_tmp21_ = _tmp21_ + 1;
		_tmp22_ = _tmp21_;
		foo_set_property (foo, _tmp22_);
		_tmp23_ = foo_get_property (foo);
		_tmp24_ = _tmp23_;
		res = _tmp22_ + _tmp24_;
		_vala_assert (res == 4, "res == 4");
		_tmp25_ = foo_get_property (foo);
		_tmp26_ = _tmp25_;
		_vala_assert (_tmp26_ == 2, "foo.property == 2");
	}
	{
		gint _tmp27_;
		gint _tmp28_;
		gint _tmp29_;
		gint _tmp30_;
		foo_set_property (foo, 1);
		_tmp27_ = foo_get_property (foo);
		_tmp28_ = _tmp27_;
		foo_set_property (foo, _tmp28_ + 1);
		_vala_assert (_tmp28_ == 1, "foo.property++ == 1");
		_tmp29_ = foo_get_property (foo);
		_tmp30_ = _tmp29_;
		_vala_assert (_tmp30_ == 2, "foo.property == 2");
	}
	{
		gint _tmp31_;
		gint _tmp32_;
		gint _tmp33_;
		gint _tmp34_;
		gint _tmp35_;
		foo_set_property (foo, 1);
		_tmp31_ = foo_get_property (foo);
		_tmp32_ = _tmp31_;
		_tmp32_ = _tmp32_ + 1;
		_tmp33_ = _tmp32_;
		foo_set_property (foo, _tmp33_);
		_vala_assert (_tmp33_ == 2, "++foo.property == 2");
		_tmp34_ = foo_get_property (foo);
		_tmp35_ = _tmp34_;
		_vala_assert (_tmp35_ == 2, "foo.property == 2");
	}
	{
		gint res = 0;
		gint _tmp36_;
		gint _tmp37_;
		gint _tmp38_;
		gint _tmp39_;
		gint _tmp40_;
		gint _tmp41_;
		foo_set_property (foo, 1);
		_tmp36_ = foo_get_property (foo);
		_tmp37_ = _tmp36_;
		_tmp38_ = foo_get_property (foo);
		_tmp39_ = _tmp38_;
		foo_set_property (foo, _tmp39_ - 1);
		res = _tmp37_ + _tmp39_;
		_vala_assert (res == 2, "res == 2");
		_tmp40_ = foo_get_property (foo);
		_tmp41_ = _tmp40_;
		_vala_assert (_tmp41_ == 0, "foo.property == 0");
	}
	{
		gint res = 0;
		gint _tmp42_;
		gint _tmp43_;
		gint _tmp44_;
		gint _tmp45_;
		gint _tmp46_;
		gint _tmp47_;
		foo_set_property (foo, 1);
		_tmp42_ = foo_get_property (foo);
		_tmp43_ = _tmp42_;
		foo_set_property (foo, _tmp43_ - 1);
		_tmp44_ = foo_get_property (foo);
		_tmp45_ = _tmp44_;
		res = _tmp43_ + _tmp45_;
		_vala_assert (res == 1, "res == 1");
		_tmp46_ = foo_get_property (foo);
		_tmp47_ = _tmp46_;
		_vala_assert (_tmp47_ == 0, "foo.property == 0");
	}
	{
		gint res = 0;
		gint _tmp48_;
		gint _tmp49_;
		gint _tmp50_;
		gint _tmp51_;
		gint _tmp52_;
		gint _tmp53_;
		gint _tmp54_;
		foo_set_property (foo, 1);
		_tmp48_ = foo_get_property (foo);
		_tmp49_ = _tmp48_;
		_tmp50_ = foo_get_property (foo);
		_tmp51_ = _tmp50_;
		_tmp51_ = _tmp51_ - 1;
		_tmp52_ = _tmp51_;
		foo_set_property (foo, _tmp52_);
		res = _tmp49_ + _tmp52_;
		_vala_assert (res == 1, "res == 1");
		_tmp53_ = foo_get_property (foo);
		_tmp54_ = _tmp53_;
		_vala_assert (_tmp54_ == 0, "foo.property == 0");
	}
	{
		gint res = 0;
		gint _tmp55_;
		gint _tmp56_;
		gint _tmp57_;
		gint _tmp58_;
		gint _tmp59_;
		gint _tmp60_;
		gint _tmp61_;
		foo_set_property (foo, 1);
		_tmp55_ = foo_get_property (foo);
		_tmp56_ = _tmp55_;
		_tmp56_ = _tmp56_ - 1;
		_tmp57_ = _tmp56_;
		foo_set_property (foo, _tmp57_);
		_tmp58_ = foo_get_property (foo);
		_tmp59_ = _tmp58_;
		res = _tmp57_ + _tmp59_;
		_vala_assert (res == 0, "res == 0");
		_tmp60_ = foo_get_property (foo);
		_tmp61_ = _tmp60_;
		_vala_assert (_tmp61_ == 0, "foo.property == 0");
	}
	{
		gint _tmp62_;
		gint _tmp63_;
		gint _tmp64_;
		gint _tmp65_;
		foo_set_property (foo, 1);
		_tmp62_ = foo_get_property (foo);
		_tmp63_ = _tmp62_;
		foo_set_property (foo, _tmp63_ - 1);
		_vala_assert (_tmp63_ == 1, "foo.property-- == 1");
		_tmp64_ = foo_get_property (foo);
		_tmp65_ = _tmp64_;
		_vala_assert (_tmp65_ == 0, "foo.property == 0");
	}
	{
		gint _tmp66_;
		gint _tmp67_;
		gint _tmp68_;
		gint _tmp69_;
		gint _tmp70_;
		foo_set_property (foo, 1);
		_tmp66_ = foo_get_property (foo);
		_tmp67_ = _tmp66_;
		_tmp67_ = _tmp67_ - 1;
		_tmp68_ = _tmp67_;
		foo_set_property (foo, _tmp68_);
		_vala_assert (_tmp68_ == 0, "--foo.property == 0");
		_tmp69_ = foo_get_property (foo);
		_tmp70_ = _tmp69_;
		_vala_assert (_tmp70_ == 0, "foo.property == 0");
	}
	_foo_unref0 (foo);
}

int
main (int argc,
      char ** argv)
{
	_vala_main ();
	return 0;
}

