~ubuntu-branches/ubuntu/maverick/vala/maverick

« back to all changes in this revision

Viewing changes to vala/valamethodcall.c

  • Committer: Bazaar Package Importer
  • Author(s): Julien Lavergne
  • Date: 2010-02-13 17:59:22 UTC
  • mfrom: (7.3.7 sid)
  • Revision ID: james.westby@ubuntu.com-20100213175922-n8bq2xv2q1hihhqb
Tags: 0.7.10-1ubuntu1
* Sync with Debian unstable.
* Remaining changes :
 - debian/rules: Don't make unit test failures fatal to fix FTBFS. It was
   needed if vala need to enter main but it's not the case for now. 
   (See #374151)

Show diffs side-by-side

added added

removed removed

Lines of Context:
135
135
typedef struct _ValaSourceReference ValaSourceReference;
136
136
typedef struct _ValaSourceReferenceClass ValaSourceReferenceClass;
137
137
 
 
138
#define VALA_TYPE_MEMBER (vala_member_get_type ())
 
139
#define VALA_MEMBER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_MEMBER, ValaMember))
 
140
#define VALA_MEMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_MEMBER, ValaMemberClass))
 
141
#define VALA_IS_MEMBER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_MEMBER))
 
142
#define VALA_IS_MEMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_MEMBER))
 
143
#define VALA_MEMBER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_MEMBER, ValaMemberClass))
 
144
 
 
145
typedef struct _ValaMember ValaMember;
 
146
typedef struct _ValaMemberClass ValaMemberClass;
 
147
 
 
148
#define VALA_TYPE_METHOD (vala_method_get_type ())
 
149
#define VALA_METHOD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_METHOD, ValaMethod))
 
150
#define VALA_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_METHOD, ValaMethodClass))
 
151
#define VALA_IS_METHOD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_METHOD))
 
152
#define VALA_IS_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_METHOD))
 
153
#define VALA_METHOD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_METHOD, ValaMethodClass))
 
154
 
 
155
typedef struct _ValaMethod ValaMethod;
 
156
typedef struct _ValaMethodClass ValaMethodClass;
 
157
 
 
158
#define VALA_TYPE_CREATION_METHOD (vala_creation_method_get_type ())
 
159
#define VALA_CREATION_METHOD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CREATION_METHOD, ValaCreationMethod))
 
160
#define VALA_CREATION_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CREATION_METHOD, ValaCreationMethodClass))
 
161
#define VALA_IS_CREATION_METHOD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CREATION_METHOD))
 
162
#define VALA_IS_CREATION_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CREATION_METHOD))
 
163
#define VALA_CREATION_METHOD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CREATION_METHOD, ValaCreationMethodClass))
 
164
 
 
165
typedef struct _ValaCreationMethod ValaCreationMethod;
 
166
typedef struct _ValaCreationMethodClass ValaCreationMethodClass;
 
167
 
138
168
#define VALA_TYPE_MEMBER_ACCESS (vala_member_access_get_type ())
139
169
#define VALA_MEMBER_ACCESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_MEMBER_ACCESS, ValaMemberAccess))
140
170
#define VALA_MEMBER_ACCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_MEMBER_ACCESS, ValaMemberAccessClass))
144
174
 
145
175
typedef struct _ValaMemberAccess ValaMemberAccess;
146
176
typedef struct _ValaMemberAccessClass ValaMemberAccessClass;
 
177
 
 
178
#define VALA_TYPE_BASE_ACCESS (vala_base_access_get_type ())
 
179
#define VALA_BASE_ACCESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_BASE_ACCESS, ValaBaseAccess))
 
180
#define VALA_BASE_ACCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_BASE_ACCESS, ValaBaseAccessClass))
 
181
#define VALA_IS_BASE_ACCESS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_BASE_ACCESS))
 
182
#define VALA_IS_BASE_ACCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_BASE_ACCESS))
 
183
#define VALA_BASE_ACCESS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_BASE_ACCESS, ValaBaseAccessClass))
 
184
 
 
185
typedef struct _ValaBaseAccess ValaBaseAccess;
 
186
typedef struct _ValaBaseAccessClass ValaBaseAccessClass;
147
187
#define _g_free0(var) (var = (g_free (var), NULL))
148
188
 
149
189
#define VALA_TYPE_REFERENCE_TYPE (vala_reference_type_get_type ())
299
339
typedef struct _ValaDelegate ValaDelegate;
300
340
typedef struct _ValaDelegateClass ValaDelegateClass;
301
341
 
302
 
#define VALA_TYPE_MEMBER (vala_member_get_type ())
303
 
#define VALA_MEMBER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_MEMBER, ValaMember))
304
 
#define VALA_MEMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_MEMBER, ValaMemberClass))
305
 
#define VALA_IS_MEMBER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_MEMBER))
306
 
#define VALA_IS_MEMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_MEMBER))
307
 
#define VALA_MEMBER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_MEMBER, ValaMemberClass))
308
 
 
309
 
typedef struct _ValaMember ValaMember;
310
 
typedef struct _ValaMemberClass ValaMemberClass;
311
 
 
312
342
#define VALA_TYPE_CONSTANT (vala_constant_get_type ())
313
343
#define VALA_CONSTANT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CONSTANT, ValaConstant))
314
344
#define VALA_CONSTANT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CONSTANT, ValaConstantClass))
329
359
typedef struct _ValaField ValaField;
330
360
typedef struct _ValaFieldClass ValaFieldClass;
331
361
 
332
 
#define VALA_TYPE_METHOD (vala_method_get_type ())
333
 
#define VALA_METHOD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_METHOD, ValaMethod))
334
 
#define VALA_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_METHOD, ValaMethodClass))
335
 
#define VALA_IS_METHOD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_METHOD))
336
 
#define VALA_IS_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_METHOD))
337
 
#define VALA_METHOD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_METHOD, ValaMethodClass))
338
 
 
339
 
typedef struct _ValaMethod ValaMethod;
340
 
typedef struct _ValaMethodClass ValaMethodClass;
341
 
 
342
 
#define VALA_TYPE_CREATION_METHOD (vala_creation_method_get_type ())
343
 
#define VALA_CREATION_METHOD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CREATION_METHOD, ValaCreationMethod))
344
 
#define VALA_CREATION_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CREATION_METHOD, ValaCreationMethodClass))
345
 
#define VALA_IS_CREATION_METHOD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CREATION_METHOD))
346
 
#define VALA_IS_CREATION_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CREATION_METHOD))
347
 
#define VALA_CREATION_METHOD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CREATION_METHOD, ValaCreationMethodClass))
348
 
 
349
 
typedef struct _ValaCreationMethod ValaCreationMethod;
350
 
typedef struct _ValaCreationMethodClass ValaCreationMethodClass;
351
 
 
352
362
#define VALA_TYPE_FORMAL_PARAMETER (vala_formal_parameter_get_type ())
353
363
#define VALA_FORMAL_PARAMETER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_FORMAL_PARAMETER, ValaFormalParameter))
354
364
#define VALA_FORMAL_PARAMETER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_FORMAL_PARAMETER, ValaFormalParameterClass))
729
739
typedef struct _ValaStringLiteral ValaStringLiteral;
730
740
typedef struct _ValaStringLiteralClass ValaStringLiteralClass;
731
741
 
 
742
#define VALA_TYPE_TEMPLATE (vala_template_get_type ())
 
743
#define VALA_TEMPLATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_TEMPLATE, ValaTemplate))
 
744
#define VALA_TEMPLATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_TEMPLATE, ValaTemplateClass))
 
745
#define VALA_IS_TEMPLATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_TEMPLATE))
 
746
#define VALA_IS_TEMPLATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_TEMPLATE))
 
747
#define VALA_TEMPLATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_TEMPLATE, ValaTemplateClass))
 
748
 
 
749
typedef struct _ValaTemplate ValaTemplate;
 
750
typedef struct _ValaTemplateClass ValaTemplateClass;
 
751
 
732
752
#define VALA_TYPE_NULL_LITERAL (vala_null_literal_get_type ())
733
753
#define VALA_NULL_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_NULL_LITERAL, ValaNullLiteral))
734
754
#define VALA_NULL_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_NULL_LITERAL, ValaNullLiteralClass))
759
779
typedef struct _ValaSliceExpression ValaSliceExpression;
760
780
typedef struct _ValaSliceExpressionClass ValaSliceExpressionClass;
761
781
 
762
 
#define VALA_TYPE_BASE_ACCESS (vala_base_access_get_type ())
763
 
#define VALA_BASE_ACCESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_BASE_ACCESS, ValaBaseAccess))
764
 
#define VALA_BASE_ACCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_BASE_ACCESS, ValaBaseAccessClass))
765
 
#define VALA_IS_BASE_ACCESS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_BASE_ACCESS))
766
 
#define VALA_IS_BASE_ACCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_BASE_ACCESS))
767
 
#define VALA_BASE_ACCESS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_BASE_ACCESS, ValaBaseAccessClass))
768
 
 
769
 
typedef struct _ValaBaseAccess ValaBaseAccess;
770
 
typedef struct _ValaBaseAccessClass ValaBaseAccessClass;
771
 
 
772
782
#define VALA_TYPE_POSTFIX_EXPRESSION (vala_postfix_expression_get_type ())
773
783
#define VALA_POSTFIX_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_POSTFIX_EXPRESSION, ValaPostfixExpression))
774
784
#define VALA_POSTFIX_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_POSTFIX_EXPRESSION, ValaPostfixExpressionClass))
1116
1126
        void (*visit_integer_literal) (ValaCodeVisitor* self, ValaIntegerLiteral* lit);
1117
1127
        void (*visit_real_literal) (ValaCodeVisitor* self, ValaRealLiteral* lit);
1118
1128
        void (*visit_string_literal) (ValaCodeVisitor* self, ValaStringLiteral* lit);
 
1129
        void (*visit_template) (ValaCodeVisitor* self, ValaTemplate* tmpl);
1119
1130
        void (*visit_null_literal) (ValaCodeVisitor* self, ValaNullLiteral* lit);
1120
1131
        void (*visit_member_access) (ValaCodeVisitor* self, ValaMemberAccess* expr);
1121
1132
        void (*visit_method_call) (ValaCodeVisitor* self, ValaMethodCall* expr);
1229
1240
ValaCodeNode* vala_code_node_get_parent_node (ValaCodeNode* self);
1230
1241
static void vala_method_call_real_replace_expression (ValaCodeNode* base, ValaExpression* old_node, ValaExpression* new_node);
1231
1242
static gboolean vala_method_call_real_is_pure (ValaExpression* base);
 
1243
ValaSymbol* vala_expression_get_symbol_reference (ValaExpression* self);
 
1244
GType vala_member_get_type (void);
 
1245
GType vala_method_get_type (void);
 
1246
GType vala_creation_method_get_type (void);
 
1247
GType vala_member_access_get_type (void);
 
1248
ValaExpression* vala_member_access_get_inner (ValaMemberAccess* self);
 
1249
const char* vala_member_access_get_member_name (ValaMemberAccess* self);
 
1250
GType vala_base_access_get_type (void);
 
1251
static gboolean vala_method_call_is_chainup (ValaMethodCall* self);
1232
1252
gboolean vala_code_node_get_checked (ValaCodeNode* self);
1233
1253
gboolean vala_code_node_get_error (ValaCodeNode* self);
1234
1254
void vala_code_node_set_checked (ValaCodeNode* self, gboolean value);
1235
1255
gboolean vala_code_node_check (ValaCodeNode* self, ValaSemanticAnalyzer* analyzer);
1236
1256
void vala_code_node_set_error (ValaCodeNode* self, gboolean value);
1237
 
GType vala_member_access_get_type (void);
1238
1257
gboolean vala_member_access_get_prototype_access (ValaMemberAccess* self);
1239
1258
void vala_report_error (ValaSourceReference* source, const char* message);
1240
1259
ValaSourceReference* vala_code_node_get_source_reference (ValaCodeNode* self);
1241
 
ValaSymbol* vala_expression_get_symbol_reference (ValaExpression* self);
1242
1260
char* vala_symbol_get_full_name (ValaSymbol* self);
1243
 
ValaExpression* vala_member_access_get_inner (ValaMemberAccess* self);
1244
1261
ValaDataType* vala_expression_get_value_type (ValaExpression* self);
1245
1262
ValaAttribute* vala_code_node_get_attribute (ValaCodeNode* self, const char* name);
1246
1263
static void vala_method_call_set_is_assert (ValaMethodCall* self, gboolean value);
1272
1289
GType vala_error_domain_get_type (void);
1273
1290
GType vala_error_code_get_type (void);
1274
1291
GType vala_delegate_get_type (void);
1275
 
GType vala_member_get_type (void);
1276
1292
GType vala_constant_get_type (void);
1277
1293
GType vala_field_get_type (void);
1278
 
GType vala_method_get_type (void);
1279
 
GType vala_creation_method_get_type (void);
1280
1294
GType vala_formal_parameter_get_type (void);
1281
1295
GType vala_property_get_type (void);
1282
1296
GType vala_property_accessor_get_type (void);
1315
1329
GType vala_integer_literal_get_type (void);
1316
1330
GType vala_real_literal_get_type (void);
1317
1331
GType vala_string_literal_get_type (void);
 
1332
GType vala_template_get_type (void);
1318
1333
GType vala_null_literal_get_type (void);
1319
1334
GType vala_element_access_get_type (void);
1320
1335
GType vala_slice_expression_get_type (void);
1321
 
GType vala_base_access_get_type (void);
1322
1336
GType vala_postfix_expression_get_type (void);
1323
1337
GType vala_object_creation_expression_get_type (void);
1324
1338
GType vala_sizeof_expression_get_type (void);
1361
1375
ValaMethod* vala_method_type_get_method_symbol (ValaMethodType* self);
1362
1376
gboolean vala_method_get_coroutine (ValaMethod* self);
1363
1377
gboolean vala_method_call_get_is_yield_expression (ValaMethodCall* self);
1364
 
const char* vala_member_access_get_member_name (ValaMemberAccess* self);
1365
1378
ValaList* vala_method_get_async_begin_parameters (ValaMethod* self);
1366
1379
ValaVoidType* vala_void_type_new (ValaSourceReference* source_reference);
1367
1380
ValaVoidType* vala_void_type_construct (GType object_type, ValaSourceReference* source_reference);
1519
1532
}
1520
1533
 
