749
769
typedef struct _ValaTemplate ValaTemplate;
750
770
typedef struct _ValaTemplateClass ValaTemplateClass;
772
#define VALA_TYPE_LIST_LITERAL (vala_list_literal_get_type ())
773
#define VALA_LIST_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_LIST_LITERAL, ValaListLiteral))
774
#define VALA_LIST_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_LIST_LITERAL, ValaListLiteralClass))
775
#define VALA_IS_LIST_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_LIST_LITERAL))
776
#define VALA_IS_LIST_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_LIST_LITERAL))
777
#define VALA_LIST_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_LIST_LITERAL, ValaListLiteralClass))
779
typedef struct _ValaListLiteral ValaListLiteral;
780
typedef struct _ValaListLiteralClass ValaListLiteralClass;
782
#define VALA_TYPE_SET_LITERAL (vala_set_literal_get_type ())
783
#define VALA_SET_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SET_LITERAL, ValaSetLiteral))
784
#define VALA_SET_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SET_LITERAL, ValaSetLiteralClass))
785
#define VALA_IS_SET_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SET_LITERAL))
786
#define VALA_IS_SET_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SET_LITERAL))
787
#define VALA_SET_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SET_LITERAL, ValaSetLiteralClass))
789
typedef struct _ValaSetLiteral ValaSetLiteral;
790
typedef struct _ValaSetLiteralClass ValaSetLiteralClass;
792
#define VALA_TYPE_MAP_LITERAL (vala_map_literal_get_type ())
793
#define VALA_MAP_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_MAP_LITERAL, ValaMapLiteral))
794
#define VALA_MAP_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_MAP_LITERAL, ValaMapLiteralClass))
795
#define VALA_IS_MAP_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_MAP_LITERAL))
796
#define VALA_IS_MAP_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_MAP_LITERAL))
797
#define VALA_MAP_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_MAP_LITERAL, ValaMapLiteralClass))
799
typedef struct _ValaMapLiteral ValaMapLiteral;
800
typedef struct _ValaMapLiteralClass ValaMapLiteralClass;
802
#define VALA_TYPE_TUPLE (vala_tuple_get_type ())
803
#define VALA_TUPLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_TUPLE, ValaTuple))
804
#define VALA_TUPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_TUPLE, ValaTupleClass))
805
#define VALA_IS_TUPLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_TUPLE))
806
#define VALA_IS_TUPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_TUPLE))
807
#define VALA_TUPLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_TUPLE, ValaTupleClass))
809
typedef struct _ValaTuple ValaTuple;
810
typedef struct _ValaTupleClass ValaTupleClass;
752
812
#define VALA_TYPE_NULL_LITERAL (vala_null_literal_get_type ())
753
813
#define VALA_NULL_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_NULL_LITERAL, ValaNullLiteral))
754
814
#define VALA_NULL_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_NULL_LITERAL, ValaNullLiteralClass))
1403
1510
ValaMethod* vala_semantic_analyzer_get_current_method (ValaSemanticAnalyzer* self);
1404
1511
ValaList* vala_code_node_get_error_types (ValaCodeNode* self);
1405
1512
void vala_code_node_add_error_type (ValaCodeNode* self, ValaDataType* error_type);
1513
gboolean vala_method_get_returns_floating_reference (ValaMethod* self);
1514
void vala_data_type_set_floating_reference (ValaDataType* self, gboolean value);
1515
GType vala_dynamic_signal_get_type (void);
1516
ValaExpression* vala_dynamic_signal_get_handler (ValaDynamicSignal* self);
1517
void vala_signal_add_parameter (ValaSignal* self, ValaFormalParameter* param);
1518
ValaFormalParameter* vala_formal_parameter_copy (ValaFormalParameter* self);
1519
ValaDelegate* vala_signal_get_delegate (ValaSignal* self, ValaDataType* sender_type, ValaCodeNode* node_reference);
1520
ValaDelegateType* vala_delegate_type_new (ValaDelegate* delegate_symbol);
1521
ValaDelegateType* vala_delegate_type_construct (GType object_type, ValaDelegate* delegate_symbol);
1406
1522
GType vala_delegate_type_get_type (void);
1523
GType vala_generic_type_get_type (void);
1524
ValaTypeParameter* vala_data_type_get_type_parameter (ValaDataType* self);
1525
ValaDataType* vala_method_get_return_type (ValaMethod* self);
1526
void vala_member_access_add_type_argument (ValaMemberAccess* self, ValaDataType* arg);
1407
1527
ValaDelegate* vala_delegate_type_get_delegate_symbol (ValaDelegateType* self);
1408
1528
gboolean vala_semantic_analyzer_check_arguments (ValaSemanticAnalyzer* self, ValaExpression* expr, ValaDataType* mtype, ValaList* params, ValaList* args);
1409
1529
ValaSymbol* vala_semantic_analyzer_get_current_symbol (ValaSemanticAnalyzer* self);
1410
char* vala_code_node_get_temp_name (ValaCodeNode* self);
1530
char* vala_code_node_get_temp_name (void);
1411
1531
ValaLocalVariable* vala_local_variable_new (ValaDataType* variable_type, const char* name, ValaExpression* initializer, ValaSourceReference* source_reference);
1412
1532
ValaLocalVariable* vala_local_variable_construct (GType object_type, ValaDataType* variable_type, const char* name, ValaExpression* initializer, ValaSourceReference* source_reference);
1413
1533
void vala_local_variable_set_floating (ValaLocalVariable* self, gboolean value);
1769
1894
_tmp16_ = FALSE;
1897
ValaSymbol* _tmp19_;
1899
gboolean _tmp20_ = FALSE;
1900
gboolean _tmp21_ = FALSE;
1772
1901
ValaObjectCreationExpression* struct_creation_expression;
1902
st = _vala_code_node_ref0 ((_tmp19_ = vala_expression_get_symbol_reference (vala_method_call_get_call (self)), VALA_IS_STRUCT (_tmp19_) ? ((ValaStruct*) _tmp19_) : NULL));
1904
_tmp21_ = vala_struct_get_default_construction_method (st) == NULL;
1909
gboolean _tmp22_ = FALSE;
1910
gboolean _tmp23_ = FALSE;
1911
if (vala_struct_is_boolean_type (st)) {
1914
_tmp23_ = vala_struct_is_integer_type (st);
1919
_tmp22_ = vala_struct_is_floating_type (st);
1926
vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
1927
vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "invocation not supported in this context");
1929
_vala_code_node_unref0 (st);
1930
_vala_code_node_unref0 (target_object_type);
1931
_vala_code_node_unref0 (mtype);
1773
1934
if (vala_method_call_is_chainup (self)) {
1774
ValaMethod* _tmp19_;
1935
ValaMethod* _tmp24_;
1775
1936
ValaCreationMethod* cm;
1776
cm = (_tmp19_ = vala_semantic_analyzer_find_current_method (analyzer), VALA_IS_CREATION_METHOD (_tmp19_) ? ((ValaCreationMethod*) _tmp19_) : NULL);
1937
cm = (_tmp24_ = vala_semantic_analyzer_find_current_method (analyzer), VALA_IS_CREATION_METHOD (_tmp24_) ? ((ValaCreationMethod*) _tmp24_) : NULL);
1777
1938
if (cm != NULL) {
1778
1939
if (vala_creation_method_get_chain_up (cm)) {
1779
1940
vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
1780
1941
vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "Multiple constructor calls in the same constructor are not permitted");
1781
1942
result = FALSE;
1782
1943
_vala_code_node_unref0 (cm);
1944
_vala_code_node_unref0 (st);
1783
1945
_vala_code_node_unref0 (target_object_type);
1784
1946
_vala_code_node_unref0 (mtype);
1893
2056
params = vala_data_type_get_parameters (mtype);
1894
2057
if (VALA_IS_METHOD_TYPE (mtype)) {
1896
gboolean _tmp27_ = FALSE;
1897
gboolean _tmp28_ = FALSE;
2059
gboolean _tmp32_ = FALSE;
2060
gboolean _tmp33_ = FALSE;
2061
gboolean _tmp37_ = FALSE;
1898
2062
m = _vala_code_node_ref0 (vala_method_type_get_method_symbol (VALA_METHOD_TYPE (mtype)));
1899
2063
if (m != NULL) {
1900
_tmp28_ = vala_method_get_coroutine (m);
1905
_tmp27_ = !self->priv->_is_yield_expression;
2064
_tmp33_ = vala_method_get_coroutine (m);
2069
_tmp32_ = !self->priv->_is_yield_expression;
1910
2074
ValaMemberAccess* ma;
1911
2075
ma = _vala_code_node_ref0 (VALA_MEMBER_ACCESS (vala_method_call_get_call (self)));
1912
2076
if (_vala_strcmp0 (vala_member_access_get_member_name (ma), "end") != 0) {
1914
ValaDataType* _tmp30_;
1915
params = (_tmp29_ = vala_method_get_async_begin_parameters (m), _vala_collection_object_unref0 (params), _tmp29_);
1916
ret_type = (_tmp30_ = (ValaDataType*) vala_void_type_new (NULL), _vala_code_node_unref0 (ret_type), _tmp30_);
1919
params = (_tmp31_ = vala_method_get_async_end_parameters (m), _vala_collection_object_unref0 (params), _tmp31_);
2078
ValaDataType* _tmp35_;
2079
params = (_tmp34_ = vala_method_get_async_begin_parameters (m), _vala_collection_object_unref0 (params), _tmp34_);
2080
ret_type = (_tmp35_ = (ValaDataType*) vala_void_type_new (NULL), _vala_code_node_unref0 (ret_type), _tmp35_);
2083
params = (_tmp36_ = vala_method_get_async_end_parameters (m), _vala_collection_object_unref0 (params), _tmp36_);
2085
_vala_code_node_unref0 (ma);
2089
_tmp37_ = vala_collection_get_size ((ValaCollection*) (_tmp38_ = vala_method_get_type_parameters (m))) > 0;
2090
_vala_collection_object_unref0 (_tmp38_);
2095
ValaMemberAccess* ma;
2102
gboolean _tmp43_ = FALSE;
2103
ma = _vala_code_node_ref0 (VALA_MEMBER_ACCESS (vala_method_call_get_call (self)));
2104
n_type_params = (_tmp40_ = vala_collection_get_size ((ValaCollection*) (_tmp39_ = vala_method_get_type_parameters (m))), _vala_collection_object_unref0 (_tmp39_), _tmp40_);
2105
n_type_args = (_tmp42_ = vala_collection_get_size ((ValaCollection*) (_tmp41_ = vala_member_access_get_type_arguments (ma))), _vala_collection_object_unref0 (_tmp41_), _tmp42_);
2106
if (n_type_args > 0) {
2107
_tmp43_ = n_type_args < n_type_params;
2112
vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
2113
vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) ma), "too few type arguments");
2115
_vala_code_node_unref0 (ma);
2116
_vala_code_node_unref0 (m);
2117
_vala_code_node_unref0 (target_object_type);
2118
_vala_code_node_unref0 (mtype);
2119
_vala_code_node_unref0 (ret_type);
2120
_vala_collection_object_unref0 (params);
2123
gboolean _tmp44_ = FALSE;
2124
if (n_type_args > 0) {
2125
_tmp44_ = n_type_args > n_type_params;
2130
vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
2131
vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) ma), "too many type arguments");
2133
_vala_code_node_unref0 (ma);
2134
_vala_code_node_unref0 (m);
2135
_vala_code_node_unref0 (target_object_type);
2136
_vala_code_node_unref0 (mtype);
2137
_vala_code_node_unref0 (ret_type);
2138
_vala_collection_object_unref0 (params);
1921
2142
_vala_code_node_unref0 (ma);
1972
2193
_vala_collection_object_unref0 (_param_it);
1974
2195
if (VALA_IS_METHOD_TYPE (mtype)) {
1975
_tmp35_ = vala_method_get_printf_format (vala_method_type_get_method_symbol (VALA_METHOD_TYPE (mtype)));
2196
_tmp48_ = vala_method_get_printf_format (vala_method_type_get_method_symbol (VALA_METHOD_TYPE (mtype)));
1980
2201
ValaStringLiteral* format_literal;
1981
2202
format_literal = NULL;
1982
2203
if (last_arg != NULL) {
1983
ValaStringLiteral* _tmp37_;
1984
ValaExpression* _tmp36_;
1985
gboolean _tmp38_ = FALSE;
1986
format_literal = (_tmp37_ = _vala_code_node_ref0 ((_tmp36_ = last_arg, VALA_IS_STRING_LITERAL (_tmp36_) ? ((ValaStringLiteral*) _tmp36_) : NULL)), _vala_code_node_unref0 (format_literal), _tmp37_);
2204
ValaStringLiteral* _tmp50_;
2205
ValaExpression* _tmp49_;
2206
gboolean _tmp51_ = FALSE;
2207
format_literal = (_tmp50_ = _vala_code_node_ref0 ((_tmp49_ = last_arg, VALA_IS_STRING_LITERAL (_tmp49_) ? ((ValaStringLiteral*) _tmp49_) : NULL)), _vala_code_node_unref0 (format_literal), _tmp50_);
1987
2208
if (format_literal == NULL) {
1988
_tmp38_ = vala_collection_get_size ((ValaCollection*) args) == (vala_collection_get_size ((ValaCollection*) params) - 1);
2209
_tmp51_ = vala_collection_get_size ((ValaCollection*) args) == (vala_collection_get_size ((ValaCollection*) params) - 1);
1993
ValaStringLiteral* _tmp39_;
1994
ValaDataType* _tmp40_;
1995
ValaIterator* _tmp41_;
1996
format_literal = (_tmp39_ = vala_string_literal_new ("\"%s\"", NULL), _vala_code_node_unref0 (format_literal), _tmp39_);
1997
vala_expression_set_target_type ((ValaExpression*) format_literal, _tmp40_ = vala_data_type_copy (analyzer->string_type));
1998
_vala_code_node_unref0 (_tmp40_);
2214
ValaStringLiteral* _tmp52_;
2215
ValaDataType* _tmp53_;
2216
ValaIterator* _tmp54_;
2217
format_literal = (_tmp52_ = vala_string_literal_new ("\"%s\"", NULL), _vala_code_node_unref0 (format_literal), _tmp52_);
2218
vala_expression_set_target_type ((ValaExpression*) format_literal, _tmp53_ = vala_data_type_copy (analyzer->string_type));
2219
_vala_code_node_unref0 (_tmp53_);
1999
2220
vala_list_insert (self->priv->argument_list, vala_collection_get_size ((ValaCollection*) args) - 1, (ValaExpression*) format_literal);
2000
arg_it = (_tmp41_ = vala_iterable_iterator ((ValaIterable*) self->priv->argument_list), _vala_collection_object_unref0 (arg_it), _tmp41_);
2221
arg_it = (_tmp54_ = vala_iterable_iterator ((ValaIterable*) self->priv->argument_list), _vala_collection_object_unref0 (arg_it), _tmp54_);
2002
2223
ValaIterator* _param_it;
2003
2224
_param_it = vala_iterable_iterator ((ValaIterable*) params);
2140
2361
param_type = NULL;
2141
2362
if (c == 'd') {
2152
2373
if (length == (-2)) {
2153
ValaDataType* _tmp53_;
2154
param_type = (_tmp53_ = _vala_code_node_ref0 (analyzer->int8_type), _vala_code_node_unref0 (param_type), _tmp53_);
2374
ValaDataType* _tmp66_;
2375
param_type = (_tmp66_ = _vala_code_node_ref0 (analyzer->int8_type), _vala_code_node_unref0 (param_type), _tmp66_);
2156
2377
if (length == (-1)) {
2157
ValaDataType* _tmp54_;
2158
param_type = (_tmp54_ = _vala_code_node_ref0 (analyzer->short_type), _vala_code_node_unref0 (param_type), _tmp54_);
2378
ValaDataType* _tmp67_;
2379
param_type = (_tmp67_ = _vala_code_node_ref0 (analyzer->short_type), _vala_code_node_unref0 (param_type), _tmp67_);
2160
2381
if (length == 0) {
2161
ValaDataType* _tmp55_;
2162
param_type = (_tmp55_ = _vala_code_node_ref0 (analyzer->int_type), _vala_code_node_unref0 (param_type), _tmp55_);
2382
ValaDataType* _tmp68_;
2383
param_type = (_tmp68_ = _vala_code_node_ref0 (analyzer->int_type), _vala_code_node_unref0 (param_type), _tmp68_);
2164
2385
if (length == 1) {
2165
ValaDataType* _tmp56_;
2166
param_type = (_tmp56_ = _vala_code_node_ref0 (analyzer->long_type), _vala_code_node_unref0 (param_type), _tmp56_);
2386
ValaDataType* _tmp69_;
2387
param_type = (_tmp69_ = _vala_code_node_ref0 (analyzer->long_type), _vala_code_node_unref0 (param_type), _tmp69_);
2168
2389
if (length == 2) {
2169
ValaDataType* _tmp57_;
2170
param_type = (_tmp57_ = _vala_code_node_ref0 (analyzer->ssize_t_type), _vala_code_node_unref0 (param_type), _tmp57_);
2390
ValaDataType* _tmp70_;
2391
param_type = (_tmp70_ = _vala_code_node_ref0 (analyzer->ssize_t_type), _vala_code_node_unref0 (param_type), _tmp70_);
2177
gboolean _tmp58_ = FALSE;
2178
gboolean _tmp59_ = FALSE;
2179
gboolean _tmp60_ = FALSE;
2398
gboolean _tmp71_ = FALSE;
2399
gboolean _tmp72_ = FALSE;
2400
gboolean _tmp73_ = FALSE;
2180
2401
if (c == 'o') {
2196
2417
if (length == (-2)) {
2197
ValaDataType* _tmp61_;
2198
param_type = (_tmp61_ = _vala_code_node_ref0 (analyzer->uchar_type), _vala_code_node_unref0 (param_type), _tmp61_);
2418
ValaDataType* _tmp74_;
2419
param_type = (_tmp74_ = _vala_code_node_ref0 (analyzer->uchar_type), _vala_code_node_unref0 (param_type), _tmp74_);
2200
2421
if (length == (-1)) {
2201
ValaDataType* _tmp62_;
2202
param_type = (_tmp62_ = _vala_code_node_ref0 (analyzer->ushort_type), _vala_code_node_unref0 (param_type), _tmp62_);
2422
ValaDataType* _tmp75_;
2423
param_type = (_tmp75_ = _vala_code_node_ref0 (analyzer->ushort_type), _vala_code_node_unref0 (param_type), _tmp75_);
2204
2425
if (length == 0) {
2205
ValaDataType* _tmp63_;
2206
param_type = (_tmp63_ = _vala_code_node_ref0 (analyzer->uint_type), _vala_code_node_unref0 (param_type), _tmp63_);
2426
ValaDataType* _tmp76_;
2427
param_type = (_tmp76_ = _vala_code_node_ref0 (analyzer->uint_type), _vala_code_node_unref0 (param_type), _tmp76_);
2208
2429
if (length == 1) {
2209
ValaDataType* _tmp64_;
2210
param_type = (_tmp64_ = _vala_code_node_ref0 (analyzer->ulong_type), _vala_code_node_unref0 (param_type), _tmp64_);
2430
ValaDataType* _tmp77_;
2431
param_type = (_tmp77_ = _vala_code_node_ref0 (analyzer->ulong_type), _vala_code_node_unref0 (param_type), _tmp77_);
2212
2433
if (length == 2) {
2213
ValaDataType* _tmp65_;
2214
param_type = (_tmp65_ = _vala_code_node_ref0 (analyzer->size_t_type), _vala_code_node_unref0 (param_type), _tmp65_);
2434
ValaDataType* _tmp78_;
2435
param_type = (_tmp78_ = _vala_code_node_ref0 (analyzer->size_t_type), _vala_code_node_unref0 (param_type), _tmp78_);
2221
gboolean _tmp66_ = FALSE;
2222
gboolean _tmp67_ = FALSE;
2223
gboolean _tmp68_ = FALSE;
2224
gboolean _tmp69_ = FALSE;
2225
gboolean _tmp70_ = FALSE;
2226
gboolean _tmp71_ = FALSE;
2227
gboolean _tmp72_ = FALSE;
2442
gboolean _tmp79_ = FALSE;
2443
gboolean _tmp80_ = FALSE;
2444
gboolean _tmp81_ = FALSE;
2445
gboolean _tmp82_ = FALSE;
2446
gboolean _tmp83_ = FALSE;
2447
gboolean _tmp84_ = FALSE;
2448
gboolean _tmp85_ = FALSE;
2228
2449
if (c == 'e') {
2264
ValaDataType* _tmp73_;
2265
param_type = (_tmp73_ = _vala_code_node_ref0 (analyzer->double_type), _vala_code_node_unref0 (param_type), _tmp73_);
2485
ValaDataType* _tmp86_;
2486
param_type = (_tmp86_ = _vala_code_node_ref0 (analyzer->double_type), _vala_code_node_unref0 (param_type), _tmp86_);
2267
2488
if (c == 's') {
2268
ValaDataType* _tmp74_;
2269
param_type = (_tmp74_ = _vala_code_node_ref0 (analyzer->string_type), _vala_code_node_unref0 (param_type), _tmp74_);
2489
ValaDataType* _tmp87_;
2490
param_type = (_tmp87_ = _vala_code_node_ref0 (analyzer->string_type), _vala_code_node_unref0 (param_type), _tmp87_);
2271
2492
if (c == 'p') {
2272
ValaDataType* _tmp76_;
2273
ValaVoidType* _tmp75_;
2274
param_type = (_tmp76_ = (ValaDataType*) vala_pointer_type_new ((ValaDataType*) (_tmp75_ = vala_void_type_new (NULL)), NULL), _vala_code_node_unref0 (param_type), _tmp76_);
2275
_vala_code_node_unref0 (_tmp75_);
2493
ValaDataType* _tmp89_;
2494
ValaVoidType* _tmp88_;
2495
param_type = (_tmp89_ = (ValaDataType*) vala_pointer_type_new ((ValaDataType*) (_tmp88_ = vala_void_type_new (NULL)), NULL), _vala_code_node_unref0 (param_type), _tmp89_);
2496
_vala_code_node_unref0 (_tmp88_);
2277
2498
if (c == '%') {
2382
2603
vala_expression_set_formal_value_type ((ValaExpression*) self, ret_type);
2383
vala_expression_set_value_type ((ValaExpression*) self, _tmp83_ = vala_data_type_get_actual_type (vala_expression_get_formal_value_type ((ValaExpression*) self), target_object_type, (_tmp82_ = vala_method_call_get_call (self), VALA_IS_MEMBER_ACCESS (_tmp82_) ? ((ValaMemberAccess*) _tmp82_) : NULL), (ValaCodeNode*) self));
2384
_vala_code_node_unref0 (_tmp83_);
2604
vala_expression_set_value_type ((ValaExpression*) self, _tmp96_ = vala_data_type_get_actual_type (vala_expression_get_formal_value_type ((ValaExpression*) self), target_object_type, (_tmp95_ = vala_method_call_get_call (self), VALA_IS_MEMBER_ACCESS (_tmp95_) ? ((ValaMemberAccess*) _tmp95_) : NULL), (ValaCodeNode*) self));
2605
_vala_code_node_unref0 (_tmp96_);
2385
2606
may_throw = FALSE;
2386
2607
if (VALA_IS_METHOD_TYPE (mtype)) {
2388
gboolean _tmp85_ = FALSE;
2389
gboolean _tmp86_ = FALSE;
2390
gboolean _tmp87_ = FALSE;
2609
gboolean _tmp98_ = FALSE;
2610
gboolean _tmp99_ = FALSE;
2611
gboolean _tmp100_ = FALSE;
2612
ValaSymbol* _tmp103_;
2613
ValaDynamicSignal* dynamic_sig;
2614
gboolean _tmp104_ = FALSE;
2615
gboolean _tmp111_ = FALSE;
2391
2616
m = _vala_code_node_ref0 (vala_method_type_get_method_symbol (VALA_METHOD_TYPE (mtype)));
2392
2617
if (self->priv->_is_yield_expression) {
2393
gboolean _tmp84_ = FALSE;
2618
gboolean _tmp97_ = FALSE;
2394
2619
if (!vala_method_get_coroutine (m)) {
2395
2620
vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
2396
2621
vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "yield expression requires async method");
2398
2623
if (vala_semantic_analyzer_get_current_method (analyzer) == NULL) {
2401
_tmp84_ = !vala_method_get_coroutine (vala_semantic_analyzer_get_current_method (analyzer));
2626
_tmp97_ = !vala_method_get_coroutine (vala_semantic_analyzer_get_current_method (analyzer));
2404
2629
vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
2405
2630
vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "yield expression not available outside async method");
2408
2633
if (m != NULL) {
2409
_tmp87_ = vala_method_get_coroutine (m);
2414
_tmp86_ = !self->priv->_is_yield_expression;
2419
_tmp85_ = _vala_strcmp0 (vala_member_access_get_member_name (VALA_MEMBER_ACCESS (vala_method_call_get_call (self))), "end") != 0;
2634
_tmp100_ = vala_method_get_coroutine (m);
2639
_tmp99_ = !self->priv->_is_yield_expression;
2644
_tmp98_ = _vala_strcmp0 (vala_member_access_get_member_name (VALA_MEMBER_ACCESS (vala_method_call_get_call (self))), "end") != 0;
2427
ValaIterator* _tmp89_;
2652
ValaIterator* _tmp102_;
2428
2653
ValaIterator* _error_type_it;
2429
_error_type_it = (_tmp89_ = vala_iterable_iterator ((ValaIterable*) (_tmp88_ = vala_code_node_get_error_types ((ValaCodeNode*) m))), _vala_collection_object_unref0 (_tmp88_), _tmp89_);
2654
_error_type_it = (_tmp102_ = vala_iterable_iterator ((ValaIterable*) (_tmp101_ = vala_code_node_get_error_types ((ValaCodeNode*) m))), _vala_collection_object_unref0 (_tmp101_), _tmp102_);
2431
2656
ValaDataType* error_type;
2432
2657
ValaDataType* call_error_type;
2444
2669
_vala_collection_object_unref0 (_error_type_it);
2672
if (vala_method_get_returns_floating_reference (m)) {
2673
vala_data_type_set_floating_reference (vala_expression_get_value_type ((ValaExpression*) self), TRUE);
2675
dynamic_sig = _vala_code_node_ref0 ((_tmp103_ = vala_symbol_get_parent_symbol ((ValaSymbol*) m), VALA_IS_DYNAMIC_SIGNAL (_tmp103_) ? ((ValaDynamicSignal*) _tmp103_) : NULL));
2676
if (dynamic_sig != NULL) {
2677
_tmp104_ = vala_dynamic_signal_get_handler (dynamic_sig) != NULL;
2683
ValaDelegateType* _tmp110_;
2684
ValaDelegate* _tmp109_;
2685
ValaObjectType* _tmp108_;
2689
ValaIterator* _tmp106_;
2690
ValaIterator* _param_it;
2691
_param_it = (_tmp106_ = vala_iterable_iterator ((ValaIterable*) (_tmp105_ = vala_data_type_get_parameters (vala_expression_get_value_type (vala_dynamic_signal_get_handler (dynamic_sig))))), _vala_collection_object_unref0 (_tmp105_), _tmp106_);
2693
ValaFormalParameter* param;
2694
if (!vala_iterator_next (_param_it)) {
2697
param = (ValaFormalParameter*) vala_iterator_get (_param_it);
2701
ValaFormalParameter* _tmp107_;
2702
vala_signal_add_parameter ((ValaSignal*) dynamic_sig, _tmp107_ = vala_formal_parameter_copy (param));
2703
_vala_code_node_unref0 (_tmp107_);
2705
_vala_code_node_unref0 (param);
2707
_vala_collection_object_unref0 (_param_it);
2709
vala_expression_set_target_type (vala_dynamic_signal_get_handler (dynamic_sig), (ValaDataType*) (_tmp110_ = vala_delegate_type_new (_tmp109_ = vala_signal_get_delegate ((ValaSignal*) dynamic_sig, (ValaDataType*) (_tmp108_ = vala_object_type_new (VALA_OBJECT_TYPE_SYMBOL (vala_symbol_get_parent_symbol ((ValaSymbol*) dynamic_sig)))), (ValaCodeNode*) self))));
2710
_vala_code_node_unref0 (_tmp110_);
2711
_vala_code_node_unref0 (_tmp109_);
2712
_vala_code_node_unref0 (_tmp108_);
2716
_tmp111_ = vala_collection_get_size ((ValaCollection*) (_tmp112_ = vala_method_get_type_parameters (m))) > 0;
2717
_vala_collection_object_unref0 (_tmp112_);
2722
ValaMemberAccess* ma;
2725
ma = _vala_code_node_ref0 (VALA_MEMBER_ACCESS (vala_method_call_get_call (self)));
2726
if ((_tmp114_ = vala_collection_get_size ((ValaCollection*) (_tmp113_ = vala_member_access_get_type_arguments (ma))) == 0, _vala_collection_object_unref0 (_tmp113_), _tmp114_)) {
2727
ValaIterator* _tmp130_;
2728
ValaDataType* _tmp135_;
2729
ValaExpression* _tmp134_;
2732
ValaIterator* _tmp116_;
2733
ValaIterator* _type_param_it;
2734
_type_param_it = (_tmp116_ = vala_iterable_iterator ((ValaIterable*) (_tmp115_ = vala_method_get_type_parameters (m))), _vala_collection_object_unref0 (_tmp115_), _tmp116_);
2736
ValaTypeParameter* type_param;
2737
ValaDataType* type_arg;
2738
ValaIterator* _tmp117_;
2739
gboolean _tmp124_ = FALSE;
2740
if (!vala_iterator_next (_type_param_it)) {
2743
type_param = (ValaTypeParameter*) vala_iterator_get (_type_param_it);
2745
arg_it = (_tmp117_ = vala_iterable_iterator ((ValaIterable*) args), _vala_collection_object_unref0 (arg_it), _tmp117_);
2747
ValaIterator* _param_it;
2748
_param_it = vala_iterable_iterator ((ValaIterable*) params);
2750
ValaFormalParameter* param;
2751
gboolean _tmp118_ = FALSE;
2752
if (!vala_iterator_next (_param_it)) {
2755
param = (ValaFormalParameter*) vala_iterator_get (_param_it);
2756
if (vala_formal_parameter_get_ellipsis (param)) {
2759
_tmp118_ = vala_formal_parameter_get_params_array (param);
2762
_vala_code_node_unref0 (param);
2765
if (vala_iterator_next (arg_it)) {
2766
ValaExpression* arg;
2767
ValaDataType* _tmp119_;
2768
ValaGenericType* generic_type;
2769
gboolean _tmp120_ = FALSE;
2770
ValaDataType* _tmp123_;
2771
ValaExpression* _tmp122_;
2772
arg = (ValaExpression*) vala_iterator_get (arg_it);
2773
generic_type = _vala_code_node_ref0 ((_tmp119_ = vala_formal_parameter_get_parameter_type (param), VALA_IS_GENERIC_TYPE (_tmp119_) ? ((ValaGenericType*) _tmp119_) : NULL));
2774
if (generic_type != NULL) {
2775
_tmp120_ = vala_data_type_get_type_parameter ((ValaDataType*) generic_type) == type_param;
2780
ValaDataType* _tmp121_;
2781
type_arg = (_tmp121_ = vala_data_type_copy (vala_expression_get_value_type (arg)), _vala_code_node_unref0 (type_arg), _tmp121_);
2782
vala_data_type_set_value_owned (type_arg, TRUE);
2783
_vala_code_node_unref0 (arg);
2784
_vala_code_node_unref0 (generic_type);
2785
_vala_code_node_unref0 (param);
2788
vala_expression_set_target_type (arg, _tmp123_ = vala_data_type_get_actual_type (vala_expression_get_formal_target_type (arg), target_object_type, (_tmp122_ = vala_method_call_get_call (self), VALA_IS_MEMBER_ACCESS (_tmp122_) ? ((ValaMemberAccess*) _tmp122_) : NULL), (ValaCodeNode*) self));
2789
_vala_code_node_unref0 (_tmp123_);
2790
_vala_code_node_unref0 (arg);
2791
_vala_code_node_unref0 (generic_type);
2793
_vala_code_node_unref0 (param);
2795
_vala_collection_object_unref0 (_param_it);
2797
if (type_arg == NULL) {
2798
_tmp124_ = vala_expression_get_target_type ((ValaExpression*) self) != NULL;
2803
ValaDataType* _tmp125_;
2804
ValaGenericType* generic_type;
2805
gboolean _tmp126_ = FALSE;
2806
generic_type = _vala_code_node_ref0 ((_tmp125_ = vala_method_get_return_type (m), VALA_IS_GENERIC_TYPE (_tmp125_) ? ((ValaGenericType*) _tmp125_) : NULL));
2807
if (generic_type != NULL) {
2808
_tmp126_ = vala_data_type_get_type_parameter ((ValaDataType*) generic_type) == type_param;
2813
ValaDataType* _tmp127_;
2814
type_arg = (_tmp127_ = vala_data_type_copy (vala_expression_get_target_type ((ValaExpression*) self)), _vala_code_node_unref0 (type_arg), _tmp127_);
2815
vala_data_type_set_value_owned (type_arg, TRUE);
2817
_vala_code_node_unref0 (generic_type);
2819
if (type_arg == NULL) {
2822
vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
2823
vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) ma), _tmp129_ = g_strdup_printf ("cannot infer generic type argument for type parameter `%s'", _tmp128_ = vala_symbol_get_full_name ((ValaSymbol*) type_param)));
2824
_g_free0 (_tmp129_);
2825
_g_free0 (_tmp128_);
2827
_vala_code_node_unref0 (type_param);
2828
_vala_code_node_unref0 (type_arg);
2829
_vala_collection_object_unref0 (_type_param_it);
2830
_vala_code_node_unref0 (ma);
2831
_vala_code_node_unref0 (m);
2832
_vala_code_node_unref0 (dynamic_sig);
2833
_vala_code_node_unref0 (target_object_type);
2834
_vala_code_node_unref0 (mtype);
2835
_vala_code_node_unref0 (ret_type);
2836
_vala_collection_object_unref0 (params);
2837
_vala_code_node_unref0 (last_arg);
2838
_vala_collection_object_unref0 (args);
2839
_vala_collection_object_unref0 (arg_it);
2842
vala_member_access_add_type_argument (ma, type_arg);
2843
_vala_code_node_unref0 (type_param);
2844
_vala_code_node_unref0 (type_arg);
2846
_vala_collection_object_unref0 (_type_param_it);
2848
arg_it = (_tmp130_ = vala_iterable_iterator ((ValaIterable*) args), _vala_collection_object_unref0 (arg_it), _tmp130_);
2850
ValaIterator* _param_it;
2851
_param_it = vala_iterable_iterator ((ValaIterable*) params);
2853
ValaFormalParameter* param;
2854
gboolean _tmp131_ = FALSE;
2855
if (!vala_iterator_next (_param_it)) {
2858
param = (ValaFormalParameter*) vala_iterator_get (_param_it);
2859
if (vala_formal_parameter_get_ellipsis (param)) {
2862
_tmp131_ = vala_formal_parameter_get_params_array (param);
2865
_vala_code_node_unref0 (param);
2868
if (vala_iterator_next (arg_it)) {
2869
ValaExpression* arg;
2870
ValaDataType* _tmp133_;
2871
ValaExpression* _tmp132_;
2872
arg = (ValaExpression*) vala_iterator_get (arg_it);
2873
vala_expression_set_target_type (arg, _tmp133_ = vala_data_type_get_actual_type (vala_expression_get_formal_target_type (arg), target_object_type, (_tmp132_ = vala_method_call_get_call (self), VALA_IS_MEMBER_ACCESS (_tmp132_) ? ((ValaMemberAccess*) _tmp132_) : NULL), (ValaCodeNode*) self));
2874
_vala_code_node_unref0 (_tmp133_);
2875
_vala_code_node_unref0 (arg);
2877
_vala_code_node_unref0 (param);
2879
_vala_collection_object_unref0 (_param_it);
2881
vala_expression_set_value_type ((ValaExpression*) self, _tmp135_ = vala_data_type_get_actual_type (vala_expression_get_formal_value_type ((ValaExpression*) self), target_object_type, (_tmp134_ = vala_method_call_get_call (self), VALA_IS_MEMBER_ACCESS (_tmp134_) ? ((ValaMemberAccess*) _tmp134_) : NULL), (ValaCodeNode*) self));
2882
_vala_code_node_unref0 (_tmp135_);
2884
_vala_code_node_unref0 (ma);
2447
2886
_vala_code_node_unref0 (m);
2887
_vala_code_node_unref0 (dynamic_sig);
2449
2889
if (VALA_IS_DELEGATE_TYPE (mtype)) {
2450
2890
ValaDelegate* d;
2451
2891
d = _vala_code_node_ref0 (vala_delegate_type_get_delegate_symbol (VALA_DELEGATE_TYPE (mtype)));
2454
ValaIterator* _tmp91_;
2894
ValaIterator* _tmp137_;
2455
2895
ValaIterator* _error_type_it;
2456
_error_type_it = (_tmp91_ = vala_iterable_iterator ((ValaIterable*) (_tmp90_ = vala_code_node_get_error_types ((ValaCodeNode*) d))), _vala_collection_object_unref0 (_tmp90_), _tmp91_);
2896
_error_type_it = (_tmp137_ = vala_iterable_iterator ((ValaIterable*) (_tmp136_ = vala_code_node_get_error_types ((ValaCodeNode*) d))), _vala_collection_object_unref0 (_tmp136_), _tmp137_);
2458
2898
ValaDataType* error_type;
2459
2899
ValaDataType* call_error_type;
2488
2928
if (may_throw) {
2489
gboolean _tmp94_ = FALSE;
2929
gboolean _tmp140_ = FALSE;
2490
2930
if (VALA_IS_LOCAL_VARIABLE (vala_code_node_get_parent_node ((ValaCodeNode*) self))) {
2493
_tmp94_ = VALA_IS_EXPRESSION_STATEMENT (vala_code_node_get_parent_node ((ValaCodeNode*) self));
2933
_tmp140_ = VALA_IS_EXPRESSION_STATEMENT (vala_code_node_get_parent_node ((ValaCodeNode*) self));
2497
2937
if (!VALA_IS_BLOCK (vala_semantic_analyzer_get_current_symbol (analyzer))) {
2498
2938
vala_report_error (vala_code_node_get_source_reference ((ValaCodeNode*) self), "Field initializers must not throw errors");
2500
2940
ValaCodeNode* old_parent_node;
2502
ValaLocalVariable* _tmp96_;
2942
ValaLocalVariable* _tmp142_;
2503
2943
ValaLocalVariable* local;
2504
2944
ValaDeclarationStatement* decl;
2505
2945
ValaExpression* temp_access;
2506
2946
ValaBlock* block;
2507
2947
old_parent_node = _vala_code_node_ref0 (vala_code_node_get_parent_node ((ValaCodeNode*) self));
2508
local = (_tmp96_ = vala_local_variable_new (vala_expression_get_value_type ((ValaExpression*) self), _tmp95_ = vala_code_node_get_temp_name ((ValaCodeNode*) self), NULL, vala_code_node_get_source_reference ((ValaCodeNode*) self)), _g_free0 (_tmp95_), _tmp96_);
2948
local = (_tmp142_ = vala_local_variable_new (vala_expression_get_value_type ((ValaExpression*) self), _tmp141_ = vala_code_node_get_temp_name (), NULL, vala_code_node_get_source_reference ((ValaCodeNode*) self)), _g_free0 (_tmp141_), _tmp142_);
2509
2949
vala_local_variable_set_floating (local, TRUE);
2510
2950
decl = vala_declaration_statement_new ((ValaSymbol*) local, vala_code_node_get_source_reference ((ValaCodeNode*) self));
2511
2951
vala_expression_insert_statement ((ValaExpression*) self, analyzer->insert_block, (ValaStatement*) decl);