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

« back to all changes in this revision

Viewing changes to vala/valaconstant.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:
646
646
typedef struct _ValaLockStatement ValaLockStatement;
647
647
typedef struct _ValaLockStatementClass ValaLockStatementClass;
648
648
 
 
649
#define VALA_TYPE_UNLOCK_STATEMENT (vala_unlock_statement_get_type ())
 
650
#define VALA_UNLOCK_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_UNLOCK_STATEMENT, ValaUnlockStatement))
 
651
#define VALA_UNLOCK_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_UNLOCK_STATEMENT, ValaUnlockStatementClass))
 
652
#define VALA_IS_UNLOCK_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_UNLOCK_STATEMENT))
 
653
#define VALA_IS_UNLOCK_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_UNLOCK_STATEMENT))
 
654
#define VALA_UNLOCK_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_UNLOCK_STATEMENT, ValaUnlockStatementClass))
 
655
 
 
656
typedef struct _ValaUnlockStatement ValaUnlockStatement;
 
657
typedef struct _ValaUnlockStatementClass ValaUnlockStatementClass;
 
658
 
649
659
#define VALA_TYPE_DELETE_STATEMENT (vala_delete_statement_get_type ())
650
660
#define VALA_DELETE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DELETE_STATEMENT, ValaDeleteStatement))
651
661
#define VALA_DELETE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DELETE_STATEMENT, ValaDeleteStatementClass))
716
726
typedef struct _ValaRealLiteral ValaRealLiteral;
717
727
typedef struct _ValaRealLiteralClass ValaRealLiteralClass;
718
728
 
 
729
#define VALA_TYPE_REGEX_LITERAL (vala_regex_literal_get_type ())
 
730
#define VALA_REGEX_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_REGEX_LITERAL, ValaRegexLiteral))
 
731
#define VALA_REGEX_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_REGEX_LITERAL, ValaRegexLiteralClass))
 
732
#define VALA_IS_REGEX_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_REGEX_LITERAL))
 
733
#define VALA_IS_REGEX_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_REGEX_LITERAL))
 
734
#define VALA_REGEX_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_REGEX_LITERAL, ValaRegexLiteralClass))
 
735
 
 
736
typedef struct _ValaRegexLiteral ValaRegexLiteral;
 
737
typedef struct _ValaRegexLiteralClass ValaRegexLiteralClass;
 
738
 
719
739
#define VALA_TYPE_STRING_LITERAL (vala_string_literal_get_type ())
720
740
#define VALA_STRING_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_STRING_LITERAL, ValaStringLiteral))
721
741
#define VALA_STRING_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_STRING_LITERAL, ValaStringLiteralClass))
736
756
typedef struct _ValaTemplate ValaTemplate;
737
757
typedef struct _ValaTemplateClass ValaTemplateClass;
738
758
 
 
759
#define VALA_TYPE_LIST_LITERAL (vala_list_literal_get_type ())
 
760
#define VALA_LIST_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_LIST_LITERAL, ValaListLiteral))
 
761
#define VALA_LIST_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_LIST_LITERAL, ValaListLiteralClass))
 
762
#define VALA_IS_LIST_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_LIST_LITERAL))
 
763
#define VALA_IS_LIST_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_LIST_LITERAL))
 
764
#define VALA_LIST_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_LIST_LITERAL, ValaListLiteralClass))
 
765
 
 
766
typedef struct _ValaListLiteral ValaListLiteral;
 
767
typedef struct _ValaListLiteralClass ValaListLiteralClass;
 
768
 
 
769
#define VALA_TYPE_SET_LITERAL (vala_set_literal_get_type ())
 
770
#define VALA_SET_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SET_LITERAL, ValaSetLiteral))
 
771
#define VALA_SET_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SET_LITERAL, ValaSetLiteralClass))
 
772
#define VALA_IS_SET_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SET_LITERAL))
 
773
#define VALA_IS_SET_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SET_LITERAL))
 
774
#define VALA_SET_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SET_LITERAL, ValaSetLiteralClass))
 
775
 
 
776
typedef struct _ValaSetLiteral ValaSetLiteral;
 
777
typedef struct _ValaSetLiteralClass ValaSetLiteralClass;
 
778
 
 
779
#define VALA_TYPE_MAP_LITERAL (vala_map_literal_get_type ())
 
