~ubuntu-branches/ubuntu/vivid/vala/vivid

« back to all changes in this revision

Viewing changes to vala/valacodewriter.c

  • Committer: Bazaar Package Importer
  • Author(s): Sebastian Dröge
  • Date: 2010-07-28 07:58:01 UTC
  • mfrom: (1.5.5 upstream) (7.3.14 experimental)
  • Revision ID: james.westby@ubuntu.com-20100728075801-18u9cg5hv5oety6m
Tags: 0.9.4-1
New upstream development release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
147
147
typedef struct _ValaEnum ValaEnum;
148
148
typedef struct _ValaEnumClass ValaEnumClass;
149
149
 
 
150
#define VALA_TYPE_CONSTANT (vala_constant_get_type ())
 
151
#define VALA_CONSTANT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CONSTANT, ValaConstant))
 
152
#define VALA_CONSTANT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CONSTANT, ValaConstantClass))
 
153
#define VALA_IS_CONSTANT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CONSTANT))
 
154
#define VALA_IS_CONSTANT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CONSTANT))
 
155
#define VALA_CONSTANT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CONSTANT, ValaConstantClass))
 
156
 
 
157
typedef struct _ValaConstant ValaConstant;
 
158
typedef struct _ValaConstantClass ValaConstantClass;
 
159
 
150
160
#define VALA_TYPE_ENUM_VALUE (vala_enum_value_get_type ())
151
161
#define VALA_ENUM_VALUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ENUM_VALUE, ValaEnumValue))
152
162
#define VALA_ENUM_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ENUM_VALUE, ValaEnumValueClass))
187
197
typedef struct _ValaDelegate ValaDelegate;
188
198
typedef struct _ValaDelegateClass ValaDelegateClass;
189
199
 
190
 
#define VALA_TYPE_MEMBER (vala_member_get_type ())
191
 
#define VALA_MEMBER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_MEMBER, ValaMember))
192
 
#define VALA_MEMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_MEMBER, ValaMemberClass))
193
 
#define VALA_IS_MEMBER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_MEMBER))
194
 
#define VALA_IS_MEMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_MEMBER))
195
 
#define VALA_MEMBER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_MEMBER, ValaMemberClass))
196
 
 
197
 
typedef struct _ValaMember ValaMember;
198
 
typedef struct _ValaMemberClass ValaMemberClass;
199
 
 
200
 
#define VALA_TYPE_CONSTANT (vala_constant_get_type ())
201
 
#define VALA_CONSTANT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CONSTANT, ValaConstant))
202
 
#define VALA_CONSTANT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CONSTANT, ValaConstantClass))
203
 
#define VALA_IS_CONSTANT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CONSTANT))
204
 
#define VALA_IS_CONSTANT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CONSTANT))
205
 
#define VALA_CONSTANT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CONSTANT, ValaConstantClass))
206
 
 
207
 
typedef struct _ValaConstant ValaConstant;
208
 
typedef struct _ValaConstantClass ValaConstantClass;
 
200
#define VALA_TYPE_VARIABLE (vala_variable_get_type ())
 
201
#define VALA_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_VARIABLE, ValaVariable))
 
202
#define VALA_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_VARIABLE, ValaVariableClass))
 
203
#define VALA_IS_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_VARIABLE))
 
204
#define VALA_IS_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_VARIABLE))
 
205
#define VALA_VARIABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_VARIABLE, ValaVariableClass))
 
206
 
 
207
typedef struct _ValaVariable ValaVariable;
 
208
typedef struct _ValaVariableClass ValaVariableClass;
209
209
 
210
210
#define VALA_TYPE_FIELD (vala_field_get_type ())
211
211
#define VALA_FIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_FIELD, ValaField))
1088
1088
        void (*visit_error_domain) (ValaCodeVisitor* self, ValaErrorDomain* edomain);
1089
1089
        void (*visit_error_code) (ValaCodeVisitor* self, ValaErrorCode* ecode);
1090
1090
        void (*visit_delegate) (ValaCodeVisitor* self, ValaDelegate* d);
