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

« back to all changes in this revision

Viewing changes to vala/valasemanticanalyzer.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:
563
563
typedef struct _ValaLockStatement ValaLockStatement;
564
564
typedef struct _ValaLockStatementClass ValaLockStatementClass;
565
565
 
 
566
#define VALA_TYPE_UNLOCK_STATEMENT (vala_unlock_statement_get_type ())
 
567
#define VALA_UNLOCK_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_UNLOCK_STATEMENT, ValaUnlockStatement))
 
568
#define VALA_UNLOCK_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_UNLOCK_STATEMENT, ValaUnlockStatementClass))
 
569
#define VALA_IS_UNLOCK_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_UNLOCK_STATEMENT))
 
570
#define VALA_IS_UNLOCK_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_UNLOCK_STATEMENT))
 
571
#define VALA_UNLOCK_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_UNLOCK_STATEMENT, ValaUnlockStatementClass))
 
572
 
 
573
typedef struct _ValaUnlockStatement ValaUnlockStatement;
 
574
typedef struct _ValaUnlockStatementClass ValaUnlockStatementClass;
 
575
 
566
576
#define VALA_TYPE_DELETE_STATEMENT (vala_delete_statement_get_type ())
567
577
#define VALA_DELETE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DELETE_STATEMENT, ValaDeleteStatement))
568
578
#define VALA_DELETE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DELETE_STATEMENT, ValaDeleteStatementClass))
633
643
typedef struct _ValaRealLiteral ValaRealLiteral;
634
644
typedef struct _ValaRealLiteralClass ValaRealLiteralClass;
635
645
 
 
646
#define VALA_TYPE_REGEX_LITERAL (vala_regex_literal_get_type ())
 
647
#define VALA_REGEX_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_REGEX_LITERAL, ValaRegexLiteral))
 
648
#define VALA_REGEX_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_REGEX_LITERAL, ValaRegexLiteralClass))
 
649
#define VALA_IS_REGEX_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_REGEX_LITERAL))
 
650
#define VALA_IS_REGEX_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_REGEX_LITERAL))
 
651
#define VALA_REGEX_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_REGEX_LITERAL, ValaRegexLiteralClass))
 
652
 
 
653
typedef struct _ValaRegexLiteral ValaRegexLiteral;
 
654
typedef struct _ValaRegexLiteralClass ValaRegexLiteralClass;
 
655
 
636
656
#define VALA_TYPE_STRING_LITERAL (vala_string_literal_get_type ())
637
657
#define VALA_STRING_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_STRING_LITERAL, ValaStringLiteral))
638
658
#define VALA_STRING_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_STRING_LITERAL, ValaStringLiteralClass))
653
673
typedef struct _ValaTemplate ValaTemplate;
654
674
typedef struct _ValaTemplateClass ValaTemplateClass;
655
675
 
 
676
#define VALA_TYPE_LIST_LITERAL (vala_list_literal_get_type ())
 
677
#define VALA_LIST_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_LIST_LITERAL, ValaListLiteral))
 
678
#define VALA_LIST_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_LIST_LITERAL, ValaListLiteralClass))
 
679
#define VALA_IS_LIST_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_LIST_LITERAL))
 
680
#define VALA_IS_LIST_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_LIST_LITERAL))
 
681
#define VALA_LIST_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_LIST_LITERAL, ValaListLiteralClass))
 
682
 
 
683
typedef struct _ValaListLiteral ValaListLiteral;
 
684
typedef struct _ValaListLiteralClass ValaListLiteralClass;
 
685
 
 
686
#define VALA_TYPE_SET_LITERAL (vala_set_literal_get_type ())
 
687
#define VALA_SET_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SET_LITERAL, ValaSetLiteral))
 
688
#define VALA_SET_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SET_LITERAL, ValaSetLiteralClass))
 
689
#define VALA_IS_SET_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SET_LITERAL))
 
690
#define VALA_IS_SET_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SET_LITERAL))
 
691
#define VALA_SET_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SET_LITERAL, ValaSetLiteralClass))
 
692
 
 
693
typedef struct _ValaSetLiteral ValaSetLiteral;
 
694
typedef struct _ValaSetLiteralClass ValaSetLiteralClass;
 
695
 
 
696
#define VALA_TYPE_MAP_LITERAL (vala_map_literal_get_type ())
 
697
#define VALA_MAP_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_MAP_LITERAL, ValaMapLiteral))
 
698
#define VALA_MAP_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_MAP_LITERAL, ValaMapLiteralClass))
 
699
#define VALA_IS_MAP_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_MAP_LITERAL))
 
700
#define VALA_IS_MAP_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_MAP_LITERAL))
 
701
#define VALA_MAP_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_MAP_LITERAL, ValaMapLiteralClass))
 
702
 
 
703
typedef struct _ValaMapLiteral ValaMapLiteral;
 
704
typedef struct _ValaMapLiteralClass ValaMapLiteralClass;
 
705
 
 
706
#define VALA_TYPE_TUPLE (vala_tuple_get_type ())
 
707
#define VALA_TUPLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_TUPLE, ValaTuple))
 
708
#define VALA_TUPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_TUPLE, ValaTupleClass))
 
709
#define VALA_IS_TUPLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_TUPLE))
 
710
#define VALA_IS_TUPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_TUPLE))
 
711
#define VALA_TUPLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_TUPLE, ValaTupleClass))
 
712
 
 
713
typedef struct _ValaTuple ValaTuple;
 
714
typedef struct _ValaTupleClass ValaTupleClass;
 
715
 
656
716
#define VALA_TYPE_NULL_LITERAL (vala_null_literal_get_type ())
657
717
#define VALA_NULL_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_NULL_LITERAL, ValaNullLiteral))
658
718
#define VALA_NULL_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_NULL_LITERAL, ValaNullLiteralClass))
1166
1226
        void (*visit_try_statement) (ValaCodeVisitor* self, ValaTryStatement* stmt);
1167
1227
        void (*visit_catch_clause) (ValaCodeVisitor* self, ValaCatchClause* clause);
1168
1228
        void (*visit_lock_statement) (ValaCodeVisitor* self, ValaLockStatement* stmt);
 
1229
        void (*visit_unlock_statement) (ValaCodeVisitor* self, ValaUnlockStatement* stmt);
1169
1230
        void (*visit_delete_statement) (ValaCodeVisitor* self, ValaDeleteStatement* stmt);
1170
1231
        void (*visit_expression) (ValaCodeVisitor* self, ValaExpression* expr);
1171
1232
        void (*visit_array_creation_expression) (ValaCodeVisitor* self, ValaArrayCreationExpression* expr);
1173
1234
        void (*visit_character_literal) (ValaCodeVisitor* self, ValaCharacterLiteral* lit);
1174
1235
        void (*visit_integer_literal) (ValaCodeVisitor* self, ValaIntegerLiteral* lit);
1175
1236
        void (*visit_real_literal) (ValaCodeVisitor* self, ValaRealLiteral* lit);
 