780
#define VALA_MAP_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_MAP_LITERAL, ValaMapLiteral))
 
781
#define VALA_MAP_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_MAP_LITERAL, ValaMapLiteralClass))
 
782
#define VALA_IS_MAP_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_MAP_LITERAL))
 
783
#define VALA_IS_MAP_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_MAP_LITERAL))
 
784
#define VALA_MAP_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_MAP_LITERAL, ValaMapLiteralClass))
 
785
 
 
786
typedef struct _ValaMapLiteral ValaMapLiteral;
 
787
typedef struct _ValaMapLiteralClass ValaMapLiteralClass;
 
788
 
 
789
#define VALA_TYPE_TUPLE (vala_tuple_get_type ())
 
790
#define VALA_TUPLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_TUPLE, ValaTuple))
 
791
#define VALA_TUPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_TUPLE, ValaTupleClass))
 
792
#define VALA_IS_TUPLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_TUPLE))
 
793
#define VALA_IS_TUPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_TUPLE))
 
794
#define VALA_TUPLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_TUPLE, ValaTupleClass))
 
795
 
 
796
typedef struct _ValaTuple ValaTuple;
 
797
typedef struct _ValaTupleClass ValaTupleClass;
 
798
 
739
799
#define VALA_TYPE_NULL_LITERAL (vala_null_literal_get_type ())
740
800
#define VALA_NULL_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_NULL_LITERAL, ValaNullLiteral))
741
801
#define VALA_NULL_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_NULL_LITERAL, ValaNullLiteralClass))
1079
1139
        void (*visit_try_statement) (ValaCodeVisitor* self, ValaTryStatement* stmt);
1080
1140
        void (*visit_catch_clause) (ValaCodeVisitor* self, ValaCatchClause* clause);
1081
1141
        void (*visit_lock_statement) (ValaCodeVisitor* self, ValaLockStatement* stmt);
 
1142
        void (*visit_unlock_statement) (ValaCodeVisitor* self, ValaUnlockStatement* stmt);
1082
1143
        void (*visit_delete_statement) (ValaCodeVisitor* self, ValaDeleteStatement* stmt);
1083
1144
        void (*visit_expression) (ValaCodeVisitor* self, ValaExpression* expr);
1084
1145
        void (*visit_array_creation_expression) (ValaCodeVisitor* self, ValaArrayCreationExpression* expr);
1086
1147
        void (*visit_character_literal) (ValaCodeVisitor* self, ValaCharacterLiteral* lit);
1087
1148
        void (*visit_integer_literal) (ValaCodeVisitor* self, ValaIntegerLiteral* lit);
1088
1149
        void (*visit_real_literal) (ValaCodeVisitor* self, ValaRealLiteral* lit);
 
1150
        void (*visit_regex_literal) (ValaCodeVisitor* self, ValaRegexLiteral* lit);
1089
1151
        void (*visit_string_literal) (ValaCodeVisitor* self, ValaStringLiteral* lit);
1090
1152
        void (*visit_template) (ValaCodeVisitor* self, ValaTemplate* tmpl);
 
1153
        void (*visit_list_literal) (ValaCodeVisitor* self, ValaListLiteral* lit);
 
1154
        void (*visit_set_literal) (ValaCodeVisitor* self, ValaSetLiteral* lit);
 
1155
        void (*visit_map_literal) (ValaCodeVisitor* self, ValaMapLiteral* lit);
 
1156
        void (*visit_tuple) (ValaCodeVisitor* self, ValaTuple* tuple);
1091
1157
        void (*visit_null_literal) (ValaCodeVisitor* self, ValaNullLiteral* lit);
1092
1158
        void (*visit_member_access) (ValaCodeVisitor* self, ValaMemberAccess* expr);
1093
1159
        void (*visit_method_call) (ValaCodeVisitor* self, ValaMethodCall* expr);
1120
1186
        ValaDataType* void_type;
1121
1187
        ValaDataType* bool_type;
1122
1188
        ValaDataType* string_type;
 
1189
        ValaDataType* regex_type;
1123
1190
        ValaDataType* uchar_type;
1124
1191
        ValaDataType* short_type;
1125
1192
        ValaDataType* ushort_type;
1140
1207
        ValaDataType* garray_type;
1141
1208
        ValaDataType* gvaluearray_type;
1142
1209
        ValaClass* gerror_type;
 