1091
 
        void (*visit_member) (ValaCodeVisitor* self, ValaMember* m);
1092
1091
        void (*visit_constant) (ValaCodeVisitor* self, ValaConstant* c);
1093
1092
        void (*visit_field) (ValaCodeVisitor* self, ValaField* f);
1094
1093
        void (*visit_method) (ValaCodeVisitor* self, ValaMethod* m);
1346
1345
        VALA_TOKEN_TYPE_REGEX_LITERAL,
1347
1346
        VALA_TOKEN_TYPE_REQUIRES,
1348
1347
        VALA_TOKEN_TYPE_RETURN,
 
1348
        VALA_TOKEN_TYPE_SEALED,
1349
1349
        VALA_TOKEN_TYPE_SEMICOLON,
1350
1350
        VALA_TOKEN_TYPE_SET,
1351
1351
        VALA_TOKEN_TYPE_SIGNAL,
1444
1444
GType vala_struct_get_type (void) G_GNUC_CONST;
1445
1445
GType vala_interface_get_type (void) G_GNUC_CONST;
1446
1446
GType vala_enum_get_type (void) G_GNUC_CONST;
 
1447
GType vala_constant_get_type (void) G_GNUC_CONST;
1447
1448
GType vala_enum_value_get_type (void) G_GNUC_CONST;
1448
1449
GType vala_error_domain_get_type (void) G_GNUC_CONST;
1449
1450
GType vala_error_code_get_type (void) G_GNUC_CONST;
1450
1451
GType vala_delegate_get_type (void) G_GNUC_CONST;
1451
 
GType vala_member_get_type (void) G_GNUC_CONST;
1452
 
GType vala_constant_get_type (void) G_GNUC_CONST;
 
1452
GType vala_variable_get_type (void) G_GNUC_CONST;
1453
1453
GType vala_field_get_type (void) G_GNUC_CONST;
1454
1454
GType vala_method_get_type (void) G_GNUC_CONST;
1455
1455
GType vala_creation_method_get_type (void) G_GNUC_CONST;
1657
1657
gboolean vala_enum_get_has_type_id (ValaEnum* self);
1658
1658
gboolean vala_enum_get_is_flags (ValaEnum* self);
1659
1659
ValaList* vala_enum_get_values (ValaEnum* self);
1660
 
char* vala_enum_value_get_cname (ValaEnumValue* self);
1661
 
char* vala_enum_value_get_default_cname (ValaEnumValue* self);
 
1660
char* vala_constant_get_cname (ValaConstant* self);
 
1661
char* vala_constant_get_default_cname (ValaConstant* self);
1662
1662
ValaList* vala_enum_get_methods (ValaEnum* self);
1663
1663
ValaList* vala_enum_get_constants (ValaEnum* self);
1664
1664
static void vala_code_writer_real_visit_enum (ValaCodeVisitor* base, ValaEnum* en);
1665
1665
static void vala_code_writer_real_visit_error_domain (ValaCodeVisitor* base, ValaErrorDomain* edomain);
1666
1666
static void vala_code_writer_real_visit_error_code (ValaCodeVisitor* base, ValaErrorCode* ecode);
1667
 
char* vala_constant_get_cname (ValaConstant* self);
1668
 
char* vala_constant_get_default_cname (ValaConstant* self);
1669
1667
ValaSymbol* vala_symbol_get_parent_symbol (ValaSymbol* self);
1670
1668
ValaDataType* vala_constant_get_type_reference (ValaConstant* self);
1671
1669
static void vala_code_writer_real_visit_constant (ValaCodeVisitor* base, ValaConstant* c);
1675
1673
char* vala_field_get_array_length_cname (ValaField* self);
1676
1674
const char* vala_field_get_array_length_type (ValaField* self);
1677
1675
gboolean vala_field_get_no_array_length (ValaField* self);
1678
 
ValaDataType* vala_field_get_field_type (ValaField* self);
 
