~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): Didier Roche
  • Date: 2010-04-02 10:10:55 UTC
  • mfrom: (1.4.7 upstream)
  • Revision ID: james.westby@ubuntu.com-20100402101055-qbx3okzv0tnp3wpp
Tags: 0.8.0-0ubuntu1
* New upstream release:
  - Infer type arguments when calling generic methods.
  - Support `in' operator for arrays.
  - Add experimental support for regular expression literals.
  - Add experimental support for chained relational expressions.
  - Add va_list support.
  - Add clutter-gtk-0.10 bindings (Gordon Allott).
  - Add gdl-1.0 bindings (Nicolas Joseph).
  - Add gstreamer-app-0.10 bindings (Sebastian Dröge).
  - Add gstreamer-cdda-0.10 bindings (Sebastian Dröge).
  - Add gudev-1.0 bindings (Jim Nelson).
  - Add libgda-report-4.0 bindings (Shawn Ferris).
  - Add libgvc (graphviz) bindings (Martin Olsson).
  - Add purple bindings (Adrien Bustany).
  - Many bug fixes and binding updates.
* debian/patches/99_ltmain_as-needed.patch: refreshed

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
 
4
4
/* valamethodcall.vala
5
5
 *
6
 
 * Copyright (C) 2006-2009  Jürg Billeter
 
6
 * Copyright (C) 2006-2010  Jürg Billeter
7
7
 *
8
8
 * This library is free software; you can redistribute it and/or
9
9
 * modify it under the terms of the GNU Lesser General Public
659
659
typedef struct _ValaLockStatement ValaLockStatement;
660
660
typedef struct _ValaLockStatementClass ValaLockStatementClass;
661
661
 
 
662
#define VALA_TYPE_UNLOCK_STATEMENT (vala_unlock_statement_get_type ())
 
663
#define VALA_UNLOCK_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_UNLOCK_STATEMENT, ValaUnlockStatement))
 
664
#define VALA_UNLOCK_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_UNLOCK_STATEMENT, ValaUnlockStatementClass))
 
665
#define VALA_IS_UNLOCK_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_UNLOCK_STATEMENT))
 
666
#define VALA_IS_UNLOCK_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_UNLOCK_STATEMENT))
 
667
#define VALA_UNLOCK_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_UNLOCK_STATEMENT, ValaUnlockStatementClass))
 
668
 
 
669
typedef struct _ValaUnlockStatement ValaUnlockStatement;
 
670
typedef struct _ValaUnlockStatementClass ValaUnlockStatementClass;
 
671
 
662
672
#define VALA_TYPE_DELETE_STATEMENT (vala_delete_statement_get_type ())
663
673
#define VALA_DELETE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DELETE_STATEMENT, ValaDeleteStatement))
664
674
#define VALA_DELETE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DELETE_STATEMENT, ValaDeleteStatementClass))
729
739
typedef struct _ValaRealLiteral ValaRealLiteral;
730
740
typedef struct _ValaRealLiteralClass ValaRealLiteralClass;
731
741
 
 
742
#define VALA_TYPE_REGEX_LITERAL (vala_regex_literal_get_type ())
 
743
#define VALA_REGEX_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_REGEX_LITERAL, ValaRegexLiteral))
 
744
#define VALA_REGEX_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_REGEX_LITERAL, ValaRegexLiteralClass))
 
745
#define VALA_IS_REGEX_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_REGEX_LITERAL))
 
746
#define VALA_IS_REGEX_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_REGEX_LITERAL))
 
747
#define VALA_REGEX_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_REGEX_LITERAL, ValaRegexLiteralClass))
 
748
 
 
749
typedef struct _ValaRegexLiteral ValaRegexLiteral;
 
750
typedef struct _ValaRegexLiteralClass ValaRegexLiteralClass;
 
751
 
732
752
#define VALA_TYPE_STRING_LITERAL (vala_string_literal_get_type ())
733
753
#define VALA_STRING_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_STRING_LITERAL, ValaStringLiteral))
734
754
#define VALA_STRING_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_STRING_LITERAL, ValaStringLiteralClass))
749
769
typedef struct _ValaTemplate ValaTemplate;
750
770
typedef struct _ValaTemplateClass ValaTemplateClass;
751
771
 
 
772
#define VALA_TYPE_LIST_LITERAL (vala_list_literal_get_type ())
 
773
#define VALA_LIST_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_LIST_LITERAL, ValaListLiteral))
 
774
#define VALA_LIST_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_LIST_LITERAL, ValaListLiteralClass))
 
775
#define VALA_IS_LIST_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_LIST_LITERAL))
 
776
#define VALA_IS_LIST_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_LIST_LITERAL))
 
777
#define VALA_LIST_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_LIST_LITERAL, ValaListLiteralClass))
 
778
 
 
779
typedef struct _ValaListLiteral ValaListLiteral;
 
780
typedef struct _ValaListLiteralClass ValaListLiteralClass;
 
781
 
 
782
#define VALA_TYPE_SET_LITERAL (vala_set_literal_get_type ())
 
783
#define VALA_SET_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SET_LITERAL, ValaSetLiteral))
 
784
#define VALA_SET_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SET_LITERAL, ValaSetLiteralClass))
 
785
#define VALA_IS_SET_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SET_LITERAL))
 
786
#define VALA_IS_SET_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SET_LITERAL))
 
787
#define VALA_SET_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SET_LITERAL, ValaSetLiteralClass))
 
788
 
 
789
typedef struct _ValaSetLiteral ValaSetLiteral;
 
790
typedef struct _ValaSetLiteralClass ValaSetLiteralClass;
 
791
 
 
792
#define VALA_TYPE_MAP_LITERAL (vala_map_literal_get_type ())
 
793
#define VALA_MAP_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_MAP_LITERAL, ValaMapLiteral))
 
794
#define VALA_MAP_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_MAP_LITERAL, ValaMapLiteralClass))
 
795
#define VALA_IS_MAP_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_MAP_LITERAL))
 
796
#define VALA_IS_MAP_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_MAP_LITERAL))
 
797
#define VALA_MAP_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_MAP_LITERAL, ValaMapLiteralClass))
 
798
 
 
799
typedef struct _ValaMapLiteral ValaMapLiteral;
 
800
typedef struct _ValaMapLiteralClass ValaMapLiteralClass;
 
801
 
 
802
#define VALA_TYPE_TUPLE (vala_tuple_get_type ())
 
803
#define VALA_TUPLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_TUPLE, ValaTuple))
 
804
#define VALA_TUPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_TUPLE, ValaTupleClass))
 
805
#define VALA_IS_TUPLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_TUPLE))
 
806
#define VALA_IS_TUPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_TUPLE))
 
807
#define VALA_TUPLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_TUPLE, ValaTupleClass))
 
808
 
 
809
typedef struct _ValaTuple ValaTuple;
 
810
typedef struct _ValaTupleClass ValaTupleClass;
 
811
 
752
812
#define VALA_TYPE_NULL_LITERAL (vala_null_literal_get_type ())
753
813
#define VALA_NULL_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_NULL_LITERAL, ValaNullLiteral))
754
814
#define VALA_NULL_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_NULL_LITERAL, ValaNullLiteralClass))
990
1050
typedef struct _ValaPointerType ValaPointerType;
991
1051
typedef struct _ValaPointerTypeClass ValaPointerTypeClass;
992
1052
 
 
1053
#define VALA_TYPE_DYNAMIC_SIGNAL (vala_dynamic_signal_get_type ())
 
1054
#define VALA_DYNAMIC_SIGNAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DYNAMIC_SIGNAL, ValaDynamicSignal))
 
1055
#define VALA_DYNAMIC_SIGNAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DYNAMIC_SIGNAL, ValaDynamicSignalClass))
 
1056
#define VALA_IS_DYNAMIC_SIGNAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_DYNAMIC_SIGNAL))
 
1057
#define VALA_IS_DYNAMIC_SIGNAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_DYNAMIC_SIGNAL))
 
1058
#define VALA_DYNAMIC_SIGNAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_DYNAMIC_SIGNAL, ValaDynamicSignalClass))
 
1059
 
 
1060
typedef struct _ValaDynamicSignal ValaDynamicSignal;
 
1061
typedef struct _ValaDynamicSignalClass ValaDynamicSignalClass;
 
1062
 
993
1063
#define VALA_TYPE_DELEGATE_TYPE (vala_delegate_type_get_type ())
994
1064
#define VALA_DELEGATE_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DELEGATE_TYPE, ValaDelegateType))
995
1065
#define VALA_DELEGATE_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DELEGATE_TYPE, ValaDelegateTypeClass))
1000
1070
typedef struct _ValaDelegateType ValaDelegateType;
1001
1071
typedef struct _ValaDelegateTypeClass ValaDelegateTypeClass;
1002
1072
 
 
1073
#define VALA_TYPE_GENERIC_TYPE (vala_generic_type_get_type ())
 
1074
#define VALA_GENERIC_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_GENERIC_TYPE, ValaGenericType))
 
1075
#define VALA_GENERIC_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_GENERIC_TYPE, ValaGenericTypeClass))
 
1076
#define VALA_IS_GENERIC_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_GENERIC_TYPE))
 
1077
#define VALA_IS_GENERIC_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_GENERIC_TYPE))
 
1078
#define VALA_GENERIC_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_GENERIC_TYPE, ValaGenericTypeClass))
 
1079
 
 
1080
typedef struct _ValaGenericType ValaGenericType;
 
1081
typedef struct _ValaGenericTypeClass ValaGenericTypeClass;
 
1082
 
1003
1083
#define VALA_TYPE_STATEMENT (vala_statement_get_type ())
1004
1084
#define VALA_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_STATEMENT, ValaStatement))
1005
1085
#define VALA_IS_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_STATEMENT))
1059
1139
 
1060
1140
typedef enum  {
1061
1141
        VALA_PROFILE_POSIX,
1062
 
        VALA_PROFILE_GOBJECT
 
1142
        VALA_PROFILE_GOBJECT,
 
1143
        VALA_PROFILE_DOVA
1063
1144
} ValaProfile;
1064
1145
 
1065
1146
struct _ValaCodeVisitor {
1118
1199
        void (*visit_try_statement) (ValaCodeVisitor* self, ValaTryStatement* stmt);
1119
1200
        void (*visit_catch_clause) (ValaCodeVisitor* self, ValaCatchClause* clause);
1120
1201
        void (*visit_lock_statement) (ValaCodeVisitor* self, ValaLockStatement* stmt);
 
1202
        void (*visit_unlock_statement) (ValaCodeVisitor* self, ValaUnlockStatement* stmt);
1121
1203
        void (*visit_delete_statement) (ValaCodeVisitor* self, ValaDeleteStatement* stmt);
1122
1204
        void (*visit_expression) (ValaCodeVisitor* self, ValaExpression* expr);
1123
1205
        void (*visit_array_creation_expression) (ValaCodeVisitor* self, ValaArrayCreationExpression* expr);
1125
1207
        void (*visit_character_literal) (ValaCodeVisitor* self, ValaCharacterLiteral* lit);
1126
1208
        void (*visit_integer_literal) (ValaCodeVisitor* self, ValaIntegerLiteral* lit);
1127
1209
        void (*visit_real_literal) (ValaCodeVisitor* self, ValaRealLiteral* lit);
 
1210
        void (*visit_regex_literal) (ValaCodeVisitor* self, ValaRegexLiteral* lit);
1128
1211
        void (*visit_string_literal) (ValaCodeVisitor* self, ValaStringLiteral* lit);
1129
1212
        void (*visit_template) (ValaCodeVisitor* self, ValaTemplate* tmpl);
 
1213
        void (*visit_list_literal) (ValaCodeVisitor* self, ValaListLiteral* lit);
 
1214
        void (*visit_set_literal) (ValaCodeVisitor* self, ValaSetLiteral* lit);
 
1215
        void (*visit_map_literal) (ValaCodeVisitor* self, ValaMapLiteral* lit);
 
1216
        void (*visit_tuple) (ValaCodeVisitor* self, ValaTuple* tuple);
1130
1217
        void (*visit_null_literal) (ValaCodeVisitor* self, ValaNullLiteral* lit);
1131
1218
        void (*visit_member_access) (ValaCodeVisitor* self, ValaMemberAccess* expr);
1132
1219
        void (*visit_method_call) (ValaCodeVisitor* self, ValaMethodCall* expr);
1159
1246
        ValaDataType* void_type;
1160
1247
        ValaDataType* bool_type;
1161
1248
        ValaDataType* string_type;
 
1249
        ValaDataType* regex_type;
1162
1250
        ValaDataType* uchar_type;
1163
1251
        ValaDataType* short_type;
1164
1252
        ValaDataType* ushort_type;
1179
1267
        ValaDataType* garray_type;
1180
1268
        ValaDataType* gvaluearray_type;
1181
1269
        ValaClass* gerror_type;
 
1270
        ValaDataType* list_type;
 
1271
        ValaDataType* tuple_type;
1182
1272
        gint next_lambda_id;
1183
1273
        ValaList* replaced_nodes;
1184
1274
};
1198
1288
void vala_code_node_unref (gpointer instance);
1199
1289
GParamSpec* vala_param_spec_code_node (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1200
1290
void vala_value_set_code_node (GValue* value, gpointer v_object);
 
1291
void vala_value_take_code_node (GValue* value, gpointer v_object);
1201
1292
gpointer vala_value_get_code_node (const GValue* value);
1202
1293
GType vala_code_node_get_type (void);
1203
1294
gpointer vala_code_visitor_ref (gpointer instance);
1204
1295
void vala_code_visitor_unref (gpointer instance);
1205
1296
GParamSpec* vala_param_spec_code_visitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1206
1297
void vala_value_set_code_visitor (GValue* value, gpointer v_object);
 
1298
void vala_value_take_code_visitor (GValue* value, gpointer v_object);
1207
1299
gpointer vala_value_get_code_visitor (const GValue* value);
1208
1300
GType vala_code_visitor_get_type (void);
1209
1301
GType vala_semantic_analyzer_get_type (void);
1222
1314
void vala_source_reference_unref (gpointer instance);
1223
1315
GParamSpec* vala_param_spec_source_reference (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1224
1316
void vala_value_set_source_reference (GValue* value, gpointer v_object);
 
1317
void vala_value_take_source_reference (GValue* value, gpointer v_object);
1225
1318
gpointer vala_value_get_source_reference (const GValue* value);
1226
1319
GType vala_source_reference_get_type (void);
1227
1320
void vala_code_node_set_source_reference (ValaCodeNode* self, ValaSourceReference* value);
1267
1360
void vala_code_context_unref (gpointer instance);
1268
1361
GParamSpec* vala_param_spec_code_context (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1269
1362
void vala_value_set_code_context (GValue* value, gpointer v_object);
 
1363
void vala_value_take_code_context (GValue* value, gpointer v_object);
1270
1364
gpointer vala_value_get_code_context (const GValue* value);
1271
1365
GType vala_code_context_get_type (void);
1272
1366
ValaCodeContext* vala_semantic_analyzer_get_context (ValaSemanticAnalyzer* self);
1276
1370
void vala_source_file_unref (gpointer instance);
1277
1371
GParamSpec* vala_param_spec_source_file (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1278
1372
void vala_value_set_source_file (GValue* value, gpointer v_object);
 
1373
void vala_value_take_source_file (GValue* value, gpointer v_object);
1279
1374
gpointer vala_value_get_source_file (const GValue* value);
1280
1375
GType vala_source_file_get_type (void);
1281
1376
GType vala_namespace_get_type (void);
1321
1416
GType vala_try_statement_get_type (void);
1322
1417
GType vala_catch_clause_get_type (void);
1323
1418
GType vala_lock_statement_get_type (void);
 
1419
GType vala_unlock_statement_get_type (void);
1324
1420
GType vala_delete_statement_get_type (void);
1325
1421
GType vala_array_creation_expression_get_type (void);
1326
1422
GType vala_literal_get_type (void);
1328
1424
GType vala_character_literal_get_type (void);
1329
1425
GType vala_integer_literal_get_type (void);
1330
1426
GType vala_real_literal_get_type (void);
 
1427
GType vala_regex_literal_get_type (void);
1331
1428
GType vala_string_literal_get_type (void);
1332
1429
GType vala_template_get_type (void);
 
1430
GType vala_list_literal_get_type (void);
 
1431
GType vala_set_literal_get_type (void);
 
1432
GType vala_map_literal_get_type (void);
 
1433
GType vala_tuple_get_type (void);
1333
1434
GType vala_null_literal_get_type (void);
1334
1435
GType vala_element_access_get_type (void);
1335
1436
GType vala_slice_expression_get_type (void);
1361
1462
ValaObjectType* vala_object_type_new (ValaObjectTypeSymbol* type_symbol);
1362
1463
ValaObjectType* vala_object_type_construct (GType object_type, ValaObjectTypeSymbol* type_symbol);
1363
1464
void vala_expression_set_value_type (ValaExpression* self, ValaDataType* value);
 
1465
ValaMethod* vala_struct_get_default_construction_method (ValaStruct* self);
 
1466
gboolean vala_struct_is_boolean_type (ValaStruct* self);
 
1467
gboolean vala_struct_is_integer_type (ValaStruct* self);
 
1468
gboolean vala_struct_is_floating_type (ValaStruct* self);
1364
1469
ValaObjectCreationExpression* vala_object_creation_expression_new (ValaMemberAccess* member_name, ValaSourceReference* source_reference);
1365
1470
ValaObjectCreationExpression* vala_object_creation_expression_construct (GType object_type, ValaMemberAccess* member_name, ValaSourceReference* source_reference);
1366
1471
void vala_object_creation_expression_set_struct_creation (ValaObjectCreationExpression* self, gboolean value);
1380
1485
ValaVoidType* vala_void_type_construct (GType object_type, ValaSourceReference* source_reference);
1381
1486
GType vala_void_type_get_type (void);
1382
1487
ValaList* vala_method_get_async_end_parameters (ValaMethod* self);
 
1488
ValaList* vala_method_get_type_parameters (ValaMethod* self);
 
1489
ValaList* vala_member_access_get_type_arguments (ValaMemberAccess* self);
1383
1490
gboolean vala_formal_parameter_get_ellipsis (ValaFormalParameter* self);
1384
1491
gboolean vala_formal_parameter_get_params_array (ValaFormalParameter* self);
1385
1492
ValaDataType* vala_formal_parameter_get_parameter_type (ValaFormalParameter* self);
1403
1510
ValaMethod* vala_semantic_analyzer_get_current_method (ValaSemanticAnalyzer* self);
1404
1511
ValaList* vala_code_node_get_error_types (ValaCodeNode* self);
1405
1512
void vala_code_node_add_error_type (ValaCodeNode* self, ValaDataType* error_type);
 
1513
gboolean vala_method_get_returns_floating_reference (ValaMethod* self);
 
1514
void vala_data_type_set_floating_reference (ValaDataType* self, gboolean value);
 
1515
GType vala_dynamic_signal_get_type (void);
 
1516
ValaExpression* vala_dynamic_signal_get_handler (ValaDynamicSignal* self);
 
1517
void vala_signal_add_parameter (ValaSignal* self, ValaFormalParameter* param);
 
1518
ValaFormalParameter* vala_formal_parameter_copy (ValaFormalParameter* self);
 
1519
ValaDelegate* vala_signal_get_delegate (ValaSignal* self, ValaDataType* sender_type, ValaCodeNode* node_reference);
 
1520
ValaDelegateType* vala_delegate_type_new (ValaDelegate* delegate_symbol);
 
1521
ValaDelegateType* vala_delegate_type_construct (GType object_type, ValaDelegate* delegate_symbol);
1406
1522
GType vala_delegate_type_get_type (void);
 
1523
GType vala_generic_type_get_type (void);
 
1524
ValaTypeParameter* vala_data_type_get_type_parameter (ValaDataType* self);
 
1525
ValaDataType* vala_method_get_return_type (ValaMethod* self);
 
1526
void vala_member_access_add_type_argument (ValaMemberAccess* self, ValaDataType* arg);
1407
1527
ValaDelegate* vala_delegate_type_get_delegate_symbol (ValaDelegateType* self);
1408
1528
gboolean vala_semantic_analyzer_check_arguments (ValaSemanticAnalyzer* self, ValaExpression* expr, ValaDataType* mtype, ValaList* params, ValaList* args);
1409
1529
ValaSymbol* vala_semantic_analyzer_get_current_symbol (ValaSemanticAnalyzer* self);
1410
 
char* vala_code_node_get_temp_name (ValaCodeNode* self);
 
1530
char* vala_code_node_get_temp_name (void);
1411
1531
ValaLocalVariable* vala_local_variable_new (ValaDataType* variable_type, const char* name, ValaExpression* initializer, ValaSourceReference* source_reference);
1412
1532
ValaLocalVariable* vala_local_variable_construct (GType object_type, ValaDataType* variable_type, const char* name, ValaExpression* initializer, ValaSourceReference* source_reference);
1413
1533
void vala_local_variable_set_floating (ValaLocalVariable* self, gboolean value);
1456
1576
}
1457
1577
 
1458
1578
 
 
1579
static gpointer _vala_collection_object_ref0 (gpointer self) {
 
1580
        return self ? vala_collection_object_ref (self) : NULL;
 
1581
}
 
1582
 
 
1583
 
1459
1584
ValaList* vala_method_call_get_argument_list (ValaMethodCall* self) {
1460
 
        ValaList* result;
 
1585
        ValaList* result = NULL;
1461
1586
        g_return_val_if_fail (self != NULL, NULL);
1462
 
        result = (ValaList*) vala_read_only_list_new (VALA_TYPE_EXPRESSION, (GBoxedCopyFunc) vala_code_node_ref, vala_code_node_unref, self->priv->argument_list);
 
1587
        result = _vala_collection_object_ref0 (self->priv->argument_list);
1463
1588
        return result;
1464
1589
}
1465
1590
 
1520
1645
 
1521
1646
static gboolean vala_method_call_real_is_pure (ValaExpression* base) {
1522
1647
        ValaMethodCall * self;
1523
 
        gboolean result;
 
1648
        gboolean result = FALSE;
1524
1649
        self = (ValaMethodCall*) base;
1525
1650
        result = FALSE;
1526
1651
        return result;
1533
1658
 
1534
1659
 
1535
1660
static gboolean vala_method_call_is_chainup (ValaMethodCall* self) {
1536
 
        gboolean result;
 
1661
        gboolean result = FALSE;
1537
1662
        ValaExpression* expr;
1538
1663
        ValaMemberAccess* ma;
1539
1664
        ValaMemberAccess* _tmp2_;
1581
1706
 
1582
1707
static gboolean vala_method_call_real_check (ValaCodeNode* base, ValaSemanticAnalyzer* analyzer) {
1583
1708
        ValaMethodCall * self;
1584
 
        gboolean result;
 
1709
        gboolean result = FALSE;
1585
1710
        ValaDataType* target_object_type;
1586
1711
        ValaDataType* mtype;
1587
1712
        gboolean _tmp5_ = FALSE;
1588
1713
        gboolean _tmp16_ = FALSE;
1589
 
        gboolean _tmp26_ = FALSE;
 
1714
        gboolean _tmp31_ = FALSE;
1590
1715
        ValaDataType* ret_type;
1591
1716
        ValaList* params;
1592
1717
        ValaExpression* last_arg;
1593
1718
        ValaList* args;
1594
1719
        ValaIterator* arg_it;
1595
 
        gboolean _tmp35_ = FALSE;
1596
 
        ValaDataType* _tmp83_;
1597
 
        ValaExpression* _tmp82_;
 
1720
        gboolean _tmp48_ = FALSE;
 
1721
        ValaDataType* _tmp96_;
 
1722
        ValaExpression* _tmp95_;
1598
1723
        gboolean may_throw;
1599
 
        ValaList* _tmp92_;
1600
 
        gboolean _tmp93_;
 
1724
        ValaList* _tmp138_;
 
1725
        gboolean _tmp139_;
1601
1726
        self = (ValaMethodCall*) base;
1602
1727
        g_return_val_if_fail (analyzer != NULL, FALSE);
1603
1728
        if (vala_code_node_get_checked ((ValaCodeNode*) self)) {
1769
1894
                _tmp16_ = FALSE;
1770
1895
        }
1771
1896
        if (_tmp16_) {
 
1897
                ValaSymbol* _tmp19_;
 
1898
                ValaStruct* st;
 
1899
                gboolean _tmp20_ = FALSE;
 
1900
                gboolean _tmp21_ = FALSE;
1772
1901
                ValaObjectCreationExpression* struct_creation_expression;
 
1902
                st = _vala_code_node_ref0 ((_tmp19_ = vala_expression_get_symbol_reference (vala_method_call_get_call (self)), VALA_IS_STRUCT (_tmp19_) ? ((ValaStruct*) _tmp19_) : NULL));
 
1903
                if (st != NULL) {
 
1904
                        _tmp21_ = vala_struct_get_default_construction_method (st) == NULL;
 
1905
                } else {
 
1906
                        _tmp21_ = FALSE;
 
1907
                }
 
1908
                if (_tmp21_) {
 
1909
                        gboolean _tmp22_ = FALSE;
 
1910
                        gboolean _tmp23_ = FALSE;
 
1911
                        if (vala_struct_is_boolean_type (st)) {
 
1912
                                _tmp23_ = TRUE;
 
1913
                        } else {
 
1914
                                _tmp23_ = vala_struct_is_integer_type (st);
 
1915
                        }
 
1916
                        if (_tmp23_) {
 
1917
                                _tmp22_ = TRUE;
 
1918
                        } else {
 
1919
                                _tmp22_ = vala_struct_is_floating_type (st);
 
1920
                        }
 
1921
                        _tmp20_ = _tmp22_;
 
1922
                } else {
 
1923
                        _tmp20_ = FALSE;
 
1924
                }
 
1925
                if (_tmp20_) {
 
1926
                        vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
 
1927
                        vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "invocation not supported in this context");
 
1928
                        result = FALSE;
 
1929
                        _vala_code_node_unref0 (st);
 
1930
                        _vala_code_node_unref0 (target_object_type);
 
1931
                        _vala_code_node_unref0 (mtype);
 
1932
                        return result;
 
1933
                }
1773
1934
                if (vala_method_call_is_chainup (self)) {
1774
 
                        ValaMethod* _tmp19_;
 
1935
                        ValaMethod* _tmp24_;
1775
1936
                        ValaCreationMethod* cm;
1776
 
                        cm = (_tmp19_ = vala_semantic_analyzer_find_current_method (analyzer), VALA_IS_CREATION_METHOD (_tmp19_) ? ((ValaCreationMethod*) _tmp19_) : NULL);
 
1937
                        cm = (_tmp24_ = vala_semantic_analyzer_find_current_method (analyzer), VALA_IS_CREATION_METHOD (_tmp24_) ? ((ValaCreationMethod*) _tmp24_) : NULL);
1777
1938
                        if (cm != NULL) {
1778
1939
                                if (vala_creation_method_get_chain_up (cm)) {
1779
1940
                                        vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
1780
1941
                                        vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "Multiple constructor calls in the same constructor are not permitted");
1781
1942
                                        result = FALSE;
1782
1943
                                        _vala_code_node_unref0 (cm);
 
1944
                                        _vala_code_node_unref0 (st);
1783
1945
                                        _vala_code_node_unref0 (target_object_type);
1784
1946
                                        _vala_code_node_unref0 (mtype);
1785
1947
                                        return result;
1791
1953
                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));
1792
1954
                vala_object_creation_expression_set_struct_creation (struct_creation_expression, TRUE);
1793
1955
                {
1794
 
                        ValaList* _tmp20_;
1795
 
                        ValaIterator* _tmp21_;
 
1956
                        ValaList* _tmp25_;
 
1957
                        ValaIterator* _tmp26_;
1796
1958
                        ValaIterator* _arg_it;
1797
 
                        _arg_it = (_tmp21_ = vala_iterable_iterator ((ValaIterable*) (_tmp20_ = vala_method_call_get_argument_list (self))), _vala_collection_object_unref0 (_tmp20_), _tmp21_);
 
1959
                        _arg_it = (_tmp26_ = vala_iterable_iterator ((ValaIterable*) (_tmp25_ = vala_method_call_get_argument_list (self))), _vala_collection_object_unref0 (_tmp25_), _tmp26_);
1798
1960
                        while (TRUE) {
1799
1961
                                ValaExpression* arg;
1800
1962
                                if (!vala_iterator_next (_arg_it)) {
1811
1973
                vala_code_node_replace_expression (vala_code_node_get_parent_node ((ValaCodeNode*) self), (ValaExpression*) self, (ValaExpression*) struct_creation_expression);
1812
1974
                vala_code_node_check ((ValaCodeNode*) struct_creation_expression, analyzer);
1813
1975
                result = TRUE;
 
1976
                _vala_code_node_unref0 (st);
1814
1977
                _vala_code_node_unref0 (struct_creation_expression);
1815
1978
                _vala_code_node_unref0 (target_object_type);
1816
1979
                _vala_code_node_unref0 (mtype);
1817
1980
                return result;
1818
1981
        } else {
1819
 
                gboolean _tmp22_ = FALSE;
 
1982
                gboolean _tmp27_ = FALSE;
1820
1983
                if (VALA_IS_MEMBER_ACCESS (vala_method_call_get_call (self))) {
1821
 
                        _tmp22_ = VALA_IS_CREATION_METHOD (vala_expression_get_symbol_reference (vala_method_call_get_call (self)));
 
1984
                        _tmp27_ = VALA_IS_CREATION_METHOD (vala_expression_get_symbol_reference (vala_method_call_get_call (self)));
1822
1985
                } else {
1823
 
                        _tmp22_ = FALSE;
 
1986
                        _tmp27_ = FALSE;
1824
1987
                }
1825
 
                if (_tmp22_) {
1826
 
                        ValaMethod* _tmp23_;
 
1988
                if (_tmp27_) {
 
1989
                        ValaMethod* _tmp28_;
1827
1990
                        ValaCreationMethod* cm;
1828
1991
                        ValaCreationMethod* base_cm;
1829
 
                        cm = (_tmp23_ = vala_semantic_analyzer_find_current_method (analyzer), VALA_IS_CREATION_METHOD (_tmp23_) ? ((ValaCreationMethod*) _tmp23_) : NULL);
 
1992
                        cm = (_tmp28_ = vala_semantic_analyzer_find_current_method (analyzer), VALA_IS_CREATION_METHOD (_tmp28_) ? ((ValaCreationMethod*) _tmp28_) : NULL);
1830
1993
                        if (cm == NULL) {
1831
1994
                                vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
1832
1995
                                vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "use `new' operator to create new objects");