1210
        ValaDataType* list_type;
 
1211
        ValaDataType* tuple_type;
1143
1212
        gint next_lambda_id;
1144
1213
        ValaList* replaced_nodes;
1145
1214
};
1156
1225
void vala_code_node_unref (gpointer instance);
1157
1226
GParamSpec* vala_param_spec_code_node (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1158
1227
void vala_value_set_code_node (GValue* value, gpointer v_object);
 
1228
void vala_value_take_code_node (GValue* value, gpointer v_object);
1159
1229
gpointer vala_value_get_code_node (const GValue* value);
1160
1230
GType vala_code_node_get_type (void);
1161
1231
gpointer vala_code_visitor_ref (gpointer instance);
1162
1232
void vala_code_visitor_unref (gpointer instance);
1163
1233
GParamSpec* vala_param_spec_code_visitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1164
1234
void vala_value_set_code_visitor (GValue* value, gpointer v_object);
 
1235
void vala_value_take_code_visitor (GValue* value, gpointer v_object);
1165
1236
gpointer vala_value_get_code_visitor (const GValue* value);
1166
1237
GType vala_code_visitor_get_type (void);
1167
1238
GType vala_semantic_analyzer_get_type (void);
1181
1252
void vala_source_reference_unref (gpointer instance);
1182
1253
GParamSpec* vala_param_spec_source_reference (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1183
1254
void vala_value_set_source_reference (GValue* value, gpointer v_object);
 
1255
void vala_value_take_source_reference (GValue* value, gpointer v_object);
1184
1256
gpointer vala_value_get_source_reference (const GValue* value);
1185
1257
GType vala_source_reference_get_type (void);
1186
1258
gpointer vala_comment_ref (gpointer instance);
1187
1259
void vala_comment_unref (gpointer instance);
1188
1260
GParamSpec* vala_param_spec_comment (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1189
1261
void vala_value_set_comment (GValue* value, gpointer v_object);
 
1262
void vala_value_take_comment (GValue* value, gpointer v_object);
1190
1263
gpointer vala_value_get_comment (const GValue* value);
1191
1264
GType vala_comment_get_type (void);
1192
1265
ValaMember* vala_member_construct (GType object_type, const char* name, ValaSourceReference* source_reference, ValaComment* comment);
1222
1295
void vala_source_file_unref (gpointer instance);
1223
1296
GParamSpec* vala_param_spec_source_file (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1224
1297
void vala_value_set_source_file (GValue* value, gpointer v_object);
 
1298
void vala_value_take_source_file (GValue* value, gpointer v_object);
1225
1299
gpointer vala_value_get_source_file (const GValue* value);
1226
1300
GType vala_source_file_get_type (void);
1227
1301
ValaSourceFile* vala_semantic_analyzer_get_current_source_file (ValaSemanticAnalyzer* self);
1294
1368
GType vala_try_statement_get_type (void);
1295
1369
GType vala_catch_clause_get_type (void);
1296
1370
GType vala_lock_statement_get_type (void);
 
1371
GType vala_unlock_statement_get_type (void);
1297
1372
GType vala_delete_statement_get_type (void);
1298
1373
GType vala_array_creation_expression_get_type (void);
1299
1374
GType vala_literal_get_type (void);
1301
1376
GType vala_character_literal_get_type (void);
1302
1377
GType vala_integer_literal_get_type (void);
1303
1378
GType vala_real_literal_get_type (void);
 
1379
GType vala_regex_literal_get_type (void);
1304
1380
GType vala_string_literal_get_type (void);
1305
1381
GType vala_template_get_type (void);
 
1382
GType vala_list_literal_get_type (void);
 
1383
GType vala_set_literal_get_type (void);
 
1384
GType vala_map_literal_get_type (void);
 
1385
GType vala_tuple_get_type (void);
1306
1386
GType vala_null_literal_get_type (void);
1307
1387
GType vala_member_access_get_type (void);
1308
1388
GType vala_method_call_get_type (void);
1371
1451
 
1372
1452
 
1373
1453
char* vala_constant_get_cname (ValaConstant* self) {
1374
 
        char* result;
 
1454
        char* result = NULL;
1375
1455
        g_return_val_if_fail (self != NULL, NULL);
1376
1456
        if (self->priv->cname == NULL) {
1377
1457
                char* _tmp0_;
1383
1463
 
1384
1464
 
1385
1465
char* vala_constant_get_default_cname (ValaConstant* self) {
1386
 
        char* result;
 
1466
        char* result = NULL;
1387
1467
        g_return_val_if_fail (self != NULL, NULL);
1388
1468
        if (vala_symbol_get_parent_symbol ((ValaSymbol*) self) == NULL) {
1389
1469
                result = g_strdup (vala_symbol_get_name ((ValaSymbol*) self));
1400
1480
 
1401
1481
static gboolean vala_constant_real_get_lock_used (ValaLockable* base) {
1402
1482
        ValaConstant * self;
1403
 
        gboolean result;
 
1483
        gboolean result = FALSE;
1404
1484
        self = (ValaConstant*) base;
1405
1485
        result = self->priv->lock_used;
1406
1486
        return result;
1489
1569
 
1490
1570
static gboolean vala_constant_real_check (ValaCodeNode* base, ValaSemanticAnalyzer* analyzer) {
1491
1571
        ValaConstant * self;
1492
 
        gboolean result;
 
1572
        gboolean result = FALSE;
1493
1573
        ValaSourceFile* old_source_file;
1494
1574
        ValaSymbol* old_symbol;
1495
1575
        gboolean _tmp5_ = FALSE;
1566
1646
                char* _tmp10_;
1567
1647
                ValaSymbol* _tmp9_;
1568
1648
                char* _tmp8_;
1569
 
                vala_report_warning (vala_code_node_get_source_reference ((ValaCodeNode*) self), _tmp11_ = g_strdup_printf ("%s hides inherited constant `%s'. Use the `new' keyword if hiding was intentional", _tmp8_ = vala_symbol_get_full_name ((ValaSymbol*) self), _tmp10_ = vala_symbol_get_full_name (_tmp9_ = vala_member_get_hidden_member ((ValaMember*) self))));
 
1649
                vala_report_warning (vala_code_node_get_source_reference ((ValaCodeNode*) self), _tmp11_ = g_strdup_printf ("%s hides inherited constant `%s'. Use the `new' keyword if hiding was " \
 
1650
"intentional", _tmp8_ = vala_symbol_get_full_name ((ValaSymbol*) self), _tmp10_ = vala_symbol_get_full_name (_tmp9_ = vala_member_get_hidden_member ((ValaMember*) self))));
1570
1651
                _g_free0 (_tmp11_);
1571
1652
                _g_free0 (_tmp10_);
1572
1653
                _vala_code_node_unref0 (_tmp9_);
1582
1663
 
1583
1664
 
1584
1665
static gboolean vala_constant_check_const_type (ValaConstant* self, ValaDataType* type, ValaSemanticAnalyzer* analyzer) {
1585
 
        gboolean result;
 
1666
        gboolean result = FALSE;
1586
1667
        g_return_val_if_fail (self != NULL, FALSE);
1587
1668
        g_return_val_if_fail (type != NULL, FALSE);
1588
1669
        g_return_val_if_fail (analyzer != NULL, FALSE);
1679
1760
 
1680
1761
 
1681
1762
GType vala_constant_get_type (void) {
1682
 
        static GType vala_constant_type_id = 0;
1683
 
        if (vala_constant_type_id == 0) {
 
1763
        static volatile gsize vala_constant_type_id__volatile = 0;
 
1764
        if (g_once_init_enter (&vala_constant_type_id__volatile)) {
1684
1765
                static const GTypeInfo g_define_type_info = { sizeof (ValaConstantClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_constant_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaConstant), 0, (GInstanceInitFunc) vala_constant_instance_init, NULL };
1685
1766
                static const GInterfaceInfo vala_lockable_info = { (GInterfaceInitFunc) vala_constant_vala_lockable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
 
1767
                GType vala_constant_type_id;
1686
1768
                vala_constant_type_id = g_type_register_static (VALA_TYPE_MEMBER, "ValaConstant", &g_define_type_info, 0);
1687
1769
                g_type_add_interface_static (vala_constant_type_id, VALA_TYPE_LOCKABLE, &vala_lockable_info);
 
1770
                g_once_init_leave (&vala_constant_type_id__volatile, vala_constant_type_id);
1688
1771
        }
1689
 
        return vala_constant_type_id;
 
1772
        return vala_constant_type_id__volatile;
1690
1773
}
1691
1774
 
1692
1775