~ubuntu-branches/ubuntu/quantal/vala/quantal

« back to all changes in this revision

Viewing changes to vala/valamemberaccess.c

  • Committer: Bazaar Package Importer
  • Author(s): Robert Ancell
  • Date: 2011-03-17 09:35:15 UTC
  • mfrom: (1.5.17 upstream)
  • Revision ID: james.westby@ubuntu.com-20110317093515-veyqriw9egujkws2
Tags: 0.11.7-0ubuntu1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
1664
1664
ValaPropertyAccessor* vala_property_get_get_accessor (ValaProperty* self);
1665
1665
void vala_symbol_set_used (ValaSymbol* self, gboolean value);
1666
1666
gboolean vala_symbol_check_deprecated (ValaSymbol* self, ValaSourceReference* source_ref);
 
1667
gboolean vala_symbol_check_experimental (ValaSymbol* self, ValaSourceReference* source_ref);
1667
1668
gboolean vala_typesymbol_is_subtype_of (ValaTypeSymbol* self, ValaTypeSymbol* t);
1668
1669
ValaList* vala_object_type_symbol_get_type_parameters (ValaObjectTypeSymbol* self);
1669
1670
ValaList* vala_data_type_get_type_arguments (ValaDataType* self);
1867
1868
                        _tmp7_ = vala_code_node_to_string ((ValaCodeNode*) _tmp6_);
1868
1869
                        _tmp8_ = _tmp7_;
1869
1870
                        _tmp9_ = g_strdup_printf ("%s.%s", _tmp8_, self->priv->_member_name);
1870
 
                        result = (_tmp10_ = _tmp9_, _g_free0 (_tmp8_), _tmp10_);
 
1871
                        _tmp10_ = _tmp9_;
 
1872
                        _g_free0 (_tmp8_);
 
1873
                        result = _tmp10_;
1871
1874
                        return result;
1872
1875
                }
1873
1876
        } else {
1949
1952
                                }
1950
1953
                                _tmp2_ = vala_list_get (self->priv->type_argument_list, i);
1951
1954
                                _tmp3_ = (ValaDataType*) _tmp2_;
