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

« back to all changes in this revision

Viewing changes to vala/valalambdaexpression.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:
606
606
typedef struct _ValaLockStatement ValaLockStatement;
607
607
typedef struct _ValaLockStatementClass ValaLockStatementClass;
608
608
 
 
609
#define VALA_TYPE_UNLOCK_STATEMENT (vala_unlock_statement_get_type ())
 
610
#define VALA_UNLOCK_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_UNLOCK_STATEMENT, ValaUnlockStatement))
 
611
#define VALA_UNLOCK_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_UNLOCK_STATEMENT, ValaUnlockStatementClass))
 
612
#define VALA_IS_UNLOCK_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_UNLOCK_STATEMENT))
 
613
#define VALA_IS_UNLOCK_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_UNLOCK_STATEMENT))
 
614
#define VALA_UNLOCK_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_UNLOCK_STATEMENT, ValaUnlockStatementClass))
 
615
 
 
616
typedef struct _ValaUnlockStatement ValaUnlockStatement;
 
617
typedef struct _ValaUnlockStatementClass ValaUnlockStatementClass;
 
618
 
609
619
#define VALA_TYPE_DELETE_STATEMENT (vala_delete_statement_get_type ())
610
620
#define VALA_DELETE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DELETE_STATEMENT, ValaDeleteStatement))
611
621
#define VALA_DELETE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DELETE_STATEMENT, ValaDeleteStatementClass))
676
686
typedef struct _ValaRealLiteral ValaRealLiteral;
677
687
typedef struct _ValaRealLiteralClass ValaRealLiteralClass;
678
688
 
 
689
#define VALA_TYPE_REGEX_LITERAL (vala_regex_literal_get_type ())
 
690
#define VALA_REGEX_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_REGEX_LITERAL, ValaRegexLiteral))
 
691
#define VALA_REGEX_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_REGEX_LITERAL, ValaRegexLiteralClass))
 
692
#define VALA_IS_REGEX_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_REGEX_LITERAL))
 
693
#define VALA_IS_REGEX_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_REGEX_LITERAL))
 
694
#define VALA_REGEX_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_REGEX_LITERAL, ValaRegexLiteralClass))
 
695
 
 
696
typedef struct _ValaRegexLiteral ValaRegexLiteral;
 
697
typedef struct _ValaRegexLiteralClass ValaRegexLiteralClass;
 
698
 
679
699
#define VALA_TYPE_STRING_LITERAL (vala_string_literal_get_type ())
680
700
#define VALA_STRING_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_STRING_LITERAL, ValaStringLiteral))
681
701
#define VALA_STRING_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_STRING_LITERAL, ValaStringLiteralClass))
696
716
typedef struct _ValaTemplate ValaTemplate;
697
717
typedef struct _ValaTemplateClass ValaTemplateClass;
698
718
 
 
719
#define VALA_TYPE_LIST_LITERAL (vala_list_literal_get_type ())
 
720
#define VALA_LIST_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_LIST_LITERAL, ValaListLiteral))
 
721
#define VALA_LIST_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_LIST_LITERAL, ValaListLiteralClass))
 
722
#define VALA_IS_LIST_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_LIST_LITERAL))
 
723
#define VALA_IS_LIST_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_LIST_LITERAL))
 
724
#define VALA_LIST_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_LIST_LITERAL, ValaListLiteralClass))
 
725
 
 
726
typedef struct _ValaListLiteral ValaListLiteral;
 
727
typedef struct _ValaListLiteralClass ValaListLiteralClass;
 
728
 
 
729
#define VALA_TYPE_SET_LITERAL (vala_set_literal_get_type ())
 
730
#define VALA_SET_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SET_LITERAL, ValaSetLiteral))
 
731
#define VALA_SET_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SET_LITERAL, ValaSetLiteralClass))
 
732
#define VALA_IS_SET_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SET_LITERAL))
 
733
#define VALA_IS_SET_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SET_LITERAL))
 
734
#define VALA_SET_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SET_LITERAL, ValaSetLiteralClass))
 