1237
        void (*visit_regex_literal) (ValaCodeVisitor* self, ValaRegexLiteral* lit);
1176
1238
        void (*visit_string_literal) (ValaCodeVisitor* self, ValaStringLiteral* lit);
1177
1239
        void (*visit_template) (ValaCodeVisitor* self, ValaTemplate* tmpl);
 
1240
        void (*visit_list_literal) (ValaCodeVisitor* self, ValaListLiteral* lit);
 
1241
        void (*visit_set_literal) (ValaCodeVisitor* self, ValaSetLiteral* lit);
 
1242
        void (*visit_map_literal) (ValaCodeVisitor* self, ValaMapLiteral* lit);
 
1243
        void (*visit_tuple) (ValaCodeVisitor* self, ValaTuple* tuple);
1178
1244
        void (*visit_null_literal) (ValaCodeVisitor* self, ValaNullLiteral* lit);
1179
1245
        void (*visit_member_access) (ValaCodeVisitor* self, ValaMemberAccess* expr);
1180
1246
        void (*visit_method_call) (ValaCodeVisitor* self, ValaMethodCall* expr);
1207
1273
        ValaDataType* void_type;
1208
1274
        ValaDataType* bool_type;
1209
1275
        ValaDataType* string_type;
 
1276
        ValaDataType* regex_type;
1210
1277
        ValaDataType* uchar_type;
1211
1278
        ValaDataType* short_type;
1212
1279
        ValaDataType* ushort_type;
1227
1294
        ValaDataType* garray_type;
1228
1295
        ValaDataType* gvaluearray_type;
1229
1296
        ValaClass* gerror_type;
 
1297
        ValaDataType* list_type;
 
1298
        ValaDataType* tuple_type;
1230
1299
        gint next_lambda_id;
1231
1300
        ValaList* replaced_nodes;
1232
1301
};
1243
1312
 
1244
1313
typedef enum  {
1245
1314
        VALA_PROFILE_POSIX,
1246
 
        VALA_PROFILE_GOBJECT
 
1315
        VALA_PROFILE_GOBJECT,
 
1316
        VALA_PROFILE_DOVA
1247
1317
} ValaProfile;
1248
1318
 