1676
ValaDataType* vala_variable_get_variable_type (ValaVariable* self);
1679
1677
GType vala_reference_type_get_type (void) G_GNUC_CONST;
1680
1678
GType vala_array_type_get_type (void) G_GNUC_CONST;
1681
1679
gboolean vala_field_get_array_null_terminated (ValaField* self);
1689
1687
double vala_formal_parameter_get_cparameter_position (ValaFormalParameter* self);
1690
1688
const char* vala_formal_parameter_get_ctype (ValaFormalParameter* self);
1691
1689
gboolean vala_formal_parameter_get_no_array_length (ValaFormalParameter* self);
1692
 
ValaDataType* vala_formal_parameter_get_parameter_type (ValaFormalParameter* self);
1693
1690
const char* vala_formal_parameter_get_array_length_type (ValaFormalParameter* self);
1694
1691
double vala_formal_parameter_get_carray_length_parameter_position (ValaFormalParameter* self);
1695
1692
double vala_formal_parameter_get_cdelegate_target_parameter_position (ValaFormalParameter* self);
1697
1694
GType vala_parameter_direction_get_type (void) G_GNUC_CONST;
1698
1695
ValaParameterDirection vala_formal_parameter_get_direction (ValaFormalParameter* self);
1699
1696
gboolean vala_data_type_get_value_owned (ValaDataType* self);
1700
 
ValaExpression* vala_formal_parameter_get_default_expression (ValaFormalParameter* self);
 
1697
ValaExpression* vala_variable_get_initializer (ValaVariable* self);
1701
1698
char* vala_code_node_to_string (ValaCodeNode* self);
1702
1699
static void vala_code_writer_write_params (ValaCodeWriter* self, ValaList* params);
1703
1700
gboolean vala_delegate_get_has_target (ValaDelegate* self);
1725
1722
ValaDataType* vala_method_get_return_type (ValaMethod* self);
1726
1723
double vala_method_get_carray_length_parameter_position (ValaMethod* self);
1727
1724
gboolean vala_method_get_array_null_terminated (ValaMethod* self);
 
1725
const char* vala_method_get_array_length_type (ValaMethod* self);
1728
1726
double vala_method_get_cdelegate_target_parameter_position (ValaMethod* self);
1729
1727
const char* vala_method_get_vfunc_name (ValaMethod* self);
1730
1728
gboolean vala_method_get_coroutine (ValaMethod* self);
1738
1736
gboolean vala_method_get_overrides (ValaMethod* self);
1739
1737
ValaList* vala_method_get_type_parameters (ValaMethod* self);
1740
1738
ValaList* vala_method_get_parameters (ValaMethod* self);
 
1739
GType vala_profile_get_type (void) G_GNUC_CONST;
 
1740
ValaProfile vala_code_context_get_profile (ValaCodeContext* self);
1741
1741
ValaList* vala_code_node_get_error_types (ValaCodeNode* self);
1742
1742
ValaBlock* vala_method_get_body (ValaMethod* self);
1743
1743
static void vala_code_writer_real_visit_method (ValaCodeVisitor* base, ValaMethod* m);
1753
1753
MemberBinding vala_property_get_binding (ValaProperty* self);
1754
1754
gboolean vala_property_get_overrides (ValaProperty* self);
1755
1755
ValaPropertyAccessor* vala_property_get_get_accessor (ValaProperty* self);
1756
 
GType vala_profile_get_type (void) G_GNUC_CONST;
1757
 
ValaProfile vala_code_context_get_profile (ValaCodeContext* self);
1758
1756
ValaDataType* vala_property_accessor_get_value_type (ValaPropertyAccessor* self);
1759
1757
gboolean vala_data_type_is_disposable (ValaDataType* self);
1760
1758
ValaBlock* vala_property_accessor_get_body (ValaPropertyAccessor* self);
1773
1771
static void vala_code_writer_real_visit_empty_statement (ValaCodeVisitor* base, ValaEmptyStatement* stmt);
1774
1772
ValaSymbol* vala_declaration_statement_get_declaration (ValaDeclarationStatement* self);
1775
1773
static void vala_code_writer_real_visit_declaration_statement (ValaCodeVisitor* base, ValaDeclarationStatement* stmt);
1776
 