1849
2012
                        vala_creation_method_set_chain_up (cm, TRUE);
1850
2013
                        base_cm = _vala_code_node_ref0 (VALA_CREATION_METHOD (vala_expression_get_symbol_reference (vala_method_call_get_call (self))));
1851
2014
                        if (!vala_method_get_has_construct_function ((ValaMethod*) base_cm)) {
1852
 
                                char* _tmp25_;
1853
 
                                char* _tmp24_;
 
2015
                                char* _tmp30_;
 
2016
                                char* _tmp29_;
1854
2017
                                vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
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_);
1857
 
                                _g_free0 (_tmp24_);
 
2018
                                vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), _tmp30_ = g_strdup_printf ("chain up to `%s' not supported", _tmp29_ = vala_symbol_get_full_name ((ValaSymbol*) base_cm)));
 
2019
                                _g_free0 (_tmp30_);
 
2020
                                _g_free0 (_tmp29_);
1858
2021
                                result = FALSE;
1859
2022
                                _vala_code_node_unref0 (cm);
1860
2023
                                _vala_code_node_unref0 (base_cm);
1867
2030
                }
1868
2031
        }
1869
2032
        if (mtype != NULL) {
1870
 
                _tmp26_ = vala_data_type_is_invokable (mtype);
 
2033
                _tmp31_ = vala_data_type_is_invokable (mtype);
1871
2034
        } else {
1872
 
                _tmp26_ = FALSE;
 
2035
                _tmp31_ = FALSE;
1873
2036
        }