735
 
 
736
typedef struct _ValaSetLiteral ValaSetLiteral;
 
737
typedef struct _ValaSetLiteralClass ValaSetLiteralClass;
 
738
 
 
739
#define VALA_TYPE_MAP_LITERAL (vala_map_literal_get_type ())
 
740
#define VALA_MAP_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_MAP_LITERAL, ValaMapLiteral))
 
741
#define VALA_MAP_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_MAP_LITERAL, ValaMapLiteralClass))
 
742
#define VALA_IS_MAP_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_MAP_LITERAL))
 
743
#define VALA_IS_MAP_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_MAP_LITERAL))
 
744
#define VALA_MAP_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_MAP_LITERAL, ValaMapLiteralClass))
 
745
 
 
746
typedef struct _ValaMapLiteral ValaMapLiteral;
 
747
typedef struct _ValaMapLiteralClass ValaMapLiteralClass;
 
748
 
 
749
#define VALA_TYPE_TUPLE (vala_tuple_get_type ())
 
750
#define VALA_TUPLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_TUPLE, ValaTuple))
 
751
#define VALA_TUPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_TUPLE, ValaTupleClass))
 
752
#define VALA_IS_TUPLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_TUPLE))
 
753
#define VALA_IS_TUPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_TUPLE))
 
754
#define VALA_TUPLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_TUPLE, ValaTupleClass))
 
755
 
 
756
typedef struct _ValaTuple ValaTuple;
 
757
typedef struct _ValaTupleClass ValaTupleClass;
 
758
 
699
759
#define VALA_TYPE_NULL_LITERAL (vala_null_literal_get_type ())
700
760
#define VALA_NULL_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_NULL_LITERAL, ValaNullLiteral))
701
761
#define VALA_NULL_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_NULL_LITERAL, ValaNullLiteralClass))
950
1010
typedef struct _ValaScope ValaScope;
951
1011
typedef struct _ValaScopeClass ValaScopeClass;
952
1012
 
 
1013
#define VALA_TYPE_CODE_CONTEXT (vala_code_context_get_type ())
 
1014
#define VALA_CODE_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CODE_CONTEXT, ValaCodeContext))
 
1015
#define VALA_CODE_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CODE_CONTEXT, ValaCodeContextClass))
 
1016
#define VALA_IS_CODE_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CODE_CONTEXT))
 
1017
#define VALA_IS_CODE_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CODE_CONTEXT))
 
1018
#define VALA_CODE_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CODE_CONTEXT, ValaCodeContextClass))
 
1019
 
 
1020
typedef struct _ValaCodeContext ValaCodeContext;
 
1021
typedef struct _ValaCodeContextClass ValaCodeContextClass;
 
1022
 
 
1023
#define VALA_TYPE_PROFILE (vala_profile_get_type ())
 
1024
 
953
1025
#define VALA_TYPE_STATEMENT (vala_statement_get_type ())
954
1026
#define VALA_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_STATEMENT, ValaStatement))
955
1027
#define VALA_IS_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_STATEMENT))
958
1030
typedef struct _ValaStatement ValaStatement;
959
1031
typedef struct _ValaStatementIface ValaStatementIface;
960
1032
 
 
1033
#define VALA_TYPE_ASSIGNMENT_OPERATOR (vala_assignment_operator_get_type ())
 
1034
 
961
1035
#define VALA_TYPE_METHOD_TYPE (vala_method_type_get_type ())
962
1036
#define VALA_METHOD_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_METHOD_TYPE, ValaMethodType))
963
1037
#define VALA_METHOD_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_METHOD_TYPE, ValaMethodTypeClass))
1073
1147
        void (*visit_try_statement) (ValaCodeVisitor* self, ValaTryStatement* stmt);
1074
1148
        void (*visit_catch_clause) (ValaCodeVisitor* self, ValaCatchClause* clause);
1075
1149
        void (*visit_lock_statement) (ValaCodeVisitor* self, ValaLockStatement* stmt);
 
1150
        void (*visit_unlock_statement) (ValaCodeVisitor* self, ValaUnlockStatement* stmt);