ValaDataType* vala_local_variable_get_variable_type (ValaLocalVariable* self);
1777
 
ValaExpression* vala_local_variable_get_initializer (ValaLocalVariable* self);
1778
1774
static void vala_code_writer_real_visit_local_variable (ValaCodeVisitor* base, ValaLocalVariable* local);
1779
1775
ValaList* vala_initializer_list_get_initializers (ValaInitializerList* self);
1780
1776
static void vala_code_writer_real_visit_initializer_list (ValaCodeVisitor* base, ValaInitializerList* list);
1932
1928
}
1933
1929
 
1934
1930
 
 
1931
/**
 
1932
 * Allows overriding of a specific cheader in the output
 
1933
 * @param original orignal cheader to override
 
1934
 * @param replacement cheader to replace original with
 
1935
 */
1935
1936
void vala_code_writer_set_cheader_override (ValaCodeWriter* self, const char* original, const char* replacement) {
1936
1937
        char* _tmp0_;
1937
1938
        char* _tmp1_;
1953
1954
}
1954
1955
 
1955
1956
 
 
1957
/**
 
1958
 * Writes the public interface of the specified code context into the
 
1959
 * specified file.
 
1960
 *
 
1961
 * @param context  a code context
 
1962
 * @param filename a relative or absolute filename
 
1963
 */
1956
1964
void vala_code_writer_write_file (ValaCodeWriter* self, ValaCodeContext* context, const char* filename) {
1957
1965
        ValaCodeContext* _tmp0_;
1958
1966
        FILE* _tmp1_;
2793
2801
                                vala_code_writer_write_string (self, ",");
2794
2802
                                vala_code_writer_write_newline (self);
2795
2803
                        }
2796
 
                        if ((_tmp8_ = _vala_strcmp0 (_tmp6_ = vala_enum_value_get_cname (ev), _tmp7_ = vala_enum_value_get_default_cname (ev)) != 0, _g_free0 (_tmp7_), _g_free0 (_tmp6_), _tmp8_)) {
 
2804
                        if ((_tmp8_ = _vala_strcmp0 (_tmp6_ = vala_constant_get_cname ((ValaConstant*) ev), _tmp7_ = vala_constant_get_default_cname ((ValaConstant*) ev)) != 0, _g_free0 (_tmp7_), _g_free0 (_tmp6_), _tmp8_)) {
2797
2805
                                char* _tmp10_;
2798
2806
                                char* _tmp9_;
2799
2807
                                vala_code_writer_write_indent (self);
2800
 
                                vala_code_writer_write_string (self, _tmp10_ = g_strdup_printf ("[CCode (cname = \"%s\")]", _tmp9_ = vala_enum_value_get_cname (ev)));
 
2808
                                vala_code_writer_write_string (self, _tmp10_ = g_strdup_printf ("[CCode (cname = \"%s\")]", _tmp9_ = vala_constant_get_cname ((ValaConstant*) ev)));
2801
2809
                                _g_free0 (_tmp10_);
2802
2810
                                _g_free0 (_tmp9_);
2803
2811
                        }
3019
3027
        } else {
3020
3028
                gboolean _tmp12_ = FALSE;
3021
3029
                if (vala_field_get_no_array_length (f)) {
3022
 
                        _tmp12_ = VALA_IS_ARRAY_TYPE (vala_field_get_field_type (f));
 
3030
                        _tmp12_ = VALA_IS_ARRAY_TYPE (vala_variable_get_variable_type ((ValaVariable*) f));
3023
3031
                } else {
3024
3032
                        _tmp12_ = FALSE;
3025
3033
                }
3061
3069
                        _g_free0 (_tmp19_);
3062
3070
                        _g_free0 (_tmp18_);
3063
3071
                }