1874
 
        if (_tmp26_) {
 
2037
        if (_tmp31_) {
1875
2038
        } else {
1876
2039
                if (VALA_IS_CLASS (vala_expression_get_symbol_reference (vala_method_call_get_call (self)))) {
1877
2040
                        vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
1893
2056
        params = vala_data_type_get_parameters (mtype);
1894
2057
        if (VALA_IS_METHOD_TYPE (mtype)) {
1895
2058
                ValaMethod* m;
1896
 
                gboolean _tmp27_ = FALSE;
1897
 
                gboolean _tmp28_ = FALSE;
 
2059
                gboolean _tmp32_ = FALSE;
 
2060
                gboolean _tmp33_ = FALSE;
 
2061
                gboolean _tmp37_ = FALSE;
1898
2062
                m = _vala_code_node_ref0 (vala_method_type_get_method_symbol (VALA_METHOD_TYPE (mtype)));
1899
2063
                if (m != NULL) {
1900
 
                        _tmp28_ = vala_method_get_coroutine (m);
1901
 
                } else {
1902
 
                        _tmp28_ = FALSE;
1903
 
                }
1904
 
                if (_tmp28_) {
1905
 
                        _tmp27_ = !self->priv->_is_yield_expression;
1906
 
                } else {
1907
 
                        _tmp27_ = FALSE;
1908
 
                }
1909
 
                if (_tmp27_) {
 
2064
                        _tmp33_ = vala_method_get_coroutine (m);
 
2065
                } else {
 
2066
                        _tmp33_ = FALSE;
 
2067
                }
 
2068
                if (_tmp33_) {
 
2069
                        _tmp32_ = !self->priv->_is_yield_expression;
 
2070
                } else {
 
2071
                        _tmp32_ = FALSE;
 
2072
                }
 
2073
                if (_tmp32_) {
1910
2074
                        ValaMemberAccess* ma;
1911
2075
                        ma = _vala_code_node_ref0 (VALA_MEMBER_ACCESS (vala_method_call_get_call (self)));
1912
2076
                        if (_vala_strcmp0 (vala_member_access_get_member_name (ma), "end") != 0) {
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_);
1917
 
                        } else {
1918
 
                                ValaList* _tmp31_;
1919
 
                                params = (_tmp31_ = vala_method_get_async_end_parameters (m), _vala_collection_object_unref0 (params), _tmp31_);
 
2077
                                ValaList* _tmp34_;
 
2078
                                ValaDataType* _tmp35_;
 
2079
                                params = (_tmp34_ = vala_method_get_async_begin_parameters (m), _vala_collection_object_unref0 (params), _tmp34_);
 
2080
                                ret_type = (_tmp35_ = (ValaDataType*) vala_void_type_new (NULL), _vala_code_node_unref0 (ret_type), _tmp35_);
 
2081
                        } else {
 
2082
                                ValaList* _tmp36_;
 
2083
                                params = (_tmp36_ = vala_method_get_async_end_parameters (m), _vala_collection_object_unref0 (params), _tmp36_);
 
2084
                        }
 
2085
                        _vala_code_node_unref0 (ma);
 
2086
                }
 
2087
                if (m != NULL) {
 
2088
                        ValaList* _tmp38_;
 
2089
                        _tmp37_ = vala_collection_get_size ((ValaCollection*) (_tmp38_ = vala_method_get_type_parameters (m))) > 0;
 
2090
                        _vala_collection_object_unref0 (_tmp38_);
 
2091
                } else {
 
2092
                        _tmp37_ = FALSE;
 
2093
                }
 
2094
                if (_tmp37_) {
 
2095
                        ValaMemberAccess* ma;
 
2096
                        ValaList* _tmp39_;
 
2097
                        gint _tmp40_;
 
2098
                        gint n_type_params;
 
2099
                        ValaList* _tmp41_;
 
2100
                        gint _tmp42_;
 
2101
                        gint n_type_args;
 
2102
                        gboolean _tmp43_ = FALSE;
 
2103
                        ma = _vala_code_node_ref0 (VALA_MEMBER_ACCESS (vala_method_call_get_call (self)));
 
2104
                        n_type_params = (_tmp40_ = vala_collection_get_size ((ValaCollection*) (_tmp39_ = vala_method_get_type_parameters (m))), _vala_collection_object_unref0 (_tmp39_), _tmp40_);
 
2105
                        n_type_args = (_tmp42_ = vala_collection_get_size ((ValaCollection*) (_tmp41_ = vala_member_access_get_type_arguments (ma))), _vala_collection_object_unref0 (_tmp41_), _tmp42_);
 
2106
                        if (n_type_args > 0) {
 
2107
                                _tmp43_ = n_type_args < n_type_params;
 
2108
                        } else {
 
2109
                                _tmp43_ = FALSE;
 
2110
                        }
 
2111
                        if (_tmp43_) {
 
2112
                                vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
 
2113
                                vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) ma), "too few type arguments");
 
2114
                                result = FALSE;
 
2115
                                _vala_code_node_unref0 (ma);
 
2116
                                _vala_code_node_unref0 (m);
 
2117
                                _vala_code_node_unref0 (target_object_type);
 
2118
                                _vala_code_node_unref0 (mtype);
 
2119
                                _vala_code_node_unref0 (ret_type);
 
2120
                                _vala_collection_object_unref0 (params);
 
2121
                                return result;
 
2122
                        } else {
 
2123
                                gboolean _tmp44_ = FALSE;
 
2124
                                if (n_type_args > 0) {
 
2125
                                        _tmp44_ = n_type_args > n_type_params;
 
2126
                                } else {
 
2127
                                        _tmp44_ = FALSE;
 
2128
                                }
 
2129
                                if (_tmp44_) {
 
2130
                                        vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
 
2131
                                        vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) ma), "too many type arguments");
 