1076
1151
        void (*visit_delete_statement) (ValaCodeVisitor* self, ValaDeleteStatement* stmt);
1077
1152
        void (*visit_expression) (ValaCodeVisitor* self, ValaExpression* expr);
1078
1153
        void (*visit_array_creation_expression) (ValaCodeVisitor* self, ValaArrayCreationExpression* expr);
1080
1155
        void (*visit_character_literal) (ValaCodeVisitor* self, ValaCharacterLiteral* lit);
1081
1156
        void (*visit_integer_literal) (ValaCodeVisitor* self, ValaIntegerLiteral* lit);
1082
1157
        void (*visit_real_literal) (ValaCodeVisitor* self, ValaRealLiteral* lit);
 
1158
        void (*visit_regex_literal) (ValaCodeVisitor* self, ValaRegexLiteral* lit);
1083
1159
        void (*visit_string_literal) (ValaCodeVisitor* self, ValaStringLiteral* lit);
1084
1160
        void (*visit_template) (ValaCodeVisitor* self, ValaTemplate* tmpl);
 
1161
        void (*visit_list_literal) (ValaCodeVisitor* self, ValaListLiteral* lit);
 
1162
        void (*visit_set_literal) (ValaCodeVisitor* self, ValaSetLiteral* lit);
 
1163
        void (*visit_map_literal) (ValaCodeVisitor* self, ValaMapLiteral* lit);
 
1164
        void (*visit_tuple) (ValaCodeVisitor* self, ValaTuple* tuple);
1085
1165
        void (*visit_null_literal) (ValaCodeVisitor* self, ValaNullLiteral* lit);
1086
1166
        void (*visit_member_access) (ValaCodeVisitor* self, ValaMemberAccess* expr);
1087
1167
        void (*visit_method_call) (ValaCodeVisitor* self, ValaMethodCall* expr);
1114
1194
        ValaDataType* void_type;
1115
1195
        ValaDataType* bool_type;
1116
1196
        ValaDataType* string_type;
 
1197
        ValaDataType* regex_type;
1117
1198
        ValaDataType* uchar_type;
1118
1199
        ValaDataType* short_type;
1119
1200
        ValaDataType* ushort_type;
1134
1215
        ValaDataType* garray_type;
1135
1216
        ValaDataType* gvaluearray_type;
1136
1217
        ValaClass* gerror_type;
 
1218
        ValaDataType* list_type;
 
1219
        ValaDataType* tuple_type;
1137
1220
        gint next_lambda_id;
1138
1221
        ValaList* replaced_nodes;
1139
1222
};
1148
1231
        MEMBER_BINDING_STATIC
1149
1232
} MemberBinding;
1150
1233
 
 
1234
typedef enum  {
 
1235
        VALA_PROFILE_POSIX,
 
1236
        VALA_PROFILE_GOBJECT,
 
1237
        VALA_PROFILE_DOVA
 
1238
} ValaProfile;
 
1239
 
1151
1240
struct _ValaStatementIface {
1152
1241
        GTypeInterface parent_iface;
1153
1242
};
1154
1243
 
 
1244
typedef enum  {
 
1245
        VALA_ASSIGNMENT_OPERATOR_NONE,
 
1246
        VALA_ASSIGNMENT_OPERATOR_SIMPLE,
 
1247
        VALA_ASSIGNMENT_OPERATOR_BITWISE_OR,
 
1248
        VALA_ASSIGNMENT_OPERATOR_BITWISE_AND,
 
1249
        VALA_ASSIGNMENT_OPERATOR_BITWISE_XOR,
 
1250
        VALA_ASSIGNMENT_OPERATOR_ADD,
 
1251
        VALA_ASSIGNMENT_OPERATOR_SUB,
 
1252
        VALA_ASSIGNMENT_OPERATOR_MUL,
 
1253
        VALA_ASSIGNMENT_OPERATOR_DIV,
 
1254
        VALA_ASSIGNMENT_OPERATOR_PERCENT,
 
1255
        VALA_ASSIGNMENT_OPERATOR_SHIFT_LEFT,
 
1256
        VALA_ASSIGNMENT_OPERATOR_SHIFT_RIGHT
 
1257
} ValaAssignmentOperator;
 