1521
1534
 
 
1535
static gboolean vala_method_call_is_chainup (ValaMethodCall* self) {
 
1536
        gboolean result;
 
1537
        ValaExpression* expr;
 
1538
        ValaMemberAccess* ma;
 
1539
        ValaMemberAccess* _tmp2_;
 
1540
        ValaExpression* _tmp1_;
 
1541
        gboolean _tmp3_ = FALSE;
 
1542
        g_return_val_if_fail (self != NULL, FALSE);
 
1543
        if (!VALA_IS_CREATION_METHOD (vala_expression_get_symbol_reference (vala_method_call_get_call (self)))) {
 
1544
                result = FALSE;
 
1545
                return result;
 
1546
        }
 
1547
        expr = _vala_code_node_ref0 (vala_method_call_get_call (self));
 
1548
        ma = _vala_code_node_ref0 (VALA_MEMBER_ACCESS (vala_method_call_get_call (self)));
 
1549
        if (vala_member_access_get_inner (ma) != NULL) {
 
1550
                ValaExpression* _tmp0_;
 
1551
                expr = (_tmp0_ = _vala_code_node_ref0 (vala_member_access_get_inner (ma)), _vala_code_node_unref0 (expr), _tmp0_);
 
1552
        }
 
1553
        ma = (_tmp2_ = _vala_code_node_ref0 ((_tmp1_ = expr, VALA_IS_MEMBER_ACCESS (_tmp1_) ? ((ValaMemberAccess*) _tmp1_) : NULL)), _vala_code_node_unref0 (ma), _tmp2_);
 
1554
        if (ma != NULL) {
 
1555
                _tmp3_ = _vala_strcmp0 (vala_member_access_get_member_name (ma), "this") == 0;
 
1556
        } else {
 
1557
                _tmp3_ = FALSE;
 
1558
        }
 
1559
        if (_tmp3_) {
 
1560
                result = TRUE;
 
1561
                _vala_code_node_unref0 (expr);
 
1562
                _vala_code_node_unref0 (ma);
 
1563
                return result;
 
1564
        } else {
 
1565
                if (VALA_IS_BASE_ACCESS (expr)) {
 
1566
                        result = TRUE;
 
1567
                        _vala_code_node_unref0 (expr);
 
1568
                        _vala_code_node_unref0 (ma);
 
1569
                        return result;
 
1570
                } else {
 
1571
                        result = FALSE;
 
1572
                        _vala_code_node_unref0 (expr);
 
1573
                        _vala_code_node_unref0 (ma);
 
1574
                        return result;
 
1575
                }
 
1576
        }
 
1577
        _vala_code_node_unref0 (expr);
 
1578
        _vala_code_node_unref0 (ma);
 
1579
}
 