2132
                                        result = FALSE;
 
2133
                                        _vala_code_node_unref0 (ma);
 
2134
                                        _vala_code_node_unref0 (m);
 
2135
                                        _vala_code_node_unref0 (target_object_type);
 
2136
                                        _vala_code_node_unref0 (mtype);
 
2137
                                        _vala_code_node_unref0 (ret_type);
 
2138
                                        _vala_collection_object_unref0 (params);
 
2139
                                        return result;
 
2140
                                }
1920
2141
                        }
1921
2142
                        _vala_code_node_unref0 (ma);
1922
2143
                }
1957
2178
                        }
1958
2179
                        if (vala_iterator_next (arg_it)) {
1959
2180
                                ValaExpression* arg;
1960
 
                                ValaDataType* _tmp33_;
1961
 
                                ValaExpression* _tmp32_;
1962
 
                                ValaExpression* _tmp34_;
 
2181
                                ValaDataType* _tmp46_;
 
2182
                                ValaExpression* _tmp45_;
 
2183
                                ValaExpression* _tmp47_;
1963
2184
                                arg = (ValaExpression*) vala_iterator_get (arg_it);
1964
2185
                                vala_expression_set_formal_target_type (arg, vala_formal_parameter_get_parameter_type (param));
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_);
 
2186
                                vala_expression_set_target_type (arg, _tmp46_ = vala_data_type_get_actual_type (vala_expression_get_formal_target_type (arg), target_object_type, (_tmp45_ = vala_method_call_get_call (self), VALA_IS_MEMBER_ACCESS (_tmp45_) ? ((ValaMemberAccess*) _tmp45_) : NULL), (ValaCodeNode*) self));
 
2187
                                _vala_code_node_unref0 (_tmp46_);
 
2188
                                last_arg = (_tmp47_ = _vala_code_node_ref0 (arg), _vala_code_node_unref0 (last_arg), _tmp47_);
1968
2189
                                _vala_code_node_unref0 (arg);
1969
2190
                        }
1970
2191
                        _vala_code_node_unref0 (param);
1972
2193
                _vala_collection_object_unref0 (_param_it);
1973
2194
        }
1974
2195
        if (VALA_IS_METHOD_TYPE (mtype)) {
1975
 
                _tmp35_ = vala_method_get_printf_format (vala_method_type_get_method_symbol (VALA_METHOD_TYPE (mtype)));
 
2196
                _tmp48_ = vala_method_get_printf_format (vala_method_type_get_method_symbol (VALA_METHOD_TYPE (mtype)));
1976
2197
        } else {
1977
 
                _tmp35_ = FALSE;
 
2198
                _tmp48_ = FALSE;
1978
2199
        }
1979
 
        if (_tmp35_) {
 
2200
        if (_tmp48_) {
1980
2201
                ValaStringLiteral* format_literal;
1981
2202
                format_literal = NULL;
1982
2203
                if (last_arg != NULL) {
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_);
 
2204
                        ValaStringLiteral* _tmp50_;
 
2205
                        ValaExpression* _tmp49_;
 
2206
                        gboolean _tmp51_ = FALSE;
 
2207
                        format_literal = (_tmp50_ = _vala_code_node_ref0 ((_tmp49_ = last_arg, VALA_IS_STRING_LITERAL (_tmp49_) ? ((ValaStringLiteral*) _tmp49_) : NULL)), _vala_code_node_unref0 (format_literal), _tmp50_);
1987
2208
                        if (format_literal == NULL) {
1988
 
                                _tmp38_ = vala_collection_get_size ((ValaCollection*) args) == (vala_collection_get_size ((ValaCollection*) params) - 1);
 
2209
                                _tmp51_ = vala_collection_get_size ((ValaCollection*) args) == (vala_collection_get_size ((ValaCollection*) params) - 1);
1989
2210
                        } else {
1990
 
                                _tmp38_ = FALSE;
 
2211
                                _tmp51_ = FALSE;
1991
2212
                        }
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_);
 
2213
                        if (_tmp51_) {
 
2214
                                ValaStringLiteral* _tmp52_;
 
2215
                                ValaDataType* _tmp53_;
 
2216
                                ValaIterator* _tmp54_;
 
2217
                                format_literal = (_tmp52_ = vala_string_literal_new ("\"%s\"", NULL), _vala_code_node_unref0 (format_literal), _tmp52_);
 
2218
                                vala_expression_set_target_type ((ValaExpression*) format_literal, _tmp53_ = vala_data_type_copy (analyzer->string_type));
 
2219
                                _vala_code_node_unref0 (_tmp53_);
1999
2220
                                vala_list_insert (self->priv->argument_list, vala_collection_get_size ((ValaCollection*) args) - 1, (ValaExpression*) format_literal);
2000
 
                                arg_it = (_tmp41_ = vala_iterable_iterator ((ValaIterable*) self->priv->argument_list), _vala_collection_object_unref0 (arg_it), _tmp41_);
 
2221
                                arg_it = (_tmp54_ = vala_iterable_iterator ((ValaIterable*) self->priv->argument_list), _vala_collection_object_unref0 (arg_it), _tmp54_);
2001
2222
                                {
2002
2223
                                        ValaIterator* _param_it;
2003
2224
                                        _param_it = vala_iterable_iterator ((ValaIterable*) params);
2018
2239
                                }
2019
2240
                        }
2020
2241
                } else {
2021
 
                        ValaExpression* _tmp42_;
 
2242
                        ValaExpression* _tmp55_;
2022
2243
                        ValaMemberAccess* ma;
2023
 
                        ma = _vala_code_node_ref0 ((_tmp42_ = vala_method_call_get_call (self), VALA_IS_MEMBER_ACCESS (_tmp42_) ? ((ValaMemberAccess*) _tmp42_) : NULL));
 
2244
                        ma = _vala_code_node_ref0 ((_tmp55_ = vala_method_call_get_call (self), VALA_IS_MEMBER_ACCESS (_tmp55_) ? ((ValaMemberAccess*) _tmp55_) : NULL));
2024
2245
                        if (ma != NULL) {
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_);
 
2246
                                ValaStringLiteral* _tmp57_;
 
2247
                                ValaExpression* _tmp56_;
 
2248
                                format_literal = (_tmp57_ = _vala_code_node_ref0 ((_tmp56_ = vala_member_access_get_inner (ma), VALA_IS_STRING_LITERAL (_tmp56_) ? ((ValaStringLiteral*) _tmp56_) : NULL)), _vala_code_node_unref0 (format_literal), _tmp57_);
2028
2249
                        }
2029
2250
                        _vala_code_node_unref0 (ma);
2030
2251
                }
2033
2254
                        gboolean unsupported_format;
2034
2255
                        const char* format_it;
2035
2256
                        gunichar c;
2036
 
                        gboolean _tmp77_ = FALSE;
 
2257
                        gboolean _tmp90_ = FALSE;
2037
2258
                        format = vala_string_literal_eval (format_literal);
2038
2259
                        unsupported_format = FALSE;
2039
2260
                        format_it = format;
