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

« back to all changes in this revision

Viewing changes to vala/valaformalparameter.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:
95
95
typedef struct _ValaSymbol ValaSymbol;
96
96
typedef struct _ValaSymbolClass ValaSymbolClass;
97
97
 
 
98
#define VALA_TYPE_VARIABLE (vala_variable_get_type ())
 
99
#define VALA_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_VARIABLE, ValaVariable))
 
100
#define VALA_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_VARIABLE, ValaVariableClass))
 
101
#define VALA_IS_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_VARIABLE))
 
102
#define VALA_IS_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_VARIABLE))
 
103
#define VALA_VARIABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_VARIABLE, ValaVariableClass))
 
104
 
 
105
typedef struct _ValaVariable ValaVariable;
 
106
typedef struct _ValaVariableClass ValaVariableClass;
 
107
 
98
108
#define VALA_TYPE_LOCAL_VARIABLE (vala_local_variable_get_type ())
99
109
#define VALA_LOCAL_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_LOCAL_VARIABLE, ValaLocalVariable))
100
110
#define VALA_LOCAL_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_LOCAL_VARIABLE, ValaLocalVariableClass))
115
125
typedef struct _ValaAttribute ValaAttribute;
116
126
typedef struct _ValaAttributeClass ValaAttributeClass;
117
127
typedef struct _ValaSymbolPrivate ValaSymbolPrivate;
 
128
typedef struct _ValaVariablePrivate ValaVariablePrivate;
118
129
 
119
130
#define VALA_TYPE_FORMAL_PARAMETER (vala_formal_parameter_get_type ())
120
131
#define VALA_FORMAL_PARAMETER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_FORMAL_PARAMETER, ValaFormalParameter))
129
140
 
130
141
#define VALA_TYPE_PARAMETER_DIRECTION (vala_parameter_direction_get_type ())
131
142
#define _g_free0(var) (var = (g_free (var), NULL))
132
 
#define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
133
143
 
134
144
#define VALA_TYPE_SOURCE_REFERENCE (vala_source_reference_get_type ())
135
145
#define VALA_SOURCE_REFERENCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SOURCE_REFERENCE, ValaSourceReference))
141
151
typedef struct _ValaSourceReference ValaSourceReference;
142
152
typedef struct _ValaSourceReferenceClass ValaSourceReferenceClass;
143
153
 
 
154
#define VALA_TYPE_COMMENT (vala_comment_get_type ())
 
155
#define VALA_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_COMMENT, ValaComment))
 
156
#define VALA_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_COMMENT, ValaCommentClass))
 
157
#define VALA_IS_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_COMMENT))
 
158
#define VALA_IS_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_COMMENT))
 
159
#define VALA_COMMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_COMMENT, ValaCommentClass))
 
160
 
 
161
typedef struct _ValaComment ValaComment;
 
162
typedef struct _ValaCommentClass ValaCommentClass;
 
163
 
144
164
#define VALA_TYPE_SYMBOL_ACCESSIBILITY (vala_symbol_accessibility_get_type ())
 
165
#define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
145
166
 
146
167
#define VALA_TYPE_SOURCE_FILE (vala_source_file_get_type ())
147
168
#define VALA_SOURCE_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SOURCE_FILE, ValaSourceFile))
230
251
        void (*process_deprecated_attribute) (ValaSymbol* self, ValaAttribute* attr);
231
252
};
232
253
 
 
254
struct _ValaVariable {
 
255
        ValaSymbol parent_instance;
 
256
        ValaVariablePrivate * priv;
 
257
};
 
258
 
 
259
struct _ValaVariableClass {
 
260
        ValaSymbolClass parent_class;
 
261
};
 
262
 
233
263
struct _ValaFormalParameter {
234
 
        ValaSymbol parent_instance;
 
264
        ValaVariable parent_instance;
235
265
        ValaFormalParameterPrivate * priv;
236
266
};
237
267
 
238
268
struct _ValaFormalParameterClass {
239
 
        ValaSymbolClass parent_class;
 
269
        ValaVariableClass parent_class;
240
270
};
241
271
 
242
272
typedef enum  {
258
288
        double _cdestroy_notify_parameter_position;
259
289
        char* _ctype;
260
290
        gboolean _captured;
261
 
        ValaDataType* _data_type;
262
 
        ValaExpression* _default_expression;
263
291
};
264
292
 
