91
91
typedef struct _ValaSymbol ValaSymbol;
92
92
typedef struct _ValaSymbolClass ValaSymbolClass;
94
#define VALA_TYPE_VARIABLE (vala_variable_get_type ())
95
#define VALA_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_VARIABLE, ValaVariable))
96
#define VALA_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_VARIABLE, ValaVariableClass))
97
#define VALA_IS_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_VARIABLE))
98
#define VALA_IS_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_VARIABLE))
99
#define VALA_VARIABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_VARIABLE, ValaVariableClass))
101
typedef struct _ValaVariable ValaVariable;
102
typedef struct _ValaVariableClass ValaVariableClass;
94
104
#define VALA_TYPE_LOCAL_VARIABLE (vala_local_variable_get_type ())
95
105
#define VALA_LOCAL_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_LOCAL_VARIABLE, ValaLocalVariable))
96
106
#define VALA_LOCAL_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_LOCAL_VARIABLE, ValaLocalVariableClass))
253
263
typedef struct _ValaEnum ValaEnum;
254
264
typedef struct _ValaEnumClass ValaEnumClass;
266
#define VALA_TYPE_CONSTANT (vala_constant_get_type ())
267
#define VALA_CONSTANT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CONSTANT, ValaConstant))
268
#define VALA_CONSTANT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CONSTANT, ValaConstantClass))
269
#define VALA_IS_CONSTANT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CONSTANT))
270
#define VALA_IS_CONSTANT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CONSTANT))
271
#define VALA_CONSTANT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CONSTANT, ValaConstantClass))
273
typedef struct _ValaConstant ValaConstant;
274
typedef struct _ValaConstantClass ValaConstantClass;
256
276
#define VALA_TYPE_ENUM_VALUE (vala_enum_value_get_type ())
257
277
#define VALA_ENUM_VALUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ENUM_VALUE, ValaEnumValue))
258
278
#define VALA_ENUM_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ENUM_VALUE, ValaEnumValueClass))
293
313
typedef struct _ValaDelegate ValaDelegate;
294
314
typedef struct _ValaDelegateClass ValaDelegateClass;
296
#define VALA_TYPE_MEMBER (vala_member_get_type ())
297
#define VALA_MEMBER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_MEMBER, ValaMember))
298
#define VALA_MEMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_MEMBER, ValaMemberClass))
299
#define VALA_IS_MEMBER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_MEMBER))
300
#define VALA_IS_MEMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_MEMBER))
301
#define VALA_MEMBER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_MEMBER, ValaMemberClass))
303
typedef struct _ValaMember ValaMember;
304
typedef struct _ValaMemberClass ValaMemberClass;
306
#define VALA_TYPE_CONSTANT (vala_constant_get_type ())
307
#define VALA_CONSTANT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CONSTANT, ValaConstant))
308
#define VALA_CONSTANT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CONSTANT, ValaConstantClass))
309
#define VALA_IS_CONSTANT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CONSTANT))
310
#define VALA_IS_CONSTANT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CONSTANT))
311
#define VALA_CONSTANT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CONSTANT, ValaConstantClass))
313
typedef struct _ValaConstant ValaConstant;
314
typedef struct _ValaConstantClass ValaConstantClass;
316
316
#define VALA_TYPE_FIELD (vala_field_get_type ())
317
317
#define VALA_FIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_FIELD, ValaField))
318
318
#define VALA_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_FIELD, ValaFieldClass))
1058
1058
void (*visit_error_domain) (ValaCodeVisitor* self, ValaErrorDomain* edomain);
1059
1059
void (*visit_error_code) (ValaCodeVisitor* self, ValaErrorCode* ecode);
1060
1060
void (*visit_delegate) (ValaCodeVisitor* self, ValaDelegate* d);
1061
void (*visit_member) (ValaCodeVisitor* self, ValaMember* m);
1062
1061
void (*visit_constant) (ValaCodeVisitor* self, ValaConstant* c);
1063
1062
void (*visit_field) (ValaCodeVisitor* self, ValaField* f);
1064
1063
void (*visit_method) (ValaCodeVisitor* self, ValaMethod* m);
1210
1209
GType vala_data_type_get_type (void) G_GNUC_CONST;
1211
1210
GType vala_expression_get_type (void) G_GNUC_CONST;
1212
1211
GType vala_symbol_get_type (void) G_GNUC_CONST;
1212
GType vala_variable_get_type (void) G_GNUC_CONST;
1213
1213
GType vala_local_variable_get_type (void) G_GNUC_CONST;
1214
1214
GType vala_attribute_get_type (void) G_GNUC_CONST;
1215
1215
GType vala_conditional_expression_get_type (void) G_GNUC_CONST;
1278
1278
GType vala_struct_get_type (void) G_GNUC_CONST;
1279
1279
GType vala_interface_get_type (void) G_GNUC_CONST;
1280
1280
GType vala_enum_get_type (void) G_GNUC_CONST;
1281
GType vala_constant_get_type (void) G_GNUC_CONST;
1281
1282
GType vala_enum_value_get_type (void) G_GNUC_CONST;
1282
1283
GType vala_error_domain_get_type (void) G_GNUC_CONST;
1283
1284
GType vala_error_code_get_type (void) G_GNUC_CONST;
1284
1285
GType vala_delegate_get_type (void) G_GNUC_CONST;
1285
GType vala_member_get_type (void) G_GNUC_CONST;
1286
GType vala_constant_get_type (void) G_GNUC_CONST;
1287
1286
GType vala_field_get_type (void) G_GNUC_CONST;
1288
1287
GType vala_method_get_type (void) G_GNUC_CONST;
1289
1288
GType vala_creation_method_get_type (void) G_GNUC_CONST;
1352
1351
GType vala_value_type_get_type (void) G_GNUC_CONST;
1353
1352
GType vala_struct_value_type_get_type (void) G_GNUC_CONST;
1354
1353
gboolean vala_code_node_check (ValaCodeNode* self, ValaSemanticAnalyzer* analyzer);
1355
ValaExpression* vala_local_variable_get_initializer (ValaLocalVariable* self);
1354
ValaExpression* vala_variable_get_initializer (ValaVariable* self);
1356
1355
void vala_block_remove_local_variable (ValaBlock* self, ValaLocalVariable* local);
1357
1356
ValaDataType* vala_expression_get_value_type (ValaExpression* self);
1358
1357
gboolean vala_data_type_compatible (ValaDataType* self, ValaDataType* target_type);
1360
1359
void vala_expression_set_value_type (ValaExpression* self, ValaDataType* value);
1361
1360
gboolean vala_data_type_get_value_owned (ValaDataType* self);
1362
1361
void vala_data_type_set_value_owned (ValaDataType* self, gboolean value);
1363
void vala_local_variable_set_variable_type (ValaLocalVariable* self, ValaDataType* value);
1362
void vala_variable_set_variable_type (ValaVariable* self, ValaDataType* value);
1364
1363
ValaMemberAccess* vala_member_access_new_simple (const char* member_name, ValaSourceReference* source_reference);
1365
1364
ValaMemberAccess* vala_member_access_construct_simple (GType object_type, const char* member_name, ValaSourceReference* source_reference);
1366
1365
const char* vala_symbol_get_name (ValaSymbol* self);
1381
* Creates a new conditional expression.
1383
* @param cond a condition
1384
* @param true_expr expression to be evaluated if condition is true
1385
* @param false_expr expression to be evaluated if condition is false
1386
* @return newly created conditional expression
1381
1388
ValaConditionalExpression* vala_conditional_expression_construct (GType object_type, ValaExpression* cond, ValaExpression* true_expr, ValaExpression* false_expr, ValaSourceReference* source) {
1382
1389
ValaConditionalExpression* self;
1383
1390
g_return_val_if_fail (cond != NULL, NULL);
1510
1517
_g_free0 (temp_name);
1513
vala_conditional_expression_set_true_expression (self, vala_local_variable_get_initializer (true_local));
1514
vala_conditional_expression_set_false_expression (self, vala_local_variable_get_initializer (false_local));
1520
vala_conditional_expression_set_true_expression (self, vala_variable_get_initializer ((ValaVariable*) true_local));
1521
vala_conditional_expression_set_false_expression (self, vala_variable_get_initializer ((ValaVariable*) false_local));
1515
1522
vala_block_remove_local_variable (true_block, true_local);
1516
1523
vala_block_remove_local_variable (false_block, false_local);
1517
1524
if (vala_data_type_compatible (vala_expression_get_value_type (vala_conditional_expression_get_false_expression (self)), vala_expression_get_value_type (vala_conditional_expression_get_true_expression (self)))) {
1546
1553
_tmp4_ = vala_data_type_get_value_owned (vala_expression_get_value_type (vala_conditional_expression_get_false_expression (self)));
1548
1555
vala_data_type_set_value_owned (vala_expression_get_value_type ((ValaExpression*) self), _tmp4_);
1549
vala_local_variable_set_variable_type (local, vala_expression_get_value_type ((ValaExpression*) self));
1556
vala_variable_set_variable_type ((ValaVariable*) local, vala_expression_get_value_type ((ValaExpression*) self));
1550
1557
vala_code_node_check ((ValaCodeNode*) decl, analyzer);
1551
1558
vala_expression_set_target_type (vala_conditional_expression_get_true_expression (self), vala_expression_get_value_type ((ValaExpression*) self));
1552
1559
vala_expression_set_target_type (vala_conditional_expression_get_false_expression (self), vala_expression_get_value_type ((ValaExpression*) self));
1667
* Represents a conditional expression in the source code.
1659
1669
GType vala_conditional_expression_get_type (void) {
1660
1670
static volatile gsize vala_conditional_expression_type_id__volatile = 0;
1661
1671
if (g_once_init_enter (&vala_conditional_expression_type_id__volatile)) {