3064
 
                if (VALA_IS_ARRAY_TYPE (vala_field_get_field_type (f))) {
 
3072
                if (VALA_IS_ARRAY_TYPE (vala_variable_get_variable_type ((ValaVariable*) f))) {
3065
3073
                        if (vala_field_get_no_array_length (f)) {
3066
3074
                                gboolean _tmp20_ = FALSE;
3067
3075
                                gboolean _tmp21_ = FALSE;
3144
3152
                        vala_code_writer_write_string (self, "class ");
3145
3153
                }
3146
3154
        }
3147
 
        if (vala_code_writer_is_weak (self, vala_field_get_field_type (f))) {
 
3155
        if (vala_code_writer_is_weak (self, vala_variable_get_variable_type ((ValaVariable*) f))) {
3148
3156
                vala_code_writer_write_string (self, "weak ");
3149
3157
        }
3150
 
        vala_code_writer_write_type (self, vala_field_get_field_type (f));
 
3158
        vala_code_writer_write_type (self, vala_variable_get_variable_type ((ValaVariable*) f));
3151
3159
        vala_code_writer_write_string (self, " ");
3152
3160
        vala_code_writer_write_identifier (self, vala_symbol_get_name ((ValaSymbol*) f));
3153
3161
        vala_code_writer_write_string (self, ";");
3233
3241
                                separator = (_tmp1_ = g_strdup (", "), _g_free0 (separator), _tmp1_);
3234
3242
                        }
3235
3243
                        if (vala_formal_parameter_get_no_array_length (param)) {
3236
 
                                _tmp2_ = VALA_IS_ARRAY_TYPE (vala_formal_parameter_get_parameter_type (param));
 
3244
                                _tmp2_ = VALA_IS_ARRAY_TYPE (vala_variable_get_variable_type ((ValaVariable*) param));
3237
3245
                        } else {
3238
3246
                                _tmp2_ = FALSE;
3239
3247
                        }
3243
3251
                                separator = (_tmp3_ = g_strdup (", "), _g_free0 (separator), _tmp3_);
3244
3252
                        }
3245
3253
                        if (vala_formal_parameter_get_array_length_type (param) != NULL) {
3246
 
                                _tmp4_ = VALA_IS_ARRAY_TYPE (vala_formal_parameter_get_parameter_type (param));
 
3254
                                _tmp4_ = VALA_IS_ARRAY_TYPE (vala_variable_get_variable_type ((ValaVariable*) param));
3247
3255
                        } else {
3248
3256
                                _tmp4_ = FALSE;
3249
3257
                        }
3271
3279
                                vala_code_writer_write_string (self, "params ");
3272
3280
                        }
3273
3281
                        if (vala_formal_parameter_get_direction (param) == VALA_PARAMETER_DIRECTION_IN) {
3274
 
                                if (vala_data_type_get_value_owned (vala_formal_parameter_get_parameter_type (param))) {
 
3282
                                if (vala_data_type_get_value_owned (vala_variable_get_variable_type ((ValaVariable*) param))) {
3275
3283
                                        vala_code_writer_write_string (self, "owned ");
3276
3284
                                }
3277
3285
                        } else {
3282
3290
                                                vala_code_writer_write_string (self, "out ");
3283
3291
                                        }
3284
3292
                                }
3285
 
                                if (vala_code_writer_is_weak (self, vala_formal_parameter_get_parameter_type (param))) {
 
3293
                                if (vala_code_writer_is_weak (self, vala_variable_get_variable_type ((ValaVariable*) param))) {
3286
3294
                                        vala_code_writer_write_string (self, "unowned ");
3287
3295
                                }
3288
3296
                        }
3289
 
                        vala_code_writer_write_type (self, vala_formal_parameter_get_parameter_type (param));
 
3297
                        vala_code_writer_write_type (self, vala_variable_get_variable_type ((ValaVariable*) param));
3290
3298
                        vala_code_writer_write_string (self, " ");
3291
3299
                        vala_code_writer_write_identifier (self, vala_symbol_get_name ((ValaSymbol*) param));