1249
1319
typedef enum  {
1284
1354
void vala_code_visitor_unref (gpointer instance);
1285
1355
GParamSpec* vala_param_spec_code_visitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1286
1356
void vala_value_set_code_visitor (GValue* value, gpointer v_object);
 
1357
void vala_value_take_code_visitor (GValue* value, gpointer v_object);
1287
1358
gpointer vala_value_get_code_visitor (const GValue* value);
1288
1359
GType vala_code_visitor_get_type (void);
1289
1360
gpointer vala_source_file_ref (gpointer instance);
1290
1361
void vala_source_file_unref (gpointer instance);
1291
1362
GParamSpec* vala_param_spec_source_file (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1292
1363
void vala_value_set_source_file (GValue* value, gpointer v_object);
 
1364
void vala_value_take_source_file (GValue* value, gpointer v_object);
1293
1365
gpointer vala_value_get_source_file (const GValue* value);
1294
1366
GType vala_source_file_get_type (void);
1295
1367
gpointer vala_code_node_ref (gpointer instance);
1296
1368
void vala_code_node_unref (gpointer instance);
1297
1369
GParamSpec* vala_param_spec_code_node (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1298
1370
void vala_value_set_code_node (GValue* value, gpointer v_object);
 
1371
void vala_value_take_code_node (GValue* value, gpointer v_object);
1299
1372
gpointer vala_value_get_code_node (const GValue* value);
1300
1373
GType vala_code_node_get_type (void);
1301
1374
GType vala_symbol_get_type (void);
1348
1421
GType vala_try_statement_get_type (void);
1349
1422
GType vala_catch_clause_get_type (void);
1350
1423
GType vala_lock_statement_get_type (void);
 
1424
GType vala_unlock_statement_get_type (void);
1351
1425
GType vala_delete_statement_get_type (void);
1352
1426
GType vala_array_creation_expression_get_type (void);
1353
1427
GType vala_literal_get_type (void);
1355
1429
GType vala_character_literal_get_type (void);
1356
1430
GType vala_integer_literal_get_type (void);
1357
1431
GType vala_real_literal_get_type (void);
 
1432
GType vala_regex_literal_get_type (void);
1358
1433
GType vala_string_literal_get_type (void);
1359
1434
GType vala_template_get_type (void);
 
1435
GType vala_list_literal_get_type (void);
 
1436
GType vala_set_literal_get_type (void);
 
1437
GType vala_map_literal_get_type (void);
 
1438
GType vala_tuple_get_type (void);
1360
1439
GType vala_null_literal_get_type (void);
1361
1440
GType vala_member_access_get_type (void);
1362
1441
GType vala_method_call_get_type (void);
1385
1464
void vala_code_context_unref (gpointer instance);
1386
1465
GParamSpec* vala_param_spec_code_context (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1387
1466
void vala_value_set_code_context (GValue* value, gpointer v_object);
 
1467
void vala_value_take_code_context (GValue* value, gpointer v_object);
1388
1468
gpointer vala_value_get_code_context (const GValue* value);
1389
1469
GType vala_code_context_get_type (void);
1390
1470
#define VALA_SEMANTIC_ANALYZER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), VALA_TYPE_SEMANTIC_ANALYZER, ValaSemanticAnalyzerPrivate))
1395
1475
void vala_source_reference_unref (gpointer instance);
1396
1476
GParamSpec* vala_param_spec_source_reference (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1397
1477
void vala_value_set_source_reference (GValue* value, gpointer v_object);
 
1478
void vala_value_take_source_reference (GValue* value, gpointer v_object);
1398
1479
gpointer vala_value_get_source_reference (const GValue* value);
1399
1480
GType vala_source_reference_get_type (void);
1400
1481
ValaVoidType* vala_void_type_new (ValaSourceReference* source_reference);
1409
1490
void vala_scope_unref (gpointer instance);
1410
1491
GParamSpec* vala_param_spec_scope (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1411
1492
void vala_value_set_scope (GValue* value, gpointer v_object);
 
1493
void vala_value_take_scope (GValue* value, gpointer v_object);
1412
1494
gpointer vala_value_get_scope (const GValue* value);
1413
1495
GType vala_scope_get_type (void);
1414
1496
ValaScope* vala_symbol_get_scope (ValaSymbol* self);
1514
1596
gboolean vala_data_type_is_disposable (ValaDataType* self);
1515
1597
GType vala_pointer_type_get_type (void);
1516
1598
gboolean vala_data_type_get_value_owned (ValaDataType* self);
 
1599
gboolean vala_member_access_get_prototype_access (ValaMemberAccess* self);
 
1600
ValaDelegate* vala_delegate_type_get_delegate_symbol (ValaDelegateType* self);
 
1601
gboolean vala_delegate_get_has_target (ValaDelegate* self);
1517
1602
ValaList* vala_data_type_get_type_arguments (ValaDataType* self);
1518
1603
ValaDataType* vala_data_type_get_actual_type (ValaDataType* self, ValaDataType* derived_instance_type, ValaMemberAccess* method_access, ValaCodeNode* node_reference);
1519
1604
void vala_data_type_add_type_argument (ValaDataType* self, ValaDataType* arg);
1549
1634
ValaDataType* vala_semantic_analyzer_get_arithmetic_result_type (ValaSemanticAnalyzer* self, ValaDataType* left_type, ValaDataType* right_type);
1550
1635
ValaMethod* vala_semantic_analyzer_find_current_method (ValaSemanticAnalyzer* self);
1551
1636
ValaMethod* vala_semantic_analyzer_find_parent_method (ValaSemanticAnalyzer* self, ValaSymbol* sym);
 
1637
ValaSymbol* vala_semantic_analyzer_find_parent_method_or_property_accessor (ValaSemanticAnalyzer* self, ValaSymbol* sym);
1552
1638
gboolean vala_semantic_analyzer_is_in_constructor (ValaSemanticAnalyzer* self);
1553
1639
ValaCodeContext* vala_semantic_analyzer_get_context (ValaSemanticAnalyzer* self);
1554
1640
ValaSourceFile* vala_semantic_analyzer_get_current_source_file (ValaSemanticAnalyzer* self);
1559
1645
gboolean vala_method_get_coroutine (ValaMethod* self);
1560
1646
ValaMethod* vala_semantic_analyzer_get_current_async_method (ValaSemanticAnalyzer* self);
1561
1647
ValaPropertyAccessor* vala_semantic_analyzer_get_current_property_accessor (ValaSemanticAnalyzer* self);
 
1648
ValaSymbol* vala_semantic_analyzer_get_current_method_or_property_accessor (ValaSemanticAnalyzer* self);
1562
1649
ValaDataType* vala_method_get_return_type (ValaMethod* self);
1563
1650
gboolean vala_property_accessor_get_readable (ValaPropertyAccessor* self);
1564
1651
ValaDataType* vala_semantic_analyzer_get_current_return_type (ValaSemanticAnalyzer* self);
1589
1676
        ValaStruct* _tmp1_;
1590
1677
        ValaDataType* _tmp4_;
1591
1678
        ValaClass* _tmp3_;
1592
 
        ValaDataType* _tmp6_;
1593
 
        ValaStruct* _tmp5_;
1594
 
        ValaDataType* _tmp8_;
1595
 
        ValaStruct* _tmp7_;
1596
 
        ValaDataType* _tmp10_;
1597
 
        ValaStruct* _tmp9_;
1598
 
        ValaDataType* _tmp12_;
1599
 
        ValaStruct* _tmp11_;
1600
 
        ValaDataType* _tmp14_;
1601
 
        ValaStruct* _tmp13_;
1602
 
        ValaDataType* _tmp16_;
1603
 
        ValaStruct* _tmp15_;
1604
 
        ValaDataType* _tmp18_;
1605
 
        ValaStruct* _tmp17_;
1606
 
        ValaDataType* _tmp20_;
1607
 
        ValaStruct* _tmp19_;
1608
 
        ValaDataType* _tmp22_;
1609
 
        ValaStruct* _tmp21_;
 
1679
        ValaDataType* _tmp7_;
 
1680
        ValaClass* _tmp6_;
 
1681
        ValaSymbol* _tmp5_;
 
1682
        ValaDataType* _tmp9_;
 
1683
        ValaStruct* _tmp8_;
 
1684
        ValaDataType* _tmp11_;
 
1685
        ValaStruct* _tmp10_;
 
1686
        ValaDataType* _tmp13_;
 
1687
        ValaStruct* _tmp12_;
 
1688
        ValaDataType* _tmp15_;
 
1689
        ValaStruct* _tmp14_;
 
1690
        ValaDataType* _tmp17_;
 
1691
        ValaStruct* _tmp16_;
 
1692
        ValaDataType* _tmp19_;
 
1693
        ValaStruct* _tmp18_;
 
1694
        ValaDataType* _tmp21_;
 
1695
        ValaStruct* _tmp20_;
1610
1696
        ValaStruct* unichar_struct;
1611
1697
        ValaStruct* size_t_struct;
1612
1698
        ValaStruct* ssize_t_struct;
1618
1704
        _vala_code_node_unref0 (_tmp1_);
1619
1705
        self->string_type = (_tmp4_ = (ValaDataType*) vala_object_type_new ((ValaObjectTypeSymbol*) (_tmp3_ = VALA_CLASS (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "string")))), _vala_code_node_unref0 (self->string_type), _tmp4_);
1620
1706
        _vala_code_node_unref0 (_tmp3_);
1621
 
        self->uchar_type = (_tmp6_ = (ValaDataType*) vala_integer_type_new (_tmp5_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "uchar")), NULL, NULL), _vala_code_node_unref0 (self->uchar_type), _tmp6_);
 
1707
        self->regex_type = (_tmp7_ = (ValaDataType*) vala_object_type_new ((ValaObjectTypeSymbol*) (_tmp6_ = VALA_CLASS (vala_scope_lookup (vala_symbol_get_scope (_tmp5_ = vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "GLib")), "Regex")))), _vala_code_node_unref0 (self->regex_type), _tmp7_);
 
1708
        _vala_code_node_unref0 (_tmp6_);
1622
1709
        _vala_code_node_unref0 (_tmp5_);
1623
 
        self->short_type = (_tmp8_ = (ValaDataType*) vala_integer_type_new (_tmp7_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "short")), NULL, NULL), _vala_code_node_unref0 (self->short_type), _tmp8_);
1624
 
        _vala_code_node_unref0 (_tmp7_);
1625
 
        self->ushort_type = (_tmp10_ = (ValaDataType*) vala_integer_type_new (_tmp9_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "ushort")), NULL, NULL), _vala_code_node_unref0 (self->ushort_type), _tmp10_);
1626
 
        _vala_code_node_unref0 (_tmp9_);
1627
 
        self->int_type = (_tmp12_ = (ValaDataType*) vala_integer_type_new (_tmp11_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "int")), NULL, NULL), _vala_code_node_unref0 (self->int_type), _tmp12_);
1628
 
        _vala_code_node_unref0 (_tmp11_);
1629
 
        self->uint_type = (_tmp14_ = (ValaDataType*) vala_integer_type_new (_tmp13_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "uint")), NULL, NULL), _vala_code_node_unref0 (self->uint_type), _tmp14_);
1630
 
        _vala_code_node_unref0 (_tmp13_);
1631
 
        self->long_type = (_tmp16_ = (ValaDataType*) vala_integer_type_new (_tmp15_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "long")), NULL, NULL), _vala_code_node_unref0 (self->long_type), _tmp16_);
1632
 
        _vala_code_node_unref0 (_tmp15_);