265
293
typedef enum  {
290
318
GType vala_data_type_get_type (void) G_GNUC_CONST;
291
319
GType vala_expression_get_type (void) G_GNUC_CONST;
292
320
GType vala_symbol_get_type (void) G_GNUC_CONST;
 
321
GType vala_variable_get_type (void) G_GNUC_CONST;
293
322
GType vala_local_variable_get_type (void) G_GNUC_CONST;
294
323
GType vala_attribute_get_type (void) G_GNUC_CONST;
295
324
GType vala_formal_parameter_get_type (void) G_GNUC_CONST;
305
334
void vala_value_take_source_reference (GValue* value, gpointer v_object);
306
335
gpointer vala_value_get_source_reference (const GValue* value);
307
336
GType vala_source_reference_get_type (void) G_GNUC_CONST;
308
 
ValaSymbol* vala_symbol_construct (GType object_type, const char* name, ValaSourceReference* source_reference);
309
 
void vala_formal_parameter_set_parameter_type (ValaFormalParameter* self, ValaDataType* value);
 
337
gpointer vala_comment_ref (gpointer instance);
 
338
void vala_comment_unref (gpointer instance);
 
339
GParamSpec* vala_param_spec_comment (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
 
340
void vala_value_set_comment (GValue* value, gpointer v_object);
 
341
void vala_value_take_comment (GValue* value, gpointer v_object);
 
342
gpointer vala_value_get_comment (const GValue* value);
 
343
GType vala_comment_get_type (void) G_GNUC_CONST;
 
344
ValaVariable* vala_variable_new (ValaDataType* variable_type, const char* name, ValaExpression* initializer, ValaSourceReference* source_reference, ValaComment* comment);
 
345
ValaVariable* vala_variable_construct (GType object_type, ValaDataType* variable_type, const char* name, ValaExpression* initializer, ValaSourceReference* source_reference, ValaComment* comment);
310
346
GType vala_symbol_accessibility_get_type (void) G_GNUC_CONST;
311
347
void vala_symbol_set_access (ValaSymbol* self, ValaSymbolAccessibility value);
312
 
ValaFormalParameter* vala_formal_parameter_new (const char* name, ValaDataType* parameter_type, ValaSourceReference* source_reference);
313
 
ValaFormalParameter* vala_formal_parameter_construct (GType object_type, const char* name, ValaDataType* parameter_type, ValaSourceReference* source_reference);
 
348
ValaFormalParameter* vala_formal_parameter_new (const char* name, ValaDataType* variable_type, ValaSourceReference* source_reference);
 
349
ValaFormalParameter* vala_formal_parameter_construct (GType object_type, const char* name, ValaDataType* variable_type, ValaSourceReference* source_reference);
314
350
void vala_formal_parameter_set_ellipsis (ValaFormalParameter* self, gboolean value);
315
351
ValaFormalParameter* vala_formal_parameter_new_with_ellipsis (ValaSourceReference* source_reference);
316
352
ValaFormalParameter* vala_formal_parameter_construct_with_ellipsis (GType object_type, ValaSourceReference* source_reference);
317
353
void vala_code_visitor_visit_formal_parameter (ValaCodeVisitor* self, ValaFormalParameter* p);
318
354
static void vala_formal_parameter_real_accept (ValaCodeNode* base, ValaCodeVisitor* visitor);
319
355
gboolean vala_formal_parameter_get_ellipsis (ValaFormalParameter* self);
320
 
ValaDataType* vala_formal_parameter_get_parameter_type (ValaFormalParameter* self);
 
356
ValaDataType* vala_variable_get_variable_type (ValaVariable* self);
321
357
void vala_code_node_accept (ValaCodeNode* self, ValaCodeVisitor* visitor);
322
 
ValaExpression* vala_formal_parameter_get_default_expression (ValaFormalParameter* self);
 
358
ValaExpression* vala_variable_get_initializer (ValaVariable* self);
323
359
static void vala_formal_parameter_real_accept_children (ValaCodeNode* base, ValaCodeVisitor* visitor);
 
360
void vala_variable_set_variable_type (ValaVariable* self, ValaDataType* value);
324
361
static void vala_formal_parameter_real_replace_type (ValaCodeNode* base, ValaDataType* old_type, ValaDataType* new_type);
325
 
void vala_formal_parameter_set_default_expression (ValaFormalParameter* self, ValaExpression* value);
 
362
void vala_variable_set_initializer (ValaVariable* self, ValaExpression* value);
326
363
static void vala_formal_parameter_real_replace_expression (ValaCodeNode* base, ValaExpression* old_node, ValaExpression* new_node);
327
364
gboolean vala_attribute_has_argument (ValaAttribute* self, const char* name);
328
365
char* vala_attribute_get_string (ValaAttribute* self, const char* name);
375
412
gboolean vala_semantic_analyzer_is_type_accessible (ValaSemanticAnalyzer* self, ValaSymbol* sym, ValaDataType* type);
376
413
char* vala_symbol_get_full_name (ValaSymbol* self);
377
414
static gboolean vala_formal_parameter_real_check (ValaCodeNode* base, ValaSemanticAnalyzer* analyzer);
378
 
void vala_code_node_set_parent_node (ValaCodeNode* self, ValaCodeNode* value);
379
415
gboolean vala_formal_parameter_get_no_array_length (ValaFormalParameter* self);
380
416
gboolean vala_formal_parameter_get_array_null_terminated (ValaFormalParameter* self);
381
417
const char* vala_formal_parameter_get_array_length_type (ValaFormalParameter* self);
391
427
 
392
428
 
393
429
 
394
 
ValaFormalParameter* vala_formal_parameter_construct (GType object_type, const char* name, ValaDataType* parameter_type, ValaSourceReference* source_reference) {
 
430
/**
 
431
 * Creates a new formal parameter.
 
432
 *
 
433
 * @param name   parameter name
 
434
 * @param type   parameter type
 
435
 * @param source reference to source code
 
436
 * @return       newly created formal parameter
 
437
 */
 
438
ValaFormalParameter* vala_formal_parameter_construct (GType object_type, const char* name, ValaDataType* variable_type, ValaSourceReference* source_reference) {
395
439
        ValaFormalParameter* self;
396
440
        g_return_val_if_fail (name != NULL, NULL);
397
 
        g_return_val_if_fail (parameter_type != NULL, NULL);
398
 
        self = (ValaFormalParameter*) vala_symbol_construct (object_type, name, source_reference);
399
 
        vala_formal_parameter_set_parameter_type (self, parameter_type);
 
441
        g_return_val_if_fail (variable_type != NULL, NULL);
 
442
        self = (ValaFormalParameter*) vala_variable_construct (object_type, variable_type, name, NULL, source_reference, NULL);
400
443
        vala_symbol_set_access ((ValaSymbol*) self, VALA_SYMBOL_ACCESSIBILITY_PUBLIC);
401
444
        return self;
402
445
}
403
446
 
404
447
 
405
 
ValaFormalParameter* vala_formal_parameter_new (const char* name, ValaDataType* parameter_type, ValaSourceReference* source_reference) {
406
 
        return vala_formal_parameter_construct (VALA_TYPE_FORMAL_PARAMETER, name, parameter_type, source_reference);
 
448
ValaFormalParameter* vala_formal_parameter_new (const char* name, ValaDataType* variable_type, ValaSourceReference* source_reference) {
 
449
        return vala_formal_parameter_construct (VALA_TYPE_FORMAL_PARAMETER, name, variable_type, source_reference);
407
450
}
408
451
 
409
452
 
 
453
/**
 
454
 * Creates a new ellipsis parameter representing an indefinite number of
 
455
 * parameters.
 
456
 */
410
457
ValaFormalParameter* vala_formal_parameter_construct_with_ellipsis (GType object_type, ValaSourceReference* source_reference) {
411
458
        ValaFormalParameter* self;
412
 
        self = (ValaFormalParameter*) vala_symbol_construct (object_type, NULL, source_reference);
 
459
        self = (ValaFormalParameter*) vala_variable_construct (object_type, NULL, NULL, NULL, source_reference, NULL);
413
460
        vala_formal_parameter_set_ellipsis (self, TRUE);
414
461
        vala_symbol_set_access ((ValaSymbol*) self, VALA_SYMBOL_ACCESSIBILITY_PUBLIC);
415
462
        return self;
434
481
        self = (ValaFormalParameter*) base;
435
482
        g_return_if_fail (visitor != NULL);
436
483
        if (!self->priv->_ellipsis) {
437
 
                vala_code_node_accept ((ValaCodeNode*) vala_formal_parameter_get_parameter_type (self), visitor);
438
 
                if (vala_formal_parameter_get_default_expression (self) != NULL) {
439
 
                        vala_code_node_accept ((ValaCodeNode*) vala_formal_parameter_get_default_expression (self), visitor);
 
484
                vala_code_node_accept ((ValaCodeNode*) vala_variable_get_variable_type ((ValaVariable*) self), visitor);
 
485
                if (vala_variable_get_initializer ((ValaVariable*) self) != NULL) {
 
486
                        vala_code_node_accept ((ValaCodeNode*) vala_variable_get_initializer ((ValaVariable*) self), visitor);
440
487
                }
441
488
        }
442
489
}
447
494
        self = (ValaFormalParameter*) base;
448
495
        g_return_if_fail (old_type != NULL);
449
496
        g_return_if_fail (new_type != NULL);
450
 
        if (vala_formal_parameter_get_parameter_type (self) == old_type) {
451
 
                vala_formal_parameter_set_parameter_type (self, new_type);
 
497
        if (vala_variable_get_variable_type ((ValaVariable*) self) == old_type) {
 
498
                vala_variable_set_variable_type ((ValaVariable*) self, new_type);
452
499
        }
453
500
}
454
501
 
458
505
        self = (ValaFormalParameter*) base;
459
506
        g_return_if_fail (old_node != NULL);
460
507
        g_return_if_fail (new_node != NULL);
461
 
        if (vala_formal_parameter_get_default_expression (self) == old_node) {
462
 
                vala_formal_parameter_set_default_expression (self, new_node);
 
508
        if (vala_variable_get_initializer ((ValaVariable*) self) == old_node) {
 
509
                vala_variable_set_initializer ((ValaVariable*) self, new_node);
463
510
        }
464
511
}
465
512
 
503
550
}
504
551
 
505
552
 
 
553
/**
 
554
 * Process all associated attributes.
 
555
 */
506
556
void vala_formal_parameter_process_attributes (ValaFormalParameter* self) {
507
557
        g_return_if_fail (self != NULL);
508
558
        {
528
578
        g_return_val_if_fail (self != NULL, NULL);
529
579
        if (!self->priv->_ellipsis) {
530
580
                ValaFormalParameter* _result_;
531
 
                _result_ = vala_formal_parameter_new (vala_symbol_get_name ((ValaSymbol*) self), vala_formal_parameter_get_parameter_type (self), vala_code_node_get_source_reference ((ValaCodeNode*) self));
 
581
                _result_ = vala_formal_parameter_new (vala_symbol_get_name ((ValaSymbol*) self), vala_variable_get_variable_type ((ValaVariable*) self), vala_code_node_get_source_reference ((ValaCodeNode*) self));
532
582
                vala_formal_parameter_set_params_array (_result_, self->priv->_params_array);
533
583
                vala_formal_parameter_set_direction (_result_, self->priv->_direction);
534
 
                vala_formal_parameter_set_default_expression (_result_, vala_formal_parameter_get_default_expression (self));
 
584
                vala_variable_set_initializer ((ValaVariable*) _result_, vala_variable_get_initializer ((ValaVariable*) self));
535
585
                result = _result_;
536
586
                return result;
537
587
        } else {
565
615
                vala_semantic_analyzer_set_current_source_file (analyzer, vala_source_reference_get_file (vala_code_node_get_source_reference ((ValaCodeNode*) self)));
566
616
        }
567
617
        vala_semantic_analyzer_set_current_symbol (analyzer, vala_symbol_get_parent_symbol ((ValaSymbol*) self));
568
 
        if (vala_formal_parameter_get_parameter_type (self) != NULL) {
569
 
                vala_code_node_check ((ValaCodeNode*) vala_formal_parameter_get_parameter_type (self), analyzer);
 
618
        if (vala_variable_get_variable_type ((ValaVariable*) self) != NULL) {
 
619
                vala_code_node_check ((ValaCodeNode*) vala_variable_get_variable_type ((ValaVariable*) self), analyzer);
570
620
        }
571
621
        if (!self->priv->_ellipsis) {
572
622
                gboolean _tmp0_ = FALSE;
573
 
                vala_code_node_check ((ValaCodeNode*) vala_formal_parameter_get_parameter_type (self), analyzer);
 
623
                vala_code_node_check ((ValaCodeNode*) vala_variable_get_variable_type ((ValaVariable*) self), analyzer);
574
624
                if (self->priv->_params_array) {
575
 
                        _tmp0_ = !VALA_IS_ARRAY_TYPE (vala_formal_parameter_get_parameter_type (self));
 
625
                        _tmp0_ = !VALA_IS_ARRAY_TYPE (vala_variable_get_variable_type ((ValaVariable*) self));
576
626
                } else {
577
627
                        _tmp0_ = FALSE;
578
628
                }
584
634
                        _vala_source_file_unref0 (old_source_file);
585
635
                        return result;
586
636
                }
587
 
                if (vala_formal_parameter_get_default_expression (self) != NULL) {
588
 
                        vala_code_node_check ((ValaCodeNode*) vala_formal_parameter_get_default_expression (self), analyzer);
 
637
                if (vala_variable_get_initializer ((ValaVariable*) self) != NULL) {
 
638
                        vala_code_node_check ((ValaCodeNode*) vala_variable_get_initializer ((ValaVariable*) self), analyzer);
589
639
                }
590
640
        }
591
 
        if (vala_formal_parameter_get_default_expression (self) != NULL) {
 
641
        if (vala_variable_get_initializer ((ValaVariable*) self) != NULL) {
592
642
                gboolean _tmp1_ = FALSE;
593
643
                gboolean _tmp2_ = FALSE;
594
 
                if (VALA_IS_NULL_LITERAL (vala_formal_parameter_get_default_expression (self))) {
595
 
                        _tmp2_ = !vala_data_type_get_nullable (vala_formal_parameter_get_parameter_type (self));
 
644
                if (VALA_IS_NULL_LITERAL (vala_variable_get_initializer ((ValaVariable*) self))) {
 
645
                        _tmp2_ = !vala_data_type_get_nullable (vala_variable_get_variable_type ((ValaVariable*) self));
596
646
                } else {
597
647
                        _tmp2_ = FALSE;
598
648
                }
604
654
                if (_tmp1_) {
605
655
                        char* _tmp4_;
606
656
                        char* _tmp3_;
607
 
                        vala_report_warning (vala_code_node_get_source_reference ((ValaCodeNode*) self), _tmp4_ = g_strdup_printf ("`null' incompatible with parameter type `%s`", _tmp3_ = vala_code_node_to_string ((ValaCodeNode*) vala_formal_parameter_get_parameter_type (self))));
 
657
                        vala_report_warning (vala_code_node_get_source_reference ((ValaCodeNode*) self), _tmp4_ = g_strdup_printf ("`null' incompatible with parameter type `%s`", _tmp3_ = vala_code_node_to_string ((ValaCodeNode*) vala_variable_get_variable_type ((ValaVariable*) self))));
608
658
                        _g_free0 (_tmp4_);
609
659
                        _g_free0 (_tmp3_);
610
660
                }
611
661
        }
612
662
        if (!self->priv->_ellipsis) {
613
 
                if (!vala_semantic_analyzer_is_type_accessible (analyzer, (ValaSymbol*) self, vala_formal_parameter_get_parameter_type (self))) {
 
663
                if (!vala_semantic_analyzer_is_type_accessible (analyzer, (ValaSymbol*) self, vala_variable_get_variable_type ((ValaVariable*) self))) {
614
664
                        char* _tmp7_;
615
665
                        char* _tmp6_;
616
666
                        char* _tmp5_;
617
667
                        vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
618
 
                        vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), _tmp7_ = g_strdup_printf ("parameter type `%s` is less accessible than method `%s`", _tmp5_ = vala_code_node_to_string ((ValaCodeNode*) vala_formal_parameter_get_parameter_type (self)), _tmp6_ = vala_symbol_get_full_name (vala_symbol_get_parent_symbol ((ValaSymbol*) self))));
 
668
                        vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), _tmp7_ = g_strdup_printf ("parameter type `%s` is less accessible than method `%s`", _tmp5_ = vala_code_node_to_string ((ValaCodeNode*) vala_variable_get_variable_type ((ValaVariable*) self)), _tmp6_ = vala_symbol_get_full_name (vala_symbol_get_parent_symbol ((ValaSymbol*) self))));
619
669
                        _g_free0 (_tmp7_);
620
670
                        _g_free0 (_tmp6_);
621
671
                        _g_free0 (_tmp5_);
630
680
}
631
681
 
632
682
 
633
 
ValaDataType* vala_formal_parameter_get_parameter_type (ValaFormalParameter* self) {
634
 
        ValaDataType* result;
635
 
        g_return_val_if_fail (self != NULL, NULL);
636
 
        result = self->priv->_data_type;
637
 
        return result;
638
 
}
639
 
 
640
 
 
641
 
void vala_formal_parameter_set_parameter_type (ValaFormalParameter* self, ValaDataType* value) {
642
 
        ValaDataType* _tmp0_;
643
 
        g_return_if_fail (self != NULL);
644
 
        self->priv->_data_type = (_tmp0_ = _vala_code_node_ref0 (value), _vala_code_node_unref0 (self->priv->_data_type), _tmp0_);
645
 
        vala_code_node_set_parent_node ((ValaCodeNode*) self->priv->_data_type, (ValaCodeNode*) self);
646
 
}
647
 
 
648
 
 
649
683
ValaParameterDirection vala_formal_parameter_get_direction (ValaFormalParameter* self) {
650
684
        ValaParameterDirection result;
651
685
        g_return_val_if_fail (self != NULL, 0);
688
722
}
689
723
 
690
724
 
691
 
ValaExpression* vala_formal_parameter_get_default_expression (ValaFormalParameter* self) {
692
 
        ValaExpression* result;
693
 
        g_return_val_if_fail (self != NULL, NULL);
694
 
        result = self->priv->_default_expression;
695
 
        return result;
696
 
}
697
 
 
698
 
 
699
 
void vala_formal_parameter_set_default_expression (ValaFormalParameter* self, ValaExpression* value) {
700
 
        ValaExpression* _tmp0_;
701
 
        g_return_if_fail (self != NULL);
702
 
        self->priv->_default_expression = (_tmp0_ = _vala_code_node_ref0 (value), _vala_code_node_unref0 (self->priv->_default_expression), _tmp0_);
703
 
        if (self->priv->_default_expression != NULL) {
704
 
                vala_code_node_set_parent_node ((ValaCodeNode*) self->priv->_default_expression, (ValaCodeNode*) self);
705
 
        }
706
 
}
707
 
 
708
 
 
709
725
gboolean vala_formal_parameter_get_no_array_length (ValaFormalParameter* self) {
710
726
        gboolean result;
711
727
        g_return_val_if_fail (self != NULL, FALSE);
858
874
        self = VALA_FORMAL_PARAMETER (obj);
859
875
        _g_free0 (self->priv->_array_length_type);
860
876
        _g_free0 (self->priv->_ctype);
861
 
        _vala_code_node_unref0 (self->priv->_data_type);
862
 
        _vala_code_node_unref0 (self->priv->_default_expression);
863
877
        VALA_CODE_NODE_CLASS (vala_formal_parameter_parent_class)->finalize (obj);
864
878
}
865
879
 
866
880
 
 
881
/**
 
882
 * Represents a formal parameter in method and callback signatures.
 
883
 */
867
884
GType vala_formal_parameter_get_type (void) {
868
885
        static volatile gsize vala_formal_parameter_type_id__volatile = 0;
869
886
        if (g_once_init_enter (&vala_formal_parameter_type_id__volatile)) {
870
887
                static const GTypeInfo g_define_type_info = { sizeof (ValaFormalParameterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_formal_parameter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaFormalParameter), 0, (GInstanceInitFunc) vala_formal_parameter_instance_init, NULL };
871
888
                GType vala_formal_parameter_type_id;
872
 
                vala_formal_parameter_type_id = g_type_register_static (VALA_TYPE_SYMBOL, "ValaFormalParameter", &g_define_type_info, 0);
 
889
                vala_formal_parameter_type_id = g_type_register_static (VALA_TYPE_VARIABLE, "ValaFormalParameter", &g_define_type_info, 0);
873
890
                g_once_init_leave (&vala_formal_parameter_type_id__volatile, vala_formal_parameter_type_id);
874
891
        }
875
892
        return vala_formal_parameter_type_id__volatile;