2041
2262
                        while (TRUE) {
2042
2263
                                gint length;
2043
2264
                                ValaDataType* param_type;
2044
 
                                gboolean _tmp51_ = FALSE;
2045
 
                                gboolean _tmp52_ = FALSE;
 
2265
                                gboolean _tmp64_ = FALSE;
 
2266
                                gboolean _tmp65_ = FALSE;
2046
2267
                                if (!(c != '\0')) {
2047
2268
                                        break;
2048
2269
                                }
2054
2275
                                format_it = g_utf8_next_char (format_it);
2055
2276
                                c = g_utf8_get_char (format_it);
2056
2277
                                while (TRUE) {
2057
 
                                        gboolean _tmp45_ = FALSE;
2058
 
                                        gboolean _tmp46_ = FALSE;
2059
 
                                        gboolean _tmp47_ = FALSE;
2060
 
                                        gboolean _tmp48_ = FALSE;
 
2278
                                        gboolean _tmp58_ = FALSE;
 
2279
                                        gboolean _tmp59_ = FALSE;
 
2280
                                        gboolean _tmp60_ = FALSE;
 
2281
                                        gboolean _tmp61_ = FALSE;
2061
2282
                                        if (c == '#') {
2062
 
                                                _tmp48_ = TRUE;
2063
 
                                        } else {
2064
 
                                                _tmp48_ = c == '0';
2065
 
                                        }
2066
 
                                        if (_tmp48_) {
2067
 
                                                _tmp47_ = TRUE;
2068
 
                                        } else {
2069
 
                                                _tmp47_ = c == '-';
2070
 
                                        }
2071
 
                                        if (_tmp47_) {
2072
 
                                                _tmp46_ = TRUE;
2073
 
                                        } else {
2074
 
                                                _tmp46_ = c == ' ';
2075
 
                                        }
2076
 
                                        if (_tmp46_) {
2077
 
                                                _tmp45_ = TRUE;
2078
 
                                        } else {
2079
 
                                                _tmp45_ = c == '+';
2080
 
                                        }
2081
 
                                        if (!_tmp45_) {
 
2283
                                                _tmp61_ = TRUE;
 
2284
                                        } else {
 
2285
                                                _tmp61_ = c == '0';
 
2286
                                        }
 
2287
                                        if (_tmp61_) {
 
2288
                                                _tmp60_ = TRUE;
 
2289
                                        } else {
 
2290
                                                _tmp60_ = c == '-';
 
2291
                                        }
 
2292
                                        if (_tmp60_) {
 
2293
                                                _tmp59_ = TRUE;
 
2294
                                        } else {
 
2295
                                                _tmp59_ = c == ' ';
 
2296
                                        }
 
2297
                                        if (_tmp59_) {
 
2298
                                                _tmp58_ = TRUE;
 
2299
                                        } else {
 
2300
                                                _tmp58_ = c == '+';
 
2301
                                        }
 
2302
                                        if (!_tmp58_) {
2082
2303
                                                break;
2083
2304
                                        }
2084
2305
                                        format_it = g_utf8_next_char (format_it);
2085
2306
                                        c = g_utf8_get_char (format_it);
2086
2307
                                }
2087
2308
                                while (TRUE) {
2088
 
                                        gboolean _tmp49_ = FALSE;
 
2309
                                        gboolean _tmp62_ = FALSE;
2089
2310
                                        if (c >= '0') {
2090
 
                                                _tmp49_ = c <= '9';
 
2311
                                                _tmp62_ = c <= '9';
2091
2312
                                        } else {
2092
 
                                                _tmp49_ = FALSE;
 
2313
                                                _tmp62_ = FALSE;
2093
2314
                                        }
2094
 
                                        if (!_tmp49_) {
 
2315
                                        if (!_tmp62_) {
2095
2316
                                                break;
2096
2317
                                        }
2097
2318
                                        format_it = g_utf8_next_char (format_it);
2101
2322
                                        format_it = g_utf8_next_char (format_it);
2102
2323
                                        c = g_utf8_get_char (format_it);
2103
2324
                                        while (TRUE) {
2104
 
                                                gboolean _tmp50_ = FALSE;
 
2325
                                                gboolean _tmp63_ = FALSE;
2105
2326
                                                if (c >= '0') {
2106
 
                                                        _tmp50_ = c <= '9';
 
2327
                                                        _tmp63_ = c <= '9';
2107
2328
                                                } else {
2108
 
                                                        _tmp50_ = FALSE;
 
2329
                                                        _tmp63_ = FALSE;
2109
2330
                                                }
2110
 
                                                if (!_tmp50_) {
 
2331
                                                if (!_tmp63_) {
2111
2332
                                                        break;
2112
2333
                                                }
2113
2334
                                                format_it = g_utf8_next_char (format_it);
2139
2360
                                }
2140
2361
                                param_type = NULL;
2141
2362
                                if (c == 'd') {
2142
 
                                        _tmp52_ = TRUE;
2143
 
                                } else {
2144
 
                                        _tmp52_ = c == 'i';
2145
 
                                }
2146
 
                                if (_tmp52_) {
2147
 
                                        _tmp51_ = TRUE;
2148
 
                                } else {
2149
 
                                        _tmp51_ = c == 'c';
2150
 
                                }
2151
 
                                if (_tmp51_) {
 
2363
                                        _tmp65_ = TRUE;
 
2364
                                } else {
 
2365
                                        _tmp65_ = c == 'i';
 
2366
                                }
 
2367
                                if (_tmp65_) {
 
2368
                                        _tmp64_ = TRUE;
 
2369
                                } else {
 
2370
                                        _tmp64_ = c == 'c';
 
2371
                                }
 
2372
                                if (_tmp64_) {
2152
2373
                                        if (length == (-2)) {
2153
 
                                                ValaDataType* _tmp53_;
2154
 
                                                param_type = (_tmp53_ = _vala_code_node_ref0 (analyzer->int8_type), _vala_code_node_unref0 (param_type), _tmp53_);
 
2374
                                                ValaDataType* _tmp66_;
 
2375
                                                param_type = (_tmp66_ = _vala_code_node_ref0 (analyzer->int8_type), _vala_code_node_unref0 (param_type), _tmp66_);
2155
2376
                                        } else {
2156
2377
                                                if (length == (-1)) {
2157
 
                                                        ValaDataType* _tmp54_;
2158
 
                                                        param_type = (_tmp54_ = _vala_code_node_ref0 (analyzer->short_type), _vala_code_node_unref0 (param_type), _tmp54_);
 
2378
                                                        ValaDataType* _tmp67_;
 
2379
                                                        param_type = (_tmp67_ = _vala_code_node_ref0 (analyzer->short_type), _vala_code_node_unref0 (param_type), _tmp67_);
2159
2380
                                                } else {
2160
2381
                                                        if (length == 0) {
2161
 
                                                                ValaDataType* _tmp55_;
2162
 
                                                                param_type = (_tmp55_ = _vala_code_node_ref0 (analyzer->int_type), _vala_code_node_unref0 (param_type), _tmp55_);
 
2382
                                                                ValaDataType* _tmp68_;
 
2383
                                                                param_type = (_tmp68_ = _vala_code_node_ref0 (analyzer->int_type), _vala_code_node_unref0 (param_type), _tmp68_);
2163
2384
                                                        } else {
2164
2385
                                                                if (length == 1) {
2165
 
                                                                        ValaDataType* _tmp56_;
2166
 
                                                                        param_type = (_tmp56_ = _vala_code_node_ref0 (analyzer->long_type), _vala_code_node_unref0 (param_type), _tmp56_);
 
2386
                                                                        ValaDataType* _tmp69_;
 
2387
                                                                        param_type = (_tmp69_ = _vala_code_node_ref0 (analyzer->long_type), _vala_code_node_unref0 (param_type), _tmp69_);
2167
2388
                                                                } else {
2168
2389
                                                                        if (length == 2) {
2169
 
                                                                                ValaDataType* _tmp57_;
2170
 
                                                                                param_type = (_tmp57_ = _vala_code_node_ref0 (analyzer->ssize_t_type), _vala_code_node_unref0 (param_type), _tmp57_);
 
2390
                                                                                ValaDataType* _tmp70_;
 
2391
                                                                                param_type = (_tmp70_ = _vala_code_node_ref0 (analyzer->ssize_t_type), _vala_code_node_unref0 (param_type), _tmp70_);
2171
2392
                                                                        }
2172
2393
                                                                }
2173
2394
                                                        }
2174
2395
                                                }
2175
2396
                                        }
2176
2397
                                } else {
2177
 
                                        gboolean _tmp58_ = FALSE;
2178
 
                                        gboolean _tmp59_ = FALSE;
2179
 
                                        gboolean _tmp60_ = FALSE;
 
2398
                                        gboolean _tmp71_ = FALSE;
 
2399
                                        gboolean _tmp72_ = FALSE;
 
2400
                                        gboolean _tmp73_ = FALSE;
2180
2401
                                        if (c == 'o') {
2181
 
                                                _tmp60_ = TRUE;
2182
 
                                        } else {
2183
 
                                                _tmp60_ = c == 'u';
2184
 
                                        }
2185
 
                                        if (_tmp60_) {
2186
 
                                                _tmp59_ = TRUE;
2187
 
                                        } else {
2188
 
                                                _tmp59_ = c == 'x';
2189
 
                                        }
2190
 
                                        if (_tmp59_) {
2191
 
                                                _tmp58_ = TRUE;
2192
 
                                        } else {
2193
 
                                                _tmp58_ = c == 'X';
2194
 
                                        }
2195
 
                                        if (_tmp58_) {
 
2402
                                                _tmp73_ = TRUE;
 
2403
                                        } else {
 
2404
                                                _tmp73_ = c == 'u';
 
2405
                                        }
 
2406
                                        if (_tmp73_) {
 
2407
                                                _tmp72_ = TRUE;
 
2408
                                        } else {
 
2409
                                                _tmp72_ = c == 'x';
 
2410
                                        }
 
2411
                                        if (_tmp72_) {
 
2412
                                                _tmp71_ = TRUE;
 
2413
                                        } else {
 
2414
                                                _tmp71_ = c == 'X';
 
2415
                                        }
 
2416
                                        if (_tmp71_) {
2196
2417
                                                if (length == (-2)) {
2197
 
                                                        ValaDataType* _tmp61_;
2198
 
                                                        param_type = (_tmp61_ = _vala_code_node_ref0 (analyzer->uchar_type), _vala_code_node_unref0 (param_type), _tmp61_);
 
2418
                                                        ValaDataType* _tmp74_;
 
2419
                                                        param_type = (_tmp74_ = _vala_code_node_ref0 (analyzer->uchar_type), _vala_code_node_unref0 (param_type), _tmp74_);
2199
2420
                                                } else {
2200
2421
                                                        if (length == (-1)) {
2201
 
                                                                ValaDataType* _tmp62_;
2202
 
                                                                param_type = (_tmp62_ = _vala_code_node_ref0 (analyzer->ushort_type), _vala_code_node_unref0 (param_type), _tmp62_);
 
2422
                                                                ValaDataType* _tmp75_;
 
2423
                                                                param_type = (_tmp75_ = _vala_code_node_ref0 (analyzer->ushort_type), _vala_code_node_unref0 (param_type), _tmp75_);
2203
2424
                                                        } else {
2204
2425
                                                                if (length == 0) {
2205
 
                                                                        ValaDataType* _tmp63_;
2206
 
                                                                        param_type = (_tmp63_ = _vala_code_node_ref0 (analyzer->uint_type), _vala_code_node_unref0 (param_type), _tmp63_);
 
2426
                                                                        ValaDataType* _tmp76_;
 
2427
                                                                        param_type = (_tmp76_ = _vala_code_node_ref0 (analyzer->uint_type), _vala_code_node_unref0 (param_type), _tmp76_);
2207
2428
                                                                } else {
2208
2429
                                                                        if (length == 1) {
2209
 
                                                                                ValaDataType* _tmp64_;
2210
 
                                                                                param_type = (_tmp64_ = _vala_code_node_ref0 (analyzer->ulong_type), _vala_code_node_unref0 (param_type), _tmp64_);
 
2430
                                                                                ValaDataType* _tmp77_;
 
2431
                                                                                param_type = (_tmp77_ = _vala_code_node_ref0 (analyzer->ulong_type), _vala_code_node_unref0 (param_type), _tmp77_);
2211
2432
                                                                        } else {
2212
2433
                                                                                if (length == 2) {
2213
 
                                                                                        ValaDataType* _tmp65_;
2214
 
                                                                                        param_type = (_tmp65_ = _vala_code_node_ref0 (analyzer->size_t_type), _vala_code_node_unref0 (param_type), _tmp65_);
 
2434
                                                                                        ValaDataType* _tmp78_;
 
2435
                                                                                        param_type = (_tmp78_ = _vala_code_node_ref0 (analyzer->size_t_type), _vala_code_node_unref0 (param_type), _tmp78_);
2215
2436
                                                                                }
2216
2437
                                                                        }
2217
2438
                                                                }
2218
2439
                                                        }
2219
2440
                                                }
2220
2441
                                        } else {
2221
 
                                                gboolean _tmp66_ = FALSE;
2222
 
                                                gboolean _tmp67_ = FALSE;
2223
 
                                                gboolean _tmp68_ = FALSE;
2224
 
                                                gboolean _tmp69_ = FALSE;
2225
 
                                                gboolean _tmp70_ = FALSE;
2226
 
                                                gboolean _tmp71_ = FALSE;
2227
 
                                                gboolean _tmp72_ = FALSE;
 
2442
                                                gboolean _tmp79_ = FALSE;
 
2443
                                                gboolean _tmp80_ = FALSE;
 
2444
                                                gboolean _tmp81_ = FALSE;
 
2445
                                                gboolean _tmp82_ = FALSE;
 
2446
                                                gboolean _tmp83_ = FALSE;
 
2447
                                                gboolean _tmp84_ = FALSE;
 
2448
                                                gboolean _tmp85_ = FALSE;
2228
2449
                                                if (c == 'e') {
2229
 
                                                        _tmp72_ = TRUE;
2230
 
                                                } else {
2231
 
                                                        _tmp72_ = c == 'E';
2232
 
                                                }
2233
 
                                                if (_tmp72_) {
2234
 
                                                        _tmp71_ = TRUE;
2235
 
                                                } else {
2236
 
                                                        _tmp71_ = c == 'f';
2237
 
                                                }
2238
 
                                                if (_tmp71_) {
2239
 
                                                        _tmp70_ = TRUE;
2240
 
                                                } else {
2241
 
                                                        _tmp70_ = c == 'F';
2242
 
                                                }
2243
 
                                                if (_tmp70_) {
2244
 
                                                        _tmp69_ = TRUE;
2245
 
                                                } else {
2246
 
                                                        _tmp69_ = c == 'g';
2247
 
                                                }
2248
 
                                                if (_tmp69_) {
2249
 
                                                        _tmp68_ = TRUE;
2250
 
                                                } else {
2251
 
                                                        _tmp68_ = c == 'G';
2252
 
                                                }
2253
 
                                                if (_tmp68_) {
2254
 
                                                        _tmp67_ = TRUE;
2255
 
                                                } else {
2256
 
                                                        _tmp67_ = c == 'a';
2257
 
                                                }
2258
 
                                                if (_tmp67_) {
2259
 
                                                        _tmp66_ = TRUE;
2260
 
                                                } else {
2261
 
                                                        _tmp66_ = c == 'A';
2262
 
                                                }
2263
 
                                                if (_tmp66_) {
2264
 
                                                        ValaDataType* _tmp73_;
2265
 
                                                        param_type = (_tmp73_ = _vala_code_node_ref0 (analyzer->double_type), _vala_code_node_unref0 (param_type), _tmp73_);
 
2450
                                                        _tmp85_ = TRUE;
 
2451
                                                } else {
 
2452
                                                        _tmp85_ = c == 'E';
 
2453
                                                }
 
2454
                                                if (_tmp85_) {
 
2455
                                                        _tmp84_ = TRUE;
 
2456
                                                } else {
 
2457
                                                        _tmp84_ = c == 'f';
 
2458
                                                }
 
2459
                                                if (_tmp84_) {
 
2460
                                                        _tmp83_ = TRUE;
 
2461
                                                } else {
 
2462
                                                        _tmp83_ = c == 'F';
 
2463
                                                }
 
2464
                                                if (_tmp83_) {
 
2465
                                                        _tmp82_ = TRUE;
 
2466
                                                } else {
 
2467
                                                        _tmp82_ = c == 'g';
 
2468
                                                }
 
2469
                                                if (_tmp82_) {
 
2470
                                                        _tmp81_ = TRUE;
 
2471
                                                } else {
 
2472
                                                        _tmp81_ = c == 'G';
 
2473
                                                }
 
2474
                                                if (_tmp81_) {
 
2475
                                                        _tmp80_ = TRUE;
 
2476
                                                } else {
 
2477
                                                        _tmp80_ = c == 'a';
 
2478
                                                }
 
2479
                                                if (_tmp80_) {
 
2480
                                                        _tmp79_ = TRUE;
 
2481
                                                } else {
 
2482
                                                        _tmp79_ = c == 'A';
 
2483
                                                }
 
2484
                                                if (_tmp79_) {
 
2485
                                                        ValaDataType* _tmp86_;
 
2486
                                                        param_type = (_tmp86_ = _vala_code_node_ref0 (analyzer->double_type), _vala_code_node_unref0 (param_type), _tmp86_);
2266
2487
                                                } else {
2267
2488
                                                        if (c == 's') {
2268
 
                                                                ValaDataType* _tmp74_;
2269
 
                                                                param_type = (_tmp74_ = _vala_code_node_ref0 (analyzer->string_type), _vala_code_node_unref0 (param_type), _tmp74_);
 
2489
                                                                ValaDataType* _tmp87_;
 
2490
                                                                param_type = (_tmp87_ = _vala_code_node_ref0 (analyzer->string_type), _vala_code_node_unref0 (param_type), _tmp87_);
2270
2491
                                                        } else {
2271
2492
                                                                if (c == 'p') {
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_);
 
2493
                                                                        ValaDataType* _tmp89_;
 
2494
                                                                        ValaVoidType* _tmp88_;
 
2495
                                                                        param_type = (_tmp89_ = (ValaDataType*) vala_pointer_type_new ((ValaDataType*) (_tmp88_ = vala_void_type_new (NULL)), NULL), _vala_code_node_unref0 (param_type), _tmp89_);
 
2496
                                                                        _vala_code_node_unref0 (_tmp88_);
2276
2497
                                                                } else {
2277
2498
                                                                        if (c == '%') {
2278
2499
                                                                        } else {
2314
2535
                                _vala_code_node_unref0 (param_type);
2315
2536
                        }
2316
2537
                        if (!unsupported_format) {
2317
 
                                _tmp77_ = vala_iterator_next (arg_it);
 
2538
                                _tmp90_ = vala_iterator_next (arg_it);
2318
2539
                        } else {
2319
 
                                _tmp77_ = FALSE;
 
2540
                                _tmp90_ = FALSE;
2320
2541
                        }
2321
 
                        if (_tmp77_) {
 
2542
                        if (_tmp90_) {
2322
2543
                                vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "Too many arguments for specified format");
2323
2544
                                result = FALSE;
2324
2545
                                _g_free0 (format);
2337
2558
                _vala_code_node_unref0 (format_literal);
2338
2559
        }
2339
2560
        {
2340
 
                ValaList* _tmp78_;
2341
 
                ValaIterator* _tmp79_;
 
2561
                ValaList* _tmp91_;
 
2562
                ValaIterator* _tmp92_;
2342
2563
                ValaIterator* _arg_it;
2343
 
                _arg_it = (_tmp79_ = vala_iterable_iterator ((ValaIterable*) (_tmp78_ = vala_method_call_get_argument_list (self))), _vala_collection_object_unref0 (_tmp78_), _tmp79_);
 
2564
                _arg_it = (_tmp92_ = vala_iterable_iterator ((ValaIterable*) (_tmp91_ = vala_method_call_get_argument_list (self))), _vala_collection_object_unref0 (_tmp91_), _tmp92_);
2344
2565
                while (TRUE) {
2345
2566
                        ValaExpression* arg;
2346
2567
                        if (!vala_iterator_next (_arg_it)) {
2353
2574
                _vala_collection_object_unref0 (_arg_it);
2354
2575
        }
2355
2576
        if (VALA_IS_VOID_TYPE (ret_type)) {
2356
 
                gboolean _tmp80_ = FALSE;
2357
 
                gboolean _tmp81_ = FALSE;
 
2577
                gboolean _tmp93_ = FALSE;
 
2578
                gboolean _tmp94_ = FALSE;
2358
2579
                if (!VALA_IS_EXPRESSION_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));
2365
 
                } else {
2366
 
                        _tmp80_ = FALSE;
2367
 
                }
2368
 
                if (_tmp80_) {
 
2580
                        _tmp94_ = !VALA_IS_FOR_STATEMENT (vala_code_node_get_parent_node ((ValaCodeNode*) self));
 
2581
                } else {
 
2582
                        _tmp94_ = FALSE;
 
2583
                }
 
2584
                if (_tmp94_) {
 
2585
                        _tmp93_ = !VALA_IS_YIELD_STATEMENT (vala_code_node_get_parent_node ((ValaCodeNode*) self));
 
2586
                } else {
 
2587
                        _tmp93_ = FALSE;
 
2588
                }
 
2589
                if (_tmp93_) {
2369
2590
                        vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
2370
2591
                        vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "invocation of void method not allowed as expression");
2371
2592
                        result = FALSE;
2380
2601
                }
2381
2602
        }
2382
2603
        vala_expression_set_formal_value_type ((ValaExpression*) self, ret_type);
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_);
 
2604
        vala_expression_set_value_type ((ValaExpression*) self, _tmp96_ = vala_data_type_get_actual_type (vala_expression_get_formal_value_type ((ValaExpression*) self), target_object_type, (_tmp95_ = vala_method_call_get_call (self), VALA_IS_MEMBER_ACCESS (_tmp95_) ? ((ValaMemberAccess*) _tmp95_) : NULL), (ValaCodeNode*) self));
 
2605
        _vala_code_node_unref0 (_tmp96_);
2385
2606
        may_throw = FALSE;
2386
2607
        if (VALA_IS_METHOD_TYPE (mtype)) {
2387
2608
                ValaMethod* m;
2388
 
                gboolean _tmp85_ = FALSE;
2389
 
                gboolean _tmp86_ = FALSE;
2390
 
                gboolean _tmp87_ = FALSE;
 
2609
                gboolean _tmp98_ = FALSE;
 
2610
                gboolean _tmp99_ = FALSE;
 
2611
                gboolean _tmp100_ = FALSE;
 
2612
                ValaSymbol* _tmp103_;
 
2613
                ValaDynamicSignal* dynamic_sig;
 
2614
                gboolean _tmp104_ = FALSE;
 
2615
                gboolean _tmp111_ = FALSE;
2391
2616
                m = _vala_code_node_ref0 (vala_method_type_get_method_symbol (VALA_METHOD_TYPE (mtype)));
2392
2617
                if (self->priv->_is_yield_expression) {
2393
 
                        gboolean _tmp84_ = FALSE;
 
2618
                        gboolean _tmp97_ = FALSE;
2394
2619
                        if (!vala_method_get_coroutine (m)) {
2395
2620
                                vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
2396
2621
                                vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "yield expression requires async method");
2397
2622
                        }
2398
2623
                        if (vala_semantic_analyzer_get_current_method (analyzer) == NULL) {
2399
 
                                _tmp84_ = TRUE;
 
2624
                                _tmp97_ = TRUE;
2400
2625
                        } else {
2401
 
                                _tmp84_ = !vala_method_get_coroutine (vala_semantic_analyzer_get_current_method (analyzer));
 
2626
                                _tmp97_ = !vala_method_get_coroutine (vala_semantic_analyzer_get_current_method (analyzer));
2402
2627
                        }
2403
 
                        if (_tmp84_) {
 
2628
                        if (_tmp97_) {
2404
2629
                                vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
2405
2630
                                vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "yield expression not available outside async method");
2406
2631
                        }
2407
2632
                }
2408
2633
                if (m != NULL) {
2409
 
                        _tmp87_ = vala_method_get_coroutine (m);
2410
 
                } else {
2411
 
                        _tmp87_ = FALSE;
2412
 
                }
2413
 
                if (_tmp87_) {
2414
 
                        _tmp86_ = !self->priv->_is_yield_expression;
2415
 
                } else {
2416
 
                        _tmp86_ = FALSE;
2417
 
                }
2418
 
                if (_tmp86_) {
2419
 
                        _tmp85_ = _vala_strcmp0 (vala_member_access_get_member_name (VALA_MEMBER_ACCESS (vala_method_call_get_call (self))), "end") != 0;
2420
 
                } else {
2421
 
                        _tmp85_ = FALSE;
2422
 
                }
2423
 
                if (_tmp85_) {
 
2634
                        _tmp100_ = vala_method_get_coroutine (m);
 
2635
                } else {
 
2636
                        _tmp100_ = FALSE;
 
2637
                }
 
2638
                if (_tmp100_) {
 
2639
                        _tmp99_ = !self->priv->_is_yield_expression;
 
2640
                } else {
 
2641
                        _tmp99_ = FALSE;
 
2642
                }
 
2643
                if (_tmp99_) {
 
2644
                        _tmp98_ = _vala_strcmp0 (vala_member_access_get_member_name (VALA_MEMBER_ACCESS (vala_method_call_get_call (self))), "end") != 0;
 
2645
                } else {
 
2646
                        _tmp98_ = FALSE;
 
2647
                }
 
2648
                if (_tmp98_) {
2424
2649
                } else {
2425
2650
                        {
2426
 
                                ValaList* _tmp88_;
2427
 
                                ValaIterator* _tmp89_;
 
2651
                                ValaList* _tmp101_;
 
2652
                                ValaIterator* _tmp102_;
2428
2653
                                ValaIterator* _error_type_it;
2429
 
                                _error_type_it = (_tmp89_ = vala_iterable_iterator ((ValaIterable*) (_tmp88_ = vala_code_node_get_error_types ((ValaCodeNode*) m))), _vala_collection_object_unref0 (_tmp88_), _tmp89_);
 
2654
                                _error_type_it = (_tmp102_ = vala_iterable_iterator ((ValaIterable*) (_tmp101_ = vala_code_node_get_error_types ((ValaCodeNode*) m))), _vala_collection_object_unref0 (_tmp101_), _tmp102_);
2430
2655
                                while (TRUE) {
2431
2656
                                        ValaDataType* error_type;
2432
2657
                                        ValaDataType* call_error_type;
2444
2669
                                _vala_collection_object_unref0 (_error_type_it);
2445
2670
                        }
2446
2671
                }
 
2672
                if (vala_method_get_returns_floating_reference (m)) {
 
2673
                        vala_data_type_set_floating_reference (vala_expression_get_value_type ((ValaExpression*) self), TRUE);
 
2674
                }
 
2675
                dynamic_sig = _vala_code_node_ref0 ((_tmp103_ = vala_symbol_get_parent_symbol ((ValaSymbol*) m), VALA_IS_DYNAMIC_SIGNAL (_tmp103_) ? ((ValaDynamicSignal*) _tmp103_) : NULL));
 
2676
                if (dynamic_sig != NULL) {
 
2677
                        _tmp104_ = vala_dynamic_signal_get_handler (dynamic_sig) != NULL;
 
2678
                } else {
 
2679
                        _tmp104_ = FALSE;
 
2680
                }
 
2681
                if (_tmp104_) {
 
2682
                        gboolean first;
 
2683
                        ValaDelegateType* _tmp110_;
 
2684
                        ValaDelegate* _tmp109_;
 
2685
                        ValaObjectType* _tmp108_;
 
2686
                        first = TRUE;
 
2687
                        {
 
2688
                                ValaList* _tmp105_;
 
2689
                                ValaIterator* _tmp106_;
 
2690
                                ValaIterator* _param_it;
 
2691
                                _param_it = (_tmp106_ = vala_iterable_iterator ((ValaIterable*) (_tmp105_ = vala_data_type_get_parameters (vala_expression_get_value_type (vala_dynamic_signal_get_handler (dynamic_sig))))), _vala_collection_object_unref0 (_tmp105_), _tmp106_);
 
2692
                                while (TRUE) {
 
2693
                                        ValaFormalParameter* param;
 
2694
                                        if (!vala_iterator_next (_param_it)) {
 
2695
                                                break;
 
2696
                                        }
 
2697
                                        param = (ValaFormalParameter*) vala_iterator_get (_param_it);
 
2698
                                        if (first) {
 
2699
                                                first = FALSE;
 
2700
                                        } else {
 
2701
                                                ValaFormalParameter* _tmp107_;
 
2702
                                                vala_signal_add_parameter ((ValaSignal*) dynamic_sig, _tmp107_ = vala_formal_parameter_copy (param));
 
2703
                                                _vala_code_node_unref0 (_tmp107_);
 
2704
                                        }
 
2705
                                        _vala_code_node_unref0 (param);
 
2706
                                }
 
2707
                                _vala_collection_object_unref0 (_param_it);
 
2708
                        }
 
2709
                        vala_expression_set_target_type (vala_dynamic_signal_get_handler (dynamic_sig), (ValaDataType*) (_tmp110_ = vala_delegate_type_new (_tmp109_ = vala_signal_get_delegate ((ValaSignal*) dynamic_sig, (ValaDataType*) (_tmp108_ = vala_object_type_new (VALA_OBJECT_TYPE_SYMBOL (vala_symbol_get_parent_symbol ((ValaSymbol*) dynamic_sig)))), (ValaCodeNode*) self))));
 
2710
                        _vala_code_node_unref0 (_tmp110_);
 
2711
                        _vala_code_node_unref0 (_tmp109_);
 
2712
                        _vala_code_node_unref0 (_tmp108_);
 
2713
                }
 
2714
                if (m != NULL) {
 
2715
                        ValaList* _tmp112_;
 
2716
                        _tmp111_ = vala_collection_get_size ((ValaCollection*) (_tmp112_ = vala_method_get_type_parameters (m))) > 0;
 
2717
                        _vala_collection_object_unref0 (_tmp112_);
 
2718
                } else {
 
2719
                        _tmp111_ = FALSE;
 
2720
                }
 
2721
                if (_tmp111_) {
 
2722
                        ValaMemberAccess* ma;
 
2723
                        ValaList* _tmp113_;
 
2724
                        gboolean _tmp114_;
 
2725
                        ma = _vala_code_node_ref0 (VALA_MEMBER_ACCESS (vala_method_call_get_call (self)));
 
2726
                        if ((_tmp114_ = vala_collection_get_size ((ValaCollection*) (_tmp113_ = vala_member_access_get_type_arguments (ma))) == 0, _vala_collection_object_unref0 (_tmp113_), _tmp114_)) {
 
2727
                                ValaIterator* _tmp130_;
 
2728
                                ValaDataType* _tmp135_;
 
2729
                                ValaExpression* _tmp134_;
 
2730
                                {
 
2731
                                        ValaList* _tmp115_;
 
2732
                                        ValaIterator* _tmp116_;
 
2733
                                        ValaIterator* _type_param_it;
 
2734
                                        _type_param_it = (_tmp116_ = vala_iterable_iterator ((ValaIterable*) (_tmp115_ = vala_method_get_type_parameters (m))), _vala_collection_object_unref0 (_tmp115_), _tmp116_);
 
2735
                                        while (TRUE) {
 
2736
                                                ValaTypeParameter* type_param;
 
2737
                                                ValaDataType* type_arg;
 
2738
                                                ValaIterator* _tmp117_;
 
2739
                                                gboolean _tmp124_ = FALSE;
 
2740
                                                if (!vala_iterator_next (_type_param_it)) {
 
2741
                                                        break;
 
2742
                                                }
 
2743
                                                type_param = (ValaTypeParameter*) vala_iterator_get (_type_param_it);
 
2744
                                                type_arg = NULL;
 
2745
                                                arg_it = (_tmp117_ = vala_iterable_iterator ((ValaIterable*) args), _vala_collection_object_unref0 (arg_it), _tmp117_);
 
2746
                                                {
 
2747
                                                        ValaIterator* _param_it;
 
2748
                                                        _param_it = vala_iterable_iterator ((ValaIterable*) params);
 
2749
                                                        while (TRUE) {
 
2750
                                                                ValaFormalParameter* param;
 
2751
                                                                gboolean _tmp118_ = FALSE;
 
2752
                                                                if (!vala_iterator_next (_param_it)) {
 
2753
                                                                        break;
 
2754
                                                                }
 
2755
                                                                param = (ValaFormalParameter*) vala_iterator_get (_param_it);
 
2756
                                                                if (vala_formal_parameter_get_ellipsis (param)) {
 
2757
                                                                        _tmp118_ = TRUE;
 
2758
                                                                } else {
 
2759
                                                                        _tmp118_ = vala_formal_parameter_get_params_array (param);
 
2760
                                                                }
 
2761
                                                                if (_tmp118_) {
 
2762
                                                                        _vala_code_node_unref0 (param);
 
2763
                                                                        break;
 
2764
                                                                }
 
2765
                                                                if (vala_iterator_next (arg_it)) {
 
2766
                                                                        ValaExpression* arg;
 
2767
                                                                        ValaDataType* _tmp119_;
 
2768
                                                                        ValaGenericType* generic_type;
 
2769
                                                                        gboolean _tmp120_ = FALSE;
 
2770
                                                                        ValaDataType* _tmp123_;
 
2771
                                                                        ValaExpression* _tmp122_;
 
2772
                                                                        arg = (ValaExpression*) vala_iterator_get (arg_it);
 
2773
                                                                        generic_type = _vala_code_node_ref0 ((_tmp119_ = vala_formal_parameter_get_parameter_type (param), VALA_IS_GENERIC_TYPE (_tmp119_) ? ((ValaGenericType*) _tmp119_) : NULL));
 
2774
                                                                        if (generic_type != NULL) {
 
2775
                                                                                _tmp120_ = vala_data_type_get_type_parameter ((ValaDataType*) generic_type) == type_param;
 
2776
                                                                        } else {
 
2777
                                                                                _tmp120_ = FALSE;
 
2778
                                                                        }
 
2779
                                                                        if (_tmp120_) {
 
2780
                                                                                ValaDataType* _tmp121_;
 
2781
                                                                                type_arg = (_tmp121_ = vala_data_type_copy (vala_expression_get_value_type (arg)), _vala_code_node_unref0 (type_arg), _tmp121_);
 
2782
                                                                                vala_data_type_set_value_owned (type_arg, TRUE);
 
2783
                                                                                _vala_code_node_unref0 (arg);
 
2784
                                                                                _vala_code_node_unref0 (generic_type);
 
2785
                                                                                _vala_code_node_unref0 (param);
 
2786
                                                                                break;
 
2787
                                                                        }
 
2788
                                                                        vala_expression_set_target_type (arg, _tmp123_ = vala_data_type_get_actual_type (vala_expression_get_formal_target_type (arg), target_object_type, (_tmp122_ = vala_method_call_get_call (self), VALA_IS_MEMBER_ACCESS (_tmp122_) ? ((ValaMemberAccess*) _tmp122_) : NULL), (ValaCodeNode*) self));
 
2789
                                                                        _vala_code_node_unref0 (_tmp123_);
 
2790
                                                                        _vala_code_node_unref0 (arg);
 
2791
                                                                        _vala_code_node_unref0 (generic_type);
 
2792
                                                                }
 
2793
                                                                _vala_code_node_unref0 (param);
 
2794
                                                        }
 
2795
                                                        _vala_collection_object_unref0 (_param_it);
 
2796
                                                }
 
2797
                                                if (type_arg == NULL) {
 
2798
                                                        _tmp124_ = vala_expression_get_target_type ((ValaExpression*) self) != NULL;
 
2799
                                                } else {
 
2800
                                                        _tmp124_ = FALSE;
 
2801
                                                }
 
2802
                                                if (_tmp124_) {
 
2803
                                                        ValaDataType* _tmp125_;
 
2804
                                                        ValaGenericType* generic_type;
 
2805
                                                        gboolean _tmp126_ = FALSE;
 
2806
                                                        generic_type = _vala_code_node_ref0 ((_tmp125_ = vala_method_get_return_type (m), VALA_IS_GENERIC_TYPE (_tmp125_) ? ((ValaGenericType*) _tmp125_) : NULL));
 
2807
                                                        if (generic_type != NULL) {
 
2808
                                                                _tmp126_ = vala_data_type_get_type_parameter ((ValaDataType*) generic_type) == type_param;
 
2809
                                                        } else {
 
2810
                                                                _tmp126_ = FALSE;
 
2811
                                                        }
 
2812
                                                        if (_tmp126_) {
 
2813
                                                                ValaDataType* _tmp127_;
 
2814
                                                                type_arg = (_tmp127_ = vala_data_type_copy (vala_expression_get_target_type ((ValaExpression*) self)), _vala_code_node_unref0 (type_arg), _tmp127_);
 
2815
                                                                vala_data_type_set_value_owned (type_arg, TRUE);
 
2816
                                                        }
 
2817
                                                        _vala_code_node_unref0 (generic_type);
 
2818
                                                }
 
2819
                                                if (type_arg == NULL) {
 
2820
                                                        char* _tmp129_;
 
2821
                                                        char* _tmp128_;
 
2822
                                                        vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
 
2823
                                                        vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) ma), _tmp129_ = g_strdup_printf ("cannot infer generic type argument for type parameter `%s'", _tmp128_ = vala_symbol_get_full_name ((ValaSymbol*) type_param)));
 
2824
                                                        _g_free0 (_tmp129_);
 
2825
                                                        _g_free0 (_tmp128_);
 
2826
                                                        result = FALSE;
 
2827
                                                        _vala_code_node_unref0 (type_param);
 
2828
                                                        _vala_code_node_unref0 (type_arg);
 
2829
                                                        _vala_collection_object_unref0 (_type_param_it);
 
2830
                                                        _vala_code_node_unref0 (ma);
 
2831
                                                        _vala_code_node_unref0 (m);
 
2832
                                                        _vala_code_node_unref0 (dynamic_sig);
 
2833
                                                        _vala_code_node_unref0 (target_object_type);
 
2834
                                                        _vala_code_node_unref0 (mtype);
 
2835
                                                        _vala_code_node_unref0 (ret_type);
 
2836
                                                        _vala_collection_object_unref0 (params);
 
2837
                                                        _vala_code_node_unref0 (last_arg);
 
2838
                                                        _vala_collection_object_unref0 (args);
 
2839
                                                        _vala_collection_object_unref0 (arg_it);
 
2840
                                                        return result;
 
2841
                                                }
 
2842
                                                vala_member_access_add_type_argument (ma, type_arg);
 
2843
                                                _vala_code_node_unref0 (type_param);
 
2844
                                                _vala_code_node_unref0 (type_arg);
 
2845
                                        }
 
2846
                                        _vala_collection_object_unref0 (_type_param_it);
 
2847
                                }
 
2848
                                arg_it = (_tmp130_ = vala_iterable_iterator ((ValaIterable*) args), _vala_collection_object_unref0 (arg_it), _tmp130_);
 
2849
                                {
 
2850
                                        ValaIterator* _param_it;
 
2851
                                        _param_it = vala_iterable_iterator ((ValaIterable*) params);
 
2852
                                        while (TRUE) {
 
2853
                                                ValaFormalParameter* param;
 
2854
                                                gboolean _tmp131_ = FALSE;
 
2855
                                                if (!vala_iterator_next (_param_it)) {
 
2856
                                                        break;
 
2857
                                                }
 
2858
                                                param = (ValaFormalParameter*) vala_iterator_get (_param_it);
 
2859
                                                if (vala_formal_parameter_get_ellipsis (param)) {
 
2860
                                                        _tmp131_ = TRUE;
 
2861
                                                } else {
 
2862
                                                        _tmp131_ = vala_formal_parameter_get_params_array (param);
 
2863
                                                }
 
2864
                                                if (_tmp131_) {
 
2865
                                                        _vala_code_node_unref0 (param);
 
2866
                                                        break;
 
2867
                                                }
 
2868
                                                if (vala_iterator_next (arg_it)) {
 
2869
                                                        ValaExpression* arg;
 
2870
                                                        ValaDataType* _tmp133_;
 
2871
                                                        ValaExpression* _tmp132_;
 
2872
                                                        arg = (ValaExpression*) vala_iterator_get (arg_it);
 
2873
                                                        vala_expression_set_target_type (arg, _tmp133_ = vala_data_type_get_actual_type (vala_expression_get_formal_target_type (arg), target_object_type, (_tmp132_ = vala_method_call_get_call (self), VALA_IS_MEMBER_ACCESS (_tmp132_) ? ((ValaMemberAccess*) _tmp132_) : NULL), (ValaCodeNode*) self));
 
2874
                                                        _vala_code_node_unref0 (_tmp133_);
 
2875
                                                        _vala_code_node_unref0 (arg);
 
2876
                                                }
 
2877
                                                _vala_code_node_unref0 (param);
 
2878
                                        }
 
2879
                                        _vala_collection_object_unref0 (_param_it);
 
2880
                                }
 
2881
                                vala_expression_set_value_type ((ValaExpression*) self, _tmp135_ = vala_data_type_get_actual_type (vala_expression_get_formal_value_type ((ValaExpression*) self), target_object_type, (_tmp134_ = vala_method_call_get_call (self), VALA_IS_MEMBER_ACCESS (_tmp134_) ? ((ValaMemberAccess*) _tmp134_) : NULL), (ValaCodeNode*) self));
 
2882
                                _vala_code_node_unref0 (_tmp135_);
 
2883
                        }
 
2884
                        _vala_code_node_unref0 (ma);
 
2885
                }
2447
2886
                _vala_code_node_unref0 (m);
 
2887
                _vala_code_node_unref0 (dynamic_sig);
2448
2888
        } else {
2449
2889
                if (VALA_IS_DELEGATE_TYPE (mtype)) {
2450
2890
                        ValaDelegate* d;
2451
2891
                        d = _vala_code_node_ref0 (vala_delegate_type_get_delegate_symbol (VALA_DELEGATE_TYPE (mtype)));
2452
2892
                        {
2453
 
                                ValaList* _tmp90_;
2454
 
                                ValaIterator* _tmp91_;
 
2893
                                ValaList* _tmp136_;
 
2894
                                ValaIterator* _tmp137_;
2455
2895
                                ValaIterator* _error_type_it;
2456
 
                                _error_type_it = (_tmp91_ = vala_iterable_iterator ((ValaIterable*) (_tmp90_ = vala_code_node_get_error_types ((ValaCodeNode*) d))), _vala_collection_object_unref0 (_tmp90_), _tmp91_);
 
2896
                                _error_type_it = (_tmp137_ = vala_iterable_iterator ((ValaIterable*) (_tmp136_ = vala_code_node_get_error_types ((ValaCodeNode*) d))), _vala_collection_object_unref0 (_tmp136_), _tmp137_);
2457
2897
                                while (TRUE) {
2458
2898
                                        ValaDataType* error_type;
2459
2899
                                        ValaDataType* call_error_type;
2473
2913
                        _vala_code_node_unref0 (d);
2474
2914
                }
2475
2915
        }
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_)) {
 
2916
        if ((_tmp139_ = !vala_semantic_analyzer_check_arguments (analyzer, (ValaExpression*) self, mtype, params, _tmp138_ = vala_method_call_get_argument_list (self)), _vala_collection_object_unref0 (_tmp138_), _tmp139_)) {
2477
2917
                vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
2478
2918
                result = FALSE;
2479
2919
                _vala_code_node_unref0 (target_object_type);
2486
2926
                return result;
2487
2927
        }
2488
2928
        if (may_throw) {
2489
 
                gboolean _tmp94_ = FALSE;
 
2929
                gboolean _tmp140_ = FALSE;
2490
2930
                if (VALA_IS_LOCAL_VARIABLE (vala_code_node_get_parent_node ((ValaCodeNode*) self))) {
2491
 
                        _tmp94_ = TRUE;
 
2931
                        _tmp140_ = TRUE;
2492
2932
                } else {
2493
 
                        _tmp94_ = VALA_IS_EXPRESSION_STATEMENT (vala_code_node_get_parent_node ((ValaCodeNode*) self));
 
2933
                        _tmp140_ = VALA_IS_EXPRESSION_STATEMENT (vala_code_node_get_parent_node ((ValaCodeNode*) self));
2494
2934
                }
2495
 
                if (_tmp94_) {
 
2935
                if (_tmp140_) {
2496
2936
                } else {
2497
2937
                        if (!VALA_IS_BLOCK (vala_semantic_analyzer_get_current_symbol (analyzer))) {
2498
2938
                                vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "Field initializers must not throw errors");
2499
2939
                        } else {
2500
2940
                                ValaCodeNode* old_parent_node;
2501
 
                                char* _tmp95_;
2502
 
                                ValaLocalVariable* _tmp96_;
 
2941
                                char* _tmp141_;
 
2942
                                ValaLocalVariable* _tmp142_;
2503
2943
                                ValaLocalVariable* local;
2504
2944
                                ValaDeclarationStatement* decl;
2505
2945
                                ValaExpression* temp_access;
2506
2946
                                ValaBlock* block;
2507
2947
                                old_parent_node = _vala_code_node_ref0 (vala_code_node_get_parent_node ((ValaCodeNode*) self));
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_);
 
2948
                                local = (_tmp142_ = vala_local_variable_new (vala_expression_get_value_type ((ValaExpression*) self), _tmp141_ = vala_code_node_get_temp_name (), NULL, vala_code_node_get_source_reference ((ValaCodeNode*) self)), _g_free0 (_tmp141_), _tmp142_);
2509
2949
                                vala_local_variable_set_floating (local, TRUE);
2510
2950
                                decl = vala_declaration_statement_new ((ValaSymbol*) local, vala_code_node_get_source_reference ((ValaCodeNode*) self));
2511
2951
                                vala_expression_insert_statement ((ValaExpression*) self, analyzer->insert_block, (ValaStatement*) decl);
2656
3096
 
2657
3097
 
2658
3098
GType vala_method_call_get_type (void) {
2659
 
        static GType vala_method_call_type_id = 0;
2660
 
        if (vala_method_call_type_id == 0) {
 
3099
        static volatile gsize vala_method_call_type_id__volatile = 0;
 
3100
        if (g_once_init_enter (&vala_method_call_type_id__volatile)) {
2661
3101
                static const GTypeInfo g_define_type_info = { sizeof (ValaMethodCallClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_method_call_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaMethodCall), 0, (GInstanceInitFunc) vala_method_call_instance_init, NULL };
 
3102
                GType vala_method_call_type_id;
2662
3103
                vala_method_call_type_id = g_type_register_static (VALA_TYPE_EXPRESSION, "ValaMethodCall", &g_define_type_info, 0);
 
3104
                g_once_init_leave (&vala_method_call_type_id__volatile, vala_method_call_type_id);
2663
3105
        }
2664
 
        return vala_method_call_type_id;
 
3106
        return vala_method_call_type_id__volatile;
2665
3107
}
2666
3108
 
2667
3109