1633
 
        self->ulong_type = (_tmp18_ = (ValaDataType*) vala_integer_type_new (_tmp17_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "ulong")), NULL, NULL), _vala_code_node_unref0 (self->ulong_type), _tmp18_);
1634
 
        _vala_code_node_unref0 (_tmp17_);
1635
 
        self->int8_type = (_tmp20_ = (ValaDataType*) vala_integer_type_new (_tmp19_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "int8")), NULL, NULL), _vala_code_node_unref0 (self->int8_type), _tmp20_);
1636
 
        _vala_code_node_unref0 (_tmp19_);
1637
 
        self->double_type = (_tmp22_ = (ValaDataType*) vala_floating_type_new (_tmp21_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "double"))), _vala_code_node_unref0 (self->double_type), _tmp22_);
1638
 
        _vala_code_node_unref0 (_tmp21_);
 
1710
        self->short_type = (_tmp9_ = (ValaDataType*) vala_integer_type_new (_tmp8_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "short")), NULL, NULL), _vala_code_node_unref0 (self->short_type), _tmp9_);
 
1711
        _vala_code_node_unref0 (_tmp8_);
 
1712
        self->ushort_type = (_tmp11_ = (ValaDataType*) vala_integer_type_new (_tmp10_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "ushort")), NULL, NULL), _vala_code_node_unref0 (self->ushort_type), _tmp11_);
 
1713
        _vala_code_node_unref0 (_tmp10_);
 
1714
        self->int_type = (_tmp13_ = (ValaDataType*) vala_integer_type_new (_tmp12_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "int")), NULL, NULL), _vala_code_node_unref0 (self->int_type), _tmp13_);
 
1715
        _vala_code_node_unref0 (_tmp12_);
 
1716
        self->uint_type = (_tmp15_ = (ValaDataType*) vala_integer_type_new (_tmp14_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "uint")), NULL, NULL), _vala_code_node_unref0 (self->uint_type), _tmp15_);
 
1717
        _vala_code_node_unref0 (_tmp14_);
 
1718
        self->long_type = (_tmp17_ = (ValaDataType*) vala_integer_type_new (_tmp16_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "long")), NULL, NULL), _vala_code_node_unref0 (self->long_type), _tmp17_);
 
1719
        _vala_code_node_unref0 (_tmp16_);
 
1720
        self->ulong_type = (_tmp19_ = (ValaDataType*) vala_integer_type_new (_tmp18_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "ulong")), NULL, NULL), _vala_code_node_unref0 (self->ulong_type), _tmp19_);
 
1721
        _vala_code_node_unref0 (_tmp18_);
 
1722
        self->double_type = (_tmp21_ = (ValaDataType*) vala_floating_type_new (_tmp20_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "double"))), _vala_code_node_unref0 (self->double_type), _tmp21_);
 
1723
        _vala_code_node_unref0 (_tmp20_);
 
1724
        if (vala_code_context_get_profile (context) != VALA_PROFILE_DOVA) {
 
1725
                ValaDataType* _tmp23_;
 
1726
                ValaStruct* _tmp22_;
 
1727
                ValaDataType* _tmp25_;
 
1728
                ValaStruct* _tmp24_;
 
1729
                self->uchar_type = (_tmp23_ = (ValaDataType*) vala_integer_type_new (_tmp22_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "uchar")), NULL, NULL), _vala_code_node_unref0 (self->uchar_type), _tmp23_);
 
1730
                _vala_code_node_unref0 (_tmp22_);
 
1731
                self->int8_type = (_tmp25_ = (ValaDataType*) vala_integer_type_new (_tmp24_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "int8")), NULL, NULL), _vala_code_node_unref0 (self->int8_type), _tmp25_);
 
1732
                _vala_code_node_unref0 (_tmp24_);
 
1733
        }
1639
1734
        unichar_struct = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "unichar"));
1640
1735
        if (unichar_struct != NULL) {
1641
 
                ValaDataType* _tmp23_;
1642
 
                self->unichar_type = (_tmp23_ = (ValaDataType*) vala_integer_type_new (unichar_struct, NULL, NULL), _vala_code_node_unref0 (self->unichar_type), _tmp23_);
 
1736
                ValaDataType* _tmp26_;
 
1737
                self->unichar_type = (_tmp26_ = (ValaDataType*) vala_integer_type_new (unichar_struct, NULL, NULL), _vala_code_node_unref0 (self->unichar_type), _tmp26_);
1643
1738
        }
1644
1739
        size_t_struct = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "size_t"));
1645
1740
        if (size_t_struct != NULL) {
1646
 
                ValaDataType* _tmp24_;
1647
 
                self->size_t_type = (_tmp24_ = (ValaDataType*) vala_integer_type_new (size_t_struct, NULL, NULL), _vala_code_node_unref0 (self->size_t_type), _tmp24_);
 
1741
                ValaDataType* _tmp27_;
 
1742
                self->size_t_type = (_tmp27_ = (ValaDataType*) vala_integer_type_new (size_t_struct, NULL, NULL), _vala_code_node_unref0 (self->size_t_type), _tmp27_);
1648
1743
        }
1649
1744
        ssize_t_struct = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "ssize_t"));
1650
1745
        if (ssize_t_struct != NULL) {
1651
 
                ValaDataType* _tmp25_;
1652
 
                self->ssize_t_type = (_tmp25_ = (ValaDataType*) vala_integer_type_new (ssize_t_struct, NULL, NULL), _vala_code_node_unref0 (self->ssize_t_type), _tmp25_);
 
1746
                ValaDataType* _tmp28_;
 
1747
                self->ssize_t_type = (_tmp28_ = (ValaDataType*) vala_integer_type_new (ssize_t_struct, NULL, NULL), _vala_code_node_unref0 (self->ssize_t_type), _tmp28_);
1653
1748
        }
1654
1749
        if (vala_code_context_get_profile (context) == VALA_PROFILE_GOBJECT) {
1655
1750
                ValaSymbol* glib_ns;
1656
 
                ValaClass* _tmp26_;
1657
 
                ValaDataType* _tmp28_;
1658
 
                ValaStruct* _tmp27_;
1659
 
                ValaStructValueType* _tmp30_;
1660
 
                ValaStruct* _tmp29_;
1661
 
                ValaDataType* _tmp32_;
1662
 
                ValaClass* _tmp31_;
1663
 
                ValaDataType* _tmp34_;
1664
 
                ValaClass* _tmp33_;
1665
 
                ValaDataType* _tmp36_;
1666
 
                ValaClass* _tmp35_;
1667
 
                ValaDataType* _tmp38_;
1668
 
                ValaClass* _tmp37_;
1669
 
                ValaClass* _tmp39_;
 
1751
                ValaClass* _tmp29_;
 
1752
                ValaDataType* _tmp31_;
 
1753
                ValaStruct* _tmp30_;
 
1754
                ValaStructValueType* _tmp33_;
 
1755
                ValaStruct* _tmp32_;
 
1756
                ValaDataType* _tmp35_;
 
1757
                ValaClass* _tmp34_;
 
1758
                ValaDataType* _tmp37_;
 
1759
                ValaClass* _tmp36_;
 
1760
                ValaDataType* _tmp39_;
 
1761
                ValaClass* _tmp38_;
 
1762
                ValaDataType* _tmp41_;
 
1763
                ValaClass* _tmp40_;
 
1764
                ValaClass* _tmp42_;
1670
1765
                glib_ns = vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "GLib");