3292
 
                        if (vala_formal_parameter_get_default_expression (param) != NULL) {
 
3300
                        if (vala_variable_get_initializer ((ValaVariable*) param) != NULL) {
3293
3301
                                char* _tmp9_;
3294
3302
                                vala_code_writer_write_string (self, " = ");
3295
 
                                vala_code_writer_write_string (self, _tmp9_ = vala_code_node_to_string ((ValaCodeNode*) vala_formal_parameter_get_default_expression (param)));
 
3303
                                vala_code_writer_write_string (self, _tmp9_ = vala_code_node_to_string ((ValaCodeNode*) vala_variable_get_initializer ((ValaVariable*) param)));
3296
3304
                                _g_free0 (_tmp9_);
3297
3305
                        }
3298
3306
                        i++;
3411
3419
        gboolean _tmp11_;
3412
3420
        gboolean _tmp17_ = FALSE;
3413
3421
        gboolean _tmp20_ = FALSE;
3414
 
        gboolean _tmp24_ = FALSE;
3415
 
        gboolean _tmp30_ = FALSE;
 
3422
        gboolean _tmp22_ = FALSE;
 
3423
        gboolean _tmp26_ = FALSE;
3416
3424
        gboolean _tmp32_ = FALSE;
3417
 
        ValaList* _tmp35_;
3418
 
        ValaList* _tmp36_;
 
3425
        gboolean _tmp34_ = FALSE;
 
3426
        ValaList* _tmp37_;
3419
3427
        self = (ValaCodeWriter*) base;
3420
3428
        g_return_if_fail (m != NULL);
3421
3429
        if (vala_symbol_get_external_package ((ValaSymbol*) m)) {
3514
3522
                g_string_append_printf (ccode_params, "%sarray_null_terminated = true", separator);
3515
3523
                separator = (_tmp21_ = g_strdup (", "), _g_free0 (separator), _tmp21_);
3516
3524
        }
 
3525
        if (vala_method_get_array_length_type (m) != NULL) {
 
3526
                _tmp22_ = VALA_IS_ARRAY_TYPE (vala_method_get_return_type (m));
 
3527
        } else {
 
3528
                _tmp22_ = FALSE;
 
3529
        }
 
3530
        if (_tmp22_) {
 
3531
                char* _tmp23_;
 
3532
                g_string_append_printf (ccode_params, "%sarray_length_type = \"%s\"", separator, vala_method_get_array_length_type (m));
 
3533
                separator = (_tmp23_ = g_strdup (", "), _g_free0 (separator), _tmp23_);
 
3534
        }
3517
3535
        if (!vala_code_writer_float_equal (self, vala_method_get_cdelegate_target_parameter_position (m), (double) (-3))) {
3518
 
                char* _tmp22_;
 
3536
                char* _tmp24_;
3519
3537
                g_string_append_printf (ccode_params, "%sdelegate_target_pos = %g", separator, vala_method_get_cdelegate_target_parameter_position (m));
3520
 
                separator = (_tmp22_ = g_strdup (", "), _g_free0 (separator), _tmp22_);
 
3538
                separator = (_tmp24_ = g_strdup (", "), _g_free0 (separator), _tmp24_);
3521
3539
        }
3522
3540
        if (_vala_strcmp0 (vala_method_get_vfunc_name (m), vala_symbol_get_name ((ValaSymbol*) m)) != 0) {
3523
 
                char* _tmp23_;
 
3541
                char* _tmp25_;
3524
3542
                g_string_append_printf (ccode_params, "%svfunc_name = \"%s\"", separator, vala_method_get_vfunc_name (m));
3525
 
                separator = (_tmp23_ = g_strdup (", "), _g_free0 (separator), _tmp23_);
 
3543
                separator = (_tmp25_ = g_strdup (", "), _g_free0 (separator), _tmp25_);
3526
3544
        }
3527
3545
        if (vala_method_get_coroutine (m)) {
3528
 
                char* _tmp26_;
3529
 
                char* _tmp25_;
3530
 
                _tmp24_ = _vala_strcmp0 (_tmp25_ = vala_method_get_finish_cname (m), _tmp26_ = vala_method_get_default_finish_cname (m)) != 0;
3531
 
                _g_free0 (_tmp26_);
3532
 
                _g_free0 (_tmp25_);
3533
 
        } else {
3534
 
                _tmp24_ = FALSE;
3535
 
        }
3536
 
        if (_tmp24_) {
 
3546
                char* _tmp28_;
3537
3547
                char* _tmp27_;
3538
 
                char* _tmp28_;
3539
 
                g_string_append_printf (ccode_params, "%sfinish_name = \"%s\"", separator, _tmp27_ = vala_method_get_finish_cname (m));
 
3548
                _tmp26_ = _vala_strcmp0 (_tmp27_ = vala_method_get_finish_cname (m), _tmp28_ = vala_method_get_default_finish_cname (m)) != 0;
 
3549
                _g_free0 (_tmp28_);
3540
3550
                _g_free0 (_tmp27_);
3541
 
                separator = (_tmp28_ = g_strdup (", "), _g_free0 (separator), _tmp28_);
 
3551
        } else {
 
3552
                _tmp26_ = FALSE;
 
3553
        }
 
3554
        if (_tmp26_) {
 
3555
                char* _tmp29_;
 
3556
                char* _tmp30_;
 
3557
                g_string_append_printf (ccode_params, "%sfinish_name = \"%s\"", separator, _tmp29_ = vala_method_get_finish_cname (m));
 
3558
                _g_free0 (_tmp29_);
 
3559
                separator = (_tmp30_ = g_strdup (", "), _g_free0 (separator), _tmp30_);
3542
3560
        }
3543
3561
        if (_vala_strcmp0 (vala_method_get_sentinel (m), VALA_METHOD_DEFAULT_SENTINEL) != 0) {
3544
 
                char* _tmp29_;
 
3562
                char* _tmp31_;
3545
3563
                g_string_append_printf (ccode_params, "%ssentinel = \"%s\"", separator, vala_method_get_sentinel (m));
3546
 
                separator = (_tmp29_ = g_strdup (", "), _g_free0 (separator), _tmp29_);
3547
 
        }
3548
 
        if (VALA_IS_CREATION_METHOD (m)) {
3549
 
                _tmp30_ = vala_creation_method_get_custom_return_type_cname (VALA_CREATION_METHOD (m)) != NULL;
3550
 
        } else {
3551
 
                _tmp30_ = FALSE;
3552
 
        }
3553
 
        if (_tmp30_) {
3554
 
                char* _tmp31_;
3555
 
                g_string_append_printf (ccode_params, "%stype = \"%s\"", separator, vala_creation_method_get_custom_return_type_cname (VALA_CREATION_METHOD (m)));
3556
3564
                separator = (_tmp31_ = g_strdup (", "), _g_free0 (separator), _tmp31_);
3557
3565
        }
3558
3566
        if (VALA_IS_CREATION_METHOD (m)) {
3559
 
                _tmp32_ = !vala_method_get_has_construct_function (m);
 
3567
                _tmp32_ = vala_creation_method_get_custom_return_type_cname (VALA_CREATION_METHOD (m)) != NULL;
3560
3568
        } else {
3561
3569
                _tmp32_ = FALSE;
3562
3570
        }
3563
3571
        if (_tmp32_) {
3564
3572
                char* _tmp33_;
 
3573
                g_string_append_printf (ccode_params, "%stype = \"%s\"", separator, vala_creation_method_get_custom_return_type_cname (VALA_CREATION_METHOD (m)));
 
3574
                separator = (_tmp33_ = g_strdup (", "), _g_free0 (separator), _tmp33_);
 
3575
        }
 
3576
        if (VALA_IS_CREATION_METHOD (m)) {
 
3577
                _tmp34_ = !vala_method_get_has_construct_function (m);
 
3578
        } else {
 
3579
                _tmp34_ = FALSE;
 
3580
        }
 
3581
        if (_tmp34_) {
 
3582
                char* _tmp35_;
3565
3583
                g_string_append_printf (ccode_params, "%shas_construct_function = false", separator);
3566
 
                separator = (_tmp33_ = g_strdup (", "), _g_free0 (separator), _tmp33_);
 
3584
                separator = (_tmp35_ = g_strdup (", "), _g_free0 (separator), _tmp35_);
3567
3585
        }
3568
3586
        if (ccode_params->len > 0) {
3569
 
                char* _tmp34_;
 
3587
                char* _tmp36_;
3570
3588
                vala_code_writer_write_indent (self);
3571
 
                vala_code_writer_write_string (self, _tmp34_ = g_strdup_printf ("[CCode (%s)]", ccode_params->str));
3572
 
                _g_free0 (_tmp34_);
 
3589
                vala_code_writer_write_string (self, _tmp36_ = g_strdup_printf ("[CCode (%s)]", ccode_params->str));
 
3590
                _g_free0 (_tmp36_);
3573
3591
        }
3574
3592
        vala_code_writer_write_indent (self);
3575
3593
        vala_code_writer_write_accessibility (self, (ValaSymbol*) m);
3642
3660
                vala_code_writer_write_string (self, " ");
3643
3661
                _vala_collection_object_unref0 (type_params);
3644
3662
        }