1580
 
 
1581
 
1522
1582
static gboolean vala_method_call_real_check (ValaCodeNode* base, ValaSemanticAnalyzer* analyzer) {
1523
1583
        ValaMethodCall * self;
1524
1584
        gboolean result;
1526
1586
        ValaDataType* mtype;
1527
1587
        gboolean _tmp5_ = FALSE;
1528
1588
        gboolean _tmp16_ = FALSE;
1529
 
        gboolean _tmp25_ = FALSE;
 
1589
        gboolean _tmp26_ = FALSE;
1530
1590
        ValaDataType* ret_type;
1531
1591
        ValaList* params;
1532
1592
        ValaExpression* last_arg;
1533
1593
        ValaList* args;
1534
1594
        ValaIterator* arg_it;
1535
 
        gboolean _tmp34_ = FALSE;
1536
 
        ValaDataType* _tmp82_;
1537
 
        ValaExpression* _tmp81_;
 
1595
        gboolean _tmp35_ = FALSE;
 
1596
        ValaDataType* _tmp83_;
 
1597
        ValaExpression* _tmp82_;
1538
1598
        gboolean may_throw;
1539
 
        ValaList* _tmp91_;
1540
 
        gboolean _tmp92_;
 
1599
        ValaList* _tmp92_;
 
1600
        gboolean _tmp93_;
1541
1601
        self = (ValaMethodCall*) base;
1542
1602
        g_return_val_if_fail (analyzer != NULL, FALSE);
1543
1603
        if (vala_code_node_get_checked ((ValaCodeNode*) self)) {
1710
1770
        }
1711
1771
        if (_tmp16_) {
1712
1772
                ValaObjectCreationExpression* struct_creation_expression;
 
1773
                if (vala_method_call_is_chainup (self)) {
 
1774
                        ValaMethod* _tmp19_;
 
1775
                        ValaCreationMethod* cm;
 
1776
                        cm = (_tmp19_ = vala_semantic_analyzer_find_current_method (analyzer), VALA_IS_CREATION_METHOD (_tmp19_) ? ((ValaCreationMethod*) _tmp19_) : NULL);
 
1777
                        if (cm != NULL) {
 
1778
                                if (vala_creation_method_get_chain_up (cm)) {
 
1779
                                        vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
 
1780
                                        vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "Multiple constructor calls in the same constructor are not permitted");
 
1781
                                        result = FALSE;
 
1782
                                        _vala_code_node_unref0 (cm);
 
1783
                                        _vala_code_node_unref0 (target_object_type);
 
1784
                                        _vala_code_node_unref0 (mtype);
 
1785
                                        return result;
 
1786
                                }
 
1787
                                vala_creation_method_set_chain_up (cm, TRUE);
 
1788
                        }
 
1789
                        _vala_code_node_unref0 (cm);
 
1790
                }
1713
1791
                struct_creation_expression = vala_object_creation_expression_new (VALA_MEMBER_ACCESS (vala_method_call_get_call (self)), vala_code_node_get_source_reference ((ValaCodeNode*) self));
1714
1792
                vala_object_creation_expression_set_struct_creation (struct_creation_expression, TRUE);
1715
1793
                {
1716
 
                        ValaList* _tmp19_;
1717
 
                        ValaIterator* _tmp20_;
 
1794
                        ValaList* _tmp20_;
 
1795
                        ValaIterator* _tmp21_;
1718
1796
                        ValaIterator* _arg_it;
1719
 
                        _arg_it = (_tmp20_ = vala_iterable_iterator ((ValaIterable*) (_tmp19_ = vala_method_call_get_argument_list (self))), _vala_collection_object_unref0 (_tmp19_), _tmp20_);
 
1797
                        _arg_it = (_tmp21_ = vala_iterable_iterator ((ValaIterable*) (_tmp20_ = vala_method_call_get_argument_list (self))), _vala_collection_object_unref0 (_tmp20_), _tmp21_);
1720
1798
                        while (TRUE) {
1721
1799
                                ValaExpression* arg;
1722
1800
                                if (!vala_iterator_next (_arg_it)) {
1738
1816
                _vala_code_node_unref0 (mtype);
1739
1817
                return result;
1740
1818
        } else {
1741
 
                gboolean _tmp21_ = FALSE;
 
1819
                gboolean _tmp22_ = FALSE;
1742
1820
                if (VALA_IS_MEMBER_ACCESS (vala_method_call_get_call (self))) {
1743
 
                        _tmp21_ = VALA_IS_CREATION_METHOD (vala_expression_get_symbol_reference (vala_method_call_get_call (self)));
 
1821
                        _tmp22_ = VALA_IS_CREATION_METHOD (vala_expression_get_symbol_reference (vala_method_call_get_call (self)));
1744
1822
                } else {
1745
 
                        _tmp21_ = FALSE;
 
1823
                        _tmp22_ = FALSE;
1746
1824
                }
1747
 
                if (_tmp21_) {
1748
 
                        ValaMethod* _tmp22_;
 
1825
                if (_tmp22_) {
 
1826
                        ValaMethod* _tmp23_;
1749
1827
                        ValaCreationMethod* cm;
1750
1828
                        ValaCreationMethod* base_cm;
1751
 
                        cm = (_tmp22_ = vala_semantic_analyzer_find_current_method (analyzer), VALA_IS_CREATION_METHOD (_tmp22_) ? ((ValaCreationMethod*) _tmp22_) : NULL);
 
1829
                        cm = (_tmp23_ = vala_semantic_analyzer_find_current_method (analyzer), VALA_IS_CREATION_METHOD (_tmp23_) ? ((ValaCreationMethod*) _tmp23_) : NULL);
1752
1830
                        if (cm == NULL) {
1753
1831
                                vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
1754
1832
                                vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "use `new' operator to create new objects");
1771
1849
                        vala_creation_method_set_chain_up (cm, TRUE);
1772
1850
                        base_cm = _vala_code_node_ref0 (VALA_CREATION_METHOD (vala_expression_get_symbol_reference (vala_method_call_get_call (self))));
1773
1851
                        if (!vala_method_get_has_construct_function ((ValaMethod*) base_cm)) {
 
1852
                                char* _tmp25_;
1774
1853
                                char* _tmp24_;
1775
 
                                char* _tmp23_;
1776
1854
                                vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
1777
 
                                vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), _tmp24_ = g_strdup_printf ("chain up to `%s' not supported", _tmp23_ = vala_symbol_get_full_name ((ValaSymbol*) base_cm)));
 
1855
                                vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), _tmp25_ = g_strdup_printf ("chain up to `%s' not supported", _tmp24_ = vala_symbol_get_full_name ((ValaSymbol*) base_cm)));
 
1856
                                _g_free0 (_tmp25_);
1778
1857
                                _g_free0 (_tmp24_);
1779
 
                                _g_free0 (_tmp23_);
1780
1858
                                result = FALSE;
1781
1859
                                _vala_code_node_unref0 (cm);
1782
1860
                                _vala_code_node_unref0 (base_cm);
1789
1867
                }
1790
1868
        }
1791
1869
        if (mtype != NULL) {
1792
 
                _tmp25_ = vala_data_type_is_invokable (mtype);
 
1870
                _tmp26_ = vala_data_type_is_invokable (mtype);
1793
1871
        } else {
1794
 
                _tmp25_ = FALSE;
 
1872
                _tmp26_ = FALSE;
1795
1873
        }
1796
 
        if (_tmp25_) {
 
1874
        if (_tmp26_) {
1797
1875
        } else {
1798
1876
                if (VALA_IS_CLASS (vala_expression_get_symbol_reference (vala_method_call_get_call (self)))) {
1799
1877
                        vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
1815
1893
        params = vala_data_type_get_parameters (mtype);
1816
1894
        if (VALA_IS_METHOD_TYPE (mtype)) {
1817
1895
                ValaMethod* m;
1818
 
                gboolean _tmp26_ = FALSE;
1819
1896
                gboolean _tmp27_ = FALSE;
 
1897
                gboolean _tmp28_ = FALSE;
1820
1898
                m = _vala_code_node_ref0 (vala_method_type_get_method_symbol (VALA_METHOD_TYPE (mtype)));
1821
1899
                if (m != NULL) {
1822
 
                        _tmp27_ = vala_method_get_coroutine (m);
 
1900
                        _tmp28_ = vala_method_get_coroutine (m);
 
1901
                } else {
 
1902
                        _tmp28_ = FALSE;
 
1903
                }
 
1904
                if (_tmp28_) {
 
1905
                        _tmp27_ = !self->priv->_is_yield_expression;
1823
1906
                } else {
1824
1907
                        _tmp27_ = FALSE;
1825
1908
                }
1826
1909
                if (_tmp27_) {
1827
 
                        _tmp26_ = !self->priv->_is_yield_expression;
1828
 
                } else {
1829
 
                        _tmp26_ = FALSE;
1830
 
                }
1831
 
                if (_tmp26_) {
1832
1910
                        ValaMemberAccess* ma;
1833
1911
                        ma = _vala_code_node_ref0 (VALA_MEMBER_ACCESS (vala_method_call_get_call (self)));
1834
1912
                        if (_vala_strcmp0 (vala_member_access_get_member_name (ma), "end") != 0) {
1835
 
                                ValaList* _tmp28_;
1836
 
                                ValaDataType* _tmp29_;
1837
 
                                params = (_tmp28_ = vala_method_get_async_begin_parameters (m), _vala_collection_object_unref0 (params), _tmp28_);
1838
 
                                ret_type = (_tmp29_ = (ValaDataType*) vala_void_type_new (NULL), _vala_code_node_unref0 (ret_type), _tmp29_);
 
1913
                                ValaList* _tmp29_;
 
1914
                                ValaDataType* _tmp30_;
 
1915
                                params = (_tmp29_ = vala_method_get_async_begin_parameters (m), _vala_collection_object_unref0 (params), _tmp29_);
 
1916
                                ret_type = (_tmp30_ = (ValaDataType*) vala_void_type_new (NULL), _vala_code_node_unref0 (ret_type), _tmp30_);
1839
1917
                        } else {
1840
 
                                ValaList* _tmp30_;
1841
 
                                params = (_tmp30_ = vala_method_get_async_end_parameters (m), _vala_collection_object_unref0 (params), _tmp30_);
 
1918
                                ValaList* _tmp31_;
 
1919
                                params = (_tmp31_ = vala_method_get_async_end_parameters (m), _vala_collection_object_unref0 (params), _tmp31_);
1842
1920
                        }
1843
1921
                        _vala_code_node_unref0 (ma);
1844
1922
                }
1879
1957
                        }
1880
1958
                        if (vala_iterator_next (arg_it)) {
1881
1959
                                ValaExpression* arg;
1882
 
                                ValaDataType* _tmp32_;
1883
 
                                ValaExpression* _tmp31_;
1884
 
                                ValaExpression* _tmp33_;
 
1960
                                ValaDataType* _tmp33_;
 
1961
                                ValaExpression* _tmp32_;
 
1962
                                ValaExpression* _tmp34_;
1885
1963
                                arg = (ValaExpression*) vala_iterator_get (arg_it);
1886
1964
                                vala_expression_set_formal_target_type (arg, vala_formal_parameter_get_parameter_type (param));
1887
 
                                vala_expression_set_target_type (arg, _tmp32_ = vala_data_type_get_actual_type (vala_expression_get_formal_target_type (arg), target_object_type, (_tmp31_ = vala_method_call_get_call (self), VALA_IS_MEMBER_ACCESS (_tmp31_) ? ((ValaMemberAccess*) _tmp31_) : NULL), (ValaCodeNode*) self));
1888
 
                                _vala_code_node_unref0 (_tmp32_);
1889
 
                                last_arg = (_tmp33_ = _vala_code_node_ref0 (arg), _vala_code_node_unref0 (last_arg), _tmp33_);
 
1965
                                vala_expression_set_target_type (arg, _tmp33_ = vala_data_type_get_actual_type (vala_expression_get_formal_target_type (arg), target_object_type, (_tmp32_ = vala_method_call_get_call (self), VALA_IS_MEMBER_ACCESS (_tmp32_) ? ((ValaMemberAccess*) _tmp32_) : NULL), (ValaCodeNode*) self));
 
1966
                                _vala_code_node_unref0 (_tmp33_);
 
1967
                                last_arg = (_tmp34_ = _vala_code_node_ref0 (arg), _vala_code_node_unref0 (last_arg), _tmp34_);
1890
1968
                                _vala_code_node_unref0 (arg);
1891
1969
                        }
1892
1970
                        _vala_code_node_unref0 (param);
1894
1972
                _vala_collection_object_unref0 (_param_it);
1895
1973
        }
1896
1974
        if (VALA_IS_METHOD_TYPE (mtype)) {
1897
 
                _tmp34_ = vala_method_get_printf_format (vala_method_type_get_method_symbol (VALA_METHOD_TYPE (mtype)));
 
1975
                _tmp35_ = vala_method_get_printf_format (vala_method_type_get_method_symbol (VALA_METHOD_TYPE (mtype)));
1898
1976
        } else {
1899
 
                _tmp34_ = FALSE;
 
1977
                _tmp35_ = FALSE;
1900
1978
        }
1901
 
        if (_tmp34_) {
 
1979
        if (_tmp35_) {
1902
1980
                ValaStringLiteral* format_literal;
1903
1981
                format_literal = NULL;
1904
1982
                if (last_arg != NULL) {
1905
 
                        ValaStringLiteral* _tmp36_;
1906
 
                        ValaExpression* _tmp35_;
1907
 
                        gboolean _tmp37_ = FALSE;
1908
 
                        format_literal = (_tmp36_ = _vala_code_node_ref0 ((_tmp35_ = last_arg, VALA_IS_STRING_LITERAL (_tmp35_) ? ((ValaStringLiteral*) _tmp35_) : NULL)), _vala_code_node_unref0 (format_literal), _tmp36_);
 
1983
                        ValaStringLiteral* _tmp37_;
 
1984
                        ValaExpression* _tmp36_;
 
1985
                        gboolean _tmp38_ = FALSE;
 
1986
                        format_literal = (_tmp37_ = _vala_code_node_ref0 ((_tmp36_ = last_arg, VALA_IS_STRING_LITERAL (_tmp36_) ? ((ValaStringLiteral*) _tmp36_) : NULL)), _vala_code_node_unref0 (format_literal), _tmp37_);
1909
1987
                        if (format_literal == NULL) {
1910
 
                                _tmp37_ = vala_collection_get_size ((ValaCollection*) args) == (vala_collection_get_size ((ValaCollection*) params) - 1);
 
1988
                                _tmp38_ = vala_collection_get_size ((ValaCollection*) args) == (vala_collection_get_size ((ValaCollection*) params) - 1);
1911
1989
                        } else {
1912
 
                                _tmp37_ = FALSE;
 
1990
                                _tmp38_ = FALSE;
1913
1991
                        }
1914
 
                        if (_tmp37_) {
1915
 
                                ValaStringLiteral* _tmp38_;
1916
 
                                ValaDataType* _tmp39_;
1917
 
                                ValaIterator* _tmp40_;
1918
 
                                format_literal = (_tmp38_ = vala_string_literal_new ("\"%s\"", NULL), _vala_code_node_unref0 (format_literal), _tmp38_);
1919
 
                                vala_expression_set_target_type ((ValaExpression*) format_literal, _tmp39_ = vala_data_type_copy (analyzer->string_type));
1920
 
                                _vala_code_node_unref0 (_tmp39_);
 
1992
                        if (_tmp38_) {
 
1993
                                ValaStringLiteral* _tmp39_;
 
1994
                                ValaDataType* _tmp40_;
 
1995
                                ValaIterator* _tmp41_;
 
1996
                                format_literal = (_tmp39_ = vala_string_literal_new ("\"%s\"", NULL), _vala_code_node_unref0 (format_literal), _tmp39_);
 
1997
                                vala_expression_set_target_type ((ValaExpression*) format_literal, _tmp40_ = vala_data_type_copy (analyzer->string_type));
 
1998
                                _vala_code_node_unref0 (_tmp40_);
1921
1999
                                vala_list_insert (self->priv->argument_list, vala_collection_get_size ((ValaCollection*) args) - 1, (ValaExpression*) format_literal);
1922
 
                                arg_it = (_tmp40_ = vala_iterable_iterator ((ValaIterable*) self->priv->argument_list), _vala_collection_object_unref0 (arg_it), _tmp40_);
 
2000
                                arg_it = (_tmp41_ = vala_iterable_iterator ((ValaIterable*) self->priv->argument_list), _vala_collection_object_unref0 (arg_it), _tmp41_);
1923
2001
                                {
1924
2002
                                        ValaIterator* _param_it;
1925
2003
                                        _param_it = vala_iterable_iterator ((ValaIterable*) params);
1940
2018
                                }
1941
2019
                        }
1942
2020
                } else {
1943
 
                        ValaExpression* _tmp41_;
 
2021
                        ValaExpression* _tmp42_;
1944
2022
                        ValaMemberAccess* ma;
1945
 
                        ma = _vala_code_node_ref0 ((_tmp41_ = vala_method_call_get_call (self), VALA_IS_MEMBER_ACCESS (_tmp41_) ? ((ValaMemberAccess*) _tmp41_) : NULL));
 
2023
                        ma = _vala_code_node_ref0 ((_tmp42_ = vala_method_call_get_call (self), VALA_IS_MEMBER_ACCESS (_tmp42_) ? ((ValaMemberAccess*) _tmp42_) : NULL));
1946
2024
                        if (ma != NULL) {
1947
 
                                ValaStringLiteral* _tmp43_;
1948
 
                                ValaExpression* _tmp42_;
1949
 
                                format_literal = (_tmp43_ = _vala_code_node_ref0 ((_tmp42_ = vala_member_access_get_inner (ma), VALA_IS_STRING_LITERAL (_tmp42_) ? ((ValaStringLiteral*) _tmp42_) : NULL)), _vala_code_node_unref0 (format_literal), _tmp43_);
 
2025
                                ValaStringLiteral* _tmp44_;
 
2026
                                ValaExpression* _tmp43_;
 
2027
                                format_literal = (_tmp44_ = _vala_code_node_ref0 ((_tmp43_ = vala_member_access_get_inner (ma), VALA_IS_STRING_LITERAL (_tmp43_) ? ((ValaStringLiteral*) _tmp43_) : NULL)), _vala_code_node_unref0 (format_literal), _tmp44_);
1950
2028
                        }
1951
2029
                        _vala_code_node_unref0 (ma);
1952
2030
                }
1955
2033
                        gboolean unsupported_format;
1956
2034
                        const char* format_it;
1957
2035
                        gunichar c;
1958
 
                        gboolean _tmp76_ = FALSE;
 
2036
                        gboolean _tmp77_ = FALSE;
1959
2037
                        format = vala_string_literal_eval (format_literal);
1960
2038
                        unsupported_format = FALSE;
1961
2039
                        format_it = format;
1963
2041
                        while (TRUE) {
1964
2042
                                gint length;
1965
2043
                                ValaDataType* param_type;
1966
 
                                gboolean _tmp50_ = FALSE;
1967
2044
                                gboolean _tmp51_ = FALSE;
 
2045
                                gboolean _tmp52_ = FALSE;
1968
2046
                                if (!(c != '\0')) {
1969
2047
                                        break;
1970
2048
                                }
1976
2054
                                format_it = g_utf8_next_char (format_it);
1977
2055
                                c = g_utf8_get_char (format_it);
1978
2056
                                while (TRUE) {
1979
 
                                        gboolean _tmp44_ = FALSE;
1980
2057
                                        gboolean _tmp45_ = FALSE;
1981
2058
                                        gboolean _tmp46_ = FALSE;
1982
2059
                                        gboolean _tmp47_ = FALSE;
 
2060
                                        gboolean _tmp48_ = FALSE;
1983
2061
                                        if (c == '#') {
 
2062
                                                _tmp48_ = TRUE;
 
2063
                                        } else {
 
2064
                                                _tmp48_ = c == '0';
 
2065
                                        }
 
2066
                                        if (_tmp48_) {
1984
2067
                                                _tmp47_ = TRUE;
1985
2068
                                        } else {
1986
 
                                                _tmp47_ = c == '0';
 
2069
                                                _tmp47_ = c == '-';
1987
2070
                                        }
1988
2071
                                        if (_tmp47_) {
1989
2072
                                                _tmp46_ = TRUE;
1990
2073
                                        } else {
1991
 
                                                _tmp46_ = c == '-';
 
2074
                                                _tmp46_ = c == ' ';
1992
2075
                                        }
1993
2076
                                        if (_tmp46_) {
1994
2077
                                                _tmp45_ = TRUE;
1995
2078
                                        } else {
1996
 
                                                _tmp45_ = c == ' ';
1997
 
                                        }
1998
 
                                        if (_tmp45_) {
1999
 
                                                _tmp44_ = TRUE;
2000
 
                                        } else {
2001
 
                                                _tmp44_ = c == '+';
2002
 
                                        }
2003
 
                                        if (!_tmp44_) {
 
2079
                                                _tmp45_ = c == '+';
 
2080
                                        }
 
2081
                                        if (!_tmp45_) {
2004
2082
                                                break;
2005
2083
                                        }
2006
2084
                                        format_it = g_utf8_next_char (format_it);
2007
2085
                                        c = g_utf8_get_char (format_it);
2008
2086
                                }
2009
2087
                                while (TRUE) {
2010
 
                                        gboolean _tmp48_ = FALSE;
 
2088
                                        gboolean _tmp49_ = FALSE;
2011
2089
                                        if (c >= '0') {
2012
 
                                                _tmp48_ = c <= '9';
 
2090
                                                _tmp49_ = c <= '9';
2013
2091
                                        } else {
2014
 
                                                _tmp48_ = FALSE;
 
2092
                                                _tmp49_ = FALSE;
2015
2093
                                        }
2016
 
                                        if (!_tmp48_) {
 
2094
                                        if (!_tmp49_) {
2017
2095
                                                break;
2018
2096
                                        }
2019
2097
                                        format_it = g_utf8_next_char (format_it);
2023
2101
                                        format_it = g_utf8_next_char (format_it);
2024
2102
                                        c = g_utf8_get_char (format_it);
2025
2103
                                        while (TRUE) {
2026
 
                                                gboolean _tmp49_ = FALSE;
 
2104
                                                gboolean _tmp50_ = FALSE;
2027
2105
                                                if (c >= '0') {
2028
 
                                                        _tmp49_ = c <= '9';
 
2106
                                                        _tmp50_ = c <= '9';
2029
2107
                                                } else {
2030
 
                                                        _tmp49_ = FALSE;
 
2108
                                                        _tmp50_ = FALSE;
2031
2109
                                                }
2032
 
                                                if (!_tmp49_) {
 
2110
                                                if (!_tmp50_) {
2033
2111
                                                        break;
2034
2112
                                                }
2035
2113
                                                format_it = g_utf8_next_char (format_it);
2061
2139
                                }
2062
2140
                                param_type = NULL;
2063
2141
                                if (c == 'd') {
 
2142
                                        _tmp52_ = TRUE;
 
2143
                                } else {
 
2144
                                        _tmp52_ = c == 'i';
 
2145
                                }
 
2146
                                if (_tmp52_) {
2064
2147
                                        _tmp51_ = TRUE;
2065
2148
                                } else {
2066
 
                                        _tmp51_ = c == 'i';
 
2149
                                        _tmp51_ = c == 'c';
2067
2150
                                }
2068
2151
                                if (_tmp51_) {
2069
 
                                        _tmp50_ = TRUE;
2070
 
                                } else {
2071
 
                                        _tmp50_ = c == 'c';
2072
 
                                }
2073
 
                                if (_tmp50_) {
2074
2152
                                        if (length == (-2)) {
2075
 
                                                ValaDataType* _tmp52_;
2076
 
                                                param_type = (_tmp52_ = _vala_code_node_ref0 (analyzer->int8_type), _vala_code_node_unref0 (param_type), _tmp52_);
 
2153
                                                ValaDataType* _tmp53_;
 
2154
                                                param_type = (_tmp53_ = _vala_code_node_ref0 (analyzer->int8_type), _vala_code_node_unref0 (param_type), _tmp53_);
2077
2155
                                        } else {
2078
2156
                                                if (length == (-1)) {
2079
 
                                                        ValaDataType* _tmp53_;
2080
 
                                                        param_type = (_tmp53_ = _vala_code_node_ref0 (analyzer->short_type), _vala_code_node_unref0 (param_type), _tmp53_);
 
2157
                                                        ValaDataType* _tmp54_;
 
2158
                                                        param_type = (_tmp54_ = _vala_code_node_ref0 (analyzer->short_type), _vala_code_node_unref0 (param_type), _tmp54_);
2081
2159
                                                } else {
2082
2160
                                                        if (length == 0) {
2083
 
                                                                ValaDataType* _tmp54_;
2084
 
                                                                param_type = (_tmp54_ = _vala_code_node_ref0 (analyzer->int_type), _vala_code_node_unref0 (param_type), _tmp54_);
 
2161
                                                                ValaDataType* _tmp55_;
 
2162
                                                                param_type = (_tmp55_ = _vala_code_node_ref0 (analyzer->int_type), _vala_code_node_unref0 (param_type), _tmp55_);
2085
2163
                                                        } else {
2086
2164
                                                                if (length == 1) {
2087
 
                                                                        ValaDataType* _tmp55_;
2088
 
                                                                        param_type = (_tmp55_ = _vala_code_node_ref0 (analyzer->long_type), _vala_code_node_unref0 (param_type), _tmp55_);
 
2165
                                                                        ValaDataType* _tmp56_;
 
2166
                                                                        param_type = (_tmp56_ = _vala_code_node_ref0 (analyzer->long_type), _vala_code_node_unref0 (param_type), _tmp56_);
2089
2167
                                                                } else {
2090
2168
                                                                        if (length == 2) {
2091
 
                                                                                ValaDataType* _tmp56_;
2092
 
                                                                                param_type = (_tmp56_ = _vala_code_node_ref0 (analyzer->ssize_t_type), _vala_code_node_unref0 (param_type), _tmp56_);
 
2169
                                                                                ValaDataType* _tmp57_;
 
2170
                                                                                param_type = (_tmp57_ = _vala_code_node_ref0 (analyzer->ssize_t_type), _vala_code_node_unref0 (param_type), _tmp57_);
2093
2171
                                                                        }
2094
2172
                                                                }
2095
2173
                                                        }
2096
2174
                                                }
2097
2175
                                        }
2098
2176
                                } else {
2099
 
                                        gboolean _tmp57_ = FALSE;
2100
2177
                                        gboolean _tmp58_ = FALSE;
2101
2178
                                        gboolean _tmp59_ = FALSE;
 
2179
                                        gboolean _tmp60_ = FALSE;
2102
2180
                                        if (c == 'o') {
 
2181
                                                _tmp60_ = TRUE;
 
2182
                                        } else {
 
2183
                                                _tmp60_ = c == 'u';
 
2184
                                        }
 
2185
                                        if (_tmp60_) {
2103
2186
                                                _tmp59_ = TRUE;
2104
2187
                                        } else {
2105
 
                                                _tmp59_ = c == 'u';
 
2188
                                                _tmp59_ = c == 'x';
2106
2189
                                        }
2107
2190
                                        if (_tmp59_) {
2108
2191
                                                _tmp58_ = TRUE;
2109
2192
                                        } else {
2110
 
                                                _tmp58_ = c == 'x';
 
2193
                                                _tmp58_ = c == 'X';
2111
2194
                                        }
2112
2195
                                        if (_tmp58_) {
2113
 
                                                _tmp57_ = TRUE;
2114
 
                                        } else {
2115
 
                                                _tmp57_ = c == 'X';
2116
 
                                        }
2117
 
                                        if (_tmp57_) {
2118
2196
                                                if (length == (-2)) {
2119
 
                                                        ValaDataType* _tmp60_;
2120
 
                                                        param_type = (_tmp60_ = _vala_code_node_ref0 (analyzer->uchar_type), _vala_code_node_unref0 (param_type), _tmp60_);
 
2197
                                                        ValaDataType* _tmp61_;
 
2198
                                                        param_type = (_tmp61_ = _vala_code_node_ref0 (analyzer->uchar_type), _vala_code_node_unref0 (param_type), _tmp61_);
2121
2199
                                                } else {
2122
2200
                                                        if (length == (-1)) {
2123
 
                                                                ValaDataType* _tmp61_;
2124
 
                                                                param_type = (_tmp61_ = _vala_code_node_ref0 (analyzer->ushort_type), _vala_code_node_unref0 (param_type), _tmp61_);
 
2201
                                                                ValaDataType* _tmp62_;
 
2202
                                                                param_type = (_tmp62_ = _vala_code_node_ref0 (analyzer->ushort_type), _vala_code_node_unref0 (param_type), _tmp62_);
2125
2203
                                                        } else {
2126
2204
                                                                if (length == 0) {
2127
 
                                                                        ValaDataType* _tmp62_;
2128
 
                                                                        param_type = (_tmp62_ = _vala_code_node_ref0 (analyzer->uint_type), _vala_code_node_unref0 (param_type), _tmp62_);
 
2205
                                                                        ValaDataType* _tmp63_;
 
2206
                                                                        param_type = (_tmp63_ = _vala_code_node_ref0 (analyzer->uint_type), _vala_code_node_unref0 (param_type), _tmp63_);
2129
2207
                                                                } else {
2130
2208
                                                                        if (length == 1) {
2131
 
                                                                                ValaDataType* _tmp63_;
2132
 
                                                                                param_type = (_tmp63_ = _vala_code_node_ref0 (analyzer->ulong_type), _vala_code_node_unref0 (param_type), _tmp63_);
 
2209
                                                                                ValaDataType* _tmp64_;
 
2210
                                                                                param_type = (_tmp64_ = _vala_code_node_ref0 (analyzer->ulong_type), _vala_code_node_unref0 (param_type), _tmp64_);
2133
2211
                                                                        } else {
2134
2212
                                                                                if (length == 2) {
2135
 
                                                                                        ValaDataType* _tmp64_;
2136
 
                                                                                        param_type = (_tmp64_ = _vala_code_node_ref0 (analyzer->size_t_type), _vala_code_node_unref0 (param_type), _tmp64_);
 
2213
                                                                                        ValaDataType* _tmp65_;
 
2214
                                                                                        param_type = (_tmp65_ = _vala_code_node_ref0 (analyzer->size_t_type), _vala_code_node_unref0 (param_type), _tmp65_);
2137
2215
                                                                                }
2138
2216
                                                                        }
2139
2217
                                                                }
2140
2218
                                                        }
2141
2219
                                                }
2142
2220
                                        } else {
2143
 
                                                gboolean _tmp65_ = FALSE;
2144
2221
                                                gboolean _tmp66_ = FALSE;
2145
2222
                                                gboolean _tmp67_ = FALSE;
2146
2223
                                                gboolean _tmp68_ = FALSE;
2147
2224
                                                gboolean _tmp69_ = FALSE;
2148
2225
                                                gboolean _tmp70_ = FALSE;
2149
2226
                                                gboolean _tmp71_ = FALSE;
 
2227
                                                gboolean _tmp72_ = FALSE;
2150
2228
                                                if (c == 'e') {
 
2229
                                                        _tmp72_ = TRUE;
 
2230
                                                } else {
 
2231
                                                        _tmp72_ = c == 'E';
 
2232
                                                }
 
2233
                                                if (_tmp72_) {
2151
2234
                                                        _tmp71_ = TRUE;
2152
2235
                                                } else {
2153
 
                                                        _tmp71_ = c == 'E';
 
2236
                                                        _tmp71_ = c == 'f';
2154
2237
                                                }
2155
2238
                                                if (_tmp71_) {
2156
2239
                                                        _tmp70_ = TRUE;
2157
2240
                                                } else {
2158
 
                                                        _tmp70_ = c == 'f';
 
2241
                                                        _tmp70_ = c == 'F';
2159
2242
                                                }
2160
2243
                                                if (_tmp70_) {
2161
2244
                                                        _tmp69_ = TRUE;
2162
2245
                                                } else {
2163
 
                                                        _tmp69_ = c == 'F';
 
2246
                                                        _tmp69_ = c == 'g';
2164
2247
                                                }
2165
2248
                                                if (_tmp69_) {
2166
2249
                                                        _tmp68_ = TRUE;
2167
2250
                                                } else {
2168
 
                                                        _tmp68_ = c == 'g';
 
2251
                                                        _tmp68_ = c == 'G';
2169
2252
                                                }
2170
2253
                                                if (_tmp68_) {
2171
2254
                                                        _tmp67_ = TRUE;
2172
2255
                                                } else {
2173
 
                                                        _tmp67_ = c == 'G';
 
2256
                                                        _tmp67_ = c == 'a';
2174
2257
                                                }
2175
2258
                                                if (_tmp67_) {
2176
2259
                                                        _tmp66_ = TRUE;
2177
2260
                                                } else {
2178
 
                                                        _tmp66_ = c == 'a';
 
2261
                                                        _tmp66_ = c == 'A';
2179
2262
                                                }
2180
2263
                                                if (_tmp66_) {
2181
 
                                                        _tmp65_ = TRUE;
2182
 
                                                } else {
2183
 
                                                        _tmp65_ = c == 'A';
2184
 
                                                }
2185
 
                                                if (_tmp65_) {
2186
 
                                                        ValaDataType* _tmp72_;
2187
 
                                                        param_type = (_tmp72_ = _vala_code_node_ref0 (analyzer->double_type), _vala_code_node_unref0 (param_type), _tmp72_);
 
2264
                                                        ValaDataType* _tmp73_;
 
2265
                                                        param_type = (_tmp73_ = _vala_code_node_ref0 (analyzer->double_type), _vala_code_node_unref0 (param_type), _tmp73_);
2188
2266
                                                } else {
2189
2267
                                                        if (c == 's') {
2190
 
                                                                ValaDataType* _tmp73_;
2191
 
                                                                param_type = (_tmp73_ = _vala_code_node_ref0 (analyzer->string_type), _vala_code_node_unref0 (param_type), _tmp73_);
 
2268
                                                                ValaDataType* _tmp74_;
 
2269
                                                                param_type = (_tmp74_ = _vala_code_node_ref0 (analyzer->string_type), _vala_code_node_unref0 (param_type), _tmp74_);
2192
2270
                                                        } else {
2193
2271
                                                                if (c == 'p') {
2194
 
                                                                        ValaDataType* _tmp75_;
2195
 
                                                                        ValaVoidType* _tmp74_;
2196
 
                                                                        param_type = (_tmp75_ = (ValaDataType*) vala_pointer_type_new ((ValaDataType*) (_tmp74_ = vala_void_type_new (NULL)), NULL), _vala_code_node_unref0 (param_type), _tmp75_);
2197
 
                                                                        _vala_code_node_unref0 (_tmp74_);
 
2272
                                                                        ValaDataType* _tmp76_;
 
2273
                                                                        ValaVoidType* _tmp75_;
 
2274
                                                                        param_type = (_tmp76_ = (ValaDataType*) vala_pointer_type_new ((ValaDataType*) (_tmp75_ = vala_void_type_new (NULL)), NULL), _vala_code_node_unref0 (param_type), _tmp76_);
 
2275
                                                                        _vala_code_node_unref0 (_tmp75_);
2198
2276
                                                                } else {
2199
2277
                                                                        if (c == '%') {
2200
2278
                                                                        } else {
2236
2314
                                _vala_code_node_unref0 (param_type);
2237
2315
                        }
2238
2316
                        if (!unsupported_format) {
2239
 
                                _tmp76_ = vala_iterator_next (arg_it);
 
2317
                                _tmp77_ = vala_iterator_next (arg_it);
2240
2318
                        } else {
2241
 
                                _tmp76_ = FALSE;
 
2319
                                _tmp77_ = FALSE;
2242
2320
                        }
2243
 
                        if (_tmp76_) {
 
2321
                        if (_tmp77_) {
2244
2322
                                vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "Too many arguments for specified format");
2245
2323
                                result = FALSE;
2246
2324
                                _g_free0 (format);
2259
2337
                _vala_code_node_unref0 (format_literal);
2260
2338
        }
2261
2339
        {
2262
 
                ValaList* _tmp77_;
2263
 
                ValaIterator* _tmp78_;
 
2340
                ValaList* _tmp78_;
 
2341
                ValaIterator* _tmp79_;
2264
2342
                ValaIterator* _arg_it;
2265
 
                _arg_it = (_tmp78_ = vala_iterable_iterator ((ValaIterable*) (_tmp77_ = vala_method_call_get_argument_list (self))), _vala_collection_object_unref0 (_tmp77_), _tmp78_);
 
2343
                _arg_it = (_tmp79_ = vala_iterable_iterator ((ValaIterable*) (_tmp78_ = vala_method_call_get_argument_list (self))), _vala_collection_object_unref0 (_tmp78_), _tmp79_);
2266
2344
                while (TRUE) {
2267
2345
                        ValaExpression* arg;
2268
2346
                        if (!vala_iterator_next (_arg_it)) {
2275
2353
                _vala_collection_object_unref0 (_arg_it);
2276
2354
        }
2277
2355
        if (VALA_IS_VOID_TYPE (ret_type)) {
2278
 
                gboolean _tmp79_ = FALSE;
2279
2356
                gboolean _tmp80_ = FALSE;
 
2357
                gboolean _tmp81_ = FALSE;
2280
2358
                if (!VALA_IS_EXPRESSION_STATEMENT (vala_code_node_get_parent_node ((ValaCodeNode*) self))) {
2281
 
                        _tmp80_ = !VALA_IS_FOR_STATEMENT (vala_code_node_get_parent_node ((ValaCodeNode*) self));
 
2359
                        _tmp81_ = !VALA_IS_FOR_STATEMENT (vala_code_node_get_parent_node ((ValaCodeNode*) self));
 
2360
                } else {
 
2361
                        _tmp81_ = FALSE;
 
2362
                }
 
2363
                if (_tmp81_) {
 
2364
                        _tmp80_ = !VALA_IS_YIELD_STATEMENT (vala_code_node_get_parent_node ((ValaCodeNode*) self));
2282
2365
                } else {
2283
2366
                        _tmp80_ = FALSE;
2284
2367
                }
2285
2368
                if (_tmp80_) {
2286
 
                        _tmp79_ = !VALA_IS_YIELD_STATEMENT (vala_code_node_get_parent_node ((ValaCodeNode*) self));
2287
 
                } else {
2288
 
                        _tmp79_ = FALSE;
2289
 
                }
2290
 
                if (_tmp79_) {
2291
2369
                        vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
2292
2370
                        vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "invocation of void method not allowed as expression");
2293
2371
                        result = FALSE;
2302
2380
                }
2303
2381
        }
2304
2382
        vala_expression_set_formal_value_type ((ValaExpression*) self, ret_type);
2305
 
        vala_expression_set_value_type ((ValaExpression*) self, _tmp82_ = vala_data_type_get_actual_type (vala_expression_get_formal_value_type ((ValaExpression*) self), target_object_type, (_tmp81_ = vala_method_call_get_call (self), VALA_IS_MEMBER_ACCESS (_tmp81_) ? ((ValaMemberAccess*) _tmp81_) : NULL), (ValaCodeNode*) self));
2306
 
        _vala_code_node_unref0 (_tmp82_);
 
2383
        vala_expression_set_value_type ((ValaExpression*) self, _tmp83_ = vala_data_type_get_actual_type (vala_expression_get_formal_value_type ((ValaExpression*) self), target_object_type, (_tmp82_ = vala_method_call_get_call (self), VALA_IS_MEMBER_ACCESS (_tmp82_) ? ((ValaMemberAccess*) _tmp82_) : NULL), (ValaCodeNode*) self));
 
2384
        _vala_code_node_unref0 (_tmp83_);
2307
2385
        may_throw = FALSE;
2308
2386
        if (VALA_IS_METHOD_TYPE (mtype)) {
2309
2387
                ValaMethod* m;
2310
 
                gboolean _tmp84_ = FALSE;
2311
2388
                gboolean _tmp85_ = FALSE;
2312
2389
                gboolean _tmp86_ = FALSE;
 
2390
                gboolean _tmp87_ = FALSE;
2313
2391
                m = _vala_code_node_ref0 (vala_method_type_get_method_symbol (VALA_METHOD_TYPE (mtype)));
2314
2392
                if (self->priv->_is_yield_expression) {
2315
 
                        gboolean _tmp83_ = FALSE;
 
2393
                        gboolean _tmp84_ = FALSE;
2316
2394
                        if (!vala_method_get_coroutine (m)) {
2317
2395
                                vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
2318
2396
                                vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "yield expression requires async method");
2319
2397
                        }
2320
2398
                        if (vala_semantic_analyzer_get_current_method (analyzer) == NULL) {
2321
 
                                _tmp83_ = TRUE;
 
2399
                                _tmp84_ = TRUE;
2322
2400
                        } else {
2323
 
                                _tmp83_ = !vala_method_get_coroutine (vala_semantic_analyzer_get_current_method (analyzer));
 
2401
                                _tmp84_ = !vala_method_get_coroutine (vala_semantic_analyzer_get_current_method (analyzer));
2324
2402
                        }
2325
 
                        if (_tmp83_) {
 
2403
                        if (_tmp84_) {
2326
2404
                                vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
2327
2405
                                vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "yield expression not available outside async method");
2328
2406
                        }
2329
2407
                }
2330
2408
                if (m != NULL) {
2331
 
                        _tmp86_ = vala_method_get_coroutine (m);
 
2409
                        _tmp87_ = vala_method_get_coroutine (m);
 
2410
                } else {
 
2411
                        _tmp87_ = FALSE;
 
2412
                }
 
2413
                if (_tmp87_) {
 
2414
                        _tmp86_ = !self->priv->_is_yield_expression;
2332
2415
                } else {
2333
2416
                        _tmp86_ = FALSE;
2334
2417
                }
2335
2418
                if (_tmp86_) {
2336
 
                        _tmp85_ = !self->priv->_is_yield_expression;
 
2419
                        _tmp85_ = _vala_strcmp0 (vala_member_access_get_member_name (VALA_MEMBER_ACCESS (vala_method_call_get_call (self))), "end") != 0;
2337
2420
                } else {
2338
2421
                        _tmp85_ = FALSE;
2339
2422
                }
2340
2423
                if (_tmp85_) {
2341
 
                        _tmp84_ = _vala_strcmp0 (vala_member_access_get_member_name (VALA_MEMBER_ACCESS (vala_method_call_get_call (self))), "end") != 0;
2342
 
                } else {
2343
 
                        _tmp84_ = FALSE;
2344
 
                }
2345
 
                if (_tmp84_) {
2346
2424
                } else {
2347
2425
                        {
2348
 
                                ValaList* _tmp87_;
2349
 
                                ValaIterator* _tmp88_;
 
2426
                                ValaList* _tmp88_;
 
2427
                                ValaIterator* _tmp89_;
2350
2428
                                ValaIterator* _error_type_it;
2351
 
                                _error_type_it = (_tmp88_ = vala_iterable_iterator ((ValaIterable*) (_tmp87_ = vala_code_node_get_error_types ((ValaCodeNode*) m))), _vala_collection_object_unref0 (_tmp87_), _tmp88_);
 
2429
                                _error_type_it = (_tmp89_ = vala_iterable_iterator ((ValaIterable*) (_tmp88_ = vala_code_node_get_error_types ((ValaCodeNode*) m))), _vala_collection_object_unref0 (_tmp88_), _tmp89_);
2352
2430
                                while (TRUE) {
2353
2431
                                        ValaDataType* error_type;
2354
2432
                                        ValaDataType* call_error_type;
2372
2450
                        ValaDelegate* d;
2373
2451
                        d = _vala_code_node_ref0 (vala_delegate_type_get_delegate_symbol (VALA_DELEGATE_TYPE (mtype)));
2374
2452
                        {
2375
 
                                ValaList* _tmp89_;
2376
 
                                ValaIterator* _tmp90_;
 
2453
                                ValaList* _tmp90_;
 
2454
                                ValaIterator* _tmp91_;
2377
2455
                                ValaIterator* _error_type_it;
2378
 
                                _error_type_it = (_tmp90_ = vala_iterable_iterator ((ValaIterable*) (_tmp89_ = vala_code_node_get_error_types ((ValaCodeNode*) d))), _vala_collection_object_unref0 (_tmp89_), _tmp90_);
 
2456
                                _error_type_it = (_tmp91_ = vala_iterable_iterator ((ValaIterable*) (_tmp90_ = vala_code_node_get_error_types ((ValaCodeNode*) d))), _vala_collection_object_unref0 (_tmp90_), _tmp91_);
2379
2457
                                while (TRUE) {
2380
2458
                                        ValaDataType* error_type;
2381
2459
                                        ValaDataType* call_error_type;
2395
2473
                        _vala_code_node_unref0 (d);
2396
2474
                }
2397
2475
        }
2398
 
        if ((_tmp92_ = !vala_semantic_analyzer_check_arguments (analyzer, (ValaExpression*) self, mtype, params, _tmp91_ = vala_method_call_get_argument_list (self)), _vala_collection_object_unref0 (_tmp91_), _tmp92_)) {
 
2476
        if ((_tmp93_ = !vala_semantic_analyzer_check_arguments (analyzer, (ValaExpression*) self, mtype, params, _tmp92_ = vala_method_call_get_argument_list (self)), _vala_collection_object_unref0 (_tmp92_), _tmp93_)) {
2399
2477
                vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
2400
2478
                result = FALSE;
2401
2479
                _vala_code_node_unref0 (target_object_type);
2408
2486
                return result;
2409
2487
        }
2410
2488
        if (may_throw) {
2411
 
                gboolean _tmp93_ = FALSE;
 
2489
                gboolean _tmp94_ = FALSE;
2412
2490
                if (VALA_IS_LOCAL_VARIABLE (vala_code_node_get_parent_node ((ValaCodeNode*) self))) {
2413
 
                        _tmp93_ = TRUE;
 
2491
                        _tmp94_ = TRUE;
2414
2492
                } else {
2415
 
                        _tmp93_ = VALA_IS_EXPRESSION_STATEMENT (vala_code_node_get_parent_node ((ValaCodeNode*) self));
 
2493
                        _tmp94_ = VALA_IS_EXPRESSION_STATEMENT (vala_code_node_get_parent_node ((ValaCodeNode*) self));
2416
2494
                }
2417
 
                if (_tmp93_) {
 
2495
                if (_tmp94_) {
2418
2496
                } else {
2419
2497
                        if (!VALA_IS_BLOCK (vala_semantic_analyzer_get_current_symbol (analyzer))) {
2420
2498
                                vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "Field initializers must not throw errors");
2421
2499
                        } else {
2422
2500
                                ValaCodeNode* old_parent_node;
2423
 
                                char* _tmp94_;
2424
 
                                ValaLocalVariable* _tmp95_;
 
2501
                                char* _tmp95_;
 
2502
                                ValaLocalVariable* _tmp96_;
2425
2503
                                ValaLocalVariable* local;
2426
2504
                                ValaDeclarationStatement* decl;
2427
2505
                                ValaExpression* temp_access;
2428
2506
                                ValaBlock* block;
2429
2507
                                old_parent_node = _vala_code_node_ref0 (vala_code_node_get_parent_node ((ValaCodeNode*) self));
2430
 
                                local = (_tmp95_ = vala_local_variable_new (vala_expression_get_value_type ((ValaExpression*) self), _tmp94_ = vala_code_node_get_temp_name ((ValaCodeNode*) self), NULL, vala_code_node_get_source_reference ((ValaCodeNode*) self)), _g_free0 (_tmp94_), _tmp95_);
 
2508
                                local = (_tmp96_ = vala_local_variable_new (vala_expression_get_value_type ((ValaExpression*) self), _tmp95_ = vala_code_node_get_temp_name ((ValaCodeNode*) self), NULL, vala_code_node_get_source_reference ((ValaCodeNode*) self)), _g_free0 (_tmp95_), _tmp96_);
2431
2509
                                vala_local_variable_set_floating (local, TRUE);
2432
2510
                                decl = vala_declaration_statement_new ((ValaSymbol*) local, vala_code_node_get_source_reference ((ValaCodeNode*) self));
2433
2511
                                vala_expression_insert_statement ((ValaExpression*) self, analyzer->insert_block, (ValaStatement*) decl);