~ubuntu-branches/ubuntu/vivid/vala/vivid

« back to all changes in this revision

Viewing changes to vala/valaconditionalexpression.c

  • Committer: Bazaar Package Importer
  • Author(s): Sebastian Dröge
  • Date: 2010-07-28 07:58:01 UTC
  • mfrom: (1.5.5 upstream) (7.3.14 experimental)
  • Revision ID: james.westby@ubuntu.com-20100728075801-18u9cg5hv5oety6m
Tags: 0.9.4-1
New upstream development release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
91
91
typedef struct _ValaSymbol ValaSymbol;
92
92
typedef struct _ValaSymbolClass ValaSymbolClass;
93
93
 
 
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))
 
100
 
 
101
typedef struct _ValaVariable ValaVariable;
 
102
typedef struct _ValaVariableClass ValaVariableClass;
 
103
 
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;
255
265
 
 
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))
 
272
 
 
273
typedef struct _ValaConstant ValaConstant;
 
274
typedef struct _ValaConstantClass ValaConstantClass;
 
275
 
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;
295
315
 
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))
302
 
 
303
 
typedef struct _ValaMember ValaMember;
304
 
typedef struct _ValaMemberClass ValaMemberClass;
305
 
 
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))
312
 
 
313
 
typedef struct _ValaConstant ValaConstant;
314
 
typedef struct _ValaConstantClass ValaConstantClass;
315
 
 
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);
1378
1377
 
1379
1378
 
1380
1379
 
 
1380
/**
 
1381
 * Creates a new conditional expression.
 
1382
 *
 
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
 
1387
 */
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);
1511
1518
                return result;
1512
1519
        }
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)));
1547
1554
        }
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));
1656
1663
}
1657
1664
 
1658
1665
 
 
1666
/**
 
1667
 * Represents a conditional expression in the source code.
 
1668
 */
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)) {