3645
 
        vala_code_writer_write_params (self, _tmp35_ = vala_method_get_parameters (m));
3646
 
        _vala_collection_object_unref0 (_tmp35_);
3647
 
        vala_code_writer_write_error_domains (self, _tmp36_ = vala_code_node_get_error_types ((ValaCodeNode*) m));
3648
 
        _vala_collection_object_unref0 (_tmp36_);
 
3663
        vala_code_writer_write_params (self, _tmp37_ = vala_method_get_parameters (m));
 
3664
        _vala_collection_object_unref0 (_tmp37_);
 
3665
        if (vala_code_context_get_profile (self->priv->context) != VALA_PROFILE_DOVA) {
 
3666
                ValaList* _tmp38_;
 
3667
                vala_code_writer_write_error_domains (self, _tmp38_ = vala_code_node_get_error_types ((ValaCodeNode*) m));
 
3668
                _vala_collection_object_unref0 (_tmp38_);
 
3669
        }
3649
3670
        vala_code_writer_write_code_block (self, vala_method_get_body (m));
3650
3671
        vala_code_writer_write_newline (self);
3651
3672
        _g_free0 (separator);
3839
3860
        ValaCodeWriter * self;
3840
3861
        self = (ValaCodeWriter*) base;
3841
3862
        g_return_if_fail (local != NULL);