1671
 
                self->object_type = (_tmp26_ = VALA_CLASS (vala_scope_lookup (vala_symbol_get_scope (glib_ns), "Object")), _vala_code_node_unref0 (self->object_type), _tmp26_);
1672
 
                self->type_type = (_tmp28_ = (ValaDataType*) vala_integer_type_new (_tmp27_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (glib_ns), "Type")), NULL, NULL), _vala_code_node_unref0 (self->type_type), _tmp28_);
1673
 
                _vala_code_node_unref0 (_tmp27_);
1674
 
                self->gvalue_type = (_tmp30_ = vala_struct_value_type_new (_tmp29_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (glib_ns), "Value"))), _vala_code_node_unref0 (self->gvalue_type), _tmp30_);
1675
 
                _vala_code_node_unref0 (_tmp29_);
1676
 
                self->glist_type = (_tmp32_ = (ValaDataType*) vala_object_type_new ((ValaObjectTypeSymbol*) (_tmp31_ = VALA_CLASS (vala_scope_lookup (vala_symbol_get_scope (glib_ns), "List")))), _vala_code_node_unref0 (self->glist_type), _tmp32_);
1677
 
                _vala_code_node_unref0 (_tmp31_);
1678
 
                self->gslist_type = (_tmp34_ = (ValaDataType*) vala_object_type_new ((ValaObjectTypeSymbol*) (_tmp33_ = VALA_CLASS (vala_scope_lookup (vala_symbol_get_scope (glib_ns), "SList")))), _vala_code_node_unref0 (self->gslist_type), _tmp34_);
1679
 
                _vala_code_node_unref0 (_tmp33_);
1680
 
                self->garray_type = (_tmp36_ = (ValaDataType*) vala_object_type_new ((ValaObjectTypeSymbol*) (_tmp35_ = VALA_CLASS (vala_scope_lookup (vala_symbol_get_scope (glib_ns), "Array")))), _vala_code_node_unref0 (self->garray_type), _tmp36_);
1681
 
                _vala_code_node_unref0 (_tmp35_);
1682
 
                self->gvaluearray_type = (_tmp38_ = (ValaDataType*) vala_object_type_new ((ValaObjectTypeSymbol*) (_tmp37_ = VALA_CLASS (vala_scope_lookup (vala_symbol_get_scope (glib_ns), "ValueArray")))), _vala_code_node_unref0 (self->gvaluearray_type), _tmp38_);
1683
 
                _vala_code_node_unref0 (_tmp37_);
1684
 
                self->gerror_type = (_tmp39_ = VALA_CLASS (vala_scope_lookup (vala_symbol_get_scope (glib_ns), "Error")), _vala_code_node_unref0 (self->gerror_type), _tmp39_);
 
1766
                self->object_type = (_tmp29_ = VALA_CLASS (vala_scope_lookup (vala_symbol_get_scope (glib_ns), "Object")), _vala_code_node_unref0 (self->object_type), _tmp29_);
 
1767
                self->type_type = (_tmp31_ = (ValaDataType*) vala_integer_type_new (_tmp30_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (glib_ns), "Type")), NULL, NULL), _vala_code_node_unref0 (self->type_type), _tmp31_);
 
1768
                _vala_code_node_unref0 (_tmp30_);
 
1769
                self->gvalue_type = (_tmp33_ = vala_struct_value_type_new (_tmp32_ = VALA_STRUCT (vala_scope_lookup (vala_symbol_get_scope (glib_ns), "Value"))), _vala_code_node_unref0 (self->gvalue_type), _tmp33_);
 
1770
                _vala_code_node_unref0 (_tmp32_);
 
1771
                self->glist_type = (_tmp35_ = (ValaDataType*) vala_object_type_new ((ValaObjectTypeSymbol*) (_tmp34_ = VALA_CLASS (vala_scope_lookup (vala_symbol_get_scope (glib_ns), "List")))), _vala_code_node_unref0 (self->glist_type), _tmp35_);
 
1772
                _vala_code_node_unref0 (_tmp34_);
 
1773
                self->gslist_type = (_tmp37_ = (ValaDataType*) vala_object_type_new ((ValaObjectTypeSymbol*) (_tmp36_ = VALA_CLASS (vala_scope_lookup (vala_symbol_get_scope (glib_ns), "SList")))), _vala_code_node_unref0 (self->gslist_type), _tmp37_);
 
1774
                _vala_code_node_unref0 (_tmp36_);
 
1775
                self->garray_type = (_tmp39_ = (ValaDataType*) vala_object_type_new ((ValaObjectTypeSymbol*) (_tmp38_ = VALA_CLASS (vala_scope_lookup (vala_symbol_get_scope (glib_ns), "Array")))), _vala_code_node_unref0 (self->garray_type), _tmp39_);
 
1776
                _vala_code_node_unref0 (_tmp38_);
 
1777
                self->gvaluearray_type = (_tmp41_ = (ValaDataType*) vala_object_type_new ((ValaObjectTypeSymbol*) (_tmp40_ = VALA_CLASS (vala_scope_lookup (vala_symbol_get_scope (glib_ns), "ValueArray")))), _vala_code_node_unref0 (self->gvaluearray_type), _tmp41_);
 
1778
                _vala_code_node_unref0 (_tmp40_);
 
1779
                self->gerror_type = (_tmp42_ = VALA_CLASS (vala_scope_lookup (vala_symbol_get_scope (glib_ns), "Error")), _vala_code_node_unref0 (self->gerror_type), _tmp42_);
1685
1780
                _vala_code_node_unref0 (glib_ns);
 