1952
 
                                if ((_tmp4_ = _tmp3_ == old_type, _vala_code_node_unref0 (_tmp3_), _tmp4_)) {
 
1955
                                _tmp4_ = _tmp3_ == old_type;
 
1956
                                _vala_code_node_unref0 (_tmp3_);
 
1957
                                if (_tmp4_) {
1953
1958
                                        vala_list_set (self->priv->type_argument_list, i, new_type);
1954
1959
                                        return;
1955
1960
                                }
1974
1979
        ValaSymbol* _tmp3_ = NULL;
1975
1980
        self = (ValaMemberAccess*) base;
1976
1981
        _tmp0_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
1977
 
        _tmp2_ = _vala_code_node_ref0 ((_tmp1_ = _tmp0_, VALA_IS_METHOD (_tmp1_) ? ((ValaMethod*) _tmp1_) : NULL));
 
1982
        _tmp1_ = _tmp0_;
 
1983
        _tmp2_ = _vala_code_node_ref0 (VALA_IS_METHOD (_tmp1_) ? ((ValaMethod*) _tmp1_) : NULL);
1978
1984
        method = _tmp2_;
1979
1985
        _tmp3_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
1980
1986
        if (VALA_IS_CONSTANT (_tmp3_)) {
2019
2025
        ValaConstant* c;
2020
2026
        self = (ValaMemberAccess*) base;
2021
2027
        _tmp0_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
2022
 
        _tmp2_ = _vala_code_node_ref0 ((_tmp1_ = _tmp0_, VALA_IS_CONSTANT (_tmp1_) ? ((ValaConstant*) _tmp1_) : NULL));
 
2028
        _tmp1_ = _tmp0_;
 
2029
        _tmp2_ = _vala_code_node_ref0 (VALA_IS_CONSTANT (_tmp1_) ? ((ValaConstant*) _tmp1_) : NULL);
2023
2030
        c = _tmp2_;
2024
2031
        if (c != NULL) {
2025
2032
                ValaDataType* _tmp3_ = NULL;
2047
2054
        ValaParameter* this_parameter;
2048
2055
        gboolean may_access_instance_members;
2049
2056
        gboolean may_access_klass_members;
2050
 
        ValaSymbol* _tmp263_ = NULL;
2051
 
        ValaSymbol* _tmp278_ = NULL;
2052
 
        ValaSymbol* _tmp279_;
 
2057
        ValaSymbol* _tmp249_ = NULL;
 
2058
        ValaSymbol* _tmp262_ = NULL;
 
2059
        ValaSymbol* _tmp263_;
2053
2060
        ValaSymbol* member;
2054
2061
        ValaSymbolAccessibility access;
2055
2062
        gboolean instance;
2056
2063
        gboolean klass;
2057
2064
        gboolean generics;
2058
 
        gboolean _tmp280_;
2059
 
        ValaSourceReference* _tmp455_ = NULL;
2060
 
        gboolean _tmp488_ = FALSE;
2061
 
        gboolean _tmp513_ = FALSE;
2062
 
        gboolean _tmp514_ = FALSE;
2063
 
        gboolean _tmp631_;
 
2065
        gboolean _tmp264_;
 
2066
        ValaSourceReference* _tmp425_ = NULL;
 
2067
        ValaSourceReference* _tmp426_ = NULL;
 
2068
        gboolean _tmp457_ = FALSE;
 
2069
        gboolean _tmp481_ = FALSE;
 
2070
        gboolean _tmp482_ = FALSE;
 
2071
        gboolean _tmp593_;
2064
2072
        self = (ValaMemberAccess*) base;
2065
2073
        g_return_val_if_fail (context != NULL, FALSE);
2066
2074
        _tmp0_ = vala_code_node_get_checked ((ValaCodeNode*) self);
2110
2118
        if (self->priv->_qualified) {
2111
2119
                ValaSemanticAnalyzer* _tmp7_ = NULL;
2112
2120
                ValaSymbol* _tmp8_;
2113
 
                ValaSymbol* _tmp9_;
2114
 
                ValaSemanticAnalyzer* _tmp10_ = NULL;
2115
 
                ValaScope* _tmp11_ = NULL;
2116
 
                ValaSymbol* _tmp12_ = NULL;
2117
 
                ValaSymbol* _tmp13_;
 
2121
                ValaSemanticAnalyzer* _tmp9_ = NULL;
 
2122
                ValaScope* _tmp10_ = NULL;
 
2123
                ValaSymbol* _tmp11_ = NULL;
 
2124
                ValaSymbol* _tmp12_;
2118
2125
                _tmp7_ = vala_code_context_get_analyzer (context);
2119
2126
                _tmp8_ = _vala_code_node_ref0 (_tmp7_->root_symbol);
2120
 
                _tmp9_ = _tmp8_;
2121
2127
                _vala_code_node_unref0 (base_symbol);
2122
 
                base_symbol = _tmp9_;
2123
 
                _tmp10_ = vala_code_context_get_analyzer (context);
2124
 
                _tmp11_ = vala_symbol_get_scope (_tmp10_->root_symbol);
2125
 
                _tmp12_ = vala_scope_lookup (_tmp11_, self->priv->_member_name);
2126
 
                _tmp13_ = _tmp12_;
2127
 
                vala_expression_set_symbol_reference ((ValaExpression*) self, _tmp13_);
2128
 
                _vala_code_node_unref0 (_tmp13_);
 
2128
                base_symbol = _tmp8_;
 
2129
                _tmp9_ = vala_code_context_get_analyzer (context);
 
2130
                _tmp10_ = vala_symbol_get_scope (_tmp9_->root_symbol);
 
2131
                _tmp11_ = vala_scope_lookup (_tmp10_, self->priv->_member_name);
 
2132
                _tmp12_ = _tmp11_;
 
2133
                vala_expression_set_symbol_reference ((ValaExpression*) self, _tmp12_);
 
2134
                _vala_code_node_unref0 (_tmp12_);
2129
2135
        } else {
2130
 
                ValaExpression* _tmp14_ = NULL;
2131
 
                _tmp14_ = vala_member_access_get_inner (self);
2132
 
                if (_tmp14_ == NULL) {
2133
 
                        ValaSemanticAnalyzer* _tmp18_ = NULL;
2134
 
                        ValaSymbol* _tmp19_ = NULL;
2135
 
                        ValaSymbol* _tmp20_;
2136
 
                        ValaSymbol* _tmp21_;
 
2136
                ValaExpression* _tmp13_ = NULL;
 
2137
                _tmp13_ = vala_member_access_get_inner (self);
 
2138
                if (_tmp13_ == NULL) {
 
2139
                        ValaSemanticAnalyzer* _tmp17_ = NULL;
 
2140
                        ValaSymbol* _tmp18_ = NULL;
 
2141
                        ValaSymbol* _tmp19_;
2137
2142
                        gboolean method_found;
2138
 
                        ValaSemanticAnalyzer* _tmp22_ = NULL;
2139
 
                        ValaSymbol* _tmp23_ = NULL;
2140
 
                        ValaSymbol* _tmp24_;
 
2143
                        ValaSemanticAnalyzer* _tmp20_ = NULL;
 
2144
                        ValaSymbol* _tmp21_ = NULL;
 
2145
                        ValaSymbol* _tmp22_;
2141
2146
                        ValaSymbol* sym;
2142
 
                        gboolean _tmp61_ = FALSE;
2143
 
                        ValaSymbol* _tmp62_ = NULL;
 
2147
                        gboolean _tmp52_ = FALSE;
 
2148
                        ValaSymbol* _tmp53_ = NULL;
2144
2149
                        if (g_strcmp0 (self->priv->_member_name, "this") == 0) {
2145
 
                                ValaSemanticAnalyzer* _tmp15_ = NULL;
2146
 
                                gboolean _tmp16_;
2147
 
                                _tmp15_ = vala_code_context_get_analyzer (context);
2148
 
                                _tmp16_ = vala_semantic_analyzer_is_in_instance_method (_tmp15_);
2149
 
                                if (!_tmp16_) {
2150
 
                                        ValaSourceReference* _tmp17_ = NULL;
 
2150
                                ValaSemanticAnalyzer* _tmp14_ = NULL;
 
2151
                                gboolean _tmp15_;
 
2152
                                _tmp14_ = vala_code_context_get_analyzer (context);
 
2153
                                _tmp15_ = vala_semantic_analyzer_is_in_instance_method (_tmp14_);
 
2154
                                if (!_tmp15_) {
 
2155
                                        ValaSourceReference* _tmp16_ = NULL;
2151
2156
                                        vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
2152
 
                                        _tmp17_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
2153
 
                                        vala_report_error (_tmp17_, "This access invalid outside of instance methods");
 
2157
                                        _tmp16_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
2158
                                        vala_report_error (_tmp16_, "This access invalid outside of instance methods");
2154
2159
                                        result = FALSE;
2155
2160
                                        _vala_code_node_unref0 (this_parameter);
2156
2161
                                        _vala_code_node_unref0 (base_symbol);
2157
2162
                                        return result;
2158
2163
                                }
2159
2164
                        }
2160
 
                        _tmp18_ = vala_code_context_get_analyzer (context);
2161
 
                        _tmp19_ = vala_semantic_analyzer_get_current_symbol (_tmp18_);
2162
 
                        _tmp20_ = _vala_code_node_ref0 (_tmp19_);
2163
 
                        _tmp21_ = _tmp20_;
 
2165
                        _tmp17_ = vala_code_context_get_analyzer (context);
 
2166
                        _tmp18_ = vala_semantic_analyzer_get_current_symbol (_tmp17_);
 
2167
                        _tmp19_ = _vala_code_node_ref0 (_tmp18_);
2164
2168
                        _vala_code_node_unref0 (base_symbol);
2165
 
                        base_symbol = _tmp21_;
 
2169
                        base_symbol = _tmp19_;
2166
2170
                        method_found = FALSE;
2167
 
                        _tmp22_ = vala_code_context_get_analyzer (context);
2168
 
                        _tmp23_ = vala_semantic_analyzer_get_current_symbol (_tmp22_);
2169
 
                        _tmp24_ = _vala_code_node_ref0 (_tmp23_);
2170
 
                        sym = _tmp24_;
 
2171
                        _tmp20_ = vala_code_context_get_analyzer (context);
 
2172
                        _tmp21_ = vala_semantic_analyzer_get_current_symbol (_tmp20_);
 
2173
                        _tmp22_ = _vala_code_node_ref0 (_tmp21_);
 
2174
                        sym = _tmp22_;
2171
2175
                        while (TRUE) {
2172
 
                                gboolean _tmp25_ = FALSE;
2173
 
                                ValaSemanticAnalyzer* _tmp53_ = NULL;
2174
 
                                ValaSymbol* _tmp54_ = NULL;
2175
 
                                ValaSymbol* _tmp55_;
2176
 
                                ValaSymbol* _tmp56_ = NULL;
2177
 
                                ValaSymbol* _tmp58_ = NULL;
2178
 
                                ValaSymbol* _tmp59_;
2179
 
                                ValaSymbol* _tmp60_;
 
2176
                                gboolean _tmp23_ = FALSE;
 
2177
                                ValaSemanticAnalyzer* _tmp46_ = NULL;
 
2178
                                ValaSymbol* _tmp47_ = NULL;
 
2179
                                ValaSymbol* _tmp48_;
 
2180
                                ValaSymbol* _tmp49_ = NULL;
 
2181
                                ValaSymbol* _tmp50_ = NULL;
 
2182
                                ValaSymbol* _tmp51_;
2180
2183
                                if (sym != NULL) {
2181
 
                                        ValaSymbol* _tmp26_ = NULL;
2182
 
                                        _tmp26_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
2183
 
                                        _tmp25_ = _tmp26_ == NULL;
 
2184
                                        ValaSymbol* _tmp24_ = NULL;
 
2185
                                        _tmp24_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
2186
                                        _tmp23_ = _tmp24_ == NULL;
2184
2187
                                } else {
2185
 
                                        _tmp25_ = FALSE;
 
2188
                                        _tmp23_ = FALSE;
2186
2189
                                }
2187
 
                                if (!_tmp25_) {
 
2190
                                if (!_tmp23_) {
2188
2191
                                        break;
2189
2192
                                }
2190
2193
                                if (!method_found) {
2191
2194
                                        if (VALA_IS_CREATION_METHOD (sym)) {
2192
 
                                                ValaCreationMethod* _tmp27_;
 
2195
                                                ValaCreationMethod* _tmp25_;
2193
2196
                                                ValaCreationMethod* cm;
2194
 
                                                ValaParameter* _tmp28_ = NULL;
2195
 
                                                ValaParameter* _tmp29_;
2196
 
                                                ValaParameter* _tmp30_;
2197
 
                                                _tmp27_ = _vala_code_node_ref0 (VALA_CREATION_METHOD (sym));
2198
 
                                                cm = _tmp27_;
2199
 
                                                _tmp28_ = vala_method_get_this_parameter ((ValaMethod*) cm);
2200
 
                                                _tmp29_ = _vala_code_node_ref0 (_tmp28_);
2201
 
                                                _tmp30_ = _tmp29_;
 
2197
                                                ValaParameter* _tmp26_ = NULL;
 
2198
                                                ValaParameter* _tmp27_;
 
2199
                                                _tmp25_ = _vala_code_node_ref0 (VALA_CREATION_METHOD (sym));
 
2200
                                                cm = _tmp25_;
 
2201
                                                _tmp26_ = vala_method_get_this_parameter ((ValaMethod*) cm);
 
2202
                                                _tmp27_ = _vala_code_node_ref0 (_tmp26_);
2202
2203
                                                _vala_code_node_unref0 (this_parameter);
2203
 
                                                this_parameter = _tmp30_;
 
2204
                                                this_parameter = _tmp27_;
2204
2205
                                                may_access_instance_members = TRUE;
2205
2206
                                                may_access_klass_members = TRUE;
2206
2207
                                                method_found = TRUE;
2207
2208
                                                _vala_code_node_unref0 (cm);
2208
2209
                                        } else {
2209
2210
                                                if (VALA_IS_PROPERTY (sym)) {
2210
 
                                                        ValaProperty* _tmp31_;
 
2211
                                                        ValaProperty* _tmp28_;
2211
2212
                                                        ValaProperty* prop;
2212
 
                                                        ValaParameter* _tmp32_ = NULL;
2213
 
                                                        ValaParameter* _tmp33_;
2214
 
                                                        ValaParameter* _tmp34_;
2215
 
                                                        ValaMemberBinding _tmp35_;
2216
 
                                                        ValaMemberBinding _tmp36_;
2217
 
                                                        _tmp31_ = _vala_code_node_ref0 (VALA_PROPERTY (sym));
2218
 
                                                        prop = _tmp31_;
2219
 
                                                        _tmp32_ = vala_property_get_this_parameter (prop);
2220
 
                                                        _tmp33_ = _vala_code_node_ref0 (_tmp32_);
2221
 
                                                        _tmp34_ = _tmp33_;
 
2213
                                                        ValaParameter* _tmp29_ = NULL;
 
2214
                                                        ValaParameter* _tmp30_;
 
2215
                                                        ValaMemberBinding _tmp31_;
 
2216
                                                        ValaMemberBinding _tmp32_;
 
2217
                                                        _tmp28_ = _vala_code_node_ref0 (VALA_PROPERTY (sym));
 
2218
                                                        prop = _tmp28_;
 
2219
                                                        _tmp29_ = vala_property_get_this_parameter (prop);
 
2220
                                                        _tmp30_ = _vala_code_node_ref0 (_tmp29_);
2222
2221
                                                        _vala_code_node_unref0 (this_parameter);
2223
 
                                                        this_parameter = _tmp34_;
2224
 
                                                        _tmp35_ = vala_property_get_binding (prop);
2225
 
                                                        may_access_instance_members = _tmp35_ == VALA_MEMBER_BINDING_INSTANCE;
2226
 
                                                        _tmp36_ = vala_property_get_binding (prop);
2227
 
                                                        may_access_klass_members = _tmp36_ != VALA_MEMBER_BINDING_STATIC;
 
2222
                                                        this_parameter = _tmp30_;
 
2223
                                                        _tmp31_ = vala_property_get_binding (prop);
 
2224
                                                        may_access_instance_members = _tmp31_ == VALA_MEMBER_BINDING_INSTANCE;
 
2225
                                                        _tmp32_ = vala_property_get_binding (prop);
 
2226
                                                        may_access_klass_members = _tmp32_ != VALA_MEMBER_BINDING_STATIC;
2228
2227
                                                        method_found = TRUE;
2229
2228
                                                        _vala_code_node_unref0 (prop);
2230
2229
                                                } else {
2231
2230
                                                        if (VALA_IS_CONSTRUCTOR (sym)) {
2232
 
                                                                ValaConstructor* _tmp37_;
 
2231
                                                                ValaConstructor* _tmp33_;
2233
2232
                                                                ValaConstructor* c;
2234
 
                                                                ValaParameter* _tmp38_ = NULL;
2235
 
                                                                ValaParameter* _tmp39_;
2236
 
                                                                ValaParameter* _tmp40_;
2237
 
                                                                ValaMemberBinding _tmp41_;
2238
 
                                                                _tmp37_ = _vala_code_node_ref0 (VALA_CONSTRUCTOR (sym));
2239
 
                                                                c = _tmp37_;
2240
 
                                                                _tmp38_ = vala_constructor_get_this_parameter (c);
2241
 
                                                                _tmp39_ = _vala_code_node_ref0 (_tmp38_);
2242
 
                                                                _tmp40_ = _tmp39_;
 
2233
                                                                ValaParameter* _tmp34_ = NULL;
 
2234
                                                                ValaParameter* _tmp35_;
 
2235
                                                                ValaMemberBinding _tmp36_;
 
2236
                                                                _tmp33_ = _vala_code_node_ref0 (VALA_CONSTRUCTOR (sym));
 
2237
                                                                c = _tmp33_;
 
2238
                                                                _tmp34_ = vala_constructor_get_this_parameter (c);
 
2239
                                                                _tmp35_ = _vala_code_node_ref0 (_tmp34_);
2243
2240
                                                                _vala_code_node_unref0 (this_parameter);
2244
 
                                                                this_parameter = _tmp40_;
2245
 
                                                                _tmp41_ = vala_constructor_get_binding (c);
2246
 
                                                                may_access_instance_members = _tmp41_ == VALA_MEMBER_BINDING_INSTANCE;
 
2241
                                                                this_parameter = _tmp35_;
 
2242
                                                                _tmp36_ = vala_constructor_get_binding (c);
 
2243
                                                                may_access_instance_members = _tmp36_ == VALA_MEMBER_BINDING_INSTANCE;
2247
2244
                                                                may_access_klass_members = TRUE;
2248
2245
                                                                method_found = TRUE;
2249
2246
                                                                _vala_code_node_unref0 (c);
2250
2247
                                                        } else {
2251
2248
                                                                if (VALA_IS_DESTRUCTOR (sym)) {
2252
 
                                                                        ValaDestructor* _tmp42_;
 
2249
                                                                        ValaDestructor* _tmp37_;
2253
2250
                                                                        ValaDestructor* d;
2254
 
                                                                        ValaParameter* _tmp43_ = NULL;
2255
 
                                                                        ValaParameter* _tmp44_;
2256
 
                                                                        ValaParameter* _tmp45_;
2257
 
                                                                        ValaMemberBinding _tmp46_;
2258
 
                                                                        _tmp42_ = _vala_code_node_ref0 (VALA_DESTRUCTOR (sym));
2259
 
                                                                        d = _tmp42_;
2260
 
                                                                        _tmp43_ = vala_destructor_get_this_parameter (d);
2261
 
                                                                        _tmp44_ = _vala_code_node_ref0 (_tmp43_);
2262
 
                                                                        _tmp45_ = _tmp44_;
 
2251
                                                                        ValaParameter* _tmp38_ = NULL;
 
2252
                                                                        ValaParameter* _tmp39_;
 
2253
                                                                        ValaMemberBinding _tmp40_;
 
2254
                                                                        _tmp37_ = _vala_code_node_ref0 (VALA_DESTRUCTOR (sym));
 
2255
                                                                        d = _tmp37_;
 
2256
                                                                        _tmp38_ = vala_destructor_get_this_parameter (d);
 
2257
                                                                        _tmp39_ = _vala_code_node_ref0 (_tmp38_);
2263
2258
                                                                        _vala_code_node_unref0 (this_parameter);
2264
 
                                                                        this_parameter = _tmp45_;
2265
 
                                                                        _tmp46_ = vala_destructor_get_binding (d);
2266
 
                                                                        may_access_instance_members = _tmp46_ == VALA_MEMBER_BINDING_INSTANCE;
 
2259
                                                                        this_parameter = _tmp39_;
 
2260
                                                                        _tmp40_ = vala_destructor_get_binding (d);
 
2261
                                                                        may_access_instance_members = _tmp40_ == VALA_MEMBER_BINDING_INSTANCE;
2267
2262
                                                                        may_access_klass_members = TRUE;
2268
2263
                                                                        method_found = TRUE;
2269
2264
                                                                        _vala_code_node_unref0 (d);
2270
2265
                                                                } else {
2271
2266
                                                                        if (VALA_IS_METHOD (sym)) {
2272
 
                                                                                ValaMethod* _tmp47_;
 
2267
                                                                                ValaMethod* _tmp41_;
2273
2268
                                                                                ValaMethod* m;
2274
 
                                                                                ValaParameter* _tmp48_ = NULL;
2275
 
                                                                                ValaParameter* _tmp49_;
2276
 
                                                                                ValaParameter* _tmp50_;
2277
 
                                                                                ValaMemberBinding _tmp51_;
2278
 
                                                                                ValaMemberBinding _tmp52_;
2279
 
                                                                                _tmp47_ = _vala_code_node_ref0 (VALA_METHOD (sym));
2280
 
                                                                                m = _tmp47_;
2281
 
                                                                                _tmp48_ = vala_method_get_this_parameter (m);
2282
 
                                                                                _tmp49_ = _vala_code_node_ref0 (_tmp48_);
2283
 
                                                                                _tmp50_ = _tmp49_;
 
2269
                                                                                ValaParameter* _tmp42_ = NULL;
 
2270
                                                                                ValaParameter* _tmp43_;
 
2271
                                                                                ValaMemberBinding _tmp44_;
 
2272
                                                                                ValaMemberBinding _tmp45_;
 
2273
                                                                                _tmp41_ = _vala_code_node_ref0 (VALA_METHOD (sym));
 
2274
                                                                                m = _tmp41_;
 
2275
                                                                                _tmp42_ = vala_method_get_this_parameter (m);
 
2276
                                                                                _tmp43_ = _vala_code_node_ref0 (_tmp42_);
2284
2277
                                                                                _vala_code_node_unref0 (this_parameter);
2285
 
                                                                                this_parameter = _tmp50_;
2286
 
                                                                                _tmp51_ = vala_method_get_binding (m);
2287
 
                                                                                may_access_instance_members = _tmp51_ == VALA_MEMBER_BINDING_INSTANCE;
2288
 
                                                                                _tmp52_ = vala_method_get_binding (m);
2289
 
                                                                                may_access_klass_members = _tmp52_ != VALA_MEMBER_BINDING_STATIC;
 
2278
                                                                                this_parameter = _tmp43_;
 
2279
                                                                                _tmp44_ = vala_method_get_binding (m);
 
2280
                                                                                may_access_instance_members = _tmp44_ == VALA_MEMBER_BINDING_INSTANCE;
 
2281
                                                                                _tmp45_ = vala_method_get_binding (m);
 
2282
                                                                                may_access_klass_members = _tmp45_ != VALA_MEMBER_BINDING_STATIC;
2290
2283
                                                                                method_found = TRUE;
2291
2284
                                                                                _vala_code_node_unref0 (m);
2292
2285
                                                                        }
2295
2288
                                                }
2296
2289
                                        }
2297
2290
                                }
2298
 
                                _tmp53_ = vala_code_context_get_analyzer (context);
2299
 
                                _tmp54_ = vala_semantic_analyzer_symbol_lookup_inherited (sym, self->priv->_member_name);
2300
 
                                _tmp55_ = _tmp54_;
2301
 
                                vala_expression_set_symbol_reference ((ValaExpression*) self, _tmp55_);
2302
 
                                _vala_code_node_unref0 (_tmp55_);
2303
 
                                _tmp56_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
2304
 
                                if (_tmp56_ == NULL) {
 
2291
                                _tmp46_ = vala_code_context_get_analyzer (context);
 
2292
                                _tmp47_ = vala_semantic_analyzer_symbol_lookup_inherited (sym, self->priv->_member_name);
 
2293
                                _tmp48_ = _tmp47_;
 
2294
                                vala_expression_set_symbol_reference ((ValaExpression*) self, _tmp48_);
 
2295
                                _vala_code_node_unref0 (_tmp48_);
 
2296
                                _tmp49_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
2297
                                if (_tmp49_ == NULL) {
2305
2298
                                        if (VALA_IS_TYPESYMBOL (sym)) {
2306
 
                                                ValaParameter* _tmp57_;
2307
 
                                                _tmp57_ = NULL;
2308
2299
                                                _vala_code_node_unref0 (this_parameter);
2309
 
                                                this_parameter = _tmp57_;
 
2300
                                                this_parameter = NULL;
2310
2301
                                                may_access_instance_members = FALSE;
2311
2302
                                                may_access_klass_members = FALSE;
2312
2303
                                        }
2313
2304
                                }
2314
 
                                _tmp58_ = vala_symbol_get_parent_symbol (sym);
2315
 
                                _tmp59_ = _vala_code_node_ref0 (_tmp58_);
2316
 
                                _tmp60_ = _tmp59_;
 
2305
                                _tmp50_ = vala_symbol_get_parent_symbol (sym);
 
2306
                                _tmp51_ = _vala_code_node_ref0 (_tmp50_);
2317
2307
                                _vala_code_node_unref0 (sym);
2318
 
                                sym = _tmp60_;
 
2308
                                sym = _tmp51_;
2319
2309
                        }
2320
 
                        _tmp62_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
2321
 
                        if (_tmp62_ == NULL) {
2322
 
                                ValaSourceReference* _tmp63_ = NULL;
2323
 
                                _tmp63_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
2324
 
                                _tmp61_ = _tmp63_ != NULL;
 
2310
                        _tmp53_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
2311
                        if (_tmp53_ == NULL) {
 
2312
                                ValaSourceReference* _tmp54_ = NULL;
 
2313
                                _tmp54_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
2314
                                _tmp52_ = _tmp54_ != NULL;
2325
2315
                        } else {
2326
 
                                _tmp61_ = FALSE;
 
2316
                                _tmp52_ = FALSE;
2327
2317
                        }
2328
 
                        if (_tmp61_) {
 
2318
                        if (_tmp52_) {
2329
2319
                                {
2330
 
                                        ValaSourceReference* _tmp64_ = NULL;
2331
 
                                        ValaList* _tmp65_ = NULL;
2332
 
                                        ValaList* _tmp66_;
 
2320
                                        ValaSourceReference* _tmp55_ = NULL;
 
2321
                                        ValaList* _tmp56_ = NULL;
 
2322
                                        ValaList* _tmp57_;
2333
2323
                                        ValaList* _ns_list;
2334
 
                                        gint _tmp67_;
 
2324
                                        gint _tmp58_;
2335
2325
                                        gint _ns_size;
2336
2326
                                        gint _ns_index;
2337
 
                                        _tmp64_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
2338
 
                                        _tmp65_ = vala_source_reference_get_using_directives (_tmp64_);
2339
 
                                        _tmp66_ = _vala_iterable_ref0 (_tmp65_);
2340
 
                                        _ns_list = _tmp66_;
2341
 
                                        _tmp67_ = vala_collection_get_size ((ValaCollection*) _ns_list);
2342
 
                                        _ns_size = _tmp67_;
 
2327
                                        _tmp55_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
2328
                                        _tmp56_ = vala_source_reference_get_using_directives (_tmp55_);
 
2329
                                        _tmp57_ = _vala_iterable_ref0 (_tmp56_);
 
2330
                                        _ns_list = _tmp57_;
 
2331
                                        _tmp58_ = vala_collection_get_size ((ValaCollection*) _ns_list);
 
2332
                                        _ns_size = _tmp58_;
2343
2333
                                        _ns_index = -1;
2344
2334
                                        while (TRUE) {
2345
 
                                                gpointer _tmp68_ = NULL;
 
2335
                                                gpointer _tmp59_ = NULL;
2346
2336
                                                ValaUsingDirective* ns;
2347
 
                                                ValaSymbol* _tmp69_ = NULL;
2348
 
                                                ValaScope* _tmp70_ = NULL;
2349
 
                                                ValaSymbol* _tmp71_ = NULL;
 
2337
                                                ValaSymbol* _tmp60_ = NULL;
 
2338
                                                ValaScope* _tmp61_ = NULL;
 
2339
                                                ValaSymbol* _tmp62_ = NULL;
2350
2340
                                                ValaSymbol* local_sym;
2351
2341
                                                _ns_index = _ns_index + 1;
2352
2342
                                                if (!(_ns_index < _ns_size)) {
2353
2343
                                                        break;
2354
2344
                                                }
2355
 
                                                _tmp68_ = vala_list_get (_ns_list, _ns_index);
2356
 
                                                ns = (ValaUsingDirective*) _tmp68_;
2357
 
                                                _tmp69_ = vala_using_directive_get_namespace_symbol (ns);
2358
 
                                                _tmp70_ = vala_symbol_get_scope (_tmp69_);
2359
 
                                                _tmp71_ = vala_scope_lookup (_tmp70_, self->priv->_member_name);
2360
 
                                                local_sym = _tmp71_;
 
2345
                                                _tmp59_ = vala_list_get (_ns_list, _ns_index);
 
2346
                                                ns = (ValaUsingDirective*) _tmp59_;
 
2347
                                                _tmp60_ = vala_using_directive_get_namespace_symbol (ns);
 
2348
                                                _tmp61_ = vala_symbol_get_scope (_tmp60_);
 
2349
                                                _tmp62_ = vala_scope_lookup (_tmp61_, self->priv->_member_name);
 
2350
                                                local_sym = _tmp62_;
2361
2351
                                                if (local_sym != NULL) {
2362
 
                                                        gboolean _tmp72_ = FALSE;
2363
 
                                                        ValaSymbol* _tmp73_ = NULL;
2364
 
                                                        _tmp73_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
2365
 
                                                        if (_tmp73_ != NULL) {
2366
 
                                                                ValaSymbol* _tmp74_ = NULL;
2367
 
                                                                _tmp74_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
2368
 
                                                                _tmp72_ = _tmp74_ != local_sym;
 
2352
                                                        gboolean _tmp63_ = FALSE;
 
2353
                                                        ValaSymbol* _tmp64_ = NULL;
 
2354
                                                        _tmp64_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
2355
                                                        if (_tmp64_ != NULL) {
 
2356
                                                                ValaSymbol* _tmp65_ = NULL;
 
2357
                                                                _tmp65_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
2358
                                                                _tmp63_ = _tmp65_ != local_sym;
2369
2359
                                                        } else {
2370
 
                                                                _tmp72_ = FALSE;
 
2360
                                                                _tmp63_ = FALSE;
2371
2361
                                                        }
2372
 
                                                        if (_tmp72_) {
2373
 
                                                                ValaSourceReference* _tmp75_ = NULL;
2374
 
                                                                ValaSymbol* _tmp76_ = NULL;
2375
 
                                                                gchar* _tmp77_ = NULL;
2376
 
                                                                gchar* _tmp78_;
2377
 
                                                                gchar* _tmp79_ = NULL;
2378
 
                                                                gchar* _tmp80_;
2379
 
                                                                gchar* _tmp81_ = NULL;
2380
 
                                                                gchar* _tmp82_;
 
2362
                                                        if (_tmp63_) {
 
2363
                                                                ValaSourceReference* _tmp66_ = NULL;
 
2364
                                                                ValaSymbol* _tmp67_ = NULL;
 
2365
                                                                gchar* _tmp68_ = NULL;
 
2366
                                                                gchar* _tmp69_;
 
2367
                                                                gchar* _tmp70_ = NULL;
 
2368
                                                                gchar* _tmp71_;
 
2369
                                                                gchar* _tmp72_ = NULL;
 
2370
                                                                gchar* _tmp73_;
2381
2371
                                                                vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
2382
 
                                                                _tmp75_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
2383
 
                                                                _tmp76_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
2384
 
                                                                _tmp77_ = vala_symbol_get_full_name (_tmp76_);
2385
 
                                                                _tmp78_ = _tmp77_;
2386
 
                                                                _tmp79_ = vala_symbol_get_full_name (local_sym);
2387
 
                                                                _tmp80_ = _tmp79_;
2388
 
                                                                _tmp81_ = g_strdup_printf ("`%s' is an ambiguous reference between `%s' and `%s'", self->priv->_member_name, _tmp78_, _tmp80_);
2389
 
                                                                _tmp82_ = _tmp81_;
2390
 
                                                                vala_report_error (_tmp75_, _tmp82_);
2391
 
                                                                _g_free0 (_tmp82_);
2392
 
                                                                _g_free0 (_tmp80_);
2393
 
                                                                _g_free0 (_tmp78_);
 
2372
                                                                _tmp66_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
2373
                                                                _tmp67_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
2374
                                                                _tmp68_ = vala_symbol_get_full_name (_tmp67_);
 
2375
                                                                _tmp69_ = _tmp68_;
 
2376
                                                                _tmp70_ = vala_symbol_get_full_name (local_sym);
 
2377
                                                                _tmp71_ = _tmp70_;
 
2378
                                                                _tmp72_ = g_strdup_printf ("`%s' is an ambiguous reference between `%s' and `%s'", self->priv->_member_name, _tmp69_, _tmp71_);
 
2379
                                                                _tmp73_ = _tmp72_;
 
2380
                                                                vala_report_error (_tmp66_, _tmp73_);
 
2381
                                                                _g_free0 (_tmp73_);
 
2382
                                                                _g_free0 (_tmp71_);
 
2383
                                                                _g_free0 (_tmp69_);
2394
2384
                                                                result = FALSE;
2395
2385
                                                                _vala_code_node_unref0 (local_sym);
2396
2386
                                                                _vala_code_node_unref0 (ns);
2410
2400
                        }
2411
2401
                        _vala_code_node_unref0 (sym);
2412
2402
                } else {
2413
 
                        ValaExpression* _tmp83_ = NULL;
2414
 
                        gboolean _tmp84_;
2415
 
                        ValaExpression* _tmp85_ = NULL;
2416
 
                        ValaDataType* _tmp86_ = NULL;
2417
 
                        ValaExpression* _tmp98_ = NULL;
2418
 
                        gboolean _tmp108_ = FALSE;
2419
 
                        ValaExpression* _tmp109_ = NULL;
2420
 
                        gboolean _tmp122_ = FALSE;
2421
 
                        ValaSymbol* _tmp123_ = NULL;
2422
 
                        gboolean _tmp143_ = FALSE;
2423
 
                        gboolean _tmp144_ = FALSE;
2424
 
                        ValaSymbol* _tmp145_ = NULL;
2425
 
                        _tmp83_ = vala_member_access_get_inner (self);
2426
 
                        _tmp84_ = vala_code_node_get_error ((ValaCodeNode*) _tmp83_);
2427
 
                        if (_tmp84_) {
 
2403
                        ValaExpression* _tmp74_ = NULL;
 
2404
                        gboolean _tmp75_;
 
2405
                        ValaExpression* _tmp76_ = NULL;
 
2406
                        ValaDataType* _tmp77_ = NULL;
 
2407
                        ValaExpression* _tmp89_ = NULL;
 
2408
                        gboolean _tmp99_ = FALSE;
 
2409
                        ValaExpression* _tmp100_ = NULL;
 
2410
                        gboolean _tmp112_ = FALSE;
 
2411
                        ValaSymbol* _tmp113_ = NULL;
 
2412
                        gboolean _tmp132_ = FALSE;
 
2413
                        gboolean _tmp133_ = FALSE;
 
2414
                        ValaSymbol* _tmp134_ = NULL;
 
2415
                        _tmp74_ = vala_member_access_get_inner (self);
 
2416
                        _tmp75_ = vala_code_node_get_error ((ValaCodeNode*) _tmp74_);
 
2417
                        if (_tmp75_) {
2428
2418
                                vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
2429
2419
                                result = FALSE;
2430
2420
                                _vala_code_node_unref0 (this_parameter);
2431
2421
                                _vala_code_node_unref0 (base_symbol);
2432
2422
                                return result;
2433
2423
                        }
2434
 
                        _tmp85_ = vala_member_access_get_inner (self);
2435
 
                        _tmp86_ = vala_expression_get_value_type (_tmp85_);
2436
 
                        if (VALA_IS_POINTER_TYPE (_tmp86_)) {
2437
 
                                ValaExpression* _tmp87_ = NULL;
2438
 
                                ValaDataType* _tmp88_ = NULL;
2439
 
                                ValaDataType* _tmp89_;
2440
 
                                ValaPointerType* _tmp90_;
 
2424
                        _tmp76_ = vala_member_access_get_inner (self);
 
2425
                        _tmp77_ = vala_expression_get_value_type (_tmp76_);
 
2426
                        if (VALA_IS_POINTER_TYPE (_tmp77_)) {
 
2427
                                ValaExpression* _tmp78_ = NULL;
 
2428
                                ValaDataType* _tmp79_ = NULL;
 
2429
                                ValaDataType* _tmp80_;
 
2430
                                ValaPointerType* _tmp81_;
2441
2431
                                ValaPointerType* pointer_type;
2442
 
                                gboolean _tmp91_ = FALSE;
2443
 
                                _tmp87_ = vala_member_access_get_inner (self);
2444
 
                                _tmp88_ = vala_expression_get_value_type (_tmp87_);
2445
 
                                _tmp90_ = _vala_code_node_ref0 ((_tmp89_ = _tmp88_, VALA_IS_POINTER_TYPE (_tmp89_) ? ((ValaPointerType*) _tmp89_) : NULL));
2446
 
                                pointer_type = _tmp90_;
 
2432
                                gboolean _tmp82_ = FALSE;
 
2433
                                _tmp78_ = vala_member_access_get_inner (self);
 
2434
                                _tmp79_ = vala_expression_get_value_type (_tmp78_);
 
2435
                                _tmp80_ = _tmp79_;
 
2436
                                _tmp81_ = _vala_code_node_ref0 (VALA_IS_POINTER_TYPE (_tmp80_) ? ((ValaPointerType*) _tmp80_) : NULL);
 
2437
                                pointer_type = _tmp81_;
2447
2438
                                if (pointer_type != NULL) {
2448
 
                                        ValaDataType* _tmp92_ = NULL;
2449
 
                                        _tmp92_ = vala_pointer_type_get_base_type (pointer_type);
2450
 
                                        _tmp91_ = VALA_IS_VALUE_TYPE (_tmp92_);
 
2439
                                        ValaDataType* _tmp83_ = NULL;
 
2440
                                        _tmp83_ = vala_pointer_type_get_base_type (pointer_type);
 
2441
                                        _tmp82_ = VALA_IS_VALUE_TYPE (_tmp83_);
2451
2442
                                } else {
2452
 
                                        _tmp91_ = FALSE;
 
2443
                                        _tmp82_ = FALSE;
2453
2444
                                }
2454
 
                                if (_tmp91_) {
2455
 
                                        ValaExpression* _tmp93_ = NULL;
2456
 
                                        ValaSourceReference* _tmp94_ = NULL;
2457
 
                                        ValaPointerIndirection* _tmp95_ = NULL;
2458
 
                                        ValaPointerIndirection* _tmp96_;
2459
 
                                        ValaExpression* _tmp97_ = NULL;
2460
 
                                        _tmp93_ = vala_member_access_get_inner (self);
2461
 
                                        _tmp94_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
2462
 
                                        _tmp95_ = vala_pointer_indirection_new (_tmp93_, _tmp94_);
2463
 
                                        _tmp96_ = _tmp95_;
2464
 
                                        vala_member_access_set_inner (self, (ValaExpression*) _tmp96_);
2465
 
                                        _vala_code_node_unref0 (_tmp96_);
2466
 
                                        _tmp97_ = vala_member_access_get_inner (self);
2467
 
                                        vala_code_node_check ((ValaCodeNode*) _tmp97_, context);
 
2445
                                if (_tmp82_) {
 
2446
                                        ValaExpression* _tmp84_ = NULL;
 
2447
                                        ValaSourceReference* _tmp85_ = NULL;
 
2448
                                        ValaPointerIndirection* _tmp86_ = NULL;
 
2449
                                        ValaPointerIndirection* _tmp87_;
 
2450
                                        ValaExpression* _tmp88_ = NULL;
 
2451
                                        _tmp84_ = vala_member_access_get_inner (self);
 
2452
                                        _tmp85_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
2453
                                        _tmp86_ = vala_pointer_indirection_new (_tmp84_, _tmp85_);
 
2454
                                        _tmp87_ = _tmp86_;
 
2455
                                        vala_member_access_set_inner (self, (ValaExpression*) _tmp87_);
 
2456
                                        _vala_code_node_unref0 (_tmp87_);
 
2457
                                        _tmp88_ = vala_member_access_get_inner (self);
 
2458
                                        vala_code_node_check ((ValaCodeNode*) _tmp88_, context);
2468
2459
                                        vala_member_access_set_pointer_member_access (self, FALSE);
2469
2460
                                }
2470
2461
                                _vala_code_node_unref0 (pointer_type);
2471
2462
                        }
2472
 
                        _tmp98_ = vala_member_access_get_inner (self);
2473
 
                        if (VALA_IS_MEMBER_ACCESS (_tmp98_)) {
2474
 
                                ValaExpression* _tmp99_ = NULL;
2475
 
                                ValaMemberAccess* _tmp100_;
 
2463
                        _tmp89_ = vala_member_access_get_inner (self);
 
2464
                        if (VALA_IS_MEMBER_ACCESS (_tmp89_)) {
 
2465
                                ValaExpression* _tmp90_ = NULL;
 
2466
                                ValaMemberAccess* _tmp91_;
2476
2467
                                ValaMemberAccess* ma;
2477
 
                                _tmp99_ = vala_member_access_get_inner (self);
2478
 
                                _tmp100_ = _vala_code_node_ref0 (VALA_MEMBER_ACCESS (_tmp99_));
2479
 
                                ma = _tmp100_;
 
2468
                                _tmp90_ = vala_member_access_get_inner (self);
 
2469
                                _tmp91_ = _vala_code_node_ref0 (VALA_MEMBER_ACCESS (_tmp90_));
 
2470
                                ma = _tmp91_;
2480
2471
                                if (ma->priv->_prototype_access) {
2481
 
                                        ValaSourceReference* _tmp101_ = NULL;
2482
 
                                        ValaExpression* _tmp102_ = NULL;
2483
 
                                        ValaSymbol* _tmp103_ = NULL;
2484
 
                                        gchar* _tmp104_ = NULL;
2485
 
                                        gchar* _tmp105_;
2486
 
                                        gchar* _tmp106_ = NULL;
2487
 
                                        gchar* _tmp107_;
 
2472
                                        ValaSourceReference* _tmp92_ = NULL;
 
2473
                                        ValaExpression* _tmp93_ = NULL;
 
2474
                                        ValaSymbol* _tmp94_ = NULL;
 
2475
                                        gchar* _tmp95_ = NULL;
 
2476
                                        gchar* _tmp96_;
 
2477
                                        gchar* _tmp97_ = NULL;
 
2478
                                        gchar* _tmp98_;
2488
2479
                                        vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
2489
 
                                        _tmp101_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
2490
 
                                        _tmp102_ = vala_member_access_get_inner (self);
2491
 
                                        _tmp103_ = vala_expression_get_symbol_reference (_tmp102_);
2492
 
                                        _tmp104_ = vala_symbol_get_full_name (_tmp103_);
2493
 
                                        _tmp105_ = _tmp104_;
2494
 
                                        _tmp106_ = g_strdup_printf ("Access to instance member `%s' denied", _tmp105_);
2495
 
                                        _tmp107_ = _tmp106_;
2496
 
                                        vala_report_error (_tmp101_, _tmp107_);
2497
 
                                        _g_free0 (_tmp107_);
2498
 
                                        _g_free0 (_tmp105_);
 
2480
                                        _tmp92_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
2481
                                        _tmp93_ = vala_member_access_get_inner (self);
 
2482
                                        _tmp94_ = vala_expression_get_symbol_reference (_tmp93_);
 
2483
                                        _tmp95_ = vala_symbol_get_full_name (_tmp94_);
 
2484
                                        _tmp96_ = _tmp95_;
 
2485
                                        _tmp97_ = g_strdup_printf ("Access to instance member `%s' denied", _tmp96_);
 
2486
                                        _tmp98_ = _tmp97_;
 
2487
                                        vala_report_error (_tmp92_, _tmp98_);
 
2488
                                        _g_free0 (_tmp98_);
 
2489
                                        _g_free0 (_tmp96_);
2499
2490
                                        result = FALSE;
2500
2491
                                        _vala_code_node_unref0 (ma);
2501
2492
                                        _vala_code_node_unref0 (this_parameter);
2504
2495
                                }
2505
2496
                                _vala_code_node_unref0 (ma);
2506
2497
                        }
2507
 
                        _tmp109_ = vala_member_access_get_inner (self);
2508
 
                        if (VALA_IS_MEMBER_ACCESS (_tmp109_)) {
2509
 
                                _tmp108_ = TRUE;
 
2498
                        _tmp100_ = vala_member_access_get_inner (self);
 
2499
                        if (VALA_IS_MEMBER_ACCESS (_tmp100_)) {
 
2500
                                _tmp99_ = TRUE;
2510
2501
                        } else {
2511
 
                                ValaExpression* _tmp110_ = NULL;
2512
 
                                _tmp110_ = vala_member_access_get_inner (self);
2513
 
                                _tmp108_ = VALA_IS_BASE_ACCESS (_tmp110_);
 
2502
                                ValaExpression* _tmp101_ = NULL;
 
2503
                                _tmp101_ = vala_member_access_get_inner (self);
 
2504
                                _tmp99_ = VALA_IS_BASE_ACCESS (_tmp101_);
2514
2505
                        }
2515
 
                        if (_tmp108_) {
2516
 
                                ValaExpression* _tmp111_ = NULL;
2517
 
                                ValaSymbol* _tmp112_ = NULL;
2518
 
                                ValaSymbol* _tmp113_;
2519
 
                                ValaSymbol* _tmp114_;
2520
 
                                gboolean _tmp115_ = FALSE;
2521
 
                                ValaSymbol* _tmp116_ = NULL;
2522
 
                                _tmp111_ = vala_member_access_get_inner (self);
2523
 
                                _tmp112_ = vala_expression_get_symbol_reference (_tmp111_);
2524
 
                                _tmp113_ = _vala_code_node_ref0 (_tmp112_);
2525
 
                                _tmp114_ = _tmp113_;
 
2506
                        if (_tmp99_) {
 
2507
                                ValaExpression* _tmp102_ = NULL;
 
2508
                                ValaSymbol* _tmp103_ = NULL;
 
2509
                                ValaSymbol* _tmp104_;
 
2510
                                gboolean _tmp105_ = FALSE;
 
2511
                                ValaSymbol* _tmp106_ = NULL;
 
2512
                                _tmp102_ = vala_member_access_get_inner (self);
 
2513
                                _tmp103_ = vala_expression_get_symbol_reference (_tmp102_);
 
2514
                                _tmp104_ = _vala_code_node_ref0 (_tmp103_);
2526
2515
                                _vala_code_node_unref0 (base_symbol);
2527
 
                                base_symbol = _tmp114_;
2528
 
                                _tmp116_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
2529
 
                                if (_tmp116_ == NULL) {
2530
 
                                        gboolean _tmp117_ = FALSE;
 
2516
                                base_symbol = _tmp104_;
 
2517
                                _tmp106_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
2518
                                if (_tmp106_ == NULL) {
 
2519
                                        gboolean _tmp107_ = FALSE;
2531
2520
                                        if (VALA_IS_NAMESPACE (base_symbol)) {
2532
 
                                                _tmp117_ = TRUE;
 
2521
                                                _tmp107_ = TRUE;
2533
2522
                                        } else {
2534
 
                                                _tmp117_ = VALA_IS_TYPESYMBOL (base_symbol);
 
2523
                                                _tmp107_ = VALA_IS_TYPESYMBOL (base_symbol);
2535
2524
                                        }
2536
 
                                        _tmp115_ = _tmp117_;
 
2525
                                        _tmp105_ = _tmp107_;
2537
2526
                                } else {
2538
 
                                        _tmp115_ = FALSE;
 
2527
                                        _tmp105_ = FALSE;
2539
2528
                                }
2540
 
                                if (_tmp115_) {
2541
 
                                        ValaScope* _tmp118_ = NULL;
2542
 
                                        ValaSymbol* _tmp119_ = NULL;
2543
 
                                        ValaSymbol* _tmp120_;
2544
 
                                        ValaExpression* _tmp121_ = NULL;
2545
 
                                        _tmp118_ = vala_symbol_get_scope (base_symbol);
2546
 
                                        _tmp119_ = vala_scope_lookup (_tmp118_, self->priv->_member_name);
2547
 
                                        _tmp120_ = _tmp119_;
2548
 
                                        vala_expression_set_symbol_reference ((ValaExpression*) self, _tmp120_);
2549
 
                                        _vala_code_node_unref0 (_tmp120_);
2550
 
                                        _tmp121_ = vala_member_access_get_inner (self);
2551
 
                                        if (VALA_IS_BASE_ACCESS (_tmp121_)) {
 
2529
                                if (_tmp105_) {
 
2530
                                        ValaScope* _tmp108_ = NULL;
 
2531
                                        ValaSymbol* _tmp109_ = NULL;
 
2532
                                        ValaSymbol* _tmp110_;
 
2533
                                        ValaExpression* _tmp111_ = NULL;
 
2534
                                        _tmp108_ = vala_symbol_get_scope (base_symbol);
 
2535
                                        _tmp109_ = vala_scope_lookup (_tmp108_, self->priv->_member_name);
 
2536
                                        _tmp110_ = _tmp109_;
 
2537
                                        vala_expression_set_symbol_reference ((ValaExpression*) self, _tmp110_);
 
2538
                                        _vala_code_node_unref0 (_tmp110_);
 
2539
                                        _tmp111_ = vala_member_access_get_inner (self);
 
2540
                                        if (VALA_IS_BASE_ACCESS (_tmp111_)) {
2552
2541
                                                may_access_instance_members = TRUE;
2553
2542
                                                may_access_klass_members = TRUE;
2554
2543
                                        }
2555
2544
                                }
2556
2545
                        }
2557
 
                        _tmp123_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
2558
 
                        if (_tmp123_ == NULL) {
2559
 
                                ValaExpression* _tmp124_ = NULL;
2560
 
                                ValaDataType* _tmp125_ = NULL;
2561
 
                                _tmp124_ = vala_member_access_get_inner (self);
2562
 
                                _tmp125_ = vala_expression_get_value_type (_tmp124_);
2563
 
                                _tmp122_ = _tmp125_ != NULL;
 
2546
                        _tmp113_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
2547
                        if (_tmp113_ == NULL) {
 
2548
                                ValaExpression* _tmp114_ = NULL;
 
2549
                                ValaDataType* _tmp115_ = NULL;
 
2550
                                _tmp114_ = vala_member_access_get_inner (self);
 
2551
                                _tmp115_ = vala_expression_get_value_type (_tmp114_);
 
2552
                                _tmp112_ = _tmp115_ != NULL;
2564
2553
                        } else {
2565
 
                                _tmp122_ = FALSE;
 
2554
                                _tmp112_ = FALSE;
2566
2555
                        }
2567
 
                        if (_tmp122_) {
2568
 
                                ValaSymbol* _tmp142_ = NULL;
 
2556
                        if (_tmp112_) {
 
2557
                                ValaSymbol* _tmp131_ = NULL;
2569
2558
                                if (self->priv->_pointer_member_access) {
2570
 
                                        ValaExpression* _tmp126_ = NULL;
2571
 
                                        ValaDataType* _tmp127_ = NULL;
2572
 
                                        ValaSymbol* _tmp128_ = NULL;
2573
 
                                        ValaSymbol* _tmp129_;
2574
 
                                        _tmp126_ = vala_member_access_get_inner (self);
2575
 
                                        _tmp127_ = vala_expression_get_value_type (_tmp126_);
2576
 
                                        _tmp128_ = vala_data_type_get_pointer_member (_tmp127_, self->priv->_member_name);
2577
 
                                        _tmp129_ = _tmp128_;
2578
 
                                        vala_expression_set_symbol_reference ((ValaExpression*) self, _tmp129_);
2579
 
                                        _vala_code_node_unref0 (_tmp129_);
 
2559
                                        ValaExpression* _tmp116_ = NULL;
 
2560
                                        ValaDataType* _tmp117_ = NULL;
 
2561
                                        ValaSymbol* _tmp118_ = NULL;
 
2562
                                        ValaSymbol* _tmp119_;
 
2563
                                        _tmp116_ = vala_member_access_get_inner (self);
 
2564
                                        _tmp117_ = vala_expression_get_value_type (_tmp116_);
 
2565
                                        _tmp118_ = vala_data_type_get_pointer_member (_tmp117_, self->priv->_member_name);
 
2566
                                        _tmp119_ = _tmp118_;
 
2567
                                        vala_expression_set_symbol_reference ((ValaExpression*) self, _tmp119_);
 
2568
                                        _vala_code_node_unref0 (_tmp119_);
2580
2569
                                } else {
2581
 
                                        ValaExpression* _tmp130_ = NULL;
2582
 
                                        ValaDataType* _tmp131_ = NULL;
2583
 
                                        ValaTypeSymbol* _tmp132_ = NULL;
2584
 
                                        ValaExpression* _tmp138_ = NULL;
2585
 
                                        ValaDataType* _tmp139_ = NULL;
2586
 
                                        ValaSymbol* _tmp140_ = NULL;
2587
 
                                        ValaSymbol* _tmp141_;
2588
 
                                        _tmp130_ = vala_member_access_get_inner (self);
2589
 
                                        _tmp131_ = vala_expression_get_value_type (_tmp130_);
2590
 
                                        _tmp132_ = vala_data_type_get_data_type (_tmp131_);
2591
 
                                        if (_tmp132_ != NULL) {
2592
 
                                                ValaExpression* _tmp133_ = NULL;
2593
 
                                                ValaDataType* _tmp134_ = NULL;
2594
 
                                                ValaTypeSymbol* _tmp135_ = NULL;
2595
 
                                                ValaSymbol* _tmp136_;
2596
 
                                                ValaSymbol* _tmp137_;
2597
 
                                                _tmp133_ = vala_member_access_get_inner (self);
2598
 
                                                _tmp134_ = vala_expression_get_value_type (_tmp133_);
2599
 
                                                _tmp135_ = vala_data_type_get_data_type (_tmp134_);
2600
 
                                                _tmp136_ = _vala_code_node_ref0 ((ValaSymbol*) _tmp135_);
2601
 
                                                _tmp137_ = _tmp136_;
 
2570
                                        ValaExpression* _tmp120_ = NULL;
 
2571
                                        ValaDataType* _tmp121_ = NULL;
 
2572
                                        ValaTypeSymbol* _tmp122_ = NULL;
 
2573
                                        ValaExpression* _tmp127_ = NULL;
 
2574
                                        ValaDataType* _tmp128_ = NULL;
 
2575
                                        ValaSymbol* _tmp129_ = NULL;
 
2576
                                        ValaSymbol* _tmp130_;
 
2577
                                        _tmp120_ = vala_member_access_get_inner (self);
 
2578
                                        _tmp121_ = vala_expression_get_value_type (_tmp120_);
 
2579
                                        _tmp122_ = vala_data_type_get_data_type (_tmp121_);
 
2580
                                        if (_tmp122_ != NULL) {
 
2581
                                                ValaExpression* _tmp123_ = NULL;
 
2582
                                                ValaDataType* _tmp124_ = NULL;
 
2583
                                                ValaTypeSymbol* _tmp125_ = NULL;
 
2584
                                                ValaSymbol* _tmp126_;
 
2585
                                                _tmp123_ = vala_member_access_get_inner (self);
 
2586
                                                _tmp124_ = vala_expression_get_value_type (_tmp123_);
 
2587
                                                _tmp125_ = vala_data_type_get_data_type (_tmp124_);
 
2588
                                                _tmp126_ = _vala_code_node_ref0 ((ValaSymbol*) _tmp125_);
2602
2589
                                                _vala_code_node_unref0 (base_symbol);
2603
 
                                                base_symbol = _tmp137_;
 
2590
                                                base_symbol = _tmp126_;
2604
2591
                                        }
2605
 
                                        _tmp138_ = vala_member_access_get_inner (self);
2606
 
                                        _tmp139_ = vala_expression_get_value_type (_tmp138_);
2607
 
                                        _tmp140_ = vala_data_type_get_member (_tmp139_, self->priv->_member_name);
2608
 
                                        _tmp141_ = _tmp140_;
2609
 
                                        vala_expression_set_symbol_reference ((ValaExpression*) self, _tmp141_);
2610
 
                                        _vala_code_node_unref0 (_tmp141_);
 
2592
                                        _tmp127_ = vala_member_access_get_inner (self);
 
2593
                                        _tmp128_ = vala_expression_get_value_type (_tmp127_);
 
2594
                                        _tmp129_ = vala_data_type_get_member (_tmp128_, self->priv->_member_name);
 
2595
                                        _tmp130_ = _tmp129_;
 
2596
                                        vala_expression_set_symbol_reference ((ValaExpression*) self, _tmp130_);
 
2597
                                        _vala_code_node_unref0 (_tmp130_);
2611
2598
                                }
2612
 
                                _tmp142_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
2613
 
                                if (_tmp142_ != NULL) {
 
2599
                                _tmp131_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
2600
                                if (_tmp131_ != NULL) {
2614
2601
                                        may_access_instance_members = TRUE;
2615
2602
                                        may_access_klass_members = TRUE;
2616
2603
                                }
2617
2604
                        }
2618
 
                        _tmp145_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
2619
 
                        if (_tmp145_ == NULL) {
2620
 
                                ValaExpression* _tmp146_ = NULL;
2621
 
                                ValaDataType* _tmp147_ = NULL;
2622
 
                                _tmp146_ = vala_member_access_get_inner (self);
2623
 
                                _tmp147_ = vala_expression_get_value_type (_tmp146_);
2624
 
                                _tmp144_ = _tmp147_ != NULL;
2625
 
                        } else {
2626
 
                                _tmp144_ = FALSE;
2627
 
                        }
2628
 
                        if (_tmp144_) {
2629
 
                                ValaExpression* _tmp148_ = NULL;
2630
 
                                ValaDataType* _tmp149_ = NULL;
2631
 
                                gboolean _tmp150_;
2632
 
                                _tmp148_ = vala_member_access_get_inner (self);
2633
 
                                _tmp149_ = vala_expression_get_value_type (_tmp148_);
2634
 
                                _tmp150_ = vala_data_type_get_is_dynamic (_tmp149_);
2635
 
                                _tmp143_ = _tmp150_;
2636
 
                        } else {
2637
 
                                _tmp143_ = FALSE;
2638
 
                        }
2639
 
                        if (_tmp143_) {
2640
 
                                ValaExpression* _tmp151_ = NULL;
2641
 
                                ValaDataType* _tmp152_ = NULL;
2642
 
                                ValaObjectType* _tmp153_;
 
2605
                        _tmp134_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
2606
                        if (_tmp134_ == NULL) {
 
2607
                                ValaExpression* _tmp135_ = NULL;
 
2608
                                ValaDataType* _tmp136_ = NULL;
 
2609
                                _tmp135_ = vala_member_access_get_inner (self);
 
2610
                                _tmp136_ = vala_expression_get_value_type (_tmp135_);
 
2611
                                _tmp133_ = _tmp136_ != NULL;
 
2612
                        } else {
 
2613
                                _tmp133_ = FALSE;
 
2614
                        }
 
2615
                        if (_tmp133_) {
 
2616
                                ValaExpression* _tmp137_ = NULL;
 
2617
                                ValaDataType* _tmp138_ = NULL;
 
2618
                                gboolean _tmp139_;
 
2619
                                _tmp137_ = vala_member_access_get_inner (self);
 
2620
                                _tmp138_ = vala_expression_get_value_type (_tmp137_);
 
2621
                                _tmp139_ = vala_data_type_get_is_dynamic (_tmp138_);
 
2622
                                _tmp132_ = _tmp139_;
 
2623
                        } else {
 
2624
                                _tmp132_ = FALSE;
 
2625
                        }
 
2626
                        if (_tmp132_) {
 
2627
                                ValaExpression* _tmp140_ = NULL;
 
2628
                                ValaDataType* _tmp141_ = NULL;
 
2629
                                ValaObjectType* _tmp142_;
2643
2630
                                ValaObjectType* dynamic_object_type;
2644
 
                                ValaCodeNode* _tmp154_ = NULL;
2645
 
                                ValaSymbol* _tmp239_ = NULL;
2646
 
                                ValaSymbol* _tmp262_ = NULL;
2647
 
                                _tmp151_ = vala_member_access_get_inner (self);
2648
 
                                _tmp152_ = vala_expression_get_value_type (_tmp151_);
2649
 
                                _tmp153_ = _vala_code_node_ref0 (VALA_OBJECT_TYPE (_tmp152_));
2650
 
                                dynamic_object_type = _tmp153_;
2651
 
                                _tmp154_ = vala_code_node_get_parent_node ((ValaCodeNode*) self);
2652
 
                                if (VALA_IS_METHOD_CALL (_tmp154_)) {
2653
 
                                        ValaCodeNode* _tmp155_ = NULL;
2654
 
                                        ValaMethodCall* _tmp156_;
 
2631
                                ValaCodeNode* _tmp143_ = NULL;
 
2632
                                ValaSymbol* _tmp225_ = NULL;
 
2633
                                ValaSymbol* _tmp248_ = NULL;
 
2634
                                _tmp140_ = vala_member_access_get_inner (self);
 
2635
                                _tmp141_ = vala_expression_get_value_type (_tmp140_);
 
2636
                                _tmp142_ = _vala_code_node_ref0 (VALA_OBJECT_TYPE (_tmp141_));
 
2637
                                dynamic_object_type = _tmp142_;
 
2638
                                _tmp143_ = vala_code_node_get_parent_node ((ValaCodeNode*) self);
 
2639
                                if (VALA_IS_METHOD_CALL (_tmp143_)) {
 
2640
                                        ValaCodeNode* _tmp144_ = NULL;
 
2641
                                        ValaMethodCall* _tmp145_;
2655
2642
                                        ValaMethodCall* invoc;
2656
 
                                        ValaExpression* _tmp157_ = NULL;
2657
 
                                        _tmp155_ = vala_code_node_get_parent_node ((ValaCodeNode*) self);
2658
 
                                        _tmp156_ = _vala_code_node_ref0 (VALA_METHOD_CALL (_tmp155_));
2659
 
                                        invoc = _tmp156_;
2660
 
                                        _tmp157_ = vala_method_call_get_call (invoc);
2661
 
                                        if (_tmp157_ == VALA_EXPRESSION (self)) {
 
2643
                                        ValaExpression* _tmp146_ = NULL;
 
2644
                                        _tmp144_ = vala_code_node_get_parent_node ((ValaCodeNode*) self);
 
2645
                                        _tmp145_ = _vala_code_node_ref0 (VALA_METHOD_CALL (_tmp144_));
 
2646
                                        invoc = _tmp145_;
 
2647
                                        _tmp146_ = vala_method_call_get_call (invoc);
 
2648
                                        if (_tmp146_ == VALA_EXPRESSION (self)) {
2662
2649
                                                ValaDataType* ret_type = NULL;
2663
 
                                                ValaDataType* _tmp158_ = NULL;
2664
 
                                                ValaExpression* _tmp169_ = NULL;
2665
 
                                                ValaDataType* _tmp170_ = NULL;
2666
 
                                                ValaSourceReference* _tmp171_ = NULL;
2667
 
                                                ValaDynamicMethod* _tmp172_ = NULL;
 
2650
                                                ValaDataType* _tmp147_ = NULL;
 
2651
                                                ValaExpression* _tmp155_ = NULL;
 
2652
                                                ValaDataType* _tmp156_ = NULL;
 
2653
                                                ValaSourceReference* _tmp157_ = NULL;
 
2654
                                                ValaDynamicMethod* _tmp158_ = NULL;
2668
2655
                                                ValaDynamicMethod* m;
2669
 
                                                ValaErrorType* _tmp173_ = NULL;
 
2656
                                                ValaErrorType* _tmp159_ = NULL;
2670
2657
                                                ValaErrorType* err;
2671
 
                                                ValaParameter* _tmp174_ = NULL;
2672
 
                                                ValaParameter* _tmp175_;
2673
 
                                                ValaObjectTypeSymbol* _tmp176_ = NULL;
2674
 
                                                ValaScope* _tmp177_ = NULL;
2675
 
                                                _tmp158_ = vala_expression_get_target_type ((ValaExpression*) invoc);
2676
 
                                                if (_tmp158_ != NULL) {
2677
 
                                                        ValaDataType* _tmp159_ = NULL;
2678
 
                                                        ValaDataType* _tmp160_ = NULL;
2679
 
                                                        ValaDataType* _tmp161_;
2680
 
                                                        _tmp159_ = vala_expression_get_target_type ((ValaExpression*) invoc);
2681
 
                                                        _tmp160_ = vala_data_type_copy (_tmp159_);
2682
 
                                                        _tmp161_ = _tmp160_;
 
2658
                                                ValaParameter* _tmp160_ = NULL;
 
2659
                                                ValaParameter* _tmp161_;
 
2660
                                                ValaObjectTypeSymbol* _tmp162_ = NULL;
 
2661
                                                ValaScope* _tmp163_ = NULL;
 
2662
                                                _tmp147_ = vala_expression_get_target_type ((ValaExpression*) invoc);
 
2663
                                                if (_tmp147_ != NULL) {
 
2664
                                                        ValaDataType* _tmp148_ = NULL;
 
2665
                                                        ValaDataType* _tmp149_ = NULL;
 
2666
                                                        _tmp148_ = vala_expression_get_target_type ((ValaExpression*) invoc);
 
2667
                                                        _tmp149_ = vala_data_type_copy (_tmp148_);
2683
2668
                                                        _vala_code_node_unref0 (ret_type);
2684
 
                                                        ret_type = _tmp161_;
 
2669
                                                        ret_type = _tmp149_;
2685
2670
                                                        vala_data_type_set_value_owned (ret_type, TRUE);
2686
2671
                                                } else {
2687
 
                                                        ValaCodeNode* _tmp162_ = NULL;
2688
 
                                                        _tmp162_ = vala_code_node_get_parent_node ((ValaCodeNode*) invoc);
2689
 
                                                        if (VALA_IS_EXPRESSION_STATEMENT (_tmp162_)) {
2690
 
                                                                ValaVoidType* _tmp163_ = NULL;
2691
 
                                                                ValaDataType* _tmp164_;
2692
 
                                                                _tmp163_ = vala_void_type_new (NULL);
2693
 
                                                                _tmp164_ = (ValaDataType*) _tmp163_;
 
2672
                                                        ValaCodeNode* _tmp150_ = NULL;
 
2673
                                                        _tmp150_ = vala_code_node_get_parent_node ((ValaCodeNode*) invoc);
 
2674
                                                        if (VALA_IS_EXPRESSION_STATEMENT (_tmp150_)) {
 
2675
                                                                ValaVoidType* _tmp151_ = NULL;
 
2676
                                                                _tmp151_ = vala_void_type_new (NULL);
2694
2677
                                                                _vala_code_node_unref0 (ret_type);
2695
 
                                                                ret_type = _tmp164_;
 
2678
                                                                ret_type = (ValaDataType*) _tmp151_;
2696
2679
                                                        } else {
2697
 
                                                                ValaExpression* _tmp165_ = NULL;
2698
 
                                                                ValaDataType* _tmp166_ = NULL;
2699
 
                                                                ValaDataType* _tmp167_ = NULL;
2700
 
                                                                ValaDataType* _tmp168_;
2701
 
                                                                _tmp165_ = vala_member_access_get_inner (self);
2702
 
                                                                _tmp166_ = vala_expression_get_value_type (_tmp165_);
2703
 
                                                                _tmp167_ = vala_data_type_copy (_tmp166_);
2704
 
                                                                _tmp168_ = _tmp167_;
 
2680
                                                                ValaExpression* _tmp152_ = NULL;
 
2681
                                                                ValaDataType* _tmp153_ = NULL;
 
2682
                                                                ValaDataType* _tmp154_ = NULL;
 
2683
                                                                _tmp152_ = vala_member_access_get_inner (self);
 
2684
                                                                _tmp153_ = vala_expression_get_value_type (_tmp152_);
 
2685
                                                                _tmp154_ = vala_data_type_copy (_tmp153_);
2705
2686
                                                                _vala_code_node_unref0 (ret_type);
2706
 
                                                                ret_type = _tmp168_;
 
2687
                                                                ret_type = _tmp154_;
2707
2688
                                                        }
2708
2689
                                                }
2709
 
                                                _tmp169_ = vala_member_access_get_inner (self);
2710
 
                                                _tmp170_ = vala_expression_get_value_type (_tmp169_);
2711
 
                                                _tmp171_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
2712
 
                                                _tmp172_ = vala_dynamic_method_new (_tmp170_, self->priv->_member_name, ret_type, _tmp171_, NULL);
2713
 
                                                m = _tmp172_;
 
2690
                                                _tmp155_ = vala_member_access_get_inner (self);
 
2691
                                                _tmp156_ = vala_expression_get_value_type (_tmp155_);
 
2692
                                                _tmp157_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
2693
                                                _tmp158_ = vala_dynamic_method_new (_tmp156_, self->priv->_member_name, ret_type, _tmp157_, NULL);
 
2694
                                                m = _tmp158_;
2714
2695
                                                vala_dynamic_method_set_invocation (m, invoc);
2715
 
                                                _tmp173_ = vala_error_type_new (NULL, NULL, NULL);
2716
 
                                                err = _tmp173_;
 
2696
                                                _tmp159_ = vala_error_type_new (NULL, NULL, NULL);
 
2697
                                                err = _tmp159_;
2717
2698
                                                vala_error_type_set_dynamic_error (err, TRUE);
2718
2699
                                                vala_code_node_add_error_type ((ValaCodeNode*) m, (ValaDataType*) err);
2719
2700
                                                vala_symbol_set_access ((ValaSymbol*) m, VALA_SYMBOL_ACCESSIBILITY_PUBLIC);
2720
 
                                                _tmp174_ = vala_parameter_new_with_ellipsis (NULL);
2721
 
                                                _tmp175_ = _tmp174_;
2722
 
                                                vala_method_add_parameter ((ValaMethod*) m, _tmp175_);
2723
 
                                                _vala_code_node_unref0 (_tmp175_);
2724
 
                                                _tmp176_ = vala_object_type_get_type_symbol (dynamic_object_type);
2725
 
                                                _tmp177_ = vala_symbol_get_scope ((ValaSymbol*) _tmp176_);
2726
 
                                                vala_scope_add (_tmp177_, NULL, (ValaSymbol*) m);
 
2701
                                                _tmp160_ = vala_parameter_new_with_ellipsis (NULL);
 
2702
                                                _tmp161_ = _tmp160_;
 
2703
                                                vala_method_add_parameter ((ValaMethod*) m, _tmp161_);
 
2704
                                                _vala_code_node_unref0 (_tmp161_);
 
2705
                                                _tmp162_ = vala_object_type_get_type_symbol (dynamic_object_type);
 
2706
                                                _tmp163_ = vala_symbol_get_scope ((ValaSymbol*) _tmp162_);
 
2707
                                                vala_scope_add (_tmp163_, NULL, (ValaSymbol*) m);
2727
2708
                                                vala_expression_set_symbol_reference ((ValaExpression*) self, (ValaSymbol*) m);
2728
2709
                                                _vala_code_node_unref0 (err);
2729
2710
                                                _vala_code_node_unref0 (m);
2731
2712
                                        }
2732
2713
                                        _vala_code_node_unref0 (invoc);
2733
2714
                                } else {
2734
 
                                        ValaCodeNode* _tmp178_ = NULL;
2735
 
                                        _tmp178_ = vala_code_node_get_parent_node ((ValaCodeNode*) self);
2736
 
                                        if (VALA_IS_ASSIGNMENT (_tmp178_)) {
2737
 
                                                ValaCodeNode* _tmp179_ = NULL;
2738
 
                                                ValaAssignment* _tmp180_;
 
2715
                                        ValaCodeNode* _tmp164_ = NULL;
 
2716
                                        _tmp164_ = vala_code_node_get_parent_node ((ValaCodeNode*) self);
 
2717
                                        if (VALA_IS_ASSIGNMENT (_tmp164_)) {
 
2718
                                                ValaCodeNode* _tmp165_ = NULL;
 
2719
                                                ValaAssignment* _tmp166_;
2739
2720
                                                ValaAssignment* a;
2740
 
                                                gboolean _tmp181_ = FALSE;
2741
 
                                                ValaExpression* _tmp182_ = NULL;
2742
 
                                                _tmp179_ = vala_code_node_get_parent_node ((ValaCodeNode*) self);
2743
 
                                                _tmp180_ = _vala_code_node_ref0 (VALA_ASSIGNMENT (_tmp179_));
2744
 
                                                a = _tmp180_;
2745
 
                                                _tmp182_ = vala_assignment_get_left (a);
2746
 
                                                if (_tmp182_ == VALA_EXPRESSION (self)) {
2747
 
                                                        gboolean _tmp183_ = FALSE;
2748
 
                                                        ValaAssignmentOperator _tmp184_;
2749
 
                                                        _tmp184_ = vala_assignment_get_operator (a);
2750
 
                                                        if (_tmp184_ == VALA_ASSIGNMENT_OPERATOR_ADD) {
2751
 
                                                                _tmp183_ = TRUE;
 
2721
                                                gboolean _tmp167_ = FALSE;
 
2722
                                                ValaExpression* _tmp168_ = NULL;
 
2723
                                                _tmp165_ = vala_code_node_get_parent_node ((ValaCodeNode*) self);
 
2724
                                                _tmp166_ = _vala_code_node_ref0 (VALA_ASSIGNMENT (_tmp165_));
 
2725
                                                a = _tmp166_;
 
2726
                                                _tmp168_ = vala_assignment_get_left (a);
 
2727
                                                if (_tmp168_ == VALA_EXPRESSION (self)) {
 
2728
                                                        gboolean _tmp169_ = FALSE;
 
2729
                                                        ValaAssignmentOperator _tmp170_;
 
2730
                                                        _tmp170_ = vala_assignment_get_operator (a);
 
2731
                                                        if (_tmp170_ == VALA_ASSIGNMENT_OPERATOR_ADD) {
 
2732
                                                                _tmp169_ = TRUE;
2752
2733
                                                        } else {
2753
 
                                                                ValaAssignmentOperator _tmp185_;
2754
 
                                                                _tmp185_ = vala_assignment_get_operator (a);
2755
 
                                                                _tmp183_ = _tmp185_ == VALA_ASSIGNMENT_OPERATOR_SUB;
 
2734
                                                                ValaAssignmentOperator _tmp171_;
 
2735
                                                                _tmp171_ = vala_assignment_get_operator (a);
 
2736
                                                                _tmp169_ = _tmp171_ == VALA_ASSIGNMENT_OPERATOR_SUB;
2756
2737
                                                        }
2757
 
                                                        _tmp181_ = _tmp183_;
 
2738
                                                        _tmp167_ = _tmp169_;
2758
2739
                                                } else {
2759
 
                                                        _tmp181_ = FALSE;
 
2740
                                                        _tmp167_ = FALSE;
2760
2741
                                                }
2761
 
                                                if (_tmp181_) {
2762
 
                                                        ValaExpression* _tmp186_ = NULL;
2763
 
                                                        ValaDataType* _tmp187_ = NULL;
2764
 
                                                        ValaVoidType* _tmp188_ = NULL;
2765
 
                                                        ValaVoidType* _tmp189_;
2766
 
                                                        ValaSourceReference* _tmp190_ = NULL;
2767
 
                                                        ValaDynamicSignal* _tmp191_ = NULL;
2768
 
                                                        ValaDynamicSignal* _tmp192_;
 
2742
                                                if (_tmp167_) {
 
2743
                                                        ValaExpression* _tmp172_ = NULL;
 
2744
                                                        ValaDataType* _tmp173_ = NULL;
 
2745
                                                        ValaVoidType* _tmp174_ = NULL;
 
2746
                                                        ValaVoidType* _tmp175_;
 
2747
                                                        ValaSourceReference* _tmp176_ = NULL;
 
2748
                                                        ValaDynamicSignal* _tmp177_ = NULL;
 
2749
                                                        ValaDynamicSignal* _tmp178_;
2769
2750
                                                        ValaDynamicSignal* s;
2770
 
                                                        ValaExpression* _tmp193_ = NULL;
2771
 
                                                        ValaObjectTypeSymbol* _tmp194_ = NULL;
2772
 
                                                        ValaScope* _tmp195_ = NULL;
2773
 
                                                        _tmp186_ = vala_member_access_get_inner (self);
2774
 
                                                        _tmp187_ = vala_expression_get_value_type (_tmp186_);
2775
 
                                                        _tmp188_ = vala_void_type_new (NULL);
2776
 
                                                        _tmp189_ = _tmp188_;
2777
 
                                                        _tmp190_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
2778
 
                                                        _tmp191_ = vala_dynamic_signal_new (_tmp187_, self->priv->_member_name, (ValaDataType*) _tmp189_, _tmp190_, NULL);
2779
 
                                                        s = (_tmp192_ = _tmp191_, _vala_code_node_unref0 (_tmp189_), _tmp192_);
2780
 
                                                        _tmp193_ = vala_assignment_get_right (a);
2781
 
                                                        vala_dynamic_signal_set_handler (s, _tmp193_);
 
2751
                                                        ValaExpression* _tmp179_ = NULL;
 
2752
                                                        ValaObjectTypeSymbol* _tmp180_ = NULL;
 
2753
                                                        ValaScope* _tmp181_ = NULL;
 
2754
                                                        _tmp172_ = vala_member_access_get_inner (self);
 
2755
                                                        _tmp173_ = vala_expression_get_value_type (_tmp172_);
 
2756
                                                        _tmp174_ = vala_void_type_new (NULL);
 
2757
                                                        _tmp175_ = _tmp174_;
 
2758
                                                        _tmp176_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
2759
                                                        _tmp177_ = vala_dynamic_signal_new (_tmp173_, self->priv->_member_name, (ValaDataType*) _tmp175_, _tmp176_, NULL);
 
2760
                                                        _tmp178_ = _tmp177_;
 
2761
                                                        _vala_code_node_unref0 (_tmp175_);
 
2762
                                                        s = _tmp178_;
 
2763
                                                        _tmp179_ = vala_assignment_get_right (a);
 
2764
                                                        vala_dynamic_signal_set_handler (s, _tmp179_);
2782
2765
                                                        vala_symbol_set_access ((ValaSymbol*) s, VALA_SYMBOL_ACCESSIBILITY_PUBLIC);
2783
 
                                                        _tmp194_ = vala_object_type_get_type_symbol (dynamic_object_type);
2784
 
                                                        _tmp195_ = vala_symbol_get_scope ((ValaSymbol*) _tmp194_);
2785
 
                                                        vala_scope_add (_tmp195_, NULL, (ValaSymbol*) s);
 
2766
                                                        _tmp180_ = vala_object_type_get_type_symbol (dynamic_object_type);
 
2767
                                                        _tmp181_ = vala_symbol_get_scope ((ValaSymbol*) _tmp180_);
 
2768
                                                        vala_scope_add (_tmp181_, NULL, (ValaSymbol*) s);
2786
2769
                                                        vala_expression_set_symbol_reference ((ValaExpression*) self, (ValaSymbol*) s);
2787
2770
                                                        _vala_code_node_unref0 (s);
2788
2771
                                                } else {
2789
 
                                                        ValaExpression* _tmp196_ = NULL;
2790
 
                                                        _tmp196_ = vala_assignment_get_left (a);
2791
 
                                                        if (_tmp196_ == VALA_EXPRESSION (self)) {
2792
 
                                                                ValaExpression* _tmp197_ = NULL;
2793
 
                                                                ValaDataType* _tmp198_ = NULL;
2794
 
                                                                ValaSourceReference* _tmp199_ = NULL;
2795
 
                                                                ValaDynamicProperty* _tmp200_ = NULL;
 
2772
                                                        ValaExpression* _tmp182_ = NULL;
 
2773
                                                        _tmp182_ = vala_assignment_get_left (a);
 
2774
                                                        if (_tmp182_ == VALA_EXPRESSION (self)) {
 
2775
                                                                ValaExpression* _tmp183_ = NULL;
 
2776
                                                                ValaDataType* _tmp184_ = NULL;
 
2777
                                                                ValaSourceReference* _tmp185_ = NULL;
 
2778
                                                                ValaDynamicProperty* _tmp186_ = NULL;
2796
2779
                                                                ValaDynamicProperty* prop;
2797
 
                                                                ValaSourceReference* _tmp201_ = NULL;
2798
 
                                                                ValaPropertyAccessor* _tmp202_ = NULL;
2799
 
                                                                ValaPropertyAccessor* _tmp203_;
2800
 
                                                                ValaExpression* _tmp204_ = NULL;
2801
 
                                                                ValaDataType* _tmp205_ = NULL;
2802
 
                                                                ValaTypeSymbol* _tmp206_ = NULL;
2803
 
                                                                ValaScope* _tmp207_ = NULL;
2804
 
                                                                ValaObjectTypeSymbol* _tmp208_ = NULL;
2805
 
                                                                ValaScope* _tmp209_ = NULL;
2806
 
                                                                _tmp197_ = vala_member_access_get_inner (self);
2807
 
                                                                _tmp198_ = vala_expression_get_value_type (_tmp197_);
2808
 
                                                                _tmp199_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
2809
 
                                                                _tmp200_ = vala_dynamic_property_new (_tmp198_, self->priv->_member_name, _tmp199_, NULL);
2810
 
                                                                prop = _tmp200_;
 
2780
                                                                ValaSourceReference* _tmp187_ = NULL;
 
2781
                                                                ValaPropertyAccessor* _tmp188_ = NULL;
 
2782
                                                                ValaPropertyAccessor* _tmp189_;
 
2783
                                                                ValaExpression* _tmp190_ = NULL;
 
2784
                                                                ValaDataType* _tmp191_ = NULL;
 
2785
                                                                ValaTypeSymbol* _tmp192_ = NULL;
 
2786
                                                                ValaScope* _tmp193_ = NULL;
 
2787
                                                                ValaObjectTypeSymbol* _tmp194_ = NULL;
 
2788
                                                                ValaScope* _tmp195_ = NULL;
 
2789
                                                                _tmp183_ = vala_member_access_get_inner (self);
 
2790
                                                                _tmp184_ = vala_expression_get_value_type (_tmp183_);
 
2791
                                                                _tmp185_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
2792
                                                                _tmp186_ = vala_dynamic_property_new (_tmp184_, self->priv->_member_name, _tmp185_, NULL);
 
2793
                                                                prop = _tmp186_;
2811
2794
                                                                vala_symbol_set_access ((ValaSymbol*) prop, VALA_SYMBOL_ACCESSIBILITY_PUBLIC);
2812
 
                                                                _tmp201_ = vala_code_node_get_source_reference ((ValaCodeNode*) prop);
2813
 
                                                                _tmp202_ = vala_property_accessor_new (FALSE, TRUE, FALSE, NULL, NULL, _tmp201_, NULL);
2814
 
                                                                _tmp203_ = _tmp202_;
2815
 
                                                                vala_property_set_set_accessor ((ValaProperty*) prop, _tmp203_);
2816
 
                                                                _vala_code_node_unref0 (_tmp203_);
2817
 
                                                                _tmp204_ = vala_member_access_get_inner (self);
2818
 
                                                                _tmp205_ = vala_expression_get_value_type (_tmp204_);
2819
 
                                                                _tmp206_ = vala_data_type_get_data_type (_tmp205_);
2820
 
                                                                _tmp207_ = vala_symbol_get_scope ((ValaSymbol*) _tmp206_);
2821
 
                                                                vala_symbol_set_owner ((ValaSymbol*) prop, _tmp207_);
2822
 
                                                                _tmp208_ = vala_object_type_get_type_symbol (dynamic_object_type);
2823
 
                                                                _tmp209_ = vala_symbol_get_scope ((ValaSymbol*) _tmp208_);
2824
 
                                                                vala_scope_add (_tmp209_, NULL, (ValaSymbol*) prop);
 
2795
                                                                _tmp187_ = vala_code_node_get_source_reference ((ValaCodeNode*) prop);
 
2796
                                                                _tmp188_ = vala_property_accessor_new (FALSE, TRUE, FALSE, NULL, NULL, _tmp187_, NULL);
 
2797
                                                                _tmp189_ = _tmp188_;
 
2798
                                                                vala_property_set_set_accessor ((ValaProperty*) prop, _tmp189_);
 
2799
                                                                _vala_code_node_unref0 (_tmp189_);
 
2800
                                                                _tmp190_ = vala_member_access_get_inner (self);
 
2801
                                                                _tmp191_ = vala_expression_get_value_type (_tmp190_);
 
2802
                                                                _tmp192_ = vala_data_type_get_data_type (_tmp191_);
 
2803
                                                                _tmp193_ = vala_symbol_get_scope ((ValaSymbol*) _tmp192_);
 
2804
                                                                vala_symbol_set_owner ((ValaSymbol*) prop, _tmp193_);
 
2805
                                                                _tmp194_ = vala_object_type_get_type_symbol (dynamic_object_type);
 
2806
                                                                _tmp195_ = vala_symbol_get_scope ((ValaSymbol*) _tmp194_);
 
2807
                                                                vala_scope_add (_tmp195_, NULL, (ValaSymbol*) prop);
2825
2808
                                                                vala_expression_set_symbol_reference ((ValaExpression*) self, (ValaSymbol*) prop);
2826
2809
                                                                _vala_code_node_unref0 (prop);
2827
2810
                                                        }
2828
2811
                                                }
2829
2812
                                                _vala_code_node_unref0 (a);
2830
2813
                                        } else {
2831
 
                                                gboolean _tmp210_ = FALSE;
2832
 
                                                gboolean _tmp211_ = FALSE;
2833
 
                                                ValaCodeNode* _tmp212_ = NULL;
2834
 
                                                _tmp212_ = vala_code_node_get_parent_node ((ValaCodeNode*) self);
2835
 
                                                if (VALA_IS_MEMBER_ACCESS (_tmp212_)) {
2836
 
                                                        ValaExpression* _tmp213_ = NULL;
2837
 
                                                        _tmp213_ = vala_member_access_get_inner (self);
2838
 
                                                        _tmp211_ = VALA_IS_MEMBER_ACCESS (_tmp213_);
2839
 
                                                } else {
2840
 
                                                        _tmp211_ = FALSE;
2841
 
                                                }
2842
 
                                                if (_tmp211_) {
2843
 
                                                        ValaCodeNode* _tmp214_ = NULL;
2844
 
                                                        ValaCodeNode* _tmp215_ = NULL;
2845
 
                                                        _tmp214_ = vala_code_node_get_parent_node ((ValaCodeNode*) self);
2846
 
                                                        _tmp215_ = vala_code_node_get_parent_node (_tmp214_);
2847
 
                                                        _tmp210_ = VALA_IS_METHOD_CALL (_tmp215_);
2848
 
                                                } else {
2849
 
                                                        _tmp210_ = FALSE;
2850
 
                                                }
2851
 
                                                if (_tmp210_) {
2852
 
                                                        ValaCodeNode* _tmp216_ = NULL;
2853
 
                                                        ValaMemberAccess* _tmp217_;
 
2814
                                                gboolean _tmp196_ = FALSE;
 
2815
                                                gboolean _tmp197_ = FALSE;
 
2816
                                                ValaCodeNode* _tmp198_ = NULL;
 
2817
                                                _tmp198_ = vala_code_node_get_parent_node ((ValaCodeNode*) self);
 
2818
                                                if (VALA_IS_MEMBER_ACCESS (_tmp198_)) {
 
2819
                                                        ValaExpression* _tmp199_ = NULL;
 
2820
                                                        _tmp199_ = vala_member_access_get_inner (self);
 
2821
                                                        _tmp197_ = VALA_IS_MEMBER_ACCESS (_tmp199_);
 
2822
                                                } else {
 
2823
                                                        _tmp197_ = FALSE;
 
2824
                                                }
 
2825
                                                if (_tmp197_) {
 
2826
                                                        ValaCodeNode* _tmp200_ = NULL;
 
2827
                                                        ValaCodeNode* _tmp201_ = NULL;
 
2828
                                                        _tmp200_ = vala_code_node_get_parent_node ((ValaCodeNode*) self);
 
2829
                                                        _tmp201_ = vala_code_node_get_parent_node (_tmp200_);
 
2830
                                                        _tmp196_ = VALA_IS_METHOD_CALL (_tmp201_);
 
2831
                                                } else {
 
2832
                                                        _tmp196_ = FALSE;
 
2833
                                                }
 
2834
                                                if (_tmp196_) {
 
2835
                                                        ValaCodeNode* _tmp202_ = NULL;
 
2836
                                                        ValaMemberAccess* _tmp203_;
2854
2837
                                                        ValaMemberAccess* ma;
2855
 
                                                        gboolean _tmp218_ = FALSE;
2856
 
                                                        _tmp216_ = vala_code_node_get_parent_node ((ValaCodeNode*) self);
2857
 
                                                        _tmp217_ = _vala_code_node_ref0 (VALA_MEMBER_ACCESS (_tmp216_));
2858
 
                                                        ma = _tmp217_;
 
2838
                                                        gboolean _tmp204_ = FALSE;
 
2839
                                                        _tmp202_ = vala_code_node_get_parent_node ((ValaCodeNode*) self);
 
2840
                                                        _tmp203_ = _vala_code_node_ref0 (VALA_MEMBER_ACCESS (_tmp202_));
 
2841
                                                        ma = _tmp203_;
2859
2842
                                                        if (g_strcmp0 (ma->priv->_member_name, "connect") == 0) {
2860
 
                                                                _tmp218_ = TRUE;
 
2843
                                                                _tmp204_ = TRUE;
2861
2844
                                                        } else {
2862
 
                                                                _tmp218_ = g_strcmp0 (ma->priv->_member_name, "connect_after") == 0;
 
2845
                                                                _tmp204_ = g_strcmp0 (ma->priv->_member_name, "connect_after") == 0;
2863
2846
                                                        }
2864
 
                                                        if (_tmp218_) {
2865
 
                                                                ValaExpression* _tmp219_ = NULL;
2866
 
                                                                ValaDataType* _tmp220_ = NULL;
2867
 
                                                                ValaVoidType* _tmp221_ = NULL;
2868
 
                                                                ValaVoidType* _tmp222_;
2869
 
                                                                ValaSourceReference* _tmp223_ = NULL;
2870
 
                                                                ValaDynamicSignal* _tmp224_ = NULL;
2871
 
                                                                ValaDynamicSignal* _tmp225_;
 
2847
                                                        if (_tmp204_) {
 
2848
                                                                ValaExpression* _tmp205_ = NULL;
 
2849
                                                                ValaDataType* _tmp206_ = NULL;
 
2850
                                                                ValaVoidType* _tmp207_ = NULL;
 
2851
                                                                ValaVoidType* _tmp208_;
 
2852
                                                                ValaSourceReference* _tmp209_ = NULL;
 
2853
                                                                ValaDynamicSignal* _tmp210_ = NULL;
 
2854
                                                                ValaDynamicSignal* _tmp211_;
2872
2855
                                                                ValaDynamicSignal* s;
2873
 
                                                                ValaCodeNode* _tmp226_ = NULL;
2874
 
                                                                ValaCodeNode* _tmp227_ = NULL;
2875
 
                                                                ValaMethodCall* _tmp228_;
 
2856
                                                                ValaCodeNode* _tmp212_ = NULL;
 
2857
                                                                ValaCodeNode* _tmp213_ = NULL;
 
2858
                                                                ValaMethodCall* _tmp214_;
2876
2859
                                                                ValaMethodCall* mcall;
2877
 
                                                                ValaList* _tmp229_ = NULL;
2878
 
                                                                ValaList* _tmp230_;
2879
 
                                                                gint _tmp231_;
2880
 
                                                                gboolean _tmp232_;
2881
 
                                                                ValaObjectTypeSymbol* _tmp237_ = NULL;
2882
 
                                                                ValaScope* _tmp238_ = NULL;
2883
 
                                                                _tmp219_ = vala_member_access_get_inner (self);
2884
 
                                                                _tmp220_ = vala_expression_get_value_type (_tmp219_);
2885
 
                                                                _tmp221_ = vala_void_type_new (NULL);
2886
 
                                                                _tmp222_ = _tmp221_;
2887
 
                                                                _tmp223_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
2888
 
                                                                _tmp224_ = vala_dynamic_signal_new (_tmp220_, self->priv->_member_name, (ValaDataType*) _tmp222_, _tmp223_, NULL);
2889
 
                                                                s = (_tmp225_ = _tmp224_, _vala_code_node_unref0 (_tmp222_), _tmp225_);
2890
 
                                                                _tmp226_ = vala_code_node_get_parent_node ((ValaCodeNode*) self);
2891
 
                                                                _tmp227_ = vala_code_node_get_parent_node (_tmp226_);
2892
 
                                                                _tmp228_ = _vala_code_node_ref0 (VALA_METHOD_CALL (_tmp227_));
2893
 
                                                                mcall = _tmp228_;
2894
 
                                                                _tmp229_ = vala_method_call_get_argument_list (mcall);
2895
 
                                                                _tmp230_ = _tmp229_;
2896
 
                                                                _tmp231_ = vala_collection_get_size ((ValaCollection*) _tmp230_);
2897
 
                                                                if ((_tmp232_ = _tmp231_ > 0, _vala_iterable_unref0 (_tmp230_), _tmp232_)) {
2898
 
                                                                        ValaList* _tmp233_ = NULL;
2899
 
                                                                        ValaList* _tmp234_;
2900
 
                                                                        gpointer _tmp235_ = NULL;
2901
 
                                                                        ValaExpression* _tmp236_;
2902
 
                                                                        _tmp233_ = vala_method_call_get_argument_list (mcall);
2903
 
                                                                        _tmp234_ = _tmp233_;
2904
 
                                                                        _tmp235_ = vala_list_get (_tmp234_, 0);
2905
 
                                                                        _tmp236_ = (ValaExpression*) _tmp235_;
2906
 
                                                                        vala_dynamic_signal_set_handler (s, _tmp236_);
2907
 
                                                                        _vala_code_node_unref0 (_tmp236_);
2908
 
                                                                        _vala_iterable_unref0 (_tmp234_);
 
2860
                                                                ValaList* _tmp215_ = NULL;
 
2861
                                                                ValaList* _tmp216_;
 
2862
                                                                gint _tmp217_;
 
2863
                                                                gboolean _tmp218_;
 
2864
                                                                ValaObjectTypeSymbol* _tmp223_ = NULL;
 
2865
                                                                ValaScope* _tmp224_ = NULL;
 
2866
                                                                _tmp205_ = vala_member_access_get_inner (self);
 
2867
                                                                _tmp206_ = vala_expression_get_value_type (_tmp205_);
 
2868
                                                                _tmp207_ = vala_void_type_new (NULL);
 
2869
                                                                _tmp208_ = _tmp207_;
 
2870
                                                                _tmp209_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
2871
                                                                _tmp210_ = vala_dynamic_signal_new (_tmp206_, self->priv->_member_name, (ValaDataType*) _tmp208_, _tmp209_, NULL);
 
2872
                                                                _tmp211_ = _tmp210_;
 
2873
                                                                _vala_code_node_unref0 (_tmp208_);
 
2874
                                                                s = _tmp211_;
 
2875
                                                                _tmp212_ = vala_code_node_get_parent_node ((ValaCodeNode*) self);
 
2876
                                                                _tmp213_ = vala_code_node_get_parent_node (_tmp212_);
 
2877
                                                                _tmp214_ = _vala_code_node_ref0 (VALA_METHOD_CALL (_tmp213_));
 
2878
                                                                mcall = _tmp214_;
 
2879
                                                                _tmp215_ = vala_method_call_get_argument_list (mcall);
 
2880
                                                                _tmp216_ = _tmp215_;
 
2881
                                                                _tmp217_ = vala_collection_get_size ((ValaCollection*) _tmp216_);
 
2882
                                                                _tmp218_ = _tmp217_ > 0;
 
2883
                                                                _vala_iterable_unref0 (_tmp216_);
 
2884
                                                                if (_tmp218_) {
 
2885
                                                                        ValaList* _tmp219_ = NULL;
 
2886
                                                                        ValaList* _tmp220_;
 
2887
                                                                        gpointer _tmp221_ = NULL;
 
2888
                                                                        ValaExpression* _tmp222_;
 
2889
                                                                        _tmp219_ = vala_method_call_get_argument_list (mcall);
 
2890
                                                                        _tmp220_ = _tmp219_;
 
2891
                                                                        _tmp221_ = vala_list_get (_tmp220_, 0);
 
2892
                                                                        _tmp222_ = (ValaExpression*) _tmp221_;
 
2893
                                                                        vala_dynamic_signal_set_handler (s, _tmp222_);
 
2894
                                                                        _vala_code_node_unref0 (_tmp222_);
 
2895
                                                                        _vala_iterable_unref0 (_tmp220_);
2909
2896
                                                                }
2910
2897
                                                                vala_symbol_set_access ((ValaSymbol*) s, VALA_SYMBOL_ACCESSIBILITY_PUBLIC);
2911
 
                                                                _tmp237_ = vala_object_type_get_type_symbol (dynamic_object_type);
2912
 
                                                                _tmp238_ = vala_symbol_get_scope ((ValaSymbol*) _tmp237_);
2913
 
                                                                vala_scope_add (_tmp238_, NULL, (ValaSymbol*) s);
 
2898
                                                                _tmp223_ = vala_object_type_get_type_symbol (dynamic_object_type);
 
2899
                                                                _tmp224_ = vala_symbol_get_scope ((ValaSymbol*) _tmp223_);
 
2900
                                                                vala_scope_add (_tmp224_, NULL, (ValaSymbol*) s);
2914
2901
                                                                vala_expression_set_symbol_reference ((ValaExpression*) self, (ValaSymbol*) s);
2915
2902
                                                                _vala_code_node_unref0 (mcall);
2916
2903
                                                                _vala_code_node_unref0 (s);
2919
2906
                                                }
2920
2907
                                        }
2921
2908
                                }
2922
 
                                _tmp239_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
2923
 
                                if (_tmp239_ == NULL) {
2924
 
                                        ValaExpression* _tmp240_ = NULL;
2925
 
                                        ValaDataType* _tmp241_ = NULL;
2926
 
                                        ValaSourceReference* _tmp242_ = NULL;
2927
 
                                        ValaDynamicProperty* _tmp243_ = NULL;
 
2909
                                _tmp225_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
2910
                                if (_tmp225_ == NULL) {
 
2911
                                        ValaExpression* _tmp226_ = NULL;
 
2912
                                        ValaDataType* _tmp227_ = NULL;
 
2913
                                        ValaSourceReference* _tmp228_ = NULL;
 
2914
                                        ValaDynamicProperty* _tmp229_ = NULL;
2928
2915
                                        ValaDynamicProperty* prop;
2929
 
                                        ValaDataType* _tmp244_ = NULL;
2930
 
                                        ValaDataType* _tmp250_ = NULL;
2931
 
                                        ValaDataType* _tmp251_ = NULL;
2932
 
                                        ValaDataType* _tmp252_;
2933
 
                                        ValaSourceReference* _tmp253_ = NULL;
2934
 
                                        ValaPropertyAccessor* _tmp254_ = NULL;
2935
 
                                        ValaPropertyAccessor* _tmp255_;
2936
 
                                        ValaExpression* _tmp256_ = NULL;
2937
 
                                        ValaDataType* _tmp257_ = NULL;
2938
 
                                        ValaTypeSymbol* _tmp258_ = NULL;
2939
 
                                        ValaScope* _tmp259_ = NULL;
2940
 
                                        ValaObjectTypeSymbol* _tmp260_ = NULL;
2941
 
                                        ValaScope* _tmp261_ = NULL;
2942
 
                                        _tmp240_ = vala_member_access_get_inner (self);
2943
 
                                        _tmp241_ = vala_expression_get_value_type (_tmp240_);
2944
 
                                        _tmp242_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
2945
 
                                        _tmp243_ = vala_dynamic_property_new (_tmp241_, self->priv->_member_name, _tmp242_, NULL);
2946
 
                                        prop = _tmp243_;
2947
 
                                        _tmp244_ = vala_expression_get_target_type ((ValaExpression*) self);
2948
 
                                        if (_tmp244_ != NULL) {
2949
 
                                                ValaDataType* _tmp245_ = NULL;
2950
 
                                                _tmp245_ = vala_expression_get_target_type ((ValaExpression*) self);
2951
 
                                                vala_property_set_property_type ((ValaProperty*) prop, _tmp245_);
 
2916
                                        ValaDataType* _tmp230_ = NULL;
 
2917
                                        ValaDataType* _tmp236_ = NULL;
 
2918
                                        ValaDataType* _tmp237_ = NULL;
 
2919
                                        ValaDataType* _tmp238_;
 
2920
                                        ValaSourceReference* _tmp239_ = NULL;
 
2921
                                        ValaPropertyAccessor* _tmp240_ = NULL;
 
2922
                                        ValaPropertyAccessor* _tmp241_;
 
2923
                                        ValaExpression* _tmp242_ = NULL;
 
2924
                                        ValaDataType* _tmp243_ = NULL;
 
2925
                                        ValaTypeSymbol* _tmp244_ = NULL;
 
2926
                                        ValaScope* _tmp245_ = NULL;
 
2927
                                        ValaObjectTypeSymbol* _tmp246_ = NULL;
 
2928
                                        ValaScope* _tmp247_ = NULL;
 
2929
                                        _tmp226_ = vala_member_access_get_inner (self);
 
2930
                                        _tmp227_ = vala_expression_get_value_type (_tmp226_);
 
2931
                                        _tmp228_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
2932
                                        _tmp229_ = vala_dynamic_property_new (_tmp227_, self->priv->_member_name, _tmp228_, NULL);
 
2933
                                        prop = _tmp229_;
 
2934
                                        _tmp230_ = vala_expression_get_target_type ((ValaExpression*) self);
 
2935
                                        if (_tmp230_ != NULL) {
 
2936
                                                ValaDataType* _tmp231_ = NULL;
 
2937
                                                _tmp231_ = vala_expression_get_target_type ((ValaExpression*) self);
 
2938
                                                vala_property_set_property_type ((ValaProperty*) prop, _tmp231_);
2952
2939
                                        } else {
2953
 
                                                ValaExpression* _tmp246_ = NULL;
2954
 
                                                ValaDataType* _tmp247_ = NULL;
2955
 
                                                ValaDataType* _tmp248_ = NULL;
2956
 
                                                ValaDataType* _tmp249_;
2957
 
                                                _tmp246_ = vala_member_access_get_inner (self);
2958
 
                                                _tmp247_ = vala_expression_get_value_type (_tmp246_);
2959
 
                                                _tmp248_ = vala_data_type_copy (_tmp247_);
2960
 
                                                _tmp249_ = _tmp248_;
2961
 
                                                vala_property_set_property_type ((ValaProperty*) prop, _tmp249_);
2962
 
                                                _vala_code_node_unref0 (_tmp249_);
 
2940
                                                ValaExpression* _tmp232_ = NULL;
 
2941
                                                ValaDataType* _tmp233_ = NULL;
 
2942
                                                ValaDataType* _tmp234_ = NULL;
 
2943
                                                ValaDataType* _tmp235_;
 
2944
                                                _tmp232_ = vala_member_access_get_inner (self);
 
2945
                                                _tmp233_ = vala_expression_get_value_type (_tmp232_);
 
2946
                                                _tmp234_ = vala_data_type_copy (_tmp233_);
 
2947
                                                _tmp235_ = _tmp234_;
 
2948
                                                vala_property_set_property_type ((ValaProperty*) prop, _tmp235_);
 
2949
                                                _vala_code_node_unref0 (_tmp235_);
2963
2950
                                        }
2964
2951
                                        vala_symbol_set_access ((ValaSymbol*) prop, VALA_SYMBOL_ACCESSIBILITY_PUBLIC);
2965
 
                                        _tmp250_ = vala_property_get_property_type ((ValaProperty*) prop);
2966
 
                                        _tmp251_ = vala_data_type_copy (_tmp250_);
2967
 
                                        _tmp252_ = _tmp251_;
2968
 
                                        _tmp253_ = vala_code_node_get_source_reference ((ValaCodeNode*) prop);
2969
 
                                        _tmp254_ = vala_property_accessor_new (TRUE, FALSE, FALSE, _tmp252_, NULL, _tmp253_, NULL);
2970
 
                                        _tmp255_ = _tmp254_;
2971
 
                                        vala_property_set_get_accessor ((ValaProperty*) prop, _tmp255_);
2972
 
                                        _vala_code_node_unref0 (_tmp255_);
2973
 
                                        _vala_code_node_unref0 (_tmp252_);
2974
 
                                        _tmp256_ = vala_member_access_get_inner (self);
2975
 
                                        _tmp257_ = vala_expression_get_value_type (_tmp256_);
2976
 
                                        _tmp258_ = vala_data_type_get_data_type (_tmp257_);
2977
 
                                        _tmp259_ = vala_symbol_get_scope ((ValaSymbol*) _tmp258_);
2978
 
                                        vala_symbol_set_owner ((ValaSymbol*) prop, _tmp259_);
2979
 
                                        _tmp260_ = vala_object_type_get_type_symbol (dynamic_object_type);
2980
 
                                        _tmp261_ = vala_symbol_get_scope ((ValaSymbol*) _tmp260_);
2981
 
                                        vala_scope_add (_tmp261_, NULL, (ValaSymbol*) prop);
 
2952
                                        _tmp236_ = vala_property_get_property_type ((ValaProperty*) prop);
 
2953
                                        _tmp237_ = vala_data_type_copy (_tmp236_);
 
2954
                                        _tmp238_ = _tmp237_;
 
2955
                                        _tmp239_ = vala_code_node_get_source_reference ((ValaCodeNode*) prop);
 
2956
                                        _tmp240_ = vala_property_accessor_new (TRUE, FALSE, FALSE, _tmp238_, NULL, _tmp239_, NULL);
 
2957
                                        _tmp241_ = _tmp240_;
 
2958
                                        vala_property_set_get_accessor ((ValaProperty*) prop, _tmp241_);
 
2959
                                        _vala_code_node_unref0 (_tmp241_);
 
2960
                                        _vala_code_node_unref0 (_tmp238_);
 
2961
                                        _tmp242_ = vala_member_access_get_inner (self);
 
2962
                                        _tmp243_ = vala_expression_get_value_type (_tmp242_);
 
2963
                                        _tmp244_ = vala_data_type_get_data_type (_tmp243_);
 
2964
                                        _tmp245_ = vala_symbol_get_scope ((ValaSymbol*) _tmp244_);
 
2965
                                        vala_symbol_set_owner ((ValaSymbol*) prop, _tmp245_);
 
2966
                                        _tmp246_ = vala_object_type_get_type_symbol (dynamic_object_type);
 
2967
                                        _tmp247_ = vala_symbol_get_scope ((ValaSymbol*) _tmp246_);
 
2968
                                        vala_scope_add (_tmp247_, NULL, (ValaSymbol*) prop);
2982
2969
                                        vala_expression_set_symbol_reference ((ValaExpression*) self, (ValaSymbol*) prop);
2983
2970
                                        _vala_code_node_unref0 (prop);
2984
2971
                                }
2985
 
                                _tmp262_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
2986
 
                                if (_tmp262_ != NULL) {
 
2972
                                _tmp248_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
2973
                                if (_tmp248_ != NULL) {
2987
2974
                                        may_access_instance_members = TRUE;
2988
2975
                                        may_access_klass_members = TRUE;
2989
2976
                                }
2991
2978
                        }
2992
2979
                }
2993
2980
        }
2994
 
        _tmp263_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
2995
 
        if (_tmp263_ == NULL) {
2996
 
                gchar* _tmp264_;
 
2981
        _tmp249_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
2982
        if (_tmp249_ == NULL) {
 
2983
                gchar* _tmp250_;
2997
2984
                gchar* base_type_name;
2998
 
                gboolean _tmp265_ = FALSE;
2999
 
                ValaExpression* _tmp266_ = NULL;
3000
 
                ValaSourceReference* _tmp275_ = NULL;
3001
 
                gchar* _tmp276_ = NULL;
3002
 
                gchar* _tmp277_;
 
2985
                gboolean _tmp251_ = FALSE;
 
2986
                ValaExpression* _tmp252_ = NULL;
 
2987
                ValaSourceReference* _tmp259_ = NULL;
 
2988
                gchar* _tmp260_ = NULL;
 
2989
                gchar* _tmp261_;
3003
2990
                vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
3004
 
                _tmp264_ = g_strdup ("(null)");
3005
 
                base_type_name = _tmp264_;
3006
 
                _tmp266_ = vala_member_access_get_inner (self);
3007
 
                if (_tmp266_ != NULL) {
3008
 
                        ValaExpression* _tmp267_ = NULL;
3009
 
                        ValaDataType* _tmp268_ = NULL;
3010
 
                        _tmp267_ = vala_member_access_get_inner (self);
3011
 
                        _tmp268_ = vala_expression_get_value_type (_tmp267_);
3012
 
                        _tmp265_ = _tmp268_ != NULL;
 
2991
                _tmp250_ = g_strdup ("(null)");
 
2992
                base_type_name = _tmp250_;
 
2993
                _tmp252_ = vala_member_access_get_inner (self);
 
2994
                if (_tmp252_ != NULL) {
 
2995
                        ValaExpression* _tmp253_ = NULL;
 
2996
                        ValaDataType* _tmp254_ = NULL;
 
2997
                        _tmp253_ = vala_member_access_get_inner (self);
 
2998
                        _tmp254_ = vala_expression_get_value_type (_tmp253_);
 
2999
                        _tmp251_ = _tmp254_ != NULL;
3013
3000
                } else {
3014
 
                        _tmp265_ = FALSE;
 
3001
                        _tmp251_ = FALSE;
3015
3002
                }
3016
 
                if (_tmp265_) {
3017
 
                        ValaExpression* _tmp269_ = NULL;
3018
 
                        ValaDataType* _tmp270_ = NULL;
3019
 
                        gchar* _tmp271_ = NULL;
3020
 
                        gchar* _tmp272_;
3021
 
                        _tmp269_ = vala_member_access_get_inner (self);
3022
 
                        _tmp270_ = vala_expression_get_value_type (_tmp269_);
3023
 
                        _tmp271_ = vala_code_node_to_string ((ValaCodeNode*) _tmp270_);
3024
 
                        _tmp272_ = _tmp271_;
 
3003
                if (_tmp251_) {
 
3004
                        ValaExpression* _tmp255_ = NULL;
 
3005
                        ValaDataType* _tmp256_ = NULL;
 
3006
                        gchar* _tmp257_ = NULL;
 
3007
                        _tmp255_ = vala_member_access_get_inner (self);
 
3008
                        _tmp256_ = vala_expression_get_value_type (_tmp255_);
 
3009
                        _tmp257_ = vala_code_node_to_string ((ValaCodeNode*) _tmp256_);
3025
3010
                        _g_free0 (base_type_name);
3026
 
                        base_type_name = _tmp272_;
 
3011
                        base_type_name = _tmp257_;
3027
3012
                } else {
3028
3013
                        if (base_symbol != NULL) {
3029
 
                                gchar* _tmp273_ = NULL;
3030
 
                                gchar* _tmp274_;
3031
 
                                _tmp273_ = vala_symbol_get_full_name (base_symbol);
3032
 
                                _tmp274_ = _tmp273_;
 
3014
                                gchar* _tmp258_ = NULL;
 
3015
                                _tmp258_ = vala_symbol_get_full_name (base_symbol);
3033
3016
                                _g_free0 (base_type_name);
3034
 
                                base_type_name = _tmp274_;
 
3017
                                base_type_name = _tmp258_;
3035
3018
                        }
3036
3019
                }
3037
 
                _tmp275_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
3038
 
                _tmp276_ = g_strdup_printf ("The name `%s' does not exist in the context of `%s'", self->priv->_member_name, base_type_name);
3039
 
                _tmp277_ = _tmp276_;
3040
 
                vala_report_error (_tmp275_, _tmp277_);
3041
 
                _g_free0 (_tmp277_);
 
3020
                _tmp259_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
3021
                _tmp260_ = g_strdup_printf ("The name `%s' does not exist in the context of `%s'", self->priv->_member_name, base_type_name);
 
3022
                _tmp261_ = _tmp260_;
 
3023
                vala_report_error (_tmp259_, _tmp261_);
 
3024
                _g_free0 (_tmp261_);
3042
3025
                result = FALSE;
3043
3026
                _g_free0 (base_type_name);
3044
3027
                _vala_code_node_unref0 (this_parameter);
3045
3028
                _vala_code_node_unref0 (base_symbol);
3046
3029
                return result;
3047
3030
        }
3048
 
        _tmp278_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
3049
 
        _tmp279_ = _vala_code_node_ref0 (_tmp278_);
3050
 
        member = _tmp279_;
 
3031
        _tmp262_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
3032
        _tmp263_ = _vala_code_node_ref0 (_tmp262_);
 
3033
        member = _tmp263_;
3051
3034
        access = VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
3052
3035
        instance = FALSE;
3053
3036
        klass = FALSE;
3054
3037
        generics = FALSE;
3055
 
        _tmp280_ = vala_code_node_check ((ValaCodeNode*) member, context);
3056
 
        if (!_tmp280_) {
 
3038
        _tmp264_ = vala_code_node_check ((ValaCodeNode*) member, context);
 
3039
        if (!_tmp264_) {
3057
3040
                result = FALSE;
3058
3041
                _vala_code_node_unref0 (member);
3059
3042
                _vala_code_node_unref0 (this_parameter);
3061
3044
                return result;
3062
3045
        }
3063
3046
        if (VALA_IS_LOCAL_VARIABLE (member)) {
3064
 
                ValaLocalVariable* _tmp281_;
 
3047
                ValaLocalVariable* _tmp265_;
3065
3048
                ValaLocalVariable* local;
3066
 
                ValaSymbol* _tmp282_ = NULL;
3067
 
                ValaSymbol* _tmp283_;
3068
 
                ValaBlock* _tmp284_;
 
3049
                ValaSymbol* _tmp266_ = NULL;
 
3050
                ValaSymbol* _tmp267_;
 
3051
                ValaBlock* _tmp268_;
3069
3052
                ValaBlock* block;
3070
 
                gboolean _tmp285_ = FALSE;
3071
 
                _tmp281_ = _vala_code_node_ref0 (VALA_LOCAL_VARIABLE (member));
3072
 
                local = _tmp281_;
3073
 
                _tmp282_ = vala_symbol_get_parent_symbol ((ValaSymbol*) local);
3074
 
                _tmp284_ = _vala_code_node_ref0 ((_tmp283_ = _tmp282_, VALA_IS_BLOCK (_tmp283_) ? ((ValaBlock*) _tmp283_) : NULL));
3075
 
                block = _tmp284_;
 
3053
                gboolean _tmp269_ = FALSE;
 
3054
                _tmp265_ = _vala_code_node_ref0 (VALA_LOCAL_VARIABLE (member));
 
3055
                local = _tmp265_;
 
3056
                _tmp266_ = vala_symbol_get_parent_symbol ((ValaSymbol*) local);
 
3057
                _tmp267_ = _tmp266_;
 
3058
                _tmp268_ = _vala_code_node_ref0 (VALA_IS_BLOCK (_tmp267_) ? ((ValaBlock*) _tmp267_) : NULL);
 
3059
                block = _tmp268_;
3076
3060
                if (block != NULL) {
3077
 
                        ValaSemanticAnalyzer* _tmp286_ = NULL;
3078
 
                        ValaSymbol* _tmp287_ = NULL;
3079
 
                        ValaSymbol* _tmp288_;
3080
 
                        ValaSemanticAnalyzer* _tmp289_ = NULL;
3081
 
                        ValaSymbol* _tmp290_ = NULL;
3082
 
                        _tmp286_ = vala_code_context_get_analyzer (context);
3083
 
                        _tmp287_ = vala_semantic_analyzer_find_parent_method_or_property_accessor (_tmp286_, (ValaSymbol*) block);
3084
 
                        _tmp288_ = _tmp287_;
3085
 
                        _tmp289_ = vala_code_context_get_analyzer (context);
3086
 
                        _tmp290_ = vala_semantic_analyzer_get_current_method_or_property_accessor (_tmp289_);
3087
 
                        _tmp285_ = _tmp288_ != _tmp290_;
3088
 
                        _vala_code_node_unref0 (_tmp288_);
 
3061
                        ValaSemanticAnalyzer* _tmp270_ = NULL;
 
3062
                        ValaSymbol* _tmp271_ = NULL;
 
3063
                        ValaSymbol* _tmp272_;
 
3064
                        ValaSemanticAnalyzer* _tmp273_ = NULL;
 
3065
                        ValaSymbol* _tmp274_ = NULL;
 
3066
                        _tmp270_ = vala_code_context_get_analyzer (context);
 
3067
                        _tmp271_ = vala_semantic_analyzer_find_parent_method_or_property_accessor (_tmp270_, (ValaSymbol*) block);
 
3068
                        _tmp272_ = _tmp271_;
 
3069
                        _tmp273_ = vala_code_context_get_analyzer (context);
 
3070
                        _tmp274_ = vala_semantic_analyzer_get_current_method_or_property_accessor (_tmp273_);
 
3071
                        _tmp269_ = _tmp272_ != _tmp274_;
 
3072
                        _vala_code_node_unref0 (_tmp272_);
3089
3073
                } else {
3090
 
                        _tmp285_ = FALSE;
 
3074
                        _tmp269_ = FALSE;
3091
3075
                }
3092
 
                if (_tmp285_) {
3093
 
                        ValaSemanticAnalyzer* _tmp291_ = NULL;
3094
 
                        ValaSymbol* _tmp292_ = NULL;
3095
 
                        ValaSymbol* _tmp293_;
 
3076
                if (_tmp269_) {
 
3077
                        ValaSemanticAnalyzer* _tmp275_ = NULL;
 
3078
                        ValaSymbol* _tmp276_ = NULL;
 
3079
                        ValaSymbol* _tmp277_;
3096
3080
                        ValaSymbol* sym;
3097
 
                        _tmp291_ = vala_code_context_get_analyzer (context);
3098
 
                        _tmp292_ = vala_semantic_analyzer_get_current_method_or_property_accessor (_tmp291_);
3099
 
                        _tmp293_ = _vala_code_node_ref0 (_tmp292_);
3100
 
                        sym = _tmp293_;
 
3081
                        _tmp275_ = vala_code_context_get_analyzer (context);
 
3082
                        _tmp276_ = vala_semantic_analyzer_get_current_method_or_property_accessor (_tmp275_);
 
3083
                        _tmp277_ = _vala_code_node_ref0 (_tmp276_);
 
3084
                        sym = _tmp277_;
3101
3085
                        while (TRUE) {
3102
 
                                ValaSymbol* _tmp294_;
3103
 
                                ValaMethod* _tmp295_;
 
3086
                                ValaSymbol* _tmp278_;
 
3087
                                ValaMethod* _tmp279_;
3104
3088
                                ValaMethod* method;
3105
 
                                ValaSymbol* _tmp296_ = NULL;
3106
 
                                ValaSymbol* _tmp297_;
3107
 
                                ValaSymbol* _tmp298_;
 
3089
                                ValaSymbol* _tmp280_ = NULL;
 
3090
                                ValaSymbol* _tmp281_;
3108
3091
                                if (!(sym != VALA_SYMBOL (block))) {
3109
3092
                                        break;
3110
3093
                                }
3111
 
                                _tmp295_ = _vala_code_node_ref0 ((_tmp294_ = sym, VALA_IS_METHOD (_tmp294_) ? ((ValaMethod*) _tmp294_) : NULL));
3112
 
                                method = _tmp295_;
 
3094
                                _tmp278_ = sym;
 
3095
                                _tmp279_ = _vala_code_node_ref0 (VALA_IS_METHOD (_tmp278_) ? ((ValaMethod*) _tmp278_) : NULL);
 
3096
                                method = _tmp279_;
3113
3097
                                if (method != NULL) {
3114
3098
                                        vala_method_set_closure (method, TRUE);
3115
3099
                                        vala_method_add_captured_variable (method, local);
3116
3100
                                }
3117
 
                                _tmp296_ = vala_symbol_get_parent_symbol (sym);
3118
 
                                _tmp297_ = _vala_code_node_ref0 (_tmp296_);
3119
 
                                _tmp298_ = _tmp297_;
 
3101
                                _tmp280_ = vala_symbol_get_parent_symbol (sym);
 
3102
                                _tmp281_ = _vala_code_node_ref0 (_tmp280_);
3120
3103
                                _vala_code_node_unref0 (sym);
3121
 
                                sym = _tmp298_;
 
3104
                                sym = _tmp281_;
3122
3105
                                _vala_code_node_unref0 (method);
3123
3106
                        }
3124
3107
                        vala_local_variable_set_captured (local, TRUE);
3129
3112
                _vala_code_node_unref0 (local);
3130
3113
        } else {
3131
3114
                if (VALA_IS_PARAMETER (member)) {
3132
 
                        ValaParameter* _tmp299_;
 
3115
                        ValaParameter* _tmp282_;
3133
3116
                        ValaParameter* param;
3134
 
                        ValaSymbol* _tmp300_ = NULL;
3135
 
                        ValaSymbol* _tmp301_;
3136
 
                        ValaMethod* _tmp302_;
 
3117
                        ValaSymbol* _tmp283_ = NULL;
 
3118
                        ValaSymbol* _tmp284_;
 
3119
                        ValaMethod* _tmp285_;
3137
3120
                        ValaMethod* m;
3138
 
                        gboolean _tmp303_ = FALSE;
3139
 
                        gboolean _tmp304_ = FALSE;
3140
 
                        _tmp299_ = _vala_code_node_ref0 (VALA_PARAMETER (member));
3141
 
                        param = _tmp299_;
3142
 
                        _tmp300_ = vala_symbol_get_parent_symbol ((ValaSymbol*) param);
3143
 
                        _tmp302_ = _vala_code_node_ref0 ((_tmp301_ = _tmp300_, VALA_IS_METHOD (_tmp301_) ? ((ValaMethod*) _tmp301_) : NULL));
3144
 
                        m = _tmp302_;
 
3121
                        gboolean _tmp286_ = FALSE;
 
3122
                        gboolean _tmp287_ = FALSE;
 
3123
                        _tmp282_ = _vala_code_node_ref0 (VALA_PARAMETER (member));
 
3124
                        param = _tmp282_;
 
3125
                        _tmp283_ = vala_symbol_get_parent_symbol ((ValaSymbol*) param);
 
3126
                        _tmp284_ = _tmp283_;
 
3127
                        _tmp285_ = _vala_code_node_ref0 (VALA_IS_METHOD (_tmp284_) ? ((ValaMethod*) _tmp284_) : NULL);
 
3128
                        m = _tmp285_;
3145
3129
                        if (m != NULL) {
3146
 
                                ValaSemanticAnalyzer* _tmp305_ = NULL;
3147
 
                                ValaSymbol* _tmp306_ = NULL;
3148
 
                                _tmp305_ = vala_code_context_get_analyzer (context);
3149
 
                                _tmp306_ = vala_semantic_analyzer_get_current_method_or_property_accessor (_tmp305_);
3150
 
                                _tmp304_ = VALA_SYMBOL (m) != _tmp306_;
3151
 
                        } else {
3152
 
                                _tmp304_ = FALSE;
3153
 
                        }
3154
 
                        if (_tmp304_) {
3155
 
                                ValaParameter* _tmp307_ = NULL;
3156
 
                                _tmp307_ = vala_method_get_this_parameter (m);
3157
 
                                _tmp303_ = param != _tmp307_;
3158
 
                        } else {
3159
 
                                _tmp303_ = FALSE;
3160
 
                        }
3161
 
                        if (_tmp303_) {
3162
 
                                ValaSemanticAnalyzer* _tmp308_ = NULL;
3163
 
                                ValaSymbol* _tmp309_ = NULL;
3164
 
                                ValaSymbol* _tmp310_;
 
3130
                                ValaSemanticAnalyzer* _tmp288_ = NULL;
 
3131
                                ValaSymbol* _tmp289_ = NULL;
 
3132
                                _tmp288_ = vala_code_context_get_analyzer (context);
 
3133
                                _tmp289_ = vala_semantic_analyzer_get_current_method_or_property_accessor (_tmp288_);
 
3134
                                _tmp287_ = VALA_SYMBOL (m) != _tmp289_;
 
3135
                        } else {
 
3136
                                _tmp287_ = FALSE;
 
3137
                        }
 
3138
                        if (_tmp287_) {
 
3139
                                ValaParameter* _tmp290_ = NULL;
 
3140
                                _tmp290_ = vala_method_get_this_parameter (m);
 
3141
                                _tmp286_ = param != _tmp290_;
 
3142
                        } else {
 
3143
                                _tmp286_ = FALSE;
 
3144
                        }
 
3145
                        if (_tmp286_) {
 
3146
                                ValaSemanticAnalyzer* _tmp291_ = NULL;
 
3147
                                ValaSymbol* _tmp292_ = NULL;
 
3148
                                ValaSymbol* _tmp293_;
3165
3149
                                ValaSymbol* sym;
3166
 
                                ValaBlock* _tmp316_ = NULL;
3167
 
                                ValaParameterDirection _tmp317_;
3168
 
                                _tmp308_ = vala_code_context_get_analyzer (context);
3169
 
                                _tmp309_ = vala_semantic_analyzer_get_current_method_or_property_accessor (_tmp308_);
3170
 
                                _tmp310_ = _vala_code_node_ref0 (_tmp309_);
3171
 
                                sym = _tmp310_;
 
3150
                                ValaBlock* _tmp298_ = NULL;
 
3151
                                ValaParameterDirection _tmp299_;
 
3152
                                _tmp291_ = vala_code_context_get_analyzer (context);
 
3153
                                _tmp292_ = vala_semantic_analyzer_get_current_method_or_property_accessor (_tmp291_);
 
3154
                                _tmp293_ = _vala_code_node_ref0 (_tmp292_);
 
3155
                                sym = _tmp293_;
3172
3156
                                while (TRUE) {
3173
 
                                        ValaSymbol* _tmp311_;
3174
 
                                        ValaMethod* _tmp312_;
 
3157
                                        ValaSymbol* _tmp294_;
 
3158
                                        ValaMethod* _tmp295_;
3175
3159
                                        ValaMethod* method;
3176
 
                                        ValaSymbol* _tmp313_ = NULL;
3177
 
                                        ValaSymbol* _tmp314_;
3178
 
                                        ValaSymbol* _tmp315_;
 
3160
                                        ValaSymbol* _tmp296_ = NULL;
 
3161
                                        ValaSymbol* _tmp297_;
3179
3162
                                        if (!(sym != VALA_SYMBOL (m))) {
3180
3163
                                                break;
3181
3164
                                        }
3182
 
                                        _tmp312_ = _vala_code_node_ref0 ((_tmp311_ = sym, VALA_IS_METHOD (_tmp311_) ? ((ValaMethod*) _tmp311_) : NULL));
3183
 
                                        method = _tmp312_;
 
3165
                                        _tmp294_ = sym;
 
3166
                                        _tmp295_ = _vala_code_node_ref0 (VALA_IS_METHOD (_tmp294_) ? ((ValaMethod*) _tmp294_) : NULL);
 
3167
                                        method = _tmp295_;
3184
3168
                                        if (method != NULL) {
3185
3169
                                                vala_method_set_closure (method, TRUE);
3186
3170
                                        }
3187
 
                                        _tmp313_ = vala_symbol_get_parent_symbol (sym);
3188
 
                                        _tmp314_ = _vala_code_node_ref0 (_tmp313_);
3189
 
                                        _tmp315_ = _tmp314_;
 
3171
                                        _tmp296_ = vala_symbol_get_parent_symbol (sym);
 
3172
                                        _tmp297_ = _vala_code_node_ref0 (_tmp296_);
3190
3173
                                        _vala_code_node_unref0 (sym);
3191
 
                                        sym = _tmp315_;
 
3174
                                        sym = _tmp297_;
3192
3175
                                        _vala_code_node_unref0 (method);
3193
3176
                                }
3194
3177
                                vala_parameter_set_captured (param, TRUE);
3195
 
                                _tmp316_ = vala_subroutine_get_body ((ValaSubroutine*) m);
3196
 
                                vala_block_set_captured (_tmp316_, TRUE);
3197
 
                                _tmp317_ = vala_parameter_get_direction (param);
3198
 
                                if (_tmp317_ != VALA_PARAMETER_DIRECTION_IN) {
3199
 
                                        ValaSourceReference* _tmp318_ = NULL;
3200
 
                                        gchar* _tmp319_ = NULL;
3201
 
                                        gchar* _tmp320_;
3202
 
                                        gchar* _tmp321_ = NULL;
3203
 
                                        gchar* _tmp322_;
 
3178
                                _tmp298_ = vala_subroutine_get_body ((ValaSubroutine*) m);
 
3179
                                vala_block_set_captured (_tmp298_, TRUE);
 
3180
                                _tmp299_ = vala_parameter_get_direction (param);
 
3181
                                if (_tmp299_ != VALA_PARAMETER_DIRECTION_IN) {
 
3182
                                        ValaSourceReference* _tmp300_ = NULL;
 
3183
                                        gchar* _tmp301_ = NULL;
 
3184
                                        gchar* _tmp302_;
 
3185
                                        gchar* _tmp303_ = NULL;
 
3186
                                        gchar* _tmp304_;
3204
3187
                                        vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
3205
 
                                        _tmp318_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
3206
 
                                        _tmp319_ = vala_symbol_get_full_name ((ValaSymbol*) param);
3207
 
                                        _tmp320_ = _tmp319_;
3208
 
                                        _tmp321_ = g_strdup_printf ("Cannot capture reference or output parameter `%s'", _tmp320_);
3209
 
                                        _tmp322_ = _tmp321_;
3210
 
                                        vala_report_error (_tmp318_, _tmp322_);
3211
 
                                        _g_free0 (_tmp322_);
3212
 
                                        _g_free0 (_tmp320_);
 
3188
                                        _tmp300_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
3189
                                        _tmp301_ = vala_symbol_get_full_name ((ValaSymbol*) param);
 
3190
                                        _tmp302_ = _tmp301_;
 
3191
                                        _tmp303_ = g_strdup_printf ("Cannot capture reference or output parameter `%s'", _tmp302_);
 
3192
                                        _tmp304_ = _tmp303_;
 
3193
                                        vala_report_error (_tmp300_, _tmp304_);
 
3194
                                        _g_free0 (_tmp304_);
 
3195
                                        _g_free0 (_tmp302_);
3213
3196
                                }
3214
3197
                                _vala_code_node_unref0 (sym);
3215
3198
                        } else {
3216
 
                                ValaSymbol* _tmp323_ = NULL;
3217
 
                                ValaSymbol* _tmp324_ = NULL;
3218
 
                                ValaSymbol* _tmp325_;
3219
 
                                ValaPropertyAccessor* _tmp326_;
 
3199
                                ValaSymbol* _tmp305_ = NULL;
 
3200
                                ValaSymbol* _tmp306_ = NULL;
 
3201
                                ValaSymbol* _tmp307_;
 
3202
                                ValaPropertyAccessor* _tmp308_;
3220
3203
                                ValaPropertyAccessor* acc;
3221
 
                                gboolean _tmp327_ = FALSE;
3222
 
                                gboolean _tmp328_ = FALSE;
3223
 
                                _tmp323_ = vala_symbol_get_parent_symbol ((ValaSymbol*) param);
3224
 
                                _tmp324_ = vala_symbol_get_parent_symbol (_tmp323_);
3225
 
                                _tmp326_ = _vala_code_node_ref0 ((_tmp325_ = _tmp324_, VALA_IS_PROPERTY_ACCESSOR (_tmp325_) ? ((ValaPropertyAccessor*) _tmp325_) : NULL));
3226
 
                                acc = _tmp326_;
 
3204
                                gboolean _tmp309_ = FALSE;
 
3205
                                gboolean _tmp310_ = FALSE;
 
3206
                                _tmp305_ = vala_symbol_get_parent_symbol ((ValaSymbol*) param);
 
3207
                                _tmp306_ = vala_symbol_get_parent_symbol (_tmp305_);
 
3208
                                _tmp307_ = _tmp306_;
 
3209
                                _tmp308_ = _vala_code_node_ref0 (VALA_IS_PROPERTY_ACCESSOR (_tmp307_) ? ((ValaPropertyAccessor*) _tmp307_) : NULL);
 
3210
                                acc = _tmp308_;
3227
3211
                                if (acc != NULL) {
3228
 
                                        ValaSemanticAnalyzer* _tmp329_ = NULL;
3229
 
                                        ValaSymbol* _tmp330_ = NULL;
3230
 
                                        _tmp329_ = vala_code_context_get_analyzer (context);
3231
 
                                        _tmp330_ = vala_semantic_analyzer_get_current_method_or_property_accessor (_tmp329_);
3232
 
                                        _tmp328_ = VALA_SYMBOL (acc) != _tmp330_;
3233
 
                                } else {
3234
 
                                        _tmp328_ = FALSE;
3235
 
                                }
3236
 
                                if (_tmp328_) {
3237
 
                                        ValaProperty* _tmp331_ = NULL;
3238
 
                                        ValaParameter* _tmp332_ = NULL;
3239
 
                                        _tmp331_ = vala_property_accessor_get_prop (acc);
3240
 
                                        _tmp332_ = vala_property_get_this_parameter (_tmp331_);
3241
 
                                        _tmp327_ = param != _tmp332_;
3242
 
                                } else {
3243
 
                                        _tmp327_ = FALSE;
3244
 
                                }
3245
 
                                if (_tmp327_) {
3246
 
                                        ValaSemanticAnalyzer* _tmp333_ = NULL;
3247
 
                                        ValaSymbol* _tmp334_ = NULL;
3248
 
                                        ValaSymbol* _tmp335_;
 
3212
                                        ValaSemanticAnalyzer* _tmp311_ = NULL;
 
3213
                                        ValaSymbol* _tmp312_ = NULL;
 
3214
                                        _tmp311_ = vala_code_context_get_analyzer (context);
 
3215
                                        _tmp312_ = vala_semantic_analyzer_get_current_method_or_property_accessor (_tmp311_);
 
3216
                                        _tmp310_ = VALA_SYMBOL (acc) != _tmp312_;
 
3217
                                } else {
 
3218
                                        _tmp310_ = FALSE;
 
3219
                                }
 
3220
                                if (_tmp310_) {
 
3221
                                        ValaProperty* _tmp313_ = NULL;
 
3222
                                        ValaParameter* _tmp314_ = NULL;
 
3223
                                        _tmp313_ = vala_property_accessor_get_prop (acc);
 
3224
                                        _tmp314_ = vala_property_get_this_parameter (_tmp313_);
 
3225
                                        _tmp309_ = param != _tmp314_;
 
3226
                                } else {
 
3227
                                        _tmp309_ = FALSE;
 
3228
                                }
 
3229
                                if (_tmp309_) {
 
3230
                                        ValaSemanticAnalyzer* _tmp315_ = NULL;
 
3231
                                        ValaSymbol* _tmp316_ = NULL;
 
3232
                                        ValaSymbol* _tmp317_;
3249
3233
                                        ValaSymbol* sym;
3250
 
                                        ValaBlock* _tmp341_ = NULL;
3251
 
                                        _tmp333_ = vala_code_context_get_analyzer (context);
3252
 
                                        _tmp334_ = vala_semantic_analyzer_get_current_method_or_property_accessor (_tmp333_);
3253
 
                                        _tmp335_ = _vala_code_node_ref0 (_tmp334_);
3254
 
                                        sym = _tmp335_;
 
3234
                                        ValaBlock* _tmp322_ = NULL;
 
3235
                                        _tmp315_ = vala_code_context_get_analyzer (context);
 
3236
                                        _tmp316_ = vala_semantic_analyzer_get_current_method_or_property_accessor (_tmp315_);
 
3237
                                        _tmp317_ = _vala_code_node_ref0 (_tmp316_);
 
3238
                                        sym = _tmp317_;
3255
3239
                                        while (TRUE) {
3256
 
                                                ValaSymbol* _tmp336_;
3257
 
                                                ValaMethod* _tmp337_;
 
3240
                                                ValaSymbol* _tmp318_;
 
3241
                                                ValaMethod* _tmp319_;
3258
3242
                                                ValaMethod* method;
3259
 
                                                ValaSymbol* _tmp338_ = NULL;
3260
 
                                                ValaSymbol* _tmp339_;
3261
 
                                                ValaSymbol* _tmp340_;
 
3243
                                                ValaSymbol* _tmp320_ = NULL;
 
3244
                                                ValaSymbol* _tmp321_;
3262
3245
                                                if (!(sym != VALA_SYMBOL (m))) {
3263
3246
                                                        break;
3264
3247
                                                }
3265
 
                                                _tmp337_ = _vala_code_node_ref0 ((_tmp336_ = sym, VALA_IS_METHOD (_tmp336_) ? ((ValaMethod*) _tmp336_) : NULL));
3266
 
                                                method = _tmp337_;
 
3248
                                                _tmp318_ = sym;
 
3249
                                                _tmp319_ = _vala_code_node_ref0 (VALA_IS_METHOD (_tmp318_) ? ((ValaMethod*) _tmp318_) : NULL);
 
3250
                                                method = _tmp319_;
3267
3251
                                                if (method != NULL) {
3268
3252
                                                        vala_method_set_closure (method, TRUE);
3269
3253
                                                }
3270
 
                                                _tmp338_ = vala_symbol_get_parent_symbol (sym);
3271
 
                                                _tmp339_ = _vala_code_node_ref0 (_tmp338_);
3272
 
                                                _tmp340_ = _tmp339_;
 
3254
                                                _tmp320_ = vala_symbol_get_parent_symbol (sym);
 
3255
                                                _tmp321_ = _vala_code_node_ref0 (_tmp320_);
3273
3256
                                                _vala_code_node_unref0 (sym);
3274
 
                                                sym = _tmp340_;
 
3257
                                                sym = _tmp321_;
3275
3258
                                                _vala_code_node_unref0 (method);
3276
3259
                                        }
3277
3260
                                        vala_parameter_set_captured (param, TRUE);
3278
 
                                        _tmp341_ = vala_subroutine_get_body ((ValaSubroutine*) acc);
3279
 
                                        vala_block_set_captured (_tmp341_, TRUE);
 
3261
                                        _tmp322_ = vala_subroutine_get_body ((ValaSubroutine*) acc);
 
3262
                                        vala_block_set_captured (_tmp322_, TRUE);
3280
3263
                                        _vala_code_node_unref0 (sym);
3281
3264
                                }
3282
3265
                                _vala_code_node_unref0 (acc);
3285
3268
                        _vala_code_node_unref0 (param);
3286
3269
                } else {
3287
3270
                        if (VALA_IS_FIELD (member)) {
3288
 
                                ValaField* _tmp342_;
 
3271
                                ValaField* _tmp323_;
3289
3272
                                ValaField* f;
3290
 
                                ValaSymbolAccessibility _tmp343_;
3291
 
                                ValaMemberBinding _tmp344_;
3292
 
                                ValaMemberBinding _tmp345_;
3293
 
                                ValaDataType* _tmp346_ = NULL;
3294
 
                                _tmp342_ = _vala_code_node_ref0 (VALA_FIELD (member));
3295
 
                                f = _tmp342_;
3296
 
                                _tmp343_ = vala_symbol_get_access ((ValaSymbol*) f);
3297
 
                                access = _tmp343_;
3298
 
                                _tmp344_ = vala_field_get_binding (f);
3299
 
                                instance = _tmp344_ == VALA_MEMBER_BINDING_INSTANCE;
3300
 
                                _tmp345_ = vala_field_get_binding (f);
3301
 
                                klass = _tmp345_ == VALA_MEMBER_BINDING_CLASS;
3302
 
                                _tmp346_ = vala_variable_get_variable_type ((ValaVariable*) f);
3303
 
                                if (VALA_IS_GENERIC_TYPE (_tmp346_)) {
 
3273
                                ValaSymbolAccessibility _tmp324_;
 
3274
                                ValaMemberBinding _tmp325_;
 
3275
                                ValaMemberBinding _tmp326_;
 
3276
                                ValaDataType* _tmp327_ = NULL;
 
3277
                                _tmp323_ = _vala_code_node_ref0 (VALA_FIELD (member));
 
3278
                                f = _tmp323_;
 
3279
                                _tmp324_ = vala_symbol_get_access ((ValaSymbol*) f);
 
3280
                                access = _tmp324_;
 
3281
                                _tmp325_ = vala_field_get_binding (f);
 
3282
                                instance = _tmp325_ == VALA_MEMBER_BINDING_INSTANCE;
 
3283
                                _tmp326_ = vala_field_get_binding (f);
 
3284
                                klass = _tmp326_ == VALA_MEMBER_BINDING_CLASS;
 
3285
                                _tmp327_ = vala_variable_get_variable_type ((ValaVariable*) f);
 
3286
                                if (VALA_IS_GENERIC_TYPE (_tmp327_)) {
3304
3287
                                        generics = TRUE;
3305
3288
                                }
3306
3289
                                _vala_code_node_unref0 (f);
3307
3290
                        } else {
3308
3291
                                if (VALA_IS_CONSTANT (member)) {
3309
 
                                        ValaConstant* _tmp347_;
 
3292
                                        ValaConstant* _tmp328_;
3310
3293
                                        ValaConstant* c;
3311
 
                                        ValaSymbolAccessibility _tmp348_;
3312
 
                                        _tmp347_ = _vala_code_node_ref0 (VALA_CONSTANT (member));
3313
 
                                        c = _tmp347_;
3314
 
                                        _tmp348_ = vala_symbol_get_access ((ValaSymbol*) c);
3315
 
                                        access = _tmp348_;
 
3294
                                        ValaSymbolAccessibility _tmp329_;
 
3295
                                        _tmp328_ = _vala_code_node_ref0 (VALA_CONSTANT (member));
 
3296
                                        c = _tmp328_;
 
3297
                                        _tmp329_ = vala_symbol_get_access ((ValaSymbol*) c);
 
3298
                                        access = _tmp329_;
3316
3299
                                        _vala_code_node_unref0 (c);
3317
3300
                                } else {
3318
3301
                                        if (VALA_IS_METHOD (member)) {
3319
 
                                                ValaMethod* _tmp349_;
 
3302
                                                ValaMethod* _tmp330_;
3320
3303
                                                ValaMethod* m;
3321
 
                                                gboolean _tmp350_;
3322
 
                                                ValaSymbolAccessibility _tmp386_;
3323
 
                                                ValaMemberBinding _tmp388_;
3324
 
                                                ValaDataType* _tmp398_ = NULL;
3325
 
                                                ValaDataType* _tmp399_;
3326
 
                                                ValaGenericType* _tmp400_;
 
3304
                                                gboolean _tmp331_;
 
3305
                                                ValaSymbolAccessibility _tmp360_;
 
3306
                                                ValaMemberBinding _tmp362_;
 
3307
                                                ValaDataType* _tmp372_ = NULL;
 
3308
                                                ValaDataType* _tmp373_;
 
3309
                                                ValaGenericType* _tmp374_;
3327
3310
                                                ValaGenericType* generic_type;
3328
 
                                                gboolean _tmp401_ = FALSE;
3329
 
                                                _tmp349_ = _vala_code_node_ref0 (VALA_METHOD (member));
3330
 
                                                m = _tmp349_;
3331
 
                                                _tmp350_ = vala_method_get_is_async_callback (m);
3332
 
                                                if (_tmp350_) {
3333
 
                                                        ValaSemanticAnalyzer* _tmp351_ = NULL;
3334
 
                                                        ValaMethod* _tmp352_ = NULL;
3335
 
                                                        ValaMethod* _tmp353_;
 
3311
                                                gboolean _tmp375_ = FALSE;
 
3312
                                                _tmp330_ = _vala_code_node_ref0 (VALA_METHOD (member));
 
3313
                                                m = _tmp330_;
 
3314
                                                _tmp331_ = vala_method_get_is_async_callback (m);
 
3315
                                                if (_tmp331_) {
 
3316
                                                        ValaSemanticAnalyzer* _tmp332_ = NULL;
 
3317
                                                        ValaMethod* _tmp333_ = NULL;
 
3318
                                                        ValaMethod* _tmp334_;
3336
3319
                                                        ValaMethod* async_method;
3337
 
                                                        ValaSemanticAnalyzer* _tmp354_ = NULL;
3338
 
                                                        ValaMethod* _tmp355_ = NULL;
3339
 
                                                        ValaMethod* _tmp365_ = NULL;
3340
 
                                                        ValaMethod* _tmp366_;
3341
 
                                                        ValaSymbol* _tmp367_ = NULL;
3342
 
                                                        ValaSymbol* _tmp368_;
3343
 
                                                        ValaSymbol* _tmp369_;
3344
 
                                                        _tmp351_ = vala_code_context_get_analyzer (context);
3345
 
                                                        _tmp352_ = vala_semantic_analyzer_get_current_async_method (_tmp351_);
3346
 
                                                        _tmp353_ = _vala_code_node_ref0 (_tmp352_);
3347
 
                                                        async_method = _tmp353_;
3348
 
                                                        _tmp354_ = vala_code_context_get_analyzer (context);
3349
 
                                                        _tmp355_ = vala_semantic_analyzer_get_current_method (_tmp354_);
3350
 
                                                        if (async_method != _tmp355_) {
3351
 
                                                                ValaSemanticAnalyzer* _tmp356_ = NULL;
3352
 
                                                                ValaMethod* _tmp357_ = NULL;
3353
 
                                                                ValaSymbol* _tmp358_;
 
3320
                                                        ValaSemanticAnalyzer* _tmp335_ = NULL;
 
3321
                                                        ValaMethod* _tmp336_ = NULL;
 
3322
                                                        ValaMethod* _tmp345_ = NULL;
 
3323
                                                        ValaSymbol* _tmp346_ = NULL;
 
3324
                                                        ValaSymbol* _tmp347_;
 
3325
                                                        _tmp332_ = vala_code_context_get_analyzer (context);
 
3326
                                                        _tmp333_ = vala_semantic_analyzer_get_current_async_method (_tmp332_);
 
3327
                                                        _tmp334_ = _vala_code_node_ref0 (_tmp333_);
 
3328
                                                        async_method = _tmp334_;
 
3329
                                                        _tmp335_ = vala_code_context_get_analyzer (context);
 
3330
                                                        _tmp336_ = vala_semantic_analyzer_get_current_method (_tmp335_);
 
3331
                                                        if (async_method != _tmp336_) {
 
3332
                                                                ValaSemanticAnalyzer* _tmp337_ = NULL;
 
3333
                                                                ValaMethod* _tmp338_ = NULL;
 
3334
                                                                ValaSymbol* _tmp339_;
3354
3335
                                                                ValaSymbol* sym;
3355
 
                                                                ValaBlock* _tmp364_ = NULL;
3356
 
                                                                _tmp356_ = vala_code_context_get_analyzer (context);
3357
 
                                                                _tmp357_ = vala_semantic_analyzer_get_current_method (_tmp356_);
3358
 
                                                                _tmp358_ = _vala_code_node_ref0 ((ValaSymbol*) _tmp357_);
3359
 
                                                                sym = _tmp358_;
 
3336
                                                                ValaBlock* _tmp344_ = NULL;
 
3337
                                                                _tmp337_ = vala_code_context_get_analyzer (context);
 
3338
                                                                _tmp338_ = vala_semantic_analyzer_get_current_method (_tmp337_);
 
3339
                                                                _tmp339_ = _vala_code_node_ref0 ((ValaSymbol*) _tmp338_);
 
3340
                                                                sym = _tmp339_;
3360
3341
                                                                while (TRUE) {
3361
 
                                                                        ValaSymbol* _tmp359_;
3362
 
                                                                        ValaMethod* _tmp360_;
 
3342
                                                                        ValaSymbol* _tmp340_;
 
3343
                                                                        ValaMethod* _tmp341_;
3363
3344
                                                                        ValaMethod* method;
3364
 
                                                                        ValaSymbol* _tmp361_ = NULL;
3365
 
                                                                        ValaSymbol* _tmp362_;
3366
 
                                                                        ValaSymbol* _tmp363_;
 
3345
                                                                        ValaSymbol* _tmp342_ = NULL;
 
3346
                                                                        ValaSymbol* _tmp343_;
3367
3347
                                                                        if (!(sym != VALA_SYMBOL (async_method))) {
3368
3348
                                                                                break;
3369
3349
                                                                        }
3370
 
                                                                        _tmp360_ = _vala_code_node_ref0 ((_tmp359_ = sym, VALA_IS_METHOD (_tmp359_) ? ((ValaMethod*) _tmp359_) : NULL));
3371
 
                                                                        method = _tmp360_;
 
3350
                                                                        _tmp340_ = sym;
 
3351
                                                                        _tmp341_ = _vala_code_node_ref0 (VALA_IS_METHOD (_tmp340_) ? ((ValaMethod*) _tmp340_) : NULL);
 
3352
                                                                        method = _tmp341_;
3372
3353
                                                                        if (method != NULL) {
3373
3354
                                                                                vala_method_set_closure (method, TRUE);
3374
3355
                                                                        }
3375
 
                                                                        _tmp361_ = vala_symbol_get_parent_symbol (sym);
3376
 
                                                                        _tmp362_ = _vala_code_node_ref0 (_tmp361_);
3377
 
                                                                        _tmp363_ = _tmp362_;
 
3356
                                                                        _tmp342_ = vala_symbol_get_parent_symbol (sym);
 
3357
                                                                        _tmp343_ = _vala_code_node_ref0 (_tmp342_);
3378
3358
                                                                        _vala_code_node_unref0 (sym);
3379
 
                                                                        sym = _tmp363_;
 
3359
                                                                        sym = _tmp343_;
3380
3360
                                                                        _vala_code_node_unref0 (method);
3381
3361
                                                                }
3382
 
                                                                _tmp364_ = vala_subroutine_get_body ((ValaSubroutine*) async_method);
3383
 
                                                                vala_block_set_captured (_tmp364_, TRUE);
 
3362
                                                                _tmp344_ = vala_subroutine_get_body ((ValaSubroutine*) async_method);
 
3363
                                                                vala_block_set_captured (_tmp344_, TRUE);
3384
3364
                                                                _vala_code_node_unref0 (sym);
3385
3365
                                                        }
3386
 
                                                        _tmp365_ = vala_method_get_callback_method (async_method);
3387
 
                                                        _tmp366_ = _tmp365_;
 
3366
                                                        _tmp345_ = vala_method_get_callback_method (async_method);
3388
3367
                                                        _vala_code_node_unref0 (m);
3389
 
                                                        m = _tmp366_;
 
3368
                                                        m = _tmp345_;
3390
3369
                                                        vala_expression_set_symbol_reference ((ValaExpression*) self, (ValaSymbol*) m);
3391
 
                                                        _tmp367_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
3392
 
                                                        _tmp368_ = _vala_code_node_ref0 (_tmp367_);
3393
 
                                                        _tmp369_ = _tmp368_;
 
3370
                                                        _tmp346_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
3371
                                                        _tmp347_ = _vala_code_node_ref0 (_tmp346_);
3394
3372
                                                        _vala_code_node_unref0 (member);
3395
 
                                                        member = _tmp369_;
 
3373
                                                        member = _tmp347_;
3396
3374
                                                        _vala_code_node_unref0 (async_method);
3397
3375
                                                } else {
3398
 
                                                        ValaMethod* _tmp370_ = NULL;
3399
 
                                                        _tmp370_ = vala_method_get_base_method (m);
3400
 
                                                        if (_tmp370_ != NULL) {
3401
 
                                                                ValaMethod* _tmp371_ = NULL;
3402
 
                                                                ValaMethod* _tmp372_;
3403
 
                                                                ValaMethod* _tmp373_;
3404
 
                                                                ValaSignal* _tmp374_ = NULL;
3405
 
                                                                ValaSymbol* _tmp376_ = NULL;
3406
 
                                                                ValaSymbol* _tmp377_;
3407
 
                                                                ValaSymbol* _tmp378_;
3408
 
                                                                _tmp371_ = vala_method_get_base_method (m);
3409
 
                                                                _tmp372_ = _vala_code_node_ref0 (_tmp371_);
3410
 
                                                                _tmp373_ = _tmp372_;
 
3376
                                                        ValaMethod* _tmp348_ = NULL;
 
3377
                                                        _tmp348_ = vala_method_get_base_method (m);
 
3378
                                                        if (_tmp348_ != NULL) {
 
3379
                                                                ValaMethod* _tmp349_ = NULL;
 
3380
                                                                ValaMethod* _tmp350_;
 
3381
                                                                ValaSignal* _tmp351_ = NULL;
 
3382
                                                                ValaSymbol* _tmp353_ = NULL;
 
3383
                                                                ValaSymbol* _tmp354_;
 
3384
                                                                _tmp349_ = vala_method_get_base_method (m);
 
3385
                                                                _tmp350_ = _vala_code_node_ref0 (_tmp349_);
3411
3386
                                                                _vala_code_node_unref0 (m);
3412
 
                                                                m = _tmp373_;
3413
 
                                                                _tmp374_ = vala_method_get_signal_reference (m);
3414
 
                                                                if (_tmp374_ != NULL) {
3415
 
                                                                        ValaSignal* _tmp375_ = NULL;
3416
 
                                                                        _tmp375_ = vala_method_get_signal_reference (m);
3417
 
                                                                        vala_expression_set_symbol_reference ((ValaExpression*) self, (ValaSymbol*) _tmp375_);
 
3387
                                                                m = _tmp350_;
 
3388
                                                                _tmp351_ = vala_method_get_signal_reference (m);
 
3389
                                                                if (_tmp351_ != NULL) {
 
3390
                                                                        ValaSignal* _tmp352_ = NULL;
 
3391
                                                                        _tmp352_ = vala_method_get_signal_reference (m);
 
3392
                                                                        vala_expression_set_symbol_reference ((ValaExpression*) self, (ValaSymbol*) _tmp352_);
3418
3393
                                                                } else {
3419
3394
                                                                        vala_expression_set_symbol_reference ((ValaExpression*) self, (ValaSymbol*) m);
3420
3395
                                                                }
3421
 
                                                                _tmp376_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
3422
 
                                                                _tmp377_ = _vala_code_node_ref0 (_tmp376_);
3423
 
                                                                _tmp378_ = _tmp377_;
 
3396
                                                                _tmp353_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
3397
                                                                _tmp354_ = _vala_code_node_ref0 (_tmp353_);
3424
3398
                                                                _vala_code_node_unref0 (member);
3425
 
                                                                member = _tmp378_;
 
3399
                                                                member = _tmp354_;
3426
3400
                                                        } else {
3427
 
                                                                ValaMethod* _tmp379_ = NULL;
3428
 
                                                                _tmp379_ = vala_method_get_base_interface_method (m);
3429
 
                                                                if (_tmp379_ != NULL) {
3430
 
                                                                        ValaMethod* _tmp380_ = NULL;
3431
 
                                                                        ValaMethod* _tmp381_;
3432
 
                                                                        ValaMethod* _tmp382_;
3433
 
                                                                        ValaSymbol* _tmp383_ = NULL;
3434
 
                                                                        ValaSymbol* _tmp384_;
3435
 
                                                                        ValaSymbol* _tmp385_;
3436
 
                                                                        _tmp380_ = vala_method_get_base_interface_method (m);
3437
 
                                                                        _tmp381_ = _vala_code_node_ref0 (_tmp380_);
3438
 
                                                                        _tmp382_ = _tmp381_;
 
3401
                                                                ValaMethod* _tmp355_ = NULL;
 
3402
                                                                _tmp355_ = vala_method_get_base_interface_method (m);
 
3403
                                                                if (_tmp355_ != NULL) {
 
3404
                                                                        ValaMethod* _tmp356_ = NULL;
 
3405
                                                                        ValaMethod* _tmp357_;
 
3406
                                                                        ValaSymbol* _tmp358_ = NULL;
 
3407
                                                                        ValaSymbol* _tmp359_;
 
3408
                                                                        _tmp356_ = vala_method_get_base_interface_method (m);
 
3409
                                                                        _tmp357_ = _vala_code_node_ref0 (_tmp356_);
3439
3410
                                                                        _vala_code_node_unref0 (m);
3440
 
                                                                        m = _tmp382_;
 
3411
                                                                        m = _tmp357_;
3441
3412
                                                                        vala_expression_set_symbol_reference ((ValaExpression*) self, (ValaSymbol*) m);
3442
 
                                                                        _tmp383_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
3443
 
                                                                        _tmp384_ = _vala_code_node_ref0 (_tmp383_);
3444
 
                                                                        _tmp385_ = _tmp384_;
 
3413
                                                                        _tmp358_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
3414
                                                                        _tmp359_ = _vala_code_node_ref0 (_tmp358_);
3445
3415
                                                                        _vala_code_node_unref0 (member);
3446
 
                                                                        member = _tmp385_;
 
3416
                                                                        member = _tmp359_;
3447
3417
                                                                }
3448
3418
                                                        }
3449
3419
                                                }
3450
 
                                                _tmp386_ = vala_symbol_get_access ((ValaSymbol*) m);
3451
 
                                                access = _tmp386_;
 
3420
                                                _tmp360_ = vala_symbol_get_access ((ValaSymbol*) m);
 
3421
                                                access = _tmp360_;
3452
3422
                                                if (!VALA_IS_CREATION_METHOD (m)) {
3453
 
                                                        ValaMemberBinding _tmp387_;
3454
 
                                                        _tmp387_ = vala_method_get_binding (m);
3455
 
                                                        instance = _tmp387_ == VALA_MEMBER_BINDING_INSTANCE;
 
3423
                                                        ValaMemberBinding _tmp361_;
 
3424
                                                        _tmp361_ = vala_method_get_binding (m);
 
3425
                                                        instance = _tmp361_ == VALA_MEMBER_BINDING_INSTANCE;
3456
3426
                                                }
3457
 
                                                _tmp388_ = vala_method_get_binding (m);
3458
 
                                                klass = _tmp388_ == VALA_MEMBER_BINDING_CLASS;
 
3427
                                                _tmp362_ = vala_method_get_binding (m);
 
3428
                                                klass = _tmp362_ == VALA_MEMBER_BINDING_CLASS;
3459
3429
                                                {
3460
 
                                                        ValaList* _tmp389_ = NULL;
 
3430
                                                        ValaList* _tmp363_ = NULL;
3461
3431
                                                        ValaList* _param_list;
3462
 
                                                        gint _tmp390_;
 
3432
                                                        gint _tmp364_;
3463
3433
                                                        gint _param_size;
3464
3434
                                                        gint _param_index;
3465
 
                                                        _tmp389_ = vala_method_get_parameters (m);
3466
 
                                                        _param_list = _tmp389_;
3467
 
                                                        _tmp390_ = vala_collection_get_size ((ValaCollection*) _param_list);
3468
 
                                                        _param_size = _tmp390_;
 
3435
                                                        _tmp363_ = vala_method_get_parameters (m);
 
3436
                                                        _param_list = _tmp363_;
 
3437
                                                        _tmp364_ = vala_collection_get_size ((ValaCollection*) _param_list);
 
3438
                                                        _param_size = _tmp364_;
3469
3439
                                                        _param_index = -1;
3470
3440
                                                        while (TRUE) {
3471
 
                                                                gpointer _tmp391_ = NULL;
 
3441
                                                                gpointer _tmp365_ = NULL;
3472
3442
                                                                ValaParameter* param;
3473
 
                                                                ValaDataType* _tmp392_ = NULL;
3474
 
                                                                ValaDataType* _tmp393_;
3475
 
                                                                ValaGenericType* _tmp394_;
 
3443
                                                                ValaDataType* _tmp366_ = NULL;
 
3444
                                                                ValaDataType* _tmp367_;
 
3445
                                                                ValaGenericType* _tmp368_;
3476
3446
                                                                ValaGenericType* generic_type;
3477
 
                                                                gboolean _tmp395_ = FALSE;
 
3447
                                                                gboolean _tmp369_ = FALSE;
3478
3448
                                                                _param_index = _param_index + 1;
3479
3449
                                                                if (!(_param_index < _param_size)) {
3480
3450
                                                                        break;
3481
3451
                                                                }
3482
 
                                                                _tmp391_ = vala_list_get (_param_list, _param_index);
3483
 
                                                                param = (ValaParameter*) _tmp391_;
3484
 
                                                                _tmp392_ = vala_variable_get_variable_type ((ValaVariable*) param);
3485
 
                                                                _tmp394_ = _vala_code_node_ref0 ((_tmp393_ = _tmp392_, VALA_IS_GENERIC_TYPE (_tmp393_) ? ((ValaGenericType*) _tmp393_) : NULL));
3486
 
                                                                generic_type = _tmp394_;
 
3452
                                                                _tmp365_ = vala_list_get (_param_list, _param_index);
 
3453
                                                                param = (ValaParameter*) _tmp365_;
 
3454
                                                                _tmp366_ = vala_variable_get_variable_type ((ValaVariable*) param);
 
3455
                                                                _tmp367_ = _tmp366_;
 
3456
                                                                _tmp368_ = _vala_code_node_ref0 (VALA_IS_GENERIC_TYPE (_tmp367_) ? ((ValaGenericType*) _tmp367_) : NULL);
 
3457
                                                                generic_type = _tmp368_;
3487
3458
                                                                if (generic_type != NULL) {
3488
 
                                                                        ValaTypeParameter* _tmp396_ = NULL;
3489
 
                                                                        ValaSymbol* _tmp397_ = NULL;
3490
 
                                                                        _tmp396_ = vala_data_type_get_type_parameter ((ValaDataType*) generic_type);
3491
 
                                                                        _tmp397_ = vala_symbol_get_parent_symbol ((ValaSymbol*) _tmp396_);
3492
 
                                                                        _tmp395_ = VALA_IS_TYPESYMBOL (_tmp397_);
 
3459
                                                                        ValaTypeParameter* _tmp370_ = NULL;
 
3460
                                                                        ValaSymbol* _tmp371_ = NULL;
 
3461
                                                                        _tmp370_ = vala_data_type_get_type_parameter ((ValaDataType*) generic_type);
 
3462
                                                                        _tmp371_ = vala_symbol_get_parent_symbol ((ValaSymbol*) _tmp370_);
 
3463
                                                                        _tmp369_ = VALA_IS_TYPESYMBOL (_tmp371_);
3493
3464
                                                                } else {
3494
 
                                                                        _tmp395_ = FALSE;
 
3465
                                                                        _tmp369_ = FALSE;
3495
3466
                                                                }
3496
 
                                                                if (_tmp395_) {
 
3467
                                                                if (_tmp369_) {
3497
3468
                                                                        generics = TRUE;
3498
3469
                                                                        _vala_code_node_unref0 (generic_type);
3499
3470
                                                                        _vala_code_node_unref0 (param);
3504
3475
                                                        }
3505
3476
                                                        _vala_iterable_unref0 (_param_list);
3506
3477
                                                }
3507
 
                                                _tmp398_ = vala_method_get_return_type (m);
3508
 
                                                _tmp400_ = _vala_code_node_ref0 ((_tmp399_ = _tmp398_, VALA_IS_GENERIC_TYPE (_tmp399_) ? ((ValaGenericType*) _tmp399_) : NULL));
3509
 
                                                generic_type = _tmp400_;
 
3478
                                                _tmp372_ = vala_method_get_return_type (m);
 
3479
                                                _tmp373_ = _tmp372_;
 
3480
                                                _tmp374_ = _vala_code_node_ref0 (VALA_IS_GENERIC_TYPE (_tmp373_) ? ((ValaGenericType*) _tmp373_) : NULL);
 
3481
                                                generic_type = _tmp374_;
3510
3482
                                                if (generic_type != NULL) {
3511
 
                                                        ValaTypeParameter* _tmp402_ = NULL;
3512
 
                                                        ValaSymbol* _tmp403_ = NULL;
3513
 
                                                        _tmp402_ = vala_data_type_get_type_parameter ((ValaDataType*) generic_type);
3514
 
                                                        _tmp403_ = vala_symbol_get_parent_symbol ((ValaSymbol*) _tmp402_);
3515
 
                                                        _tmp401_ = VALA_IS_TYPESYMBOL (_tmp403_);
 
3483
                                                        ValaTypeParameter* _tmp376_ = NULL;
 
3484
                                                        ValaSymbol* _tmp377_ = NULL;
 
3485
                                                        _tmp376_ = vala_data_type_get_type_parameter ((ValaDataType*) generic_type);
 
3486
                                                        _tmp377_ = vala_symbol_get_parent_symbol ((ValaSymbol*) _tmp376_);
 
3487
                                                        _tmp375_ = VALA_IS_TYPESYMBOL (_tmp377_);
3516
3488
                                                } else {
3517
 
                                                        _tmp401_ = FALSE;
 
3489
                                                        _tmp375_ = FALSE;
3518
3490
                                                }
3519
 
                                                if (_tmp401_) {
 
3491
                                                if (_tmp375_) {
3520
3492
                                                        generics = TRUE;
3521
3493
                                                }
3522
3494
                                                _vala_code_node_unref0 (generic_type);
3523
3495
                                                _vala_code_node_unref0 (m);
3524
3496
                                        } else {
3525
3497
                                                if (VALA_IS_PROPERTY (member)) {
3526
 
                                                        ValaProperty* _tmp404_;
 
3498
                                                        ValaProperty* _tmp378_;
3527
3499
                                                        ValaProperty* prop;
3528
 
                                                        gboolean _tmp405_;
3529
 
                                                        ValaProperty* _tmp406_ = NULL;
3530
 
                                                        ValaSymbolAccessibility _tmp420_;
3531
 
                                                        gboolean _tmp421_;
3532
 
                                                        ValaMemberBinding _tmp452_;
3533
 
                                                        ValaDataType* _tmp453_ = NULL;
3534
 
                                                        _tmp404_ = _vala_code_node_ref0 (VALA_PROPERTY (member));
3535
 
                                                        prop = _tmp404_;
3536
 
                                                        _tmp405_ = vala_code_node_check ((ValaCodeNode*) prop, context);
3537
 
                                                        if (!_tmp405_) {
 
3500
                                                        gboolean _tmp379_;
 
3501
                                                        ValaProperty* _tmp380_ = NULL;
 
3502
                                                        ValaSymbolAccessibility _tmp390_;
 
3503
                                                        gboolean _tmp391_;
 
3504
                                                        ValaMemberBinding _tmp422_;
 
3505
                                                        ValaDataType* _tmp423_ = NULL;
 
3506
                                                        _tmp378_ = _vala_code_node_ref0 (VALA_PROPERTY (member));
 
3507
                                                        prop = _tmp378_;
 
3508
                                                        _tmp379_ = vala_code_node_check ((ValaCodeNode*) prop, context);
 
3509
                                                        if (!_tmp379_) {
3538
3510
                                                                vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
3539
3511
                                                                result = FALSE;
3540
3512
                                                                _vala_code_node_unref0 (prop);
3543
3515
                                                                _vala_code_node_unref0 (base_symbol);
3544
3516
                                                                return result;
3545
3517
                                                        }
3546
 
                                                        _tmp406_ = vala_property_get_base_property (prop);
3547
 
                                                        if (_tmp406_ != NULL) {
3548
 
                                                                ValaProperty* _tmp407_ = NULL;
3549
 
                                                                ValaProperty* _tmp408_;
3550
 
                                                                ValaProperty* _tmp409_;
3551
 
                                                                ValaSymbol* _tmp410_ = NULL;
3552
 
                                                                ValaSymbol* _tmp411_;
3553
 
                                                                ValaSymbol* _tmp412_;
3554
 
                                                                _tmp407_ = vala_property_get_base_property (prop);
3555
 
                                                                _tmp408_ = _vala_code_node_ref0 (_tmp407_);
3556
 
                                                                _tmp409_ = _tmp408_;
 
3518
                                                        _tmp380_ = vala_property_get_base_property (prop);
 
3519
                                                        if (_tmp380_ != NULL) {
 
3520
                                                                ValaProperty* _tmp381_ = NULL;
 
3521
                                                                ValaProperty* _tmp382_;
 
3522
                                                                ValaSymbol* _tmp383_ = NULL;
 
3523
                                                                ValaSymbol* _tmp384_;
 
3524
                                                                _tmp381_ = vala_property_get_base_property (prop);
 
3525
                                                                _tmp382_ = _vala_code_node_ref0 (_tmp381_);
3557
3526
                                                                _vala_code_node_unref0 (prop);
3558
 
                                                                prop = _tmp409_;
 
3527
                                                                prop = _tmp382_;
3559
3528
                                                                vala_expression_set_symbol_reference ((ValaExpression*) self, (ValaSymbol*) prop);
3560
 
                                                                _tmp410_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
3561
 
                                                                _tmp411_ = _vala_code_node_ref0 (_tmp410_);
3562
 
                                                                _tmp412_ = _tmp411_;
 
3529
                                                                _tmp383_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
3530
                                                                _tmp384_ = _vala_code_node_ref0 (_tmp383_);
3563
3531
                                                                _vala_code_node_unref0 (member);
3564
 
                                                                member = _tmp412_;
 
3532
                                                                member = _tmp384_;
3565
3533
                                                        } else {
3566
 
                                                                ValaProperty* _tmp413_ = NULL;
3567
 
                                                                _tmp413_ = vala_property_get_base_interface_property (prop);
3568
 
                                                                if (_tmp413_ != NULL) {
3569
 
                                                                        ValaProperty* _tmp414_ = NULL;
3570
 
                                                                        ValaProperty* _tmp415_;
3571
 
                                                                        ValaProperty* _tmp416_;
3572
 
                                                                        ValaSymbol* _tmp417_ = NULL;
3573
 
                                                                        ValaSymbol* _tmp418_;
3574
 
                                                                        ValaSymbol* _tmp419_;
3575
 
                                                                        _tmp414_ = vala_property_get_base_interface_property (prop);
3576
 
                                                                        _tmp415_ = _vala_code_node_ref0 (_tmp414_);
3577
 
                                                                        _tmp416_ = _tmp415_;
 
3534
                                                                ValaProperty* _tmp385_ = NULL;
 
3535
                                                                _tmp385_ = vala_property_get_base_interface_property (prop);
 
3536
                                                                if (_tmp385_ != NULL) {
 
3537
                                                                        ValaProperty* _tmp386_ = NULL;
 
3538
                                                                        ValaProperty* _tmp387_;
 
3539
                                                                        ValaSymbol* _tmp388_ = NULL;
 
3540
                                                                        ValaSymbol* _tmp389_;
 
3541
                                                                        _tmp386_ = vala_property_get_base_interface_property (prop);
 
3542
                                                                        _tmp387_ = _vala_code_node_ref0 (_tmp386_);
3578
3543
                                                                        _vala_code_node_unref0 (prop);
3579
 
                                                                        prop = _tmp416_;
 
3544
                                                                        prop = _tmp387_;
3580
3545
                                                                        vala_expression_set_symbol_reference ((ValaExpression*) self, (ValaSymbol*) prop);
3581
 
                                                                        _tmp417_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
3582
 
                                                                        _tmp418_ = _vala_code_node_ref0 (_tmp417_);
3583
 
                                                                        _tmp419_ = _tmp418_;
 
3546
                                                                        _tmp388_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
3547
                                                                        _tmp389_ = _vala_code_node_ref0 (_tmp388_);
3584
3548
                                                                        _vala_code_node_unref0 (member);
3585
 
                                                                        member = _tmp419_;
 
3549
                                                                        member = _tmp389_;
3586
3550
                                                                }
3587
3551
                                                        }
3588
 
                                                        _tmp420_ = vala_symbol_get_access ((ValaSymbol*) prop);
3589
 
                                                        access = _tmp420_;
3590
 
                                                        _tmp421_ = vala_expression_get_lvalue ((ValaExpression*) self);
3591
 
                                                        if (_tmp421_) {
3592
 
                                                                ValaPropertyAccessor* _tmp422_ = NULL;
3593
 
                                                                ValaSymbolAccessibility _tmp428_;
3594
 
                                                                _tmp422_ = vala_property_get_set_accessor (prop);
3595
 
                                                                if (_tmp422_ == NULL) {
3596
 
                                                                        ValaSourceReference* _tmp423_ = NULL;
3597
 
                                                                        gchar* _tmp424_ = NULL;
3598
 
                                                                        gchar* _tmp425_;
3599
 
                                                                        gchar* _tmp426_ = NULL;
3600
 
                                                                        gchar* _tmp427_;
 
3552
                                                        _tmp390_ = vala_symbol_get_access ((ValaSymbol*) prop);
 
3553
                                                        access = _tmp390_;
 
3554
                                                        _tmp391_ = vala_expression_get_lvalue ((ValaExpression*) self);
 
3555
                                                        if (_tmp391_) {
 
3556
                                                                ValaPropertyAccessor* _tmp392_ = NULL;
 
3557
                                                                ValaSymbolAccessibility _tmp398_;
 
3558
                                                                _tmp392_ = vala_property_get_set_accessor (prop);
 
3559
                                                                if (_tmp392_ == NULL) {
 
3560
                                                                        ValaSourceReference* _tmp393_ = NULL;
 
3561
                                                                        gchar* _tmp394_ = NULL;
 
3562
                                                                        gchar* _tmp395_;
 
3563
                                                                        gchar* _tmp396_ = NULL;
 
3564
                                                                        gchar* _tmp397_;
3601
3565
                                                                        vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
3602
 
                                                                        _tmp423_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
3603
 
                                                                        _tmp424_ = vala_symbol_get_full_name ((ValaSymbol*) prop);
3604
 
                                                                        _tmp425_ = _tmp424_;
3605
 
                                                                        _tmp426_ = g_strdup_printf ("Property `%s' is read-only", _tmp425_);
3606
 
                                                                        _tmp427_ = _tmp426_;
3607
 
                                                                        vala_report_error (_tmp423_, _tmp427_);
3608
 
                                                                        _g_free0 (_tmp427_);
3609
 
                                                                        _g_free0 (_tmp425_);
 
3566
                                                                        _tmp393_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
3567
                                                                        _tmp394_ = vala_symbol_get_full_name ((ValaSymbol*) prop);
 
3568
                                                                        _tmp395_ = _tmp394_;
 
3569
                                                                        _tmp396_ = g_strdup_printf ("Property `%s' is read-only", _tmp395_);
 
3570
                                                                        _tmp397_ = _tmp396_;
 
3571
                                                                        vala_report_error (_tmp393_, _tmp397_);
 
3572
                                                                        _g_free0 (_tmp397_);
 
3573
                                                                        _g_free0 (_tmp395_);
3610
3574
                                                                        result = FALSE;
3611
3575
                                                                        _vala_code_node_unref0 (prop);
3612
3576
                                                                        _vala_code_node_unref0 (member);
3614
3578
                                                                        _vala_code_node_unref0 (base_symbol);
3615
3579
                                                                        return result;
3616
3580
                                                                }
3617
 
                                                                _tmp428_ = vala_symbol_get_access ((ValaSymbol*) prop);
3618
 
                                                                if (_tmp428_ == VALA_SYMBOL_ACCESSIBILITY_PUBLIC) {
3619
 
                                                                        ValaPropertyAccessor* _tmp429_ = NULL;
3620
 
                                                                        ValaSymbolAccessibility _tmp430_;
3621
 
                                                                        _tmp429_ = vala_property_get_set_accessor (prop);
3622
 
                                                                        _tmp430_ = vala_symbol_get_access ((ValaSymbol*) _tmp429_);
3623
 
                                                                        access = _tmp430_;
 
3581
                                                                _tmp398_ = vala_symbol_get_access ((ValaSymbol*) prop);
 
3582
                                                                if (_tmp398_ == VALA_SYMBOL_ACCESSIBILITY_PUBLIC) {
 
3583
                                                                        ValaPropertyAccessor* _tmp399_ = NULL;
 
3584
                                                                        ValaSymbolAccessibility _tmp400_;
 
3585
                                                                        _tmp399_ = vala_property_get_set_accessor (prop);
 
3586
                                                                        _tmp400_ = vala_symbol_get_access ((ValaSymbol*) _tmp399_);
 
3587
                                                                        access = _tmp400_;
3624
3588
                                                                } else {
3625
 
                                                                        gboolean _tmp431_ = FALSE;
3626
 
                                                                        ValaSymbolAccessibility _tmp432_;
3627
 
                                                                        _tmp432_ = vala_symbol_get_access ((ValaSymbol*) prop);
3628
 
                                                                        if (_tmp432_ == VALA_SYMBOL_ACCESSIBILITY_PROTECTED) {
3629
 
                                                                                ValaPropertyAccessor* _tmp433_ = NULL;
3630
 
                                                                                ValaSymbolAccessibility _tmp434_;
3631
 
                                                                                _tmp433_ = vala_property_get_set_accessor (prop);
3632
 
                                                                                _tmp434_ = vala_symbol_get_access ((ValaSymbol*) _tmp433_);
3633
 
                                                                                _tmp431_ = _tmp434_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
 
3589
                                                                        gboolean _tmp401_ = FALSE;
 
3590
                                                                        ValaSymbolAccessibility _tmp402_;
 
3591
                                                                        _tmp402_ = vala_symbol_get_access ((ValaSymbol*) prop);
 
3592
                                                                        if (_tmp402_ == VALA_SYMBOL_ACCESSIBILITY_PROTECTED) {
 
3593
                                                                                ValaPropertyAccessor* _tmp403_ = NULL;
 
3594
                                                                                ValaSymbolAccessibility _tmp404_;
 
3595
                                                                                _tmp403_ = vala_property_get_set_accessor (prop);
 
3596
                                                                                _tmp404_ = vala_symbol_get_access ((ValaSymbol*) _tmp403_);
 
3597
                                                                                _tmp401_ = _tmp404_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
3634
3598
                                                                        } else {
3635
 
                                                                                _tmp431_ = FALSE;
 
3599
                                                                                _tmp401_ = FALSE;
3636
3600
                                                                        }
3637
 
                                                                        if (_tmp431_) {
3638
 
                                                                                ValaPropertyAccessor* _tmp435_ = NULL;
3639
 
                                                                                ValaSymbolAccessibility _tmp436_;
3640
 
                                                                                _tmp435_ = vala_property_get_set_accessor (prop);
3641
 
                                                                                _tmp436_ = vala_symbol_get_access ((ValaSymbol*) _tmp435_);
3642
 
                                                                                access = _tmp436_;
 
3601
                                                                        if (_tmp401_) {
 
3602
                                                                                ValaPropertyAccessor* _tmp405_ = NULL;
 
3603
                                                                                ValaSymbolAccessibility _tmp406_;
 
3604
                                                                                _tmp405_ = vala_property_get_set_accessor (prop);
 
3605
                                                                                _tmp406_ = vala_symbol_get_access ((ValaSymbol*) _tmp405_);
 
3606
                                                                                access = _tmp406_;
3643
3607
                                                                        }
3644
3608
                                                                }
3645
3609
                                                        } else {
3646
 
                                                                ValaPropertyAccessor* _tmp437_ = NULL;
3647
 
                                                                ValaSymbolAccessibility _tmp443_;
3648
 
                                                                _tmp437_ = vala_property_get_get_accessor (prop);
3649
 
                                                                if (_tmp437_ == NULL) {
3650
 
                                                                        ValaSourceReference* _tmp438_ = NULL;
3651
 
                                                                        gchar* _tmp439_ = NULL;
3652
 
                                                                        gchar* _tmp440_;
3653
 
                                                                        gchar* _tmp441_ = NULL;
3654
 
                                                                        gchar* _tmp442_;
 
3610
                                                                ValaPropertyAccessor* _tmp407_ = NULL;
 
3611
                                                                ValaSymbolAccessibility _tmp413_;
 
3612
                                                                _tmp407_ = vala_property_get_get_accessor (prop);
 
3613
                                                                if (_tmp407_ == NULL) {
 
3614
                                                                        ValaSourceReference* _tmp408_ = NULL;
 
3615
                                                                        gchar* _tmp409_ = NULL;
 
3616
                                                                        gchar* _tmp410_;
 
3617
                                                                        gchar* _tmp411_ = NULL;
 
3618
                                                                        gchar* _tmp412_;
3655
3619
                                                                        vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
3656
 
                                                                        _tmp438_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
3657
 
                                                                        _tmp439_ = vala_symbol_get_full_name ((ValaSymbol*) prop);
3658
 
                                                                        _tmp440_ = _tmp439_;
3659
 
                                                                        _tmp441_ = g_strdup_printf ("Property `%s' is write-only", _tmp440_);
3660
 
                                                                        _tmp442_ = _tmp441_;
3661
 
                                                                        vala_report_error (_tmp438_, _tmp442_);
3662
 
                                                                        _g_free0 (_tmp442_);
3663
 
                                                                        _g_free0 (_tmp440_);
 
3620
                                                                        _tmp408_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
3621
                                                                        _tmp409_ = vala_symbol_get_full_name ((ValaSymbol*) prop);
 
3622
                                                                        _tmp410_ = _tmp409_;
 
3623
                                                                        _tmp411_ = g_strdup_printf ("Property `%s' is write-only", _tmp410_);
 
3624
                                                                        _tmp412_ = _tmp411_;
 
3625
                                                                        vala_report_error (_tmp408_, _tmp412_);
 
3626
                                                                        _g_free0 (_tmp412_);
 
3627
                                                                        _g_free0 (_tmp410_);
3664
3628
                                                                        result = FALSE;
3665
3629
                                                                        _vala_code_node_unref0 (prop);
3666
3630
                                                                        _vala_code_node_unref0 (member);
3668
3632
                                                                        _vala_code_node_unref0 (base_symbol);
3669
3633
                                                                        return result;
3670
3634
                                                                }
3671
 
                                                                _tmp443_ = vala_symbol_get_access ((ValaSymbol*) prop);
3672
 
                                                                if (_tmp443_ == VALA_SYMBOL_ACCESSIBILITY_PUBLIC) {
3673
 
                                                                        ValaPropertyAccessor* _tmp444_ = NULL;
3674
 
                                                                        ValaSymbolAccessibility _tmp445_;
3675
 
                                                                        _tmp444_ = vala_property_get_get_accessor (prop);
3676
 
                                                                        _tmp445_ = vala_symbol_get_access ((ValaSymbol*) _tmp444_);
3677
 
                                                                        access = _tmp445_;
 
3635
                                                                _tmp413_ = vala_symbol_get_access ((ValaSymbol*) prop);
 
3636
                                                                if (_tmp413_ == VALA_SYMBOL_ACCESSIBILITY_PUBLIC) {
 
3637
                                                                        ValaPropertyAccessor* _tmp414_ = NULL;
 
3638
                                                                        ValaSymbolAccessibility _tmp415_;
 
3639
                                                                        _tmp414_ = vala_property_get_get_accessor (prop);
 
3640
                                                                        _tmp415_ = vala_symbol_get_access ((ValaSymbol*) _tmp414_);
 
3641
                                                                        access = _tmp415_;
3678
3642
                                                                } else {
3679
 
                                                                        gboolean _tmp446_ = FALSE;
3680
 
                                                                        ValaSymbolAccessibility _tmp447_;
3681
 
                                                                        _tmp447_ = vala_symbol_get_access ((ValaSymbol*) prop);
3682
 
                                                                        if (_tmp447_ == VALA_SYMBOL_ACCESSIBILITY_PROTECTED) {
3683
 
                                                                                ValaPropertyAccessor* _tmp448_ = NULL;
3684
 
                                                                                ValaSymbolAccessibility _tmp449_;
3685
 
                                                                                _tmp448_ = vala_property_get_get_accessor (prop);
3686
 
                                                                                _tmp449_ = vala_symbol_get_access ((ValaSymbol*) _tmp448_);
3687
 
                                                                                _tmp446_ = _tmp449_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
 
3643
                                                                        gboolean _tmp416_ = FALSE;
 
3644
                                                                        ValaSymbolAccessibility _tmp417_;
 
3645
                                                                        _tmp417_ = vala_symbol_get_access ((ValaSymbol*) prop);
 
3646
                                                                        if (_tmp417_ == VALA_SYMBOL_ACCESSIBILITY_PROTECTED) {
 
3647
                                                                                ValaPropertyAccessor* _tmp418_ = NULL;
 
3648
                                                                                ValaSymbolAccessibility _tmp419_;
 
3649
                                                                                _tmp418_ = vala_property_get_get_accessor (prop);
 
3650
                                                                                _tmp419_ = vala_symbol_get_access ((ValaSymbol*) _tmp418_);
 
3651
                                                                                _tmp416_ = _tmp419_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
3688
3652
                                                                        } else {
3689
 
                                                                                _tmp446_ = FALSE;
 
3653
                                                                                _tmp416_ = FALSE;
3690
3654
                                                                        }
3691
 
                                                                        if (_tmp446_) {
3692
 
                                                                                ValaPropertyAccessor* _tmp450_ = NULL;
3693
 
                                                                                ValaSymbolAccessibility _tmp451_;
3694
 
                                                                                _tmp450_ = vala_property_get_get_accessor (prop);
3695
 
                                                                                _tmp451_ = vala_symbol_get_access ((ValaSymbol*) _tmp450_);
3696
 
                                                                                access = _tmp451_;
 
3655
                                                                        if (_tmp416_) {
 
3656
                                                                                ValaPropertyAccessor* _tmp420_ = NULL;
 
3657
                                                                                ValaSymbolAccessibility _tmp421_;
 
3658
                                                                                _tmp420_ = vala_property_get_get_accessor (prop);
 
3659
                                                                                _tmp421_ = vala_symbol_get_access ((ValaSymbol*) _tmp420_);
 
3660
                                                                                access = _tmp421_;
3697
3661
                                                                        }
3698
3662
                                                                }
3699
3663
                                                        }
3700
 
                                                        _tmp452_ = vala_property_get_binding (prop);
3701
 
                                                        instance = _tmp452_ == VALA_MEMBER_BINDING_INSTANCE;
3702
 
                                                        _tmp453_ = vala_property_get_property_type (prop);
3703
 
                                                        if (VALA_IS_GENERIC_TYPE (_tmp453_)) {
 
3664
                                                        _tmp422_ = vala_property_get_binding (prop);
 
3665
                                                        instance = _tmp422_ == VALA_MEMBER_BINDING_INSTANCE;
 
3666
                                                        _tmp423_ = vala_property_get_property_type (prop);
 
3667
                                                        if (VALA_IS_GENERIC_TYPE (_tmp423_)) {
3704
3668
                                                                generics = TRUE;
3705
3669
                                                        }
3706
3670
                                                        _vala_code_node_unref0 (prop);
3707
3671
                                                } else {
3708
3672
                                                        if (VALA_IS_SIGNAL (member)) {
3709
 
                                                                ValaSymbolAccessibility _tmp454_;
 
3673
                                                                ValaSymbolAccessibility _tmp424_;
3710
3674
                                                                instance = TRUE;
3711
 
                                                                _tmp454_ = vala_symbol_get_access (member);
3712
 
                                                                access = _tmp454_;
 
3675
                                                                _tmp424_ = vala_symbol_get_access (member);
 
3676
                                                                access = _tmp424_;
3713
3677
                                                        }
3714
3678
                                                }
3715
3679
                                        }
3718
3682
                }
3719
3683
        }
3720
3684
        vala_symbol_set_used (member, TRUE);
3721
 
        _tmp455_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
3722
 
        vala_symbol_check_deprecated (member, _tmp455_);
 
3685
        _tmp425_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
3686
        vala_symbol_check_deprecated (member, _tmp425_);
 
3687
        _tmp426_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
3688
        vala_symbol_check_experimental (member, _tmp426_);
3723
3689
        if (access == VALA_SYMBOL_ACCESSIBILITY_PROTECTED) {
3724
 
                ValaSymbol* _tmp456_ = NULL;
3725
 
                ValaTypeSymbol* _tmp457_;
 
3690
                ValaSymbol* _tmp427_ = NULL;
 
3691
                ValaTypeSymbol* _tmp428_;
3726
3692
                ValaTypeSymbol* target_type;
3727
3693
                gboolean in_subtype;
3728
 
                _tmp456_ = vala_symbol_get_parent_symbol (member);
3729
 
                _tmp457_ = _vala_code_node_ref0 (VALA_TYPESYMBOL (_tmp456_));
3730
 
                target_type = _tmp457_;
 
3694
                _tmp427_ = vala_symbol_get_parent_symbol (member);
 
3695
                _tmp428_ = _vala_code_node_ref0 (VALA_TYPESYMBOL (_tmp427_));
 
3696
                target_type = _tmp428_;
3731
3697
                in_subtype = FALSE;
3732
3698
                {
3733
 
                        ValaSemanticAnalyzer* _tmp458_ = NULL;
3734
 
                        ValaSymbol* _tmp459_ = NULL;
3735
 
                        ValaSymbol* _tmp460_;
 
3699
                        ValaSemanticAnalyzer* _tmp429_ = NULL;
 
3700
                        ValaSymbol* _tmp430_ = NULL;
 
3701
                        ValaSymbol* _tmp431_;
3736
3702
                        ValaSymbol* this_symbol;
3737
 
                        _tmp458_ = vala_code_context_get_analyzer (context);
3738
 
                        _tmp459_ = vala_semantic_analyzer_get_current_symbol (_tmp458_);
3739
 
                        _tmp460_ = _vala_code_node_ref0 (_tmp459_);
3740
 
                        this_symbol = _tmp460_;
 
3703
                        _tmp429_ = vala_code_context_get_analyzer (context);
 
3704
                        _tmp430_ = vala_semantic_analyzer_get_current_symbol (_tmp429_);
 
3705
                        _tmp431_ = _vala_code_node_ref0 (_tmp430_);
 
3706
                        this_symbol = _tmp431_;
3741
3707
                        {
3742
 
                                gboolean _tmp461_;
3743
 
                                _tmp461_ = TRUE;
 
3708
                                gboolean _tmp432_;
 
3709
                                _tmp432_ = TRUE;
3744
3710
                                while (TRUE) {
3745
 
                                        ValaSymbol* _tmp465_;
3746
 
                                        ValaClass* _tmp466_;
 
3711
                                        ValaSymbol* _tmp435_;
 
3712
                                        ValaClass* _tmp436_;
3747
3713
                                        ValaClass* cl;
3748
 
                                        gboolean _tmp467_ = FALSE;
3749
 
                                        if (!_tmp461_) {
3750
 
                                                ValaSymbol* _tmp462_ = NULL;
3751
 
                                                ValaSymbol* _tmp463_;
3752
 
                                                ValaSymbol* _tmp464_;
3753
 
                                                _tmp462_ = vala_symbol_get_parent_symbol (this_symbol);
3754
 
                                                _tmp463_ = _vala_code_node_ref0 (_tmp462_);
3755
 
                                                _tmp464_ = _tmp463_;
 
3714
                                        gboolean _tmp437_ = FALSE;
 
3715
                                        if (!_tmp432_) {
 
3716
                                                ValaSymbol* _tmp433_ = NULL;
 
3717
                                                ValaSymbol* _tmp434_;
 
3718
                                                _tmp433_ = vala_symbol_get_parent_symbol (this_symbol);
 
3719
                                                _tmp434_ = _vala_code_node_ref0 (_tmp433_);
3756
3720
                                                _vala_code_node_unref0 (this_symbol);
3757
 
                                                this_symbol = _tmp464_;
 
3721
                                                this_symbol = _tmp434_;
3758
3722
                                        }
3759
 
                                        _tmp461_ = FALSE;
 
3723
                                        _tmp432_ = FALSE;
3760
3724
                                        if (!(this_symbol != NULL)) {
3761
3725
                                                break;
3762
3726
                                        }
3764
3728
                                                in_subtype = TRUE;
3765
3729
                                                break;
3766
3730
                                        }
3767
 
                                        _tmp466_ = _vala_code_node_ref0 ((_tmp465_ = this_symbol, VALA_IS_CLASS (_tmp465_) ? ((ValaClass*) _tmp465_) : NULL));
3768
 
                                        cl = _tmp466_;
 
3731
                                        _tmp435_ = this_symbol;
 
3732
                                        _tmp436_ = _vala_code_node_ref0 (VALA_IS_CLASS (_tmp435_) ? ((ValaClass*) _tmp435_) : NULL);
 
3733
                                        cl = _tmp436_;
3769
3734
                                        if (cl != NULL) {
3770
 
                                                gboolean _tmp468_;
3771
 
                                                _tmp468_ = vala_typesymbol_is_subtype_of ((ValaTypeSymbol*) cl, target_type);
3772
 
                                                _tmp467_ = _tmp468_;
 
3735
                                                gboolean _tmp438_;
 
3736
                                                _tmp438_ = vala_typesymbol_is_subtype_of ((ValaTypeSymbol*) cl, target_type);
 
3737
                                                _tmp437_ = _tmp438_;
3773
3738
                                        } else {
3774
 
                                                _tmp467_ = FALSE;
 
3739
                                                _tmp437_ = FALSE;
3775
3740
                                        }
3776
 
                                        if (_tmp467_) {
 
3741
                                        if (_tmp437_) {
3777
3742
                                                in_subtype = TRUE;
3778
3743
                                                _vala_code_node_unref0 (cl);
3779
3744
                                                break;
3784
3749
                        _vala_code_node_unref0 (this_symbol);
3785
3750
                }
3786
3751
                if (!in_subtype) {
3787
 
                        ValaSourceReference* _tmp469_ = NULL;
3788
 
                        gchar* _tmp470_ = NULL;
3789
 
                        gchar* _tmp471_;
3790
 
                        gchar* _tmp472_ = NULL;
3791
 
                        gchar* _tmp473_;
 
3752
                        ValaSourceReference* _tmp439_ = NULL;
 
3753
                        gchar* _tmp440_ = NULL;
 
3754
                        gchar* _tmp441_;
 
3755
                        gchar* _tmp442_ = NULL;
 
3756
                        gchar* _tmp443_;
3792
3757
                        vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
3793
 
                        _tmp469_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
3794
 
                        _tmp470_ = vala_symbol_get_full_name (member);
3795
 
                        _tmp471_ = _tmp470_;
3796
 
                        _tmp472_ = g_strdup_printf ("Access to protected member `%s' denied", _tmp471_);
3797
 
                        _tmp473_ = _tmp472_;
3798
 
                        vala_report_error (_tmp469_, _tmp473_);
3799
 
                        _g_free0 (_tmp473_);
3800
 
                        _g_free0 (_tmp471_);
 
3758
                        _tmp439_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
3759
                        _tmp440_ = vala_symbol_get_full_name (member);
 
3760
                        _tmp441_ = _tmp440_;
 
3761
                        _tmp442_ = g_strdup_printf ("Access to protected member `%s' denied", _tmp441_);
 
3762
                        _tmp443_ = _tmp442_;
 
3763
                        vala_report_error (_tmp439_, _tmp443_);
 
3764
                        _g_free0 (_tmp443_);
 
3765
                        _g_free0 (_tmp441_);
3801
3766
                        result = FALSE;
3802
3767
                        _vala_code_node_unref0 (target_type);
3803
3768
                        _vala_code_node_unref0 (member);
3808
3773
                _vala_code_node_unref0 (target_type);
3809
3774
        } else {
3810
3775
                if (access == VALA_SYMBOL_ACCESSIBILITY_PRIVATE) {
3811
 
                        ValaSymbol* _tmp474_ = NULL;
3812
 
                        ValaSymbol* _tmp475_;
 
3776
                        ValaSymbol* _tmp444_ = NULL;
 
3777
                        ValaSymbol* _tmp445_;
3813
3778
                        ValaSymbol* target_type;
3814
3779
                        gboolean in_target_type;
3815
 
                        _tmp474_ = vala_symbol_get_parent_symbol (member);
3816
 
                        _tmp475_ = _vala_code_node_ref0 (_tmp474_);
3817
 
                        target_type = _tmp475_;
 
3780
                        _tmp444_ = vala_symbol_get_parent_symbol (member);
 
3781
                        _tmp445_ = _vala_code_node_ref0 (_tmp444_);
 
3782
                        target_type = _tmp445_;
3818
3783
                        in_target_type = FALSE;
3819
3784
                        {
3820
 
                                ValaSemanticAnalyzer* _tmp476_ = NULL;
3821
 
                                ValaSymbol* _tmp477_ = NULL;
3822
 
                                ValaSymbol* _tmp478_;
 
3785
                                ValaSemanticAnalyzer* _tmp446_ = NULL;
 
3786
                                ValaSymbol* _tmp447_ = NULL;
 
3787
                                ValaSymbol* _tmp448_;
3823
3788
                                ValaSymbol* this_symbol;
3824
 
                                _tmp476_ = vala_code_context_get_analyzer (context);
3825
 
                                _tmp477_ = vala_semantic_analyzer_get_current_symbol (_tmp476_);
3826
 
                                _tmp478_ = _vala_code_node_ref0 (_tmp477_);
3827
 
                                this_symbol = _tmp478_;
 
3789
                                _tmp446_ = vala_code_context_get_analyzer (context);
 
3790
                                _tmp447_ = vala_semantic_analyzer_get_current_symbol (_tmp446_);
 
3791
                                _tmp448_ = _vala_code_node_ref0 (_tmp447_);
 
3792
                                this_symbol = _tmp448_;
3828
3793
                                {
3829
 
                                        gboolean _tmp479_;
3830
 
                                        _tmp479_ = TRUE;
 
3794
                                        gboolean _tmp449_;
 
3795
                                        _tmp449_ = TRUE;
3831
3796
                                        while (TRUE) {
3832
 
                                                if (!_tmp479_) {
3833
 
                                                        ValaSymbol* _tmp480_ = NULL;
3834
 
                                                        ValaSymbol* _tmp481_;
3835
 
                                                        ValaSymbol* _tmp482_;
3836
 
                                                        _tmp480_ = vala_symbol_get_parent_symbol (this_symbol);
3837
 
                                                        _tmp481_ = _vala_code_node_ref0 (_tmp480_);
3838
 
                                                        _tmp482_ = _tmp481_;
 
3797
                                                if (!_tmp449_) {
 
3798
                                                        ValaSymbol* _tmp450_ = NULL;
 
3799
                                                        ValaSymbol* _tmp451_;
 
3800
                                                        _tmp450_ = vala_symbol_get_parent_symbol (this_symbol);
 
3801
                                                        _tmp451_ = _vala_code_node_ref0 (_tmp450_);
3839
3802
                                                        _vala_code_node_unref0 (this_symbol);
3840
 
                                                        this_symbol = _tmp482_;
 
3803
                                                        this_symbol = _tmp451_;
3841
3804
                                                }
3842
 
                                                _tmp479_ = FALSE;
 
3805
                                                _tmp449_ = FALSE;
3843
3806
                                                if (!(this_symbol != NULL)) {
3844
3807
                                                        break;
3845
3808
                                                }
3852
3815
                                _vala_code_node_unref0 (this_symbol);
3853
3816
                        }
3854
3817
                        if (!in_target_type) {
3855
 
                                ValaSourceReference* _tmp483_ = NULL;
3856
 
                                gchar* _tmp484_ = NULL;
3857
 
                                gchar* _tmp485_;
3858
 
                                gchar* _tmp486_ = NULL;
3859
 
                                gchar* _tmp487_;
 
3818
                                ValaSourceReference* _tmp452_ = NULL;
 
3819
                                gchar* _tmp453_ = NULL;
 
3820
                                gchar* _tmp454_;
 
3821
                                gchar* _tmp455_ = NULL;
 
3822
                                gchar* _tmp456_;
3860
3823
                                vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
3861
 
                                _tmp483_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
3862
 
                                _tmp484_ = vala_symbol_get_full_name (member);
3863
 
                                _tmp485_ = _tmp484_;
3864
 
                                _tmp486_ = g_strdup_printf ("Access to private member `%s' denied", _tmp485_);
3865
 
                                _tmp487_ = _tmp486_;
3866
 
                                vala_report_error (_tmp483_, _tmp487_);
3867
 
                                _g_free0 (_tmp487_);
3868
 
                                _g_free0 (_tmp485_);
 
3824
                                _tmp452_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
3825
                                _tmp453_ = vala_symbol_get_full_name (member);
 
3826
                                _tmp454_ = _tmp453_;
 
3827
                                _tmp455_ = g_strdup_printf ("Access to private member `%s' denied", _tmp454_);
 
3828
                                _tmp456_ = _tmp455_;
 
3829
                                vala_report_error (_tmp452_, _tmp456_);
 
3830
                                _g_free0 (_tmp456_);
 
3831
                                _g_free0 (_tmp454_);
3869
3832
                                result = FALSE;
3870
3833
                                _vala_code_node_unref0 (target_type);
3871
3834
                                _vala_code_node_unref0 (member);
3877
3840
                }
3878
3841
        }
3879
3842
        if (generics) {
3880
 
                ValaExpression* _tmp489_ = NULL;
3881
 
                _tmp489_ = vala_member_access_get_inner (self);
3882
 
                _tmp488_ = _tmp489_ != NULL;
 
3843
                ValaExpression* _tmp458_ = NULL;
 
3844
                _tmp458_ = vala_member_access_get_inner (self);
 
3845
                _tmp457_ = _tmp458_ != NULL;
3883
3846
        } else {
3884
 
                _tmp488_ = FALSE;
 
3847
                _tmp457_ = FALSE;
3885
3848
        }
3886
 
        if (_tmp488_) {
3887
 
                ValaExpression* _tmp490_ = NULL;
3888
 
                ValaDataType* _tmp491_ = NULL;
3889
 
                ValaDataType* _tmp492_;
 
3849
        if (_tmp457_) {
 
3850
                ValaExpression* _tmp459_ = NULL;
 
3851
                ValaDataType* _tmp460_ = NULL;
 
3852
                ValaDataType* _tmp461_;
3890
3853
                ValaDataType* instance_type;
3891
 
                ValaExpression* _tmp493_ = NULL;
3892
 
                ValaDataType* _tmp494_ = NULL;
3893
 
                ValaDataType* _tmp495_;
3894
 
                ValaPointerType* _tmp496_;
 
3854
                ValaExpression* _tmp462_ = NULL;
 
3855
                ValaDataType* _tmp463_ = NULL;
 
3856
                ValaDataType* _tmp464_;
 
3857
                ValaPointerType* _tmp465_;
3895
3858
                ValaPointerType* pointer_type;
3896
 
                ValaDataType* _tmp500_;
3897
 
                ValaObjectType* _tmp501_;
 
3859
                ValaDataType* _tmp468_;
 
3860
                ValaObjectType* _tmp469_;
3898
3861
                ValaObjectType* object_type;
3899
 
                gboolean _tmp502_ = FALSE;
3900
 
                gboolean _tmp503_ = FALSE;
3901
 
                _tmp490_ = vala_member_access_get_inner (self);
3902
 
                _tmp491_ = vala_expression_get_value_type (_tmp490_);
3903
 
                _tmp492_ = _vala_code_node_ref0 (_tmp491_);
3904
 
                instance_type = _tmp492_;
3905
 
                _tmp493_ = vala_member_access_get_inner (self);
3906
 
                _tmp494_ = vala_expression_get_value_type (_tmp493_);
3907
 
                _tmp496_ = _vala_code_node_ref0 ((_tmp495_ = _tmp494_, VALA_IS_POINTER_TYPE (_tmp495_) ? ((ValaPointerType*) _tmp495_) : NULL));
3908
 
                pointer_type = _tmp496_;
 
3862
                gboolean _tmp470_ = FALSE;
 
3863
                gboolean _tmp471_ = FALSE;
 
3864
                _tmp459_ = vala_member_access_get_inner (self);
 
3865
                _tmp460_ = vala_expression_get_value_type (_tmp459_);
 
3866
                _tmp461_ = _vala_code_node_ref0 (_tmp460_);
 
3867
                instance_type = _tmp461_;
 
3868
                _tmp462_ = vala_member_access_get_inner (self);
 
3869
                _tmp463_ = vala_expression_get_value_type (_tmp462_);
 
3870
                _tmp464_ = _tmp463_;
 
3871
                _tmp465_ = _vala_code_node_ref0 (VALA_IS_POINTER_TYPE (_tmp464_) ? ((ValaPointerType*) _tmp464_) : NULL);
 
3872
                pointer_type = _tmp465_;
3909
3873
                if (pointer_type != NULL) {
3910
 
                        ValaDataType* _tmp497_ = NULL;
3911
 
                        ValaDataType* _tmp498_;
3912
 
                        ValaDataType* _tmp499_;
3913
 
                        _tmp497_ = vala_pointer_type_get_base_type (pointer_type);
3914
 
                        _tmp498_ = _vala_code_node_ref0 (_tmp497_);
3915
 
                        _tmp499_ = _tmp498_;
 
3874
                        ValaDataType* _tmp466_ = NULL;
 
3875
                        ValaDataType* _tmp467_;
 
3876
                        _tmp466_ = vala_pointer_type_get_base_type (pointer_type);
 
3877
                        _tmp467_ = _vala_code_node_ref0 (_tmp466_);
3916
3878
                        _vala_code_node_unref0 (instance_type);
3917
 
                        instance_type = _tmp499_;
 
3879
                        instance_type = _tmp467_;
3918
3880
                }
3919
 
                _tmp501_ = _vala_code_node_ref0 ((_tmp500_ = instance_type, VALA_IS_OBJECT_TYPE (_tmp500_) ? ((ValaObjectType*) _tmp500_) : NULL));
3920
 
                object_type = _tmp501_;
 
3881
                _tmp468_ = instance_type;
 
3882
                _tmp469_ = _vala_code_node_ref0 (VALA_IS_OBJECT_TYPE (_tmp468_) ? ((ValaObjectType*) _tmp468_) : NULL);
 
3883
                object_type = _tmp469_;
3921
3884
                if (object_type != NULL) {
3922
 
                        ValaObjectTypeSymbol* _tmp504_ = NULL;
3923
 
                        ValaList* _tmp505_ = NULL;
3924
 
                        ValaList* _tmp506_;
3925
 
                        gint _tmp507_;
3926
 
                        _tmp504_ = vala_object_type_get_type_symbol (object_type);
3927
 
                        _tmp505_ = vala_object_type_symbol_get_type_parameters (_tmp504_);
3928
 
                        _tmp506_ = _tmp505_;
3929
 
                        _tmp507_ = vala_collection_get_size ((ValaCollection*) _tmp506_);
3930
 
                        _tmp503_ = _tmp507_ > 0;
3931
 
                        _vala_iterable_unref0 (_tmp506_);
3932
 
                } else {
3933
 
                        _tmp503_ = FALSE;
3934
 
                }
3935
 
                if (_tmp503_) {
3936
 
                        ValaList* _tmp508_ = NULL;
3937
 
                        ValaList* _tmp509_;
3938
 
                        gint _tmp510_;
3939
 
                        _tmp508_ = vala_data_type_get_type_arguments (instance_type);
3940
 
                        _tmp509_ = _tmp508_;
3941
 
                        _tmp510_ = vala_collection_get_size ((ValaCollection*) _tmp509_);
3942
 
                        _tmp502_ = _tmp510_ == 0;
3943
 
                        _vala_iterable_unref0 (_tmp509_);
3944
 
                } else {
3945
 
                        _tmp502_ = FALSE;
3946
 
                }
3947
 
                if (_tmp502_) {
3948
 
                        ValaExpression* _tmp511_ = NULL;
3949
 
                        ValaSourceReference* _tmp512_ = NULL;
 
3885
                        ValaObjectTypeSymbol* _tmp472_ = NULL;
 
3886
                        ValaList* _tmp473_ = NULL;
 
3887
                        ValaList* _tmp474_;
 
3888
                        gint _tmp475_;
 
3889
                        _tmp472_ = vala_object_type_get_type_symbol (object_type);
 
3890
                        _tmp473_ = vala_object_type_symbol_get_type_parameters (_tmp472_);
 
3891
                        _tmp474_ = _tmp473_;
 
3892
                        _tmp475_ = vala_collection_get_size ((ValaCollection*) _tmp474_);
 
3893
                        _tmp471_ = _tmp475_ > 0;
 
3894
                        _vala_iterable_unref0 (_tmp474_);
 
3895
                } else {
 
3896
                        _tmp471_ = FALSE;
 
3897
                }
 
3898
                if (_tmp471_) {
 
3899
                        ValaList* _tmp476_ = NULL;
 
3900
                        ValaList* _tmp477_;
 
3901
                        gint _tmp478_;
 
3902
                        _tmp476_ = vala_data_type_get_type_arguments (instance_type);
 
3903
                        _tmp477_ = _tmp476_;
 
3904
                        _tmp478_ = vala_collection_get_size ((ValaCollection*) _tmp477_);
 
3905
                        _tmp470_ = _tmp478_ == 0;
 
3906
                        _vala_iterable_unref0 (_tmp477_);
 
3907
                } else {
 
3908
                        _tmp470_ = FALSE;
 
3909
                }
 
3910
                if (_tmp470_) {
 
3911
                        ValaExpression* _tmp479_ = NULL;
 
3912
                        ValaSourceReference* _tmp480_ = NULL;
3950
3913
                        vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
3951
 
                        _tmp511_ = vala_member_access_get_inner (self);
3952
 
                        _tmp512_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp511_);
3953
 
                        vala_report_error (_tmp512_, "missing generic type arguments");
 
3914
                        _tmp479_ = vala_member_access_get_inner (self);
 
3915
                        _tmp480_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp479_);
 
3916
                        vala_report_error (_tmp480_, "missing generic type arguments");
3954
3917
                        result = FALSE;
3955
3918
                        _vala_code_node_unref0 (object_type);
3956
3919
                        _vala_code_node_unref0 (pointer_type);
3965
3928
                _vala_code_node_unref0 (instance_type);
3966
3929
        }
3967
3930
        if (instance) {
3968
 
                _tmp514_ = !may_access_instance_members;
 
3931
                _tmp482_ = !may_access_instance_members;
3969
3932
        } else {
3970
 
                _tmp514_ = FALSE;
 
3933
                _tmp482_ = FALSE;
3971
3934
        }
3972
 
        if (_tmp514_) {
3973
 
                _tmp513_ = TRUE;
 
3935
        if (_tmp482_) {
 
3936
                _tmp481_ = TRUE;
3974
3937
        } else {
3975
 
                gboolean _tmp515_ = FALSE;
 
3938
                gboolean _tmp483_ = FALSE;
3976
3939
                if (klass) {
3977
 
                        _tmp515_ = !may_access_klass_members;
 
3940
                        _tmp483_ = !may_access_klass_members;
3978
3941
                } else {
3979
 
                        _tmp515_ = FALSE;
 
3942
                        _tmp483_ = FALSE;
3980
3943
                }
3981
 
                _tmp513_ = _tmp515_;
 
3944
                _tmp481_ = _tmp483_;
3982
3945
        }
3983
 
        if (_tmp513_) {
3984
 
                ValaSymbol* _tmp516_ = NULL;
3985
 
                ValaDataType* _tmp528_ = NULL;
 
3946
        if (_tmp481_) {
 
3947
                ValaSymbol* _tmp484_ = NULL;
 
3948
                ValaDataType* _tmp496_ = NULL;
3986
3949
                vala_member_access_set_prototype_access (self, TRUE);
3987
 
                _tmp516_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
3988
 
                if (VALA_IS_METHOD (_tmp516_)) {
3989
 
                        ValaSemanticAnalyzer* _tmp517_ = NULL;
3990
 
                        ValaSymbol* _tmp518_ = NULL;
3991
 
                        gboolean _tmp519_;
3992
 
                        ValaDataType* _tmp520_ = NULL;
3993
 
                        ValaDataType* _tmp521_;
3994
 
                        _tmp517_ = vala_code_context_get_analyzer (context);
3995
 
                        _tmp518_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
3996
 
                        _tmp519_ = vala_expression_get_lvalue ((ValaExpression*) self);
3997
 
                        _tmp520_ = vala_semantic_analyzer_get_value_type_for_symbol (_tmp517_, _tmp518_, _tmp519_);
3998
 
                        _tmp521_ = _tmp520_;
3999
 
                        vala_expression_set_value_type ((ValaExpression*) self, _tmp521_);
4000
 
                        _vala_code_node_unref0 (_tmp521_);
 
3950
                _tmp484_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
3951
                if (VALA_IS_METHOD (_tmp484_)) {
 
3952
                        ValaSemanticAnalyzer* _tmp485_ = NULL;
 
3953
                        ValaSymbol* _tmp486_ = NULL;
 
3954
                        gboolean _tmp487_;
 
3955
                        ValaDataType* _tmp488_ = NULL;
 
3956
                        ValaDataType* _tmp489_;
 
3957
                        _tmp485_ = vala_code_context_get_analyzer (context);
 
3958
                        _tmp486_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
3959
                        _tmp487_ = vala_expression_get_lvalue ((ValaExpression*) self);
 
3960
                        _tmp488_ = vala_semantic_analyzer_get_value_type_for_symbol (_tmp485_, _tmp486_, _tmp487_);
 
3961
                        _tmp489_ = _tmp488_;
 
3962
                        vala_expression_set_value_type ((ValaExpression*) self, _tmp489_);
 
3963
                        _vala_code_node_unref0 (_tmp489_);
4001
3964
                } else {
4002
 
                        ValaSymbol* _tmp522_ = NULL;
4003
 
                        _tmp522_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
4004
 
                        if (VALA_IS_FIELD (_tmp522_)) {
4005
 
                                ValaSymbol* _tmp523_ = NULL;
4006
 
                                ValaFieldPrototype* _tmp524_ = NULL;
4007
 
                                ValaFieldPrototype* _tmp525_;
4008
 
                                _tmp523_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
4009
 
                                _tmp524_ = vala_field_prototype_new (VALA_FIELD (_tmp523_));
4010
 
                                _tmp525_ = _tmp524_;
4011
 
                                vala_expression_set_value_type ((ValaExpression*) self, (ValaDataType*) _tmp525_);
4012
 
                                _vala_code_node_unref0 (_tmp525_);
 
3965
                        ValaSymbol* _tmp490_ = NULL;
 
3966
                        _tmp490_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
3967
                        if (VALA_IS_FIELD (_tmp490_)) {
 
3968
                                ValaSymbol* _tmp491_ = NULL;
 
3969
                                ValaFieldPrototype* _tmp492_ = NULL;
 
3970
                                ValaFieldPrototype* _tmp493_;
 
3971
                                _tmp491_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
3972
                                _tmp492_ = vala_field_prototype_new (VALA_FIELD (_tmp491_));
 
3973
                                _tmp493_ = _tmp492_;
 
3974
                                vala_expression_set_value_type ((ValaExpression*) self, (ValaDataType*) _tmp493_);
 
3975
                                _vala_code_node_unref0 (_tmp493_);
4013
3976
                        } else {
4014
 
                                ValaInvalidType* _tmp526_ = NULL;
4015
 
                                ValaInvalidType* _tmp527_;
4016
 
                                _tmp526_ = vala_invalid_type_new ();
4017
 
                                _tmp527_ = _tmp526_;
4018
 
                                vala_expression_set_value_type ((ValaExpression*) self, (ValaDataType*) _tmp527_);
4019
 
                                _vala_code_node_unref0 (_tmp527_);
 
3977
                                ValaInvalidType* _tmp494_ = NULL;
 
3978
                                ValaInvalidType* _tmp495_;
 
3979
                                _tmp494_ = vala_invalid_type_new ();
 
3980
                                _tmp495_ = _tmp494_;
 
3981
                                vala_expression_set_value_type ((ValaExpression*) self, (ValaDataType*) _tmp495_);
 
3982
                                _vala_code_node_unref0 (_tmp495_);
4020
3983
                        }
4021
3984
                }
4022
 
                _tmp528_ = vala_expression_get_target_type ((ValaExpression*) self);
4023
 
                if (_tmp528_ != NULL) {
4024
 
                        ValaDataType* _tmp529_ = NULL;
4025
 
                        ValaDataType* _tmp530_ = NULL;
4026
 
                        gboolean _tmp531_;
4027
 
                        _tmp529_ = vala_expression_get_value_type ((ValaExpression*) self);
4028
 
                        _tmp530_ = vala_expression_get_target_type ((ValaExpression*) self);
4029
 
                        _tmp531_ = vala_data_type_get_value_owned (_tmp530_);
4030
 
                        vala_data_type_set_value_owned (_tmp529_, _tmp531_);
 
3985
                _tmp496_ = vala_expression_get_target_type ((ValaExpression*) self);
 
3986
                if (_tmp496_ != NULL) {
 
3987
                        ValaDataType* _tmp497_ = NULL;
 
3988
                        ValaDataType* _tmp498_ = NULL;
 
3989
                        gboolean _tmp499_;
 
3990
                        _tmp497_ = vala_expression_get_value_type ((ValaExpression*) self);
 
3991
                        _tmp498_ = vala_expression_get_target_type ((ValaExpression*) self);
 
3992
                        _tmp499_ = vala_data_type_get_value_owned (_tmp498_);
 
3993
                        vala_data_type_set_value_owned (_tmp497_, _tmp499_);
4031
3994
                }
4032
3995
        } else {
4033
 
                gboolean _tmp532_ = FALSE;
4034
 
                gboolean _tmp542_ = FALSE;
4035
 
                gboolean _tmp543_ = FALSE;
4036
 
                gboolean _tmp544_ = FALSE;
4037
 
                gboolean _tmp545_ = FALSE;
4038
 
                gboolean _tmp546_;
4039
 
                ValaSemanticAnalyzer* _tmp560_ = NULL;
4040
 
                ValaSymbol* _tmp561_ = NULL;
4041
 
                gboolean _tmp562_;
4042
 
                ValaDataType* _tmp563_ = NULL;
4043
 
                ValaDataType* _tmp564_;
4044
 
                gboolean _tmp565_ = FALSE;
4045
 
                ValaExpression* _tmp566_ = NULL;
4046
 
                ValaSymbol* _tmp574_ = NULL;
 
3996
                gboolean _tmp500_ = FALSE;
 
3997
                gboolean _tmp510_ = FALSE;
 
3998
                gboolean _tmp511_ = FALSE;
 
3999
                gboolean _tmp512_ = FALSE;
 
4000
                gboolean _tmp513_ = FALSE;
 
4001
                gboolean _tmp514_;
 
4002
                ValaSemanticAnalyzer* _tmp528_ = NULL;
 
4003
                ValaSymbol* _tmp529_ = NULL;
 
4004
                gboolean _tmp530_;
 
4005
                ValaDataType* _tmp531_ = NULL;
 
4006
                ValaDataType* _tmp532_;
 
4007
                gboolean _tmp533_ = FALSE;
 
4008
                ValaExpression* _tmp534_ = NULL;
 
4009
                ValaSymbol* _tmp542_ = NULL;
4047
4010
                if (instance) {
4048
 
                        ValaExpression* _tmp533_ = NULL;
4049
 
                        _tmp533_ = vala_member_access_get_inner (self);
4050
 
                        _tmp532_ = _tmp533_ == NULL;
4051
 
                } else {
4052
 
                        _tmp532_ = FALSE;
4053
 
                }
4054
 
                if (_tmp532_) {
4055
 
                        ValaSourceReference* _tmp534_ = NULL;
4056
 
                        ValaMemberAccess* _tmp535_ = NULL;
4057
 
                        ValaMemberAccess* _tmp536_;
 
4011
                        ValaExpression* _tmp501_ = NULL;
 
4012
                        _tmp501_ = vala_member_access_get_inner (self);
 
4013
                        _tmp500_ = _tmp501_ == NULL;
 
4014
                } else {
 
4015
                        _tmp500_ = FALSE;
 
4016
                }
 
4017
                if (_tmp500_) {
 
4018
                        ValaSourceReference* _tmp502_ = NULL;
 
4019
                        ValaMemberAccess* _tmp503_ = NULL;
 
4020
                        ValaMemberAccess* _tmp504_;
 
4021
                        ValaExpression* _tmp505_ = NULL;
 
4022
                        ValaDataType* _tmp506_ = NULL;
 
4023
                        ValaDataType* _tmp507_ = NULL;
 
4024
                        ValaDataType* _tmp508_;
 
4025
                        ValaExpression* _tmp509_ = NULL;
 
4026
                        _tmp502_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
4027
                        _tmp503_ = vala_member_access_new (NULL, "this", _tmp502_);
 
4028
                        _tmp504_ = _tmp503_;
 
4029
                        vala_member_access_set_inner (self, (ValaExpression*) _tmp504_);
 
4030
                        _vala_code_node_unref0 (_tmp504_);
 
4031
                        _tmp505_ = vala_member_access_get_inner (self);
 
4032
                        _tmp506_ = vala_variable_get_variable_type ((ValaVariable*) this_parameter);
 
4033
                        _tmp507_ = vala_data_type_copy (_tmp506_);
 
4034
                        _tmp508_ = _tmp507_;
 
4035
                        vala_expression_set_value_type (_tmp505_, _tmp508_);
 
4036
                        _vala_code_node_unref0 (_tmp508_);
 
4037
                        _tmp509_ = vala_member_access_get_inner (self);
 
4038
                        vala_expression_set_symbol_reference (_tmp509_, (ValaSymbol*) this_parameter);
 
4039
                }
 
4040
                _tmp514_ = vala_code_context_get_experimental_non_null (context);
 
4041
                if (_tmp514_) {
 
4042
                        _tmp513_ = instance;
 
4043
                } else {
 
4044
                        _tmp513_ = FALSE;
 
4045
                }
 
4046
                if (_tmp513_) {
 
4047
                        ValaExpression* _tmp515_ = NULL;
 
4048
                        ValaDataType* _tmp516_ = NULL;
 
4049
                        gboolean _tmp517_;
 
4050
                        _tmp515_ = vala_member_access_get_inner (self);
 
4051
                        _tmp516_ = vala_expression_get_value_type (_tmp515_);
 
4052
                        _tmp517_ = vala_data_type_get_nullable (_tmp516_);
 
4053
                        _tmp512_ = _tmp517_;
 
4054
                } else {
 
4055
                        _tmp512_ = FALSE;
 
4056
                }
 
4057
                if (_tmp512_) {
 
4058
                        ValaExpression* _tmp518_ = NULL;
 
4059
                        ValaDataType* _tmp519_ = NULL;
 
4060
                        _tmp518_ = vala_member_access_get_inner (self);
 
4061
                        _tmp519_ = vala_expression_get_value_type (_tmp518_);
 
4062
                        _tmp511_ = !VALA_IS_POINTER_TYPE (_tmp519_);
 
4063
                } else {
 
4064
                        _tmp511_ = FALSE;
 
4065
                }
 
4066
                if (_tmp511_) {
 
4067
                        ValaExpression* _tmp520_ = NULL;
 
4068
                        ValaDataType* _tmp521_ = NULL;
 
4069
                        _tmp520_ = vala_member_access_get_inner (self);
 
4070
                        _tmp521_ = vala_expression_get_value_type (_tmp520_);
 
4071
                        _tmp510_ = !VALA_IS_GENERIC_TYPE (_tmp521_);
 
4072
                } else {
 
4073
                        _tmp510_ = FALSE;
 
4074
                }
 
4075
                if (_tmp510_) {
 
4076
                        ValaSourceReference* _tmp522_ = NULL;
 
4077
                        ValaSymbol* _tmp523_ = NULL;
 
4078
                        gchar* _tmp524_ = NULL;
 
4079
                        gchar* _tmp525_;
 
4080
                        gchar* _tmp526_ = NULL;
 
4081
                        gchar* _tmp527_;
 
4082
                        _tmp522_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
4083
                        _tmp523_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
4084
                        _tmp524_ = vala_symbol_get_full_name (_tmp523_);
 
4085
                        _tmp525_ = _tmp524_;
 
4086
                        _tmp526_ = g_strdup_printf ("Access to instance member `%s' from nullable reference denied", _tmp525_);
 
4087
                        _tmp527_ = _tmp526_;
 
4088
                        vala_report_error (_tmp522_, _tmp527_);
 
4089
                        _g_free0 (_tmp527_);
 
4090
                        _g_free0 (_tmp525_);
 
4091
                }
 
4092
                _tmp528_ = vala_code_context_get_analyzer (context);
 
4093
                _tmp529_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
4094
                _tmp530_ = vala_expression_get_lvalue ((ValaExpression*) self);
 
4095
                _tmp531_ = vala_semantic_analyzer_get_value_type_for_symbol (_tmp528_, _tmp529_, _tmp530_);
 
4096
                _tmp532_ = _tmp531_;
 
4097
                vala_expression_set_formal_value_type ((ValaExpression*) self, _tmp532_);
 
4098
                _vala_code_node_unref0 (_tmp532_);
 
4099
                _tmp534_ = vala_member_access_get_inner (self);
 
4100
                if (_tmp534_ != NULL) {
 
4101
                        ValaDataType* _tmp535_ = NULL;
 
4102
                        _tmp535_ = vala_expression_get_formal_value_type ((ValaExpression*) self);
 
4103
                        _tmp533_ = _tmp535_ != NULL;
 
4104
                } else {
 
4105
                        _tmp533_ = FALSE;
 
4106
                }
 
4107
                if (_tmp533_) {
 
4108
                        ValaDataType* _tmp536_ = NULL;
4058
4109
                        ValaExpression* _tmp537_ = NULL;
4059
4110
                        ValaDataType* _tmp538_ = NULL;
4060
4111
                        ValaDataType* _tmp539_ = NULL;
4061
4112
                        ValaDataType* _tmp540_;
4062
 
                        ValaExpression* _tmp541_ = NULL;
4063
 
                        _tmp534_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
4064
 
                        _tmp535_ = vala_member_access_new (NULL, "this", _tmp534_);
4065
 
                        _tmp536_ = _tmp535_;
4066
 
                        vala_member_access_set_inner (self, (ValaExpression*) _tmp536_);
4067
 
                        _vala_code_node_unref0 (_tmp536_);
 
4113
                        _tmp536_ = vala_expression_get_formal_value_type ((ValaExpression*) self);
4068
4114
                        _tmp537_ = vala_member_access_get_inner (self);
4069
 
                        _tmp538_ = vala_variable_get_variable_type ((ValaVariable*) this_parameter);
4070
 
                        _tmp539_ = vala_data_type_copy (_tmp538_);
 
4115
                        _tmp538_ = vala_expression_get_value_type (_tmp537_);
 
4116
                        _tmp539_ = vala_data_type_get_actual_type (_tmp536_, _tmp538_, NULL, (ValaCodeNode*) self);
4071
4117
                        _tmp540_ = _tmp539_;
4072
 
                        vala_expression_set_value_type (_tmp537_, _tmp540_);
 
4118
                        vala_expression_set_value_type ((ValaExpression*) self, _tmp540_);
4073
4119
                        _vala_code_node_unref0 (_tmp540_);
4074
 
                        _tmp541_ = vala_member_access_get_inner (self);
4075
 
                        vala_expression_set_symbol_reference (_tmp541_, (ValaSymbol*) this_parameter);
4076
 
                }
4077
 
                _tmp546_ = vala_code_context_get_experimental_non_null (context);
4078
 
                if (_tmp546_) {
4079
 
                        _tmp545_ = instance;
4080
 
                } else {
4081
 
                        _tmp545_ = FALSE;
4082
 
                }
4083
 
                if (_tmp545_) {
4084
 
                        ValaExpression* _tmp547_ = NULL;
4085
 
                        ValaDataType* _tmp548_ = NULL;
4086
 
                        gboolean _tmp549_;
4087
 
                        _tmp547_ = vala_member_access_get_inner (self);
4088
 
                        _tmp548_ = vala_expression_get_value_type (_tmp547_);
4089
 
                        _tmp549_ = vala_data_type_get_nullable (_tmp548_);
4090
 
                        _tmp544_ = _tmp549_;
4091
 
                } else {
4092
 
                        _tmp544_ = FALSE;
4093
 
                }
4094
 
                if (_tmp544_) {
4095
 
                        ValaExpression* _tmp550_ = NULL;
4096
 
                        ValaDataType* _tmp551_ = NULL;
4097
 
                        _tmp550_ = vala_member_access_get_inner (self);
4098
 
                        _tmp551_ = vala_expression_get_value_type (_tmp550_);
4099
 
                        _tmp543_ = !VALA_IS_POINTER_TYPE (_tmp551_);
4100
 
                } else {
4101
 
                        _tmp543_ = FALSE;
4102
 
                }
4103
 
                if (_tmp543_) {
4104
 
                        ValaExpression* _tmp552_ = NULL;
4105
 
                        ValaDataType* _tmp553_ = NULL;
4106
 
                        _tmp552_ = vala_member_access_get_inner (self);
4107
 
                        _tmp553_ = vala_expression_get_value_type (_tmp552_);
4108
 
                        _tmp542_ = !VALA_IS_GENERIC_TYPE (_tmp553_);
4109
 
                } else {
4110
 
                        _tmp542_ = FALSE;
4111
 
                }
4112
 
                if (_tmp542_) {
4113
 
                        ValaSourceReference* _tmp554_ = NULL;
4114
 
                        ValaSymbol* _tmp555_ = NULL;
4115
 
                        gchar* _tmp556_ = NULL;
4116
 
                        gchar* _tmp557_;
4117
 
                        gchar* _tmp558_ = NULL;
4118
 
                        gchar* _tmp559_;
4119
 
                        _tmp554_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
4120
 
                        _tmp555_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
4121
 
                        _tmp556_ = vala_symbol_get_full_name (_tmp555_);
4122
 
                        _tmp557_ = _tmp556_;
4123
 
                        _tmp558_ = g_strdup_printf ("Access to instance member `%s' from nullable reference denied", _tmp557_);
4124
 
                        _tmp559_ = _tmp558_;
4125
 
                        vala_report_error (_tmp554_, _tmp559_);
4126
 
                        _g_free0 (_tmp559_);
4127
 
                        _g_free0 (_tmp557_);
4128
 
                }
4129
 
                _tmp560_ = vala_code_context_get_analyzer (context);
4130
 
                _tmp561_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
4131
 
                _tmp562_ = vala_expression_get_lvalue ((ValaExpression*) self);
4132
 
                _tmp563_ = vala_semantic_analyzer_get_value_type_for_symbol (_tmp560_, _tmp561_, _tmp562_);
4133
 
                _tmp564_ = _tmp563_;
4134
 
                vala_expression_set_formal_value_type ((ValaExpression*) self, _tmp564_);
4135
 
                _vala_code_node_unref0 (_tmp564_);
4136
 
                _tmp566_ = vala_member_access_get_inner (self);
4137
 
                if (_tmp566_ != NULL) {
4138
 
                        ValaDataType* _tmp567_ = NULL;
4139
 
                        _tmp567_ = vala_expression_get_formal_value_type ((ValaExpression*) self);
4140
 
                        _tmp565_ = _tmp567_ != NULL;
4141
 
                } else {
4142
 
                        _tmp565_ = FALSE;
4143
 
                }
4144
 
                if (_tmp565_) {
4145
 
                        ValaDataType* _tmp568_ = NULL;
4146
 
                        ValaExpression* _tmp569_ = NULL;
4147
 
                        ValaDataType* _tmp570_ = NULL;
4148
 
                        ValaDataType* _tmp571_ = NULL;
4149
 
                        ValaDataType* _tmp572_;
4150
 
                        _tmp568_ = vala_expression_get_formal_value_type ((ValaExpression*) self);
4151
 
                        _tmp569_ = vala_member_access_get_inner (self);
4152
 
                        _tmp570_ = vala_expression_get_value_type (_tmp569_);
4153
 
                        _tmp571_ = vala_data_type_get_actual_type (_tmp568_, _tmp570_, NULL, (ValaCodeNode*) self);
4154
 
                        _tmp572_ = _tmp571_;
4155
 
                        vala_expression_set_value_type ((ValaExpression*) self, _tmp572_);
4156
 
                        _vala_code_node_unref0 (_tmp572_);
4157
 
                } else {
4158
 
                        ValaDataType* _tmp573_ = NULL;
4159
 
                        _tmp573_ = vala_expression_get_formal_value_type ((ValaExpression*) self);
4160
 
                        vala_expression_set_value_type ((ValaExpression*) self, _tmp573_);
4161
 
                }
4162
 
                _tmp574_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
4163
 
                if (VALA_IS_METHOD (_tmp574_)) {
4164
 
                        ValaSymbol* _tmp575_ = NULL;
4165
 
                        ValaMethod* _tmp576_;
 
4120
                } else {
 
4121
                        ValaDataType* _tmp541_ = NULL;
 
4122
                        _tmp541_ = vala_expression_get_formal_value_type ((ValaExpression*) self);
 
4123
                        vala_expression_set_value_type ((ValaExpression*) self, _tmp541_);
 
4124
                }
 
4125
                _tmp542_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
4126
                if (VALA_IS_METHOD (_tmp542_)) {
 
4127
                        ValaSymbol* _tmp543_ = NULL;
 
4128
                        ValaMethod* _tmp544_;
4166
4129
                        ValaMethod* m;
4167
 
                        ValaDataType* _tmp577_ = NULL;
 
4130
                        ValaDataType* _tmp545_ = NULL;
4168
4131
                        ValaMethod* base_method = NULL;
4169
 
                        ValaMethod* _tmp581_ = NULL;
4170
 
                        gboolean _tmp591_ = FALSE;
4171
 
                        _tmp575_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
4172
 
                        _tmp576_ = _vala_code_node_ref0 (VALA_METHOD (_tmp575_));
4173
 
                        m = _tmp576_;
4174
 
                        _tmp577_ = vala_expression_get_target_type ((ValaExpression*) self);
4175
 
                        if (_tmp577_ != NULL) {
4176
 
                                ValaDataType* _tmp578_ = NULL;
4177
 
                                ValaDataType* _tmp579_ = NULL;
4178
 
                                gboolean _tmp580_;
4179
 
                                _tmp578_ = vala_expression_get_value_type ((ValaExpression*) self);
4180
 
                                _tmp579_ = vala_expression_get_target_type ((ValaExpression*) self);
4181
 
                                _tmp580_ = vala_data_type_get_value_owned (_tmp579_);
4182
 
                                vala_data_type_set_value_owned (_tmp578_, _tmp580_);
 
4132
                        ValaMethod* _tmp549_ = NULL;
 
4133
                        gboolean _tmp556_ = FALSE;
 
4134
                        _tmp543_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
4135
                        _tmp544_ = _vala_code_node_ref0 (VALA_METHOD (_tmp543_));
 
4136
                        m = _tmp544_;
 
4137
                        _tmp545_ = vala_expression_get_target_type ((ValaExpression*) self);
 
4138
                        if (_tmp545_ != NULL) {
 
4139
                                ValaDataType* _tmp546_ = NULL;
 
4140
                                ValaDataType* _tmp547_ = NULL;
 
4141
                                gboolean _tmp548_;
 
4142
                                _tmp546_ = vala_expression_get_value_type ((ValaExpression*) self);
 
4143
                                _tmp547_ = vala_expression_get_target_type ((ValaExpression*) self);
 
4144
                                _tmp548_ = vala_data_type_get_value_owned (_tmp547_);
 
4145
                                vala_data_type_set_value_owned (_tmp546_, _tmp548_);
4183
4146
                        }
4184
 
                        _tmp581_ = vala_method_get_base_method (m);
4185
 
                        if (_tmp581_ != NULL) {
4186
 
                                ValaMethod* _tmp582_ = NULL;
4187
 
                                ValaMethod* _tmp583_;
4188
 
                                ValaMethod* _tmp584_;
4189
 
                                _tmp582_ = vala_method_get_base_method (m);
4190
 
                                _tmp583_ = _vala_code_node_ref0 (_tmp582_);
4191
 
                                _tmp584_ = _tmp583_;
 
4147
                        _tmp549_ = vala_method_get_base_method (m);
 
4148
                        if (_tmp549_ != NULL) {
 
4149
                                ValaMethod* _tmp550_ = NULL;
 
4150
                                ValaMethod* _tmp551_;
 
4151
                                _tmp550_ = vala_method_get_base_method (m);
 
4152
                                _tmp551_ = _vala_code_node_ref0 (_tmp550_);
4192
4153
                                _vala_code_node_unref0 (base_method);
4193
 
                                base_method = _tmp584_;
 
4154
                                base_method = _tmp551_;
4194
4155
                        } else {
4195
 
                                ValaMethod* _tmp585_ = NULL;
4196
 
                                _tmp585_ = vala_method_get_base_interface_method (m);
4197
 
                                if (_tmp585_ != NULL) {
4198
 
                                        ValaMethod* _tmp586_ = NULL;
4199
 
                                        ValaMethod* _tmp587_;
4200
 
                                        ValaMethod* _tmp588_;
4201
 
                                        _tmp586_ = vala_method_get_base_interface_method (m);
4202
 
                                        _tmp587_ = _vala_code_node_ref0 (_tmp586_);
4203
 
                                        _tmp588_ = _tmp587_;
 
4156
                                ValaMethod* _tmp552_ = NULL;
 
4157
                                _tmp552_ = vala_method_get_base_interface_method (m);
 
4158
                                if (_tmp552_ != NULL) {
 
4159
                                        ValaMethod* _tmp553_ = NULL;
 
4160
                                        ValaMethod* _tmp554_;
 
4161
                                        _tmp553_ = vala_method_get_base_interface_method (m);
 
4162
                                        _tmp554_ = _vala_code_node_ref0 (_tmp553_);
4204
4163
                                        _vala_code_node_unref0 (base_method);
4205
 
                                        base_method = _tmp588_;
 
4164
                                        base_method = _tmp554_;
4206
4165
                                } else {
4207
 
                                        ValaMethod* _tmp589_;
4208
 
                                        ValaMethod* _tmp590_;
4209
 
                                        _tmp589_ = _vala_code_node_ref0 (m);
4210
 
                                        _tmp590_ = _tmp589_;
 
4166
                                        ValaMethod* _tmp555_;
 
4167
                                        _tmp555_ = _vala_code_node_ref0 (m);
4211
4168
                                        _vala_code_node_unref0 (base_method);
4212
 
                                        base_method = _tmp590_;
 
4169
                                        base_method = _tmp555_;
4213
4170
                                }
4214
4171
                        }
4215
4172
                        if (instance) {
4216
 
                                ValaSymbol* _tmp592_ = NULL;
4217
 
                                _tmp592_ = vala_symbol_get_parent_symbol ((ValaSymbol*) base_method);
4218
 
                                _tmp591_ = VALA_IS_TYPESYMBOL (_tmp592_);
 
4173
                                ValaSymbol* _tmp557_ = NULL;
 
4174
                                _tmp557_ = vala_symbol_get_parent_symbol ((ValaSymbol*) base_method);
 
4175
                                _tmp556_ = VALA_IS_TYPESYMBOL (_tmp557_);
4219
4176
                        } else {
4220
 
                                _tmp591_ = FALSE;
 
4177
                                _tmp556_ = FALSE;
4221
4178
                        }
4222
 
                        if (_tmp591_) {
4223
 
                                ValaExpression* _tmp593_ = NULL;
4224
 
                                ValaSemanticAnalyzer* _tmp594_ = NULL;
4225
 
                                ValaSymbol* _tmp595_ = NULL;
4226
 
                                ValaDataType* _tmp596_ = NULL;
4227
 
                                ValaDataType* _tmp597_;
4228
 
                                _tmp593_ = vala_member_access_get_inner (self);
4229
 
                                _tmp594_ = vala_code_context_get_analyzer (context);
4230
 
                                _tmp595_ = vala_symbol_get_parent_symbol ((ValaSymbol*) base_method);
4231
 
                                _tmp596_ = vala_semantic_analyzer_get_data_type_for_symbol (VALA_TYPESYMBOL (_tmp595_));
4232
 
                                _tmp597_ = _tmp596_;
4233
 
                                vala_expression_set_target_type (_tmp593_, _tmp597_);
4234
 
                                _vala_code_node_unref0 (_tmp597_);
 
4179
                        if (_tmp556_) {
 
4180
                                ValaExpression* _tmp558_ = NULL;
 
4181
                                ValaSemanticAnalyzer* _tmp559_ = NULL;
 
4182
                                ValaSymbol* _tmp560_ = NULL;
 
4183
                                ValaDataType* _tmp561_ = NULL;
 
4184
                                ValaDataType* _tmp562_;
 
4185
                                _tmp558_ = vala_member_access_get_inner (self);
 
4186
                                _tmp559_ = vala_code_context_get_analyzer (context);
 
4187
                                _tmp560_ = vala_symbol_get_parent_symbol ((ValaSymbol*) base_method);
 
4188
                                _tmp561_ = vala_semantic_analyzer_get_data_type_for_symbol (VALA_TYPESYMBOL (_tmp560_));
 
4189
                                _tmp562_ = _tmp561_;
 
4190
                                vala_expression_set_target_type (_tmp558_, _tmp562_);
 
4191
                                _vala_code_node_unref0 (_tmp562_);
4235
4192
                        }
4236
4193
                        _vala_code_node_unref0 (base_method);
4237
4194
                        _vala_code_node_unref0 (m);
4238
4195
                } else {
4239
 
                        ValaSymbol* _tmp598_ = NULL;
4240
 
                        _tmp598_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
4241
 
                        if (VALA_IS_PROPERTY (_tmp598_)) {
4242
 
                                ValaSymbol* _tmp599_ = NULL;
4243
 
                                ValaProperty* _tmp600_;
 
4196
                        ValaSymbol* _tmp563_ = NULL;
 
4197
                        _tmp563_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
4198
                        if (VALA_IS_PROPERTY (_tmp563_)) {
 
4199
                                ValaSymbol* _tmp564_ = NULL;
 
4200
                                ValaProperty* _tmp565_;
4244
4201
                                ValaProperty* prop;
4245
4202
                                ValaProperty* base_property = NULL;
4246
 
                                ValaProperty* _tmp601_ = NULL;
4247
 
                                gboolean _tmp611_ = FALSE;
4248
 
                                _tmp599_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
4249
 
                                _tmp600_ = _vala_code_node_ref0 (VALA_PROPERTY (_tmp599_));
4250
 
                                prop = _tmp600_;
4251
 
                                _tmp601_ = vala_property_get_base_property (prop);
4252
 
                                if (_tmp601_ != NULL) {
4253
 
                                        ValaProperty* _tmp602_ = NULL;
4254
 
                                        ValaProperty* _tmp603_;
4255
 
                                        ValaProperty* _tmp604_;
4256
 
                                        _tmp602_ = vala_property_get_base_property (prop);
4257
 
                                        _tmp603_ = _vala_code_node_ref0 (_tmp602_);
4258
 
                                        _tmp604_ = _tmp603_;
 
4203
                                ValaProperty* _tmp566_ = NULL;
 
4204
                                gboolean _tmp573_ = FALSE;
 
4205
                                _tmp564_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
4206
                                _tmp565_ = _vala_code_node_ref0 (VALA_PROPERTY (_tmp564_));
 
4207
                                prop = _tmp565_;
 
4208
                                _tmp566_ = vala_property_get_base_property (prop);
 
4209
                                if (_tmp566_ != NULL) {
 
4210
                                        ValaProperty* _tmp567_ = NULL;
 
4211
                                        ValaProperty* _tmp568_;
 
4212
                                        _tmp567_ = vala_property_get_base_property (prop);
 
4213
                                        _tmp568_ = _vala_code_node_ref0 (_tmp567_);
4259
4214
                                        _vala_code_node_unref0 (base_property);
4260
 
                                        base_property = _tmp604_;
 
4215
                                        base_property = _tmp568_;
4261
4216
                                } else {
4262
 
                                        ValaProperty* _tmp605_ = NULL;
4263
 
                                        _tmp605_ = vala_property_get_base_interface_property (prop);
4264
 
                                        if (_tmp605_ != NULL) {
4265
 
                                                ValaProperty* _tmp606_ = NULL;
4266
 
                                                ValaProperty* _tmp607_;
4267
 
                                                ValaProperty* _tmp608_;
4268
 
                                                _tmp606_ = vala_property_get_base_interface_property (prop);
4269
 
                                                _tmp607_ = _vala_code_node_ref0 (_tmp606_);
4270
 
                                                _tmp608_ = _tmp607_;
 
4217
                                        ValaProperty* _tmp569_ = NULL;
 
4218
                                        _tmp569_ = vala_property_get_base_interface_property (prop);
 
4219
                                        if (_tmp569_ != NULL) {
 
4220
                                                ValaProperty* _tmp570_ = NULL;
 
4221
                                                ValaProperty* _tmp571_;
 
4222
                                                _tmp570_ = vala_property_get_base_interface_property (prop);
 
4223
                                                _tmp571_ = _vala_code_node_ref0 (_tmp570_);
4271
4224
                                                _vala_code_node_unref0 (base_property);
4272
 
                                                base_property = _tmp608_;
 
4225
                                                base_property = _tmp571_;
4273
4226
                                        } else {
4274
 
                                                ValaProperty* _tmp609_;
4275
 
                                                ValaProperty* _tmp610_;
4276
 
                                                _tmp609_ = _vala_code_node_ref0 (prop);
4277
 
                                                _tmp610_ = _tmp609_;
 
4227
                                                ValaProperty* _tmp572_;
 
4228
                                                _tmp572_ = _vala_code_node_ref0 (prop);
4278
4229
                                                _vala_code_node_unref0 (base_property);
4279
 
                                                base_property = _tmp610_;
 
4230
                                                base_property = _tmp572_;
4280
4231
                                        }
4281
4232
                                }
4282
4233
                                if (instance) {
4283
 
                                        ValaSymbol* _tmp612_ = NULL;
4284
 
                                        _tmp612_ = vala_symbol_get_parent_symbol ((ValaSymbol*) base_property);
4285
 
                                        _tmp611_ = _tmp612_ != NULL;
 
4234
                                        ValaSymbol* _tmp574_ = NULL;
 
4235
                                        _tmp574_ = vala_symbol_get_parent_symbol ((ValaSymbol*) base_property);
 
4236
                                        _tmp573_ = _tmp574_ != NULL;
4286
4237
                                } else {
4287
 
                                        _tmp611_ = FALSE;
 
4238
                                        _tmp573_ = FALSE;
4288
4239
                                }
4289
 
                                if (_tmp611_) {
4290
 
                                        ValaExpression* _tmp613_ = NULL;
4291
 
                                        ValaSemanticAnalyzer* _tmp614_ = NULL;
4292
 
                                        ValaSymbol* _tmp615_ = NULL;
4293
 
                                        ValaDataType* _tmp616_ = NULL;
4294
 
                                        ValaDataType* _tmp617_;
4295
 
                                        _tmp613_ = vala_member_access_get_inner (self);
4296
 
                                        _tmp614_ = vala_code_context_get_analyzer (context);
4297
 
                                        _tmp615_ = vala_symbol_get_parent_symbol ((ValaSymbol*) base_property);
4298
 
                                        _tmp616_ = vala_semantic_analyzer_get_data_type_for_symbol (VALA_TYPESYMBOL (_tmp615_));
4299
 
                                        _tmp617_ = _tmp616_;
4300
 
                                        vala_expression_set_target_type (_tmp613_, _tmp617_);
4301
 
                                        _vala_code_node_unref0 (_tmp617_);
 
4240
                                if (_tmp573_) {
 
4241
                                        ValaExpression* _tmp575_ = NULL;
 
4242
                                        ValaSemanticAnalyzer* _tmp576_ = NULL;
 
4243
                                        ValaSymbol* _tmp577_ = NULL;
 
4244
                                        ValaDataType* _tmp578_ = NULL;
 
4245
                                        ValaDataType* _tmp579_;
 
4246
                                        _tmp575_ = vala_member_access_get_inner (self);
 
4247
                                        _tmp576_ = vala_code_context_get_analyzer (context);
 
4248
                                        _tmp577_ = vala_symbol_get_parent_symbol ((ValaSymbol*) base_property);
 
4249
                                        _tmp578_ = vala_semantic_analyzer_get_data_type_for_symbol (VALA_TYPESYMBOL (_tmp577_));
 
4250
                                        _tmp579_ = _tmp578_;
 
4251
                                        vala_expression_set_target_type (_tmp575_, _tmp579_);
 
4252
                                        _vala_code_node_unref0 (_tmp579_);
4302
4253
                                }
4303
4254
                                _vala_code_node_unref0 (base_property);
4304
4255
                                _vala_code_node_unref0 (prop);
4305
4256
                        } else {
4306
 
                                gboolean _tmp618_ = FALSE;
4307
 
                                gboolean _tmp619_ = FALSE;
4308
 
                                gboolean _tmp620_ = FALSE;
4309
 
                                ValaSymbol* _tmp621_ = NULL;
4310
 
                                _tmp621_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
4311
 
                                if (VALA_IS_FIELD (_tmp621_)) {
4312
 
                                        _tmp620_ = TRUE;
4313
 
                                } else {
4314
 
                                        ValaSymbol* _tmp622_ = NULL;
4315
 
                                        _tmp622_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
4316
 
                                        _tmp620_ = VALA_IS_SIGNAL (_tmp622_);
4317
 
                                }
4318
 
                                if (_tmp620_) {
4319
 
                                        _tmp619_ = instance;
4320
 
                                } else {
4321
 
                                        _tmp619_ = FALSE;
4322
 
                                }
4323
 
                                if (_tmp619_) {
4324
 
                                        ValaSymbol* _tmp623_ = NULL;
4325
 
                                        ValaSymbol* _tmp624_ = NULL;
4326
 
                                        _tmp623_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
4327
 
                                        _tmp624_ = vala_symbol_get_parent_symbol (_tmp623_);
4328
 
                                        _tmp618_ = _tmp624_ != NULL;
4329
 
                                } else {
4330
 
                                        _tmp618_ = FALSE;
4331
 
                                }
4332
 
                                if (_tmp618_) {
4333
 
                                        ValaExpression* _tmp625_ = NULL;
4334
 
                                        ValaSemanticAnalyzer* _tmp626_ = NULL;
4335
 
                                        ValaSymbol* _tmp627_ = NULL;
4336
 
                                        ValaSymbol* _tmp628_ = NULL;
4337
 
                                        ValaDataType* _tmp629_ = NULL;
4338
 
                                        ValaDataType* _tmp630_;
4339
 
                                        _tmp625_ = vala_member_access_get_inner (self);
4340
 
                                        _tmp626_ = vala_code_context_get_analyzer (context);
4341
 
                                        _tmp627_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
4342
 
                                        _tmp628_ = vala_symbol_get_parent_symbol (_tmp627_);
4343
 
                                        _tmp629_ = vala_semantic_analyzer_get_data_type_for_symbol (VALA_TYPESYMBOL (_tmp628_));
4344
 
                                        _tmp630_ = _tmp629_;
4345
 
                                        vala_expression_set_target_type (_tmp625_, _tmp630_);
4346
 
                                        _vala_code_node_unref0 (_tmp630_);
 
4257
                                gboolean _tmp580_ = FALSE;
 
4258
                                gboolean _tmp581_ = FALSE;
 
4259
                                gboolean _tmp582_ = FALSE;
 
4260
                                ValaSymbol* _tmp583_ = NULL;
 
4261
                                _tmp583_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
4262
                                if (VALA_IS_FIELD (_tmp583_)) {
 
4263
                                        _tmp582_ = TRUE;
 
4264
                                } else {
 
4265
                                        ValaSymbol* _tmp584_ = NULL;
 
4266
                                        _tmp584_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
4267
                                        _tmp582_ = VALA_IS_SIGNAL (_tmp584_);
 
4268
                                }
 
4269
                                if (_tmp582_) {
 
4270
                                        _tmp581_ = instance;
 
4271
                                } else {
 
4272
                                        _tmp581_ = FALSE;
 
4273
                                }
 
4274
                                if (_tmp581_) {
 
4275
                                        ValaSymbol* _tmp585_ = NULL;
 
4276
                                        ValaSymbol* _tmp586_ = NULL;
 
4277
                                        _tmp585_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
4278
                                        _tmp586_ = vala_symbol_get_parent_symbol (_tmp585_);
 
4279
                                        _tmp580_ = _tmp586_ != NULL;
 
4280
                                } else {
 
4281
                                        _tmp580_ = FALSE;
 
4282
                                }
 
4283
                                if (_tmp580_) {
 
4284
                                        ValaExpression* _tmp587_ = NULL;
 
4285
                                        ValaSemanticAnalyzer* _tmp588_ = NULL;
 
4286
                                        ValaSymbol* _tmp589_ = NULL;
 
4287
                                        ValaSymbol* _tmp590_ = NULL;
 
4288
                                        ValaDataType* _tmp591_ = NULL;
 
4289
                                        ValaDataType* _tmp592_;
 
4290
                                        _tmp587_ = vala_member_access_get_inner (self);
 
4291
                                        _tmp588_ = vala_code_context_get_analyzer (context);
 
4292
                                        _tmp589_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
 
4293
                                        _tmp590_ = vala_symbol_get_parent_symbol (_tmp589_);
 
4294
                                        _tmp591_ = vala_semantic_analyzer_get_data_type_for_symbol (VALA_TYPESYMBOL (_tmp590_));
 
4295
                                        _tmp592_ = _tmp591_;
 
4296
                                        vala_expression_set_target_type (_tmp587_, _tmp592_);
 
4297
                                        _vala_code_node_unref0 (_tmp592_);
4347
4298
                                }
4348
4299
                        }
4349
4300
                }
4350
4301
        }
4351
 
        _tmp631_ = vala_code_node_get_error ((ValaCodeNode*) self);
4352
 
        result = !_tmp631_;
 
4302
        _tmp593_ = vala_code_node_get_error ((ValaCodeNode*) self);
 
4303
        result = !_tmp593_;
4353
4304
        _vala_code_node_unref0 (member);
4354
4305
        _vala_code_node_unref0 (this_parameter);
4355
4306
        _vala_code_node_unref0 (base_symbol);
4403
4354
                vala_code_node_get_used_variables ((ValaCodeNode*) _tmp1_, collection);
4404
4355
        }
4405
4356
        _tmp2_ = vala_expression_get_symbol_reference ((ValaExpression*) self);
4406
 
        _tmp4_ = _vala_code_node_ref0 ((_tmp3_ = _tmp2_, VALA_IS_LOCAL_VARIABLE (_tmp3_) ? ((ValaLocalVariable*) _tmp3_) : NULL));
 
4357
        _tmp3_ = _tmp2_;
 
4358
        _tmp4_ = _vala_code_node_ref0 (VALA_IS_LOCAL_VARIABLE (_tmp3_) ? ((ValaLocalVariable*) _tmp3_) : NULL);
4407
4359
        local = _tmp4_;
4408
4360
        if (local != NULL) {
4409
4361
                vala_collection_add (collection, local);
4422
4374
 
4423
4375
void vala_member_access_set_inner (ValaMemberAccess* self, ValaExpression* value) {
4424
4376
        ValaExpression* _tmp0_;
4425
 
        ValaExpression* _tmp1_;
4426
4377
        g_return_if_fail (self != NULL);
4427
4378
        _tmp0_ = _vala_code_node_ref0 (value);
4428
 
        _tmp1_ = _tmp0_;
4429
4379
        _vala_code_node_unref0 (self->priv->_inner);
4430
 
        self->priv->_inner = _tmp1_;
 
4380
        self->priv->_inner = _tmp0_;
4431
4381
        if (self->priv->_inner != NULL) {
4432
4382
                vala_code_node_set_parent_node ((ValaCodeNode*) self->priv->_inner, (ValaCodeNode*) self);
4433
4383
        }
4444
4394
 
4445
4395
void vala_member_access_set_member_name (ValaMemberAccess* self, const gchar* value) {
4446
4396
        gchar* _tmp0_;
4447
 
        gchar* _tmp1_;
4448
4397
        g_return_if_fail (self != NULL);
4449
4398
        _tmp0_ = g_strdup (value);
4450
 
        _tmp1_ = _tmp0_;
4451
4399
        _g_free0 (self->priv->_member_name);
4452
 
        self->priv->_member_name = _tmp1_;
 
4400
        self->priv->_member_name = _tmp0_;
4453
4401
}
4454
4402
 
4455
4403