1258
 
1155
1259
 
1156
1260
static gpointer vala_lambda_expression_parent_class = NULL;
1157
1261
 
1159
1263
void vala_code_node_unref (gpointer instance);
1160
1264
GParamSpec* vala_param_spec_code_node (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1161
1265
void vala_value_set_code_node (GValue* value, gpointer v_object);
 
1266
void vala_value_take_code_node (GValue* value, gpointer v_object);
1162
1267
gpointer vala_value_get_code_node (const GValue* value);
1163
1268
GType vala_code_node_get_type (void);
1164
1269
gpointer vala_code_visitor_ref (gpointer instance);
1165
1270
void vala_code_visitor_unref (gpointer instance);
1166
1271
GParamSpec* vala_param_spec_code_visitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1167
1272
void vala_value_set_code_visitor (GValue* value, gpointer v_object);
 
1273
void vala_value_take_code_visitor (GValue* value, gpointer v_object);
1168
1274
gpointer vala_value_get_code_visitor (const GValue* value);
1169
1275
GType vala_code_visitor_get_type (void);
1170
1276
GType vala_semantic_analyzer_get_type (void);
1186
1292
void vala_source_reference_unref (gpointer instance);
1187
1293
GParamSpec* vala_param_spec_source_reference (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1188
1294
void vala_value_set_source_reference (GValue* value, gpointer v_object);
 
1295
void vala_value_take_source_reference (GValue* value, gpointer v_object);
1189
1296
gpointer vala_value_get_source_reference (const GValue* value);
1190
1297
GType vala_source_reference_get_type (void);
1191
1298
void vala_code_node_set_source_reference (ValaCodeNode* self, ValaSourceReference* value);
1211
1318
void vala_source_file_unref (gpointer instance);
1212
1319
GParamSpec* vala_param_spec_source_file (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1213
1320
void vala_value_set_source_file (GValue* value, gpointer v_object);
 
1321
void vala_value_take_source_file (GValue* value, gpointer v_object);
1214
1322
gpointer vala_value_get_source_file (const GValue* value);
1215
1323
GType vala_source_file_get_type (void);
1216
1324
GType vala_namespace_get_type (void);
1256
1364
GType vala_try_statement_get_type (void);
1257
1365
GType vala_catch_clause_get_type (void);
1258
1366
GType vala_lock_statement_get_type (void);
 
1367
GType vala_unlock_statement_get_type (void);
1259
1368
GType vala_delete_statement_get_type (void);
1260
1369
GType vala_array_creation_expression_get_type (void);
1261
1370
GType vala_literal_get_type (void);
1263
1372
GType vala_character_literal_get_type (void);
1264
1373
GType vala_integer_literal_get_type (void);
1265
1374
GType vala_real_literal_get_type (void);
 
1375
GType vala_regex_literal_get_type (void);
1266
1376
GType vala_string_literal_get_type (void);
1267
1377
GType vala_template_get_type (void);
 
1378
GType vala_list_literal_get_type (void);
 
1379
GType vala_set_literal_get_type (void);
 
1380
GType vala_map_literal_get_type (void);
 
1381
GType vala_tuple_get_type (void);
1268
1382
GType vala_null_literal_get_type (void);
1269
1383
GType vala_member_access_get_type (void);
1270
1384
GType vala_method_call_get_type (void);
1302
1416
void vala_comment_unref (gpointer instance);
1303
1417
GParamSpec* vala_param_spec_comment (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1304
1418
void vala_value_set_comment (GValue* value, gpointer v_object);
 
1419
void vala_value_take_comment (GValue* value, gpointer v_object);
1305
1420
gpointer vala_value_get_comment (const GValue* value);
1306
1421
GType vala_comment_get_type (void);
1307
1422
ValaMethod* vala_method_new (const char* name, ValaDataType* return_type, ValaSourceReference* source_reference, ValaComment* comment);
1323
1438
void vala_scope_unref (gpointer instance);
1324
1439
GParamSpec* vala_param_spec_scope (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1325
1440
void vala_value_set_scope (GValue* value, gpointer v_object);
 
1441
void vala_value_take_scope (GValue* value, gpointer v_object);
1326
1442
gpointer vala_value_get_scope (const GValue* value);
1327
1443
GType vala_scope_get_type (void);
1328
1444
ValaScope* vala_symbol_get_scope (ValaSymbol* self);
1341
1457
void vala_scope_set_parent_scope (ValaScope* self, ValaScope* value);
1342
1458
ValaDataType* vala_method_get_return_type (ValaMethod* self);
1343
1459
ValaTypeSymbol* vala_data_type_get_data_type (ValaDataType* self);
 
1460
gpointer vala_code_context_ref (gpointer instance);
 
1461
void vala_code_context_unref (gpointer instance);
 
1462
GParamSpec* vala_param_spec_code_context (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
 
1463
void vala_value_set_code_context (GValue* value, gpointer v_object);
 
1464
void vala_value_take_code_context (GValue* value, gpointer v_object);
 
1465
gpointer vala_value_get_code_context (const GValue* value);
 
1466
GType vala_code_context_get_type (void);
 
1467
ValaCodeContext* vala_semantic_analyzer_get_context (ValaSemanticAnalyzer* self);
 
1468
GType vala_profile_get_type (void);
 
1469
ValaProfile vala_code_context_get_profile (ValaCodeContext* self);
1344
1470
GType vala_statement_get_type (void);
1345
1471
void vala_block_add_statement (ValaBlock* self, ValaStatement* stmt);
 
1472
ValaMemberAccess* vala_member_access_new_simple (const char* member_name, ValaSourceReference* source_reference);
 
1473
ValaMemberAccess* vala_member_access_construct_simple (GType object_type, const char* member_name, ValaSourceReference* source_reference);
 
1474
GType vala_assignment_operator_get_type (void);
 
1475
ValaAssignment* vala_assignment_new (ValaExpression* left, ValaExpression* right, ValaAssignmentOperator operator, ValaSourceReference* source_reference);
 
1476
ValaAssignment* vala_assignment_construct (GType object_type, ValaExpression* left, ValaExpression* right, ValaAssignmentOperator operator, ValaSourceReference* source_reference);
 
1477
ValaExpressionStatement* vala_expression_statement_new (ValaExpression* expression, ValaSourceReference* source_reference);
 
1478
ValaExpressionStatement* vala_expression_statement_construct (GType object_type, ValaExpression* expression, ValaSourceReference* source_reference);
1346
1479
ValaReturnStatement* vala_return_statement_new (ValaExpression* return_expression, ValaSourceReference* source_reference);
1347
1480
ValaReturnStatement* vala_return_statement_construct (GType object_type, ValaExpression* return_expression, ValaSourceReference* source_reference);
1348
 
ValaExpressionStatement* vala_expression_statement_new (ValaExpression* expression, ValaSourceReference* source_reference);
1349
 
ValaExpressionStatement* vala_expression_statement_construct (GType object_type, ValaExpression* expression, ValaSourceReference* source_reference);
1350
1481
void vala_method_set_body (ValaMethod* self, ValaBlock* value);
1351
1482
ValaBlock* vala_method_get_body (ValaMethod* self);
1352
1483
void vala_expression_set_symbol_reference (ValaExpression* self, ValaSymbol* value);
1405
1536
}
1406
1537
 
1407
1538
 
 
1539
static gpointer _vala_collection_object_ref0 (gpointer self) {
 
1540
        return self ? vala_collection_object_ref (self) : NULL;
 
1541
}
 
1542
 
 
1543
 
1408
1544
ValaList* vala_lambda_expression_get_parameters (ValaLambdaExpression* self) {
1409
 
        ValaList* result;
 
1545
        ValaList* result = NULL;
1410
1546
        g_return_val_if_fail (self != NULL, NULL);
1411
 
        result = (ValaList*) vala_read_only_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, self->priv->parameters);
 
1547
        result = _vala_collection_object_ref0 (self->priv->parameters);
1412
1548
        return result;
1413
1549
}
1414
1550
 
1443
1579
 
1444
1580
static gboolean vala_lambda_expression_real_is_pure (ValaExpression* base) {
1445
1581
        ValaLambdaExpression * self;
1446
 
        gboolean result;
 
1582
        gboolean result = FALSE;
1447
1583
        self = (ValaLambdaExpression*) base;
1448
1584
        result = FALSE;
1449
1585
        return result;
1451
1587
 
1452
1588
 
1453
1589
static char* vala_lambda_expression_get_lambda_name (ValaLambdaExpression* self, ValaSemanticAnalyzer* analyzer) {
1454
 
        char* result;
 
1590
        char* result = NULL;
1455
1591
        char* _result_;
1456
1592
        g_return_val_if_fail (self != NULL, NULL);
1457
1593
        g_return_val_if_fail (analyzer != NULL, NULL);
1469
1605
 
1470
1606
static gboolean vala_lambda_expression_real_check (ValaCodeNode* base, ValaSemanticAnalyzer* analyzer) {
1471
1607
        ValaLambdaExpression * self;
1472
 
        gboolean result;
 
1608
        gboolean result = FALSE;
1473
1609
        ValaDelegate* cb;
1474
1610
        ValaMethod* _tmp1_;
1475
1611
        char* _tmp0_;
1477
1613
        ValaList* lambda_params;
1478
1614
        ValaIterator* lambda_param_it;
1479
1615
        gboolean _tmp4_ = FALSE;
1480
 
        ValaMethodType* _tmp13_;
 
1616
        ValaMethodType* _tmp17_;
1481
1617
        self = (ValaLambdaExpression*) base;
1482
1618
        g_return_val_if_fail (analyzer != NULL, FALSE);
1483
1619
        if (vala_code_node_get_checked ((ValaCodeNode*) self)) {
1620
1756
                block = vala_block_new (vala_code_node_get_source_reference ((ValaCodeNode*) self));
1621
1757
                vala_scope_set_parent_scope (vala_symbol_get_scope ((ValaSymbol*) block), vala_symbol_get_scope ((ValaSymbol*) self->priv->_method));
1622
1758
                if (vala_data_type_get_data_type (vala_method_get_return_type (self->priv->_method)) != NULL) {
1623
 
                        ValaReturnStatement* _tmp11_;
1624
 
                        vala_block_add_statement (block, (ValaStatement*) (_tmp11_ = vala_return_statement_new (self->priv->_expression_body, vala_code_node_get_source_reference ((ValaCodeNode*) self))));
1625
 
                        _vala_code_node_unref0 (_tmp11_);
 
1759
                        if (vala_code_context_get_profile (vala_semantic_analyzer_get_context (analyzer)) == VALA_PROFILE_DOVA) {
 
1760
                                ValaExpressionStatement* _tmp13_;
 
1761
                                ValaAssignment* _tmp12_;
 
1762
                                ValaMemberAccess* _tmp11_;
 
1763
                                ValaReturnStatement* _tmp14_;
 
1764
                                vala_block_add_statement (block, (ValaStatement*) (_tmp13_ = vala_expression_statement_new ((ValaExpression*) (_tmp12_ = vala_assignment_new ((ValaExpression*) (_tmp11_ = vala_member_access_new_simple ("result", vala_code_node_get_source_reference ((ValaCodeNode*) self))), self->priv->_expression_body, VALA_ASSIGNMENT_OPERATOR_SIMPLE, vala_code_node_get_source_reference ((ValaCodeNode*) self))), vala_code_node_get_source_reference ((ValaCodeNode*) self))));
 
1765
                                _vala_code_node_unref0 (_tmp13_);
 
1766
                                _vala_code_node_unref0 (_tmp12_);
 
1767
                                _vala_code_node_unref0 (_tmp11_);
 
1768
                                vala_block_add_statement (block, (ValaStatement*) (_tmp14_ = vala_return_statement_new (NULL, vala_code_node_get_source_reference ((ValaCodeNode*) self))));
 
1769
                                _vala_code_node_unref0 (_tmp14_);
 
1770
                        } else {
 
1771
                                ValaReturnStatement* _tmp15_;
 
1772
                                vala_block_add_statement (block, (ValaStatement*) (_tmp15_ = vala_return_statement_new (self->priv->_expression_body, vala_code_node_get_source_reference ((ValaCodeNode*) self))));
 
1773
                                _vala_code_node_unref0 (_tmp15_);
 
1774
                        }
1626
1775
                } else {
1627
 
                        ValaExpressionStatement* _tmp12_;
1628
 
                        vala_block_add_statement (block, (ValaStatement*) (_tmp12_ = vala_expression_statement_new (self->priv->_expression_body, vala_code_node_get_source_reference ((ValaCodeNode*) self))));
1629
 
                        _vala_code_node_unref0 (_tmp12_);
 
1776
                        ValaExpressionStatement* _tmp16_;
 
1777
                        vala_block_add_statement (block, (ValaStatement*) (_tmp16_ = vala_expression_statement_new (self->priv->_expression_body, vala_code_node_get_source_reference ((ValaCodeNode*) self))));
 
1778
                        _vala_code_node_unref0 (_tmp16_);
1630
1779
                }
1631
1780
                vala_method_set_body (self->priv->_method, block);
1632
1781
                _vala_code_node_unref0 (block);
1636
1785
        vala_symbol_set_owner ((ValaSymbol*) vala_method_get_body (self->priv->_method), vala_symbol_get_scope ((ValaSymbol*) self->priv->_method));
1637
1786
        vala_expression_set_symbol_reference ((ValaExpression*) self, (ValaSymbol*) self->priv->_method);
1638
1787
        vala_code_node_check ((ValaCodeNode*) self->priv->_method, analyzer);
1639
 
        vala_expression_set_value_type ((ValaExpression*) self, (ValaDataType*) (_tmp13_ = vala_method_type_new (self->priv->_method)));
1640
 
        _vala_code_node_unref0 (_tmp13_);
 
1788
        vala_expression_set_value_type ((ValaExpression*) self, (ValaDataType*) (_tmp17_ = vala_method_type_new (self->priv->_method)));
 
1789
        _vala_code_node_unref0 (_tmp17_);
1641
1790
        vala_data_type_set_value_owned (vala_expression_get_value_type ((ValaExpression*) self), vala_data_type_get_value_owned (vala_expression_get_target_type ((ValaExpression*) self)));
1642
1791
        result = !vala_code_node_get_error ((ValaCodeNode*) self);
1643
1792
        _vala_code_node_unref0 (cb);
1732
1881
 
1733
1882
 
1734
1883
GType vala_lambda_expression_get_type (void) {
1735
 
        static GType vala_lambda_expression_type_id = 0;
1736
 
        if (vala_lambda_expression_type_id == 0) {
 
1884
        static volatile gsize vala_lambda_expression_type_id__volatile = 0;
 
1885
        if (g_once_init_enter (&vala_lambda_expression_type_id__volatile)) {
1737
1886
                static const GTypeInfo g_define_type_info = { sizeof (ValaLambdaExpressionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_lambda_expression_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaLambdaExpression), 0, (GInstanceInitFunc) vala_lambda_expression_instance_init, NULL };
 
1887
                GType vala_lambda_expression_type_id;
1738
1888
                vala_lambda_expression_type_id = g_type_register_static (VALA_TYPE_EXPRESSION, "ValaLambdaExpression", &g_define_type_info, 0);
 
1889
                g_once_init_leave (&vala_lambda_expression_type_id__volatile, vala_lambda_expression_type_id);
1739
1890
        }
1740
 
        return vala_lambda_expression_type_id;
 
1891
        return vala_lambda_expression_type_id__volatile;
1741
1892
}
1742
1893
 
1743
1894