1781
        } else {
 
1782
                if (vala_code_context_get_profile (context) == VALA_PROFILE_DOVA) {
 
1783
                        ValaSymbol* dova_ns;
 
1784
                        ValaClass* _tmp43_;
 
1785
                        ValaDataType* _tmp45_;
 
1786
                        ValaClass* _tmp44_;
 
1787
                        ValaDataType* _tmp47_;
 
1788
                        ValaClass* _tmp46_;
 
1789
                        ValaDataType* _tmp49_;
 
1790
                        ValaClass* _tmp48_;
 
1791
                        dova_ns = vala_scope_lookup (vala_symbol_get_scope (self->root_symbol), "Dova");
 
1792
                        self->object_type = (_tmp43_ = VALA_CLASS (vala_scope_lookup (vala_symbol_get_scope (dova_ns), "Object")), _vala_code_node_unref0 (self->object_type), _tmp43_);
 
1793
                        self->type_type = (_tmp45_ = (ValaDataType*) vala_object_type_new ((ValaObjectTypeSymbol*) (_tmp44_ = VALA_CLASS (vala_scope_lookup (vala_symbol_get_scope (dova_ns), "Type")))), _vala_code_node_unref0 (self->type_type), _tmp45_);
 
1794
                        _vala_code_node_unref0 (_tmp44_);
 
1795
                        self->list_type = (_tmp47_ = (ValaDataType*) vala_object_type_new ((ValaObjectTypeSymbol*) (_tmp46_ = VALA_CLASS (vala_scope_lookup (vala_symbol_get_scope (dova_ns), "List")))), _vala_code_node_unref0 (self->list_type), _tmp47_);
 
1796
                        _vala_code_node_unref0 (_tmp46_);
 
1797
                        self->tuple_type = (_tmp49_ = (ValaDataType*) vala_object_type_new ((ValaObjectTypeSymbol*) (_tmp48_ = VALA_CLASS (vala_scope_lookup (vala_symbol_get_scope (dova_ns), "Tuple")))), _vala_code_node_unref0 (self->tuple_type), _tmp49_);
 
1798
                        _vala_code_node_unref0 (_tmp48_);
 
1799
                        _vala_code_node_unref0 (dova_ns);
 
1800
                }
1686
1801
        }
1687
1802
        vala_semantic_analyzer_set_current_symbol (self, self->root_symbol);
1688
1803
        vala_code_node_check ((ValaCodeNode*) vala_code_context_get_root (context), self);
1703
1818
 
1704
1819
 