3842
 
        vala_code_writer_write_type (self, vala_local_variable_get_variable_type (local));
 
3863
        vala_code_writer_write_type (self, vala_variable_get_variable_type ((ValaVariable*) local));
3843
3864
        vala_code_writer_write_string (self, " ");
3844
3865
        vala_code_writer_write_identifier (self, vala_symbol_get_name ((ValaSymbol*) local));
3845
 
        if (vala_local_variable_get_initializer (local) != NULL) {
 
3866
        if (vala_variable_get_initializer ((ValaVariable*) local) != NULL) {
3846
3867
                vala_code_writer_write_string (self, " = ");
3847
 
                vala_code_node_accept ((ValaCodeNode*) vala_local_variable_get_initializer (local), (ValaCodeVisitor*) self);
 
3868
                vala_code_node_accept ((ValaCodeNode*) vala_variable_get_initializer ((ValaVariable*) local), (ValaCodeVisitor*) self);
3848
3869
        }
3849
3870
}
3850
3871
 
5236
5257
}
5237
5258
 
5238
5259
 
 
5260
/**
 
5261
 * Code visitor generating Vala API file for the public interface.
 
5262
 */
5239
5263
GType vala_code_writer_get_type (void) {
5240
5264
        static volatile gsize vala_code_writer_type_id__volatile = 0;
5241
5265
        if (g_once_init_enter (&vala_code_writer_type_id__volatile)) {