1705
1820
gboolean vala_semantic_analyzer_is_type_accessible (ValaSemanticAnalyzer* self, ValaSymbol* sym, ValaDataType* type) {
1706
 
        gboolean result;
 
1821
        gboolean result = FALSE;
1707
1822
        g_return_val_if_fail (self != NULL, FALSE);
1708
1823
        g_return_val_if_fail (sym != NULL, FALSE);
1709
1824
        g_return_val_if_fail (type != NULL, FALSE);
1760
1875
 
1761
1876
 
1762
1877
ValaDataType* vala_semantic_analyzer_get_value_type_for_symbol (ValaSemanticAnalyzer* self, ValaSymbol* sym, gboolean lvalue) {
1763
 
        ValaDataType* result;
 
1878
        ValaDataType* result = NULL;
1764
1879
        g_return_val_if_fail (self != NULL, NULL);
1765
1880
        g_return_val_if_fail (sym != NULL, NULL);
1766
1881
        if (VALA_IS_FIELD (sym)) {
1867
1982
 
1868
1983
 
1869
1984
ValaSymbol* vala_semantic_analyzer_symbol_lookup_inherited (ValaSymbol* sym, const char* name) {
1870
 
        ValaSymbol* result;
 
1985
        ValaSymbol* result = NULL;
1871
1986
        ValaSymbol* _result_;
1872
1987
        g_return_val_if_fail (sym != NULL, NULL);
1873
1988
        g_return_val_if_fail (name != NULL, NULL);
1993
2108
 
1994
2109
 
1995
2110
ValaDataType* vala_semantic_analyzer_get_data_type_for_symbol (ValaTypeSymbol* sym) {
1996
 
        ValaDataType* result;
 
2111
        ValaDataType* result = NULL;
1997
2112
        ValaDataType* type;
1998
2113
        g_return_val_if_fail (sym != NULL, NULL);
1999
2114
        type = NULL;
2054
2169
 
2055
2170
 
2056
2171
gboolean vala_semantic_analyzer_check_arguments (ValaSemanticAnalyzer* self, ValaExpression* expr, ValaDataType* mtype, ValaList* params, ValaList* args) {
2057
 
        gboolean result;
 
2172
        gboolean result = FALSE;
2058
2173
        ValaExpression* prev_arg;
2059
2174
        ValaIterator* arg_it;
2060
2175
        gboolean _tmp0_ = FALSE;
2309
2424
 
2310
2425
 
2311
2426
static gboolean vala_semantic_analyzer_check_argument (ValaSemanticAnalyzer* self, ValaExpression* arg, gint i, ValaParameterDirection direction) {
2312
 
        gboolean result;
 
2427
        gboolean result = FALSE;
 
2428
        ValaExpression* _tmp23_;
 
2429
        ValaMemberAccess* ma;
 
2430
        gboolean _tmp24_ = FALSE;
2313
2431
        g_return_val_if_fail (self != NULL, FALSE);
2314
2432
        g_return_val_if_fail (arg != NULL, FALSE);
2315
2433
        if (vala_code_node_get_error ((ValaCodeNode*) arg)) {
2500
2618
                        }
2501
2619
                }
2502
2620
        }
 
2621
        ma = _vala_code_node_ref0 ((_tmp23_ = arg, VALA_IS_MEMBER_ACCESS (_tmp23_) ? ((ValaMemberAccess*) _tmp23_) : NULL));
 
2622
        if (ma != NULL) {
 
2623
                _tmp24_ = vala_member_access_get_prototype_access (ma);
 
2624
        } else {
 
2625
                _tmp24_ = FALSE;
 
2626
        }
 
2627
        if (_tmp24_) {
 
2628
                ValaDataType* _tmp25_;
 
2629
                ValaDelegateType* deleg_type;
 
2630
                gboolean _tmp26_ = FALSE;
 
2631
                deleg_type = _vala_code_node_ref0 ((_tmp25_ = vala_expression_get_target_type (arg), VALA_IS_DELEGATE_TYPE (_tmp25_) ? ((ValaDelegateType*) _tmp25_) : NULL));
 
2632
                if (deleg_type == NULL) {
 
2633
                        _tmp26_ = TRUE;
 
2634
                } else {
 
2635
                        _tmp26_ = vala_delegate_get_has_target (vala_delegate_type_get_delegate_symbol (deleg_type));
 
2636
                }
 
2637
                if (_tmp26_) {
 
2638
                        char* _tmp28_;
 
2639
                        char* _tmp27_;
 
2640
                        vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) arg), _tmp28_ = g_strdup_printf ("Access to instance member `%s' denied", _tmp27_ = vala_symbol_get_full_name (vala_expression_get_symbol_reference (arg))));
 
2641
                        _g_free0 (_tmp28_);
 
2642
                        _g_free0 (_tmp27_);
 
2643
                }
 
2644
                result = FALSE;
 
2645
                _vala_code_node_unref0 (deleg_type);
 
2646
                _vala_code_node_unref0 (ma);
 
2647
                return result;
 
2648
        }
2503
2649
        result = TRUE;
 
2650
        _vala_code_node_unref0 (ma);
2504
2651
        return result;
2505
2652
}
2506
2653
 
2507
2654
 
2508
2655
static ValaDataType* vala_semantic_analyzer_get_instance_base_type (ValaDataType* instance_type, ValaDataType* base_type, ValaCodeNode* node_reference) {
2509
 
        ValaDataType* result;
 
2656
        ValaDataType* result = NULL;
2510
2657
        ValaReferenceType* instance_base_type;
2511
2658
        g_return_val_if_fail (instance_type != NULL, NULL);
2512
2659
        g_return_val_if_fail (base_type != NULL, NULL);
2543
2690
 
2544
2691
 
2545
2692
static ValaDataType* vala_semantic_analyzer_get_instance_base_type_for_member (ValaDataType* derived_instance_type, ValaTypeSymbol* type_symbol, ValaCodeNode* node_reference) {
2546
 
        ValaDataType* result;
 
2693
        ValaDataType* result = NULL;
2547
2694
        ValaDataType* instance_type;
2548
2695
        ValaDataType* instance_base_type;
2549
2696
        g_return_val_if_fail (derived_instance_type != NULL, NULL);
2722
2869
 
2723
2870
 
2724
2871
ValaDataType* vala_semantic_analyzer_get_actual_type (ValaDataType* derived_instance_type, ValaMemberAccess* method_access, ValaGenericType* generic_type, ValaCodeNode* node_reference) {
2725
 
        ValaDataType* result;
 
2872
        ValaDataType* result = NULL;
2726
2873
        ValaDataType* actual_type;
2727
2874
        ValaDataType* _tmp10_;
2728
2875
        gboolean _tmp11_ = FALSE;
2805
2952
 
2806
2953
 
2807
2954
gboolean vala_semantic_analyzer_is_in_instance_method (ValaSemanticAnalyzer* self) {
2808
 
        gboolean result;
 
2955
        gboolean result = FALSE;
2809
2956
        ValaSymbol* sym;
2810
2957
        g_return_val_if_fail (self != NULL, FALSE);
2811
2958
        sym = _vala_code_node_ref0 (self->priv->_current_symbol);
2946
3093
 
2947
3094
 
2948
3095
static ValaStruct* vala_semantic_analyzer_get_arithmetic_struct (ValaSemanticAnalyzer* self, ValaDataType* type) {
2949
 
        ValaStruct* result;
 
3096
        ValaStruct* result = NULL;
2950
3097
        ValaTypeSymbol* _tmp0_;
2951
3098
        ValaStruct* _result_;
2952
3099
        gboolean _tmp1_ = FALSE;
2969
3116
 
2970
3117
 
2971
3118
ValaDataType* vala_semantic_analyzer_get_arithmetic_result_type (ValaSemanticAnalyzer* self, ValaDataType* left_type, ValaDataType* right_type) {
2972
 
        ValaDataType* result;
 
3119
        ValaDataType* result = NULL;
2973
3120
        ValaStruct* left;
2974
3121
        ValaStruct* right;
2975
3122
        gboolean _tmp0_ = FALSE;
3044
3191
 
3045
3192
 
3046
3193
ValaMethod* vala_semantic_analyzer_find_current_method (ValaSemanticAnalyzer* self) {
3047
 
        ValaMethod* result;
 
3194
        ValaMethod* result = NULL;
3048
3195
        ValaSymbol* sym;
3049
3196
        g_return_val_if_fail (self != NULL, NULL);
3050
3197
        sym = _vala_code_node_ref0 (self->priv->_current_symbol);
3067
3214
 
3068
3215
 
3069
3216
ValaMethod* vala_semantic_analyzer_find_parent_method (ValaSemanticAnalyzer* self, ValaSymbol* sym) {
3070
 
        ValaMethod* result;
 
3217
        ValaMethod* result = NULL;
3071
3218
        ValaSymbol* _tmp0_;
3072
3219
        g_return_val_if_fail (self != NULL, NULL);
3073
3220
        g_return_val_if_fail (sym != NULL, NULL);
3082
3229
}
3083
3230
 
3084
3231
 
 
3232
ValaSymbol* vala_semantic_analyzer_find_parent_method_or_property_accessor (ValaSemanticAnalyzer* self, ValaSymbol* sym) {
 
3233
        ValaSymbol* result = NULL;
 
3234
        g_return_val_if_fail (self != NULL, NULL);
 
3235
        g_return_val_if_fail (sym != NULL, NULL);
 
3236
        while (TRUE) {
 
3237
                if (!VALA_IS_BLOCK (sym)) {
 
3238
                        break;
 
3239
                }
 
3240
                sym = vala_symbol_get_parent_symbol (sym);
 
3241
        }
 
3242
        if (VALA_IS_METHOD (sym)) {
 
3243
                result = _vala_code_node_ref0 (sym);
 
3244
                return result;
 
3245
        } else {
 
3246
                if (VALA_IS_PROPERTY_ACCESSOR (sym)) {
 
3247
                        result = _vala_code_node_ref0 (sym);
 
3248
                        return result;
 
3249
                } else {
 
3250
                        result = NULL;
 
3251
                        return result;
 
3252
                }
 
3253
        }
 
3254
}
 
3255
 
 
3256
 
3085
3257
gboolean vala_semantic_analyzer_is_in_constructor (ValaSemanticAnalyzer* self) {
3086
 
        gboolean result;
 
3258
        gboolean result = FALSE;
3087
3259
        ValaSymbol* sym;
3088
3260
        g_return_val_if_fail (self != NULL, FALSE);
3089
3261
        sym = _vala_code_node_ref0 (self->priv->_current_symbol);
3204
3376
ValaMethod* vala_semantic_analyzer_get_current_method (ValaSemanticAnalyzer* self) {
3205
3377
        ValaMethod* result;
3206
3378
        ValaSymbol* sym;
3207
 
        ValaSymbol* _tmp1_;
 
3379
        ValaSymbol* _tmp0_;
3208
3380
        g_return_val_if_fail (self != NULL, NULL);
3209
 
        sym = _vala_code_node_ref0 (self->priv->_current_symbol);
 
3381
        sym = self->priv->_current_symbol;
3210
3382
        while (TRUE) {
3211
 
                ValaSymbol* _tmp0_;
3212
3383
                if (!VALA_IS_BLOCK (sym)) {
3213
3384
                        break;
3214
3385
                }
3215
 
                sym = (_tmp0_ = _vala_code_node_ref0 (vala_symbol_get_parent_symbol (sym)), _vala_code_node_unref0 (sym), _tmp0_);
 
3386
                sym = vala_symbol_get_parent_symbol (sym);
3216
3387
        }
3217
 
        result = (_tmp1_ = sym, VALA_IS_METHOD (_tmp1_) ? ((ValaMethod*) _tmp1_) : NULL);
3218
 
        _vala_code_node_unref0 (sym);
 
3388
        result = (_tmp0_ = sym, VALA_IS_METHOD (_tmp0_) ? ((ValaMethod*) _tmp0_) : NULL);
3219
3389
        return result;
3220
 
        _vala_code_node_unref0 (sym);
3221
3390
}
3222
3391
 
3223
3392
 
3224
3393
ValaMethod* vala_semantic_analyzer_get_current_async_method (ValaSemanticAnalyzer* self) {
3225
3394
        ValaMethod* result;
3226
3395
        ValaSymbol* sym;
3227
 
        ValaSymbol* _tmp4_;
 
3396
        ValaSymbol* _tmp3_;
3228
3397
        g_return_val_if_fail (self != NULL, NULL);
3229
 
        sym = _vala_code_node_ref0 (self->priv->_current_symbol);
 
3398
        sym = self->priv->_current_symbol;
3230
3399
        while (TRUE) {
3231
3400
                gboolean _tmp0_ = FALSE;
3232
3401
                ValaSymbol* _tmp1_;
3233
3402
                ValaMethod* m;
3234
3403
                gboolean _tmp2_ = FALSE;
3235
 
                ValaSymbol* _tmp3_;
3236
3404
                if (VALA_IS_BLOCK (sym)) {
3237
3405
                        _tmp0_ = TRUE;
3238
3406
                } else {
3251
3419
                        _vala_code_node_unref0 (m);
3252
3420
                        break;
3253
3421
                }
3254
 
                sym = (_tmp3_ = _vala_code_node_ref0 (vala_symbol_get_parent_symbol (sym)), _vala_code_node_unref0 (sym), _tmp3_);
 
3422
                sym = vala_symbol_get_parent_symbol (sym);
3255
3423
                _vala_code_node_unref0 (m);
3256
3424
        }
3257
 
        result = (_tmp4_ = sym, VALA_IS_METHOD (_tmp4_) ? ((ValaMethod*) _tmp4_) : NULL);
3258
 
        _vala_code_node_unref0 (sym);
 
3425
        result = (_tmp3_ = sym, VALA_IS_METHOD (_tmp3_) ? ((ValaMethod*) _tmp3_) : NULL);
3259
3426
        return result;
3260
 
        _vala_code_node_unref0 (sym);
3261
3427
}
3262
3428
 
3263
3429
 
3264
3430
ValaPropertyAccessor* vala_semantic_analyzer_get_current_property_accessor (ValaSemanticAnalyzer* self) {
3265
3431
        ValaPropertyAccessor* result;
3266
3432
        ValaSymbol* sym;
3267
 
        ValaSymbol* _tmp1_;
 
3433
        ValaSymbol* _tmp0_;
3268
3434
        g_return_val_if_fail (self != NULL, NULL);
3269
 
        sym = _vala_code_node_ref0 (self->priv->_current_symbol);
 
3435
        sym = self->priv->_current_symbol;
3270
3436
        while (TRUE) {
3271
 
                ValaSymbol* _tmp0_;
3272
3437
                if (!VALA_IS_BLOCK (sym)) {
3273
3438
                        break;
3274
3439
                }
3275
 
                sym = (_tmp0_ = _vala_code_node_ref0 (vala_symbol_get_parent_symbol (sym)), _vala_code_node_unref0 (sym), _tmp0_);
 
3440
                sym = vala_symbol_get_parent_symbol (sym);
3276
3441
        }
3277
 
        result = (_tmp1_ = sym, VALA_IS_PROPERTY_ACCESSOR (_tmp1_) ? ((ValaPropertyAccessor*) _tmp1_) : NULL);
3278
 
        _vala_code_node_unref0 (sym);
 
3442
        result = (_tmp0_ = sym, VALA_IS_PROPERTY_ACCESSOR (_tmp0_) ? ((ValaPropertyAccessor*) _tmp0_) : NULL);
3279
3443
        return result;
3280
 
        _vala_code_node_unref0 (sym);
 
3444
}
 
3445
 
 
3446
 
 
3447
ValaSymbol* vala_semantic_analyzer_get_current_method_or_property_accessor (ValaSemanticAnalyzer* self) {
 
3448
        ValaSymbol* result;
 
3449
        ValaSymbol* sym;
 
3450
        g_return_val_if_fail (self != NULL, NULL);
 
3451
        sym = self->priv->_current_symbol;
 
3452
        while (TRUE) {
 
3453
                if (!VALA_IS_BLOCK (sym)) {
 
3454
                        break;
 
3455
                }
 
3456
                sym = vala_symbol_get_parent_symbol (sym);
 
3457
        }
 
3458
        if (VALA_IS_METHOD (sym)) {
 
3459
                result = sym;
 
3460
                return result;
 
3461
        } else {
 
3462
                if (VALA_IS_PROPERTY_ACCESSOR (sym)) {
 
3463
                        result = sym;
 
3464
                        return result;
 
3465
                } else {
 
3466
                        result = NULL;
 
3467
                        return result;
 
3468
                }
 
3469
        }
3281
3470
}
3282
3471
 
3283
3472
 
3340
3529
        _vala_code_node_unref0 (self->void_type);
3341
3530
        _vala_code_node_unref0 (self->bool_type);
3342
3531
        _vala_code_node_unref0 (self->string_type);
 
3532
        _vala_code_node_unref0 (self->regex_type);
3343
3533
        _vala_code_node_unref0 (self->uchar_type);
3344
3534
        _vala_code_node_unref0 (self->short_type);
3345
3535
        _vala_code_node_unref0 (self->ushort_type);
3360
3550
        _vala_code_node_unref0 (self->garray_type);
3361
3551
        _vala_code_node_unref0 (self->gvaluearray_type);
3362
3552
        _vala_code_node_unref0 (self->gerror_type);
 
3553
        _vala_code_node_unref0 (self->list_type);
 
3554
        _vala_code_node_unref0 (self->tuple_type);
3363
3555
        _vala_collection_object_unref0 (self->replaced_nodes);
3364
3556
        VALA_CODE_VISITOR_CLASS (vala_semantic_analyzer_parent_class)->finalize (obj);
3365
3557
}
3366
3558
 
3367
3559
 
3368
3560
GType vala_semantic_analyzer_get_type (void) {
3369
 
        static GType vala_semantic_analyzer_type_id = 0;
3370
 
        if (vala_semantic_analyzer_type_id == 0) {
 
3561
        static volatile gsize vala_semantic_analyzer_type_id__volatile = 0;
 
3562
        if (g_once_init_enter (&vala_semantic_analyzer_type_id__volatile)) {
3371
3563
                static const GTypeInfo g_define_type_info = { sizeof (ValaSemanticAnalyzerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_semantic_analyzer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaSemanticAnalyzer), 0, (GInstanceInitFunc) vala_semantic_analyzer_instance_init, NULL };
 
3564
                GType vala_semantic_analyzer_type_id;
3372
3565
                vala_semantic_analyzer_type_id = g_type_register_static (VALA_TYPE_CODE_VISITOR, "ValaSemanticAnalyzer", &g_define_type_info, 0);
 
3566
                g_once_init_leave (&vala_semantic_analyzer_type_id__volatile, vala_semantic_analyzer_type_id);
3373
3567
        }
3374
 
        return vala_semantic_analyzer_type_id;
 
3568
        return vala_semantic_analyzer_type_id__volatile;
3375
3569
}
3376
3570
 
3377
3571