static gboolean vala_slice_expression_real_check (ValaCodeNode* base, ValaCodeContext* context) { ValaSliceExpression * self; gboolean result = FALSE; gboolean _tmp0_; gboolean _tmp1_; ValaExpression* _tmp4_; ValaExpression* _tmp5_; ValaCodeContext* _tmp6_; gboolean _tmp7_ = FALSE; ValaExpression* _tmp8_; ValaExpression* _tmp9_; ValaCodeContext* _tmp10_; gboolean _tmp11_ = FALSE; ValaExpression* _tmp12_; ValaExpression* _tmp13_; ValaCodeContext* _tmp14_; gboolean _tmp15_ = FALSE; ValaExpression* _tmp16_; ValaExpression* _tmp17_; ValaDataType* _tmp18_; ValaDataType* _tmp19_; gboolean _tmp24_; gboolean _tmp25_; ValaExpression* _tmp30_; ValaExpression* _tmp31_; ValaDataType* _tmp32_; ValaDataType* _tmp33_; gboolean _tmp107_; gboolean _tmp108_; self = (ValaSliceExpression*) base; g_return_val_if_fail (context != NULL, FALSE); _tmp0_ = vala_code_node_get_checked ((ValaCodeNode*) self); _tmp1_ = _tmp0_; if (_tmp1_) { gboolean _tmp2_; gboolean _tmp3_; _tmp2_ = vala_code_node_get_error ((ValaCodeNode*) self); _tmp3_ = _tmp2_; result = !_tmp3_; return result; } vala_code_node_set_checked ((ValaCodeNode*) self, TRUE); _tmp4_ = vala_slice_expression_get_container (self); _tmp5_ = _tmp4_; _tmp6_ = context; _tmp7_ = vala_code_node_check ((ValaCodeNode*) _tmp5_, _tmp6_); if (!_tmp7_) { vala_code_node_set_error ((ValaCodeNode*) self, TRUE); result = FALSE; return result; } _tmp8_ = vala_slice_expression_get_start (self); _tmp9_ = _tmp8_; _tmp10_ = context; _tmp11_ = vala_code_node_check ((ValaCodeNode*) _tmp9_, _tmp10_); if (!_tmp11_) { vala_code_node_set_error ((ValaCodeNode*) self, TRUE); result = FALSE; return result; } _tmp12_ = vala_slice_expression_get_stop (self); _tmp13_ = _tmp12_; _tmp14_ = context; _tmp15_ = vala_code_node_check ((ValaCodeNode*) _tmp13_, _tmp14_); if (!_tmp15_) { vala_code_node_set_error ((ValaCodeNode*) self, TRUE); result = FALSE; return result; } _tmp16_ = vala_slice_expression_get_container (self); _tmp17_ = _tmp16_; _tmp18_ = vala_expression_get_value_type (_tmp17_); _tmp19_ = _tmp18_; if (_tmp19_ == NULL) { ValaExpression* _tmp20_; ValaExpression* _tmp21_; ValaSourceReference* _tmp22_; ValaSourceReference* _tmp23_; vala_code_node_set_error ((ValaCodeNode*) self, TRUE); _tmp20_ = vala_slice_expression_get_container (self); _tmp21_ = _tmp20_; _tmp22_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp21_); _tmp23_ = _tmp22_; vala_report_error (_tmp23_, "Invalid container expression"); result = FALSE; return result; } _tmp24_ = vala_expression_get_lvalue ((ValaExpression*) self); _tmp25_ = _tmp24_; if (_tmp25_) { ValaExpression* _tmp26_; ValaExpression* _tmp27_; ValaSourceReference* _tmp28_; ValaSourceReference* _tmp29_; vala_code_node_set_error ((ValaCodeNode*) self, TRUE); _tmp26_ = vala_slice_expression_get_container (self); _tmp27_ = _tmp26_; _tmp28_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp27_); _tmp29_ = _tmp28_; vala_report_error (_tmp29_, "Slice expressions cannot be used as lvalue"); result = FALSE; return result; } _tmp30_ = vala_slice_expression_get_container (self); _tmp31_ = _tmp30_; _tmp32_ = vala_expression_get_value_type (_tmp31_); _tmp33_ = _tmp32_; if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp33_, VALA_TYPE_ARRAY_TYPE)) { ValaExpression* _tmp34_; ValaExpression* _tmp35_; ValaDataType* _tmp36_; ValaDataType* _tmp37_; ValaDataType* _tmp38_ = NULL; ValaDataType* _tmp39_; ValaDataType* _tmp40_; ValaDataType* _tmp41_; gboolean _tmp42_ = FALSE; ValaExpression* _tmp43_; ValaExpression* _tmp44_; ValaDataType* _tmp45_; ValaDataType* _tmp46_; gboolean _tmp51_; gboolean _tmp56_ = FALSE; ValaExpression* _tmp57_; ValaExpression* _tmp58_; ValaDataType* _tmp59_; ValaDataType* _tmp60_; gboolean _tmp65_; _tmp34_ = vala_slice_expression_get_container (self); _tmp35_ = _tmp34_; _tmp36_ = vala_expression_get_value_type (_tmp35_); _tmp37_ = _tmp36_; _tmp38_ = vala_data_type_copy (_tmp37_); _tmp39_ = _tmp38_; vala_expression_set_value_type ((ValaExpression*) self, _tmp39_); _vala_code_node_unref0 (_tmp39_); _tmp40_ = vala_expression_get_value_type ((ValaExpression*) self); _tmp41_ = _tmp40_; vala_data_type_set_value_owned (_tmp41_, FALSE); _tmp43_ = vala_slice_expression_get_start (self); _tmp44_ = _tmp43_; _tmp45_ = vala_expression_get_value_type (_tmp44_); _tmp46_ = _tmp45_; if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp46_, VALA_TYPE_INTEGER_TYPE)) { _tmp42_ = TRUE; } else { ValaExpression* _tmp47_; ValaExpression* _tmp48_; ValaDataType* _tmp49_; ValaDataType* _tmp50_; _tmp47_ = vala_slice_expression_get_start (self); _tmp48_ = _tmp47_; _tmp49_ = vala_expression_get_value_type (_tmp48_); _tmp50_ = _tmp49_; _tmp42_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp50_, VALA_TYPE_ENUM_VALUE_TYPE); } _tmp51_ = _tmp42_; if (!_tmp51_) { ValaExpression* _tmp52_; ValaExpression* _tmp53_; ValaSourceReference* _tmp54_; ValaSourceReference* _tmp55_; vala_code_node_set_error ((ValaCodeNode*) self, TRUE); _tmp52_ = vala_slice_expression_get_start (self); _tmp53_ = _tmp52_; _tmp54_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp53_); _tmp55_ = _tmp54_; vala_report_error (_tmp55_, "Expression of integer type expected"); } _tmp57_ = vala_slice_expression_get_stop (self); _tmp58_ = _tmp57_; _tmp59_ = vala_expression_get_value_type (_tmp58_); _tmp60_ = _tmp59_; if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp60_, VALA_TYPE_INTEGER_TYPE)) { _tmp56_ = TRUE; } else { ValaExpression* _tmp61_; ValaExpression* _tmp62_; ValaDataType* _tmp63_; ValaDataType* _tmp64_; _tmp61_ = vala_slice_expression_get_stop (self); _tmp62_ = _tmp61_; _tmp63_ = vala_expression_get_value_type (_tmp62_); _tmp64_ = _tmp63_; _tmp56_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp64_, VALA_TYPE_ENUM_VALUE_TYPE); } _tmp65_ = _tmp56_; if (!_tmp65_) { ValaExpression* _tmp66_; ValaExpression* _tmp67_; ValaSourceReference* _tmp68_; ValaSourceReference* _tmp69_; vala_code_node_set_error ((ValaCodeNode*) self, TRUE); _tmp66_ = vala_slice_expression_get_stop (self); _tmp67_ = _tmp66_; _tmp68_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp67_); _tmp69_ = _tmp68_; vala_report_error (_tmp69_, "Expression of integer type expected"); } } else { ValaExpression* _tmp70_; ValaExpression* _tmp71_; ValaDataType* _tmp72_; ValaDataType* _tmp73_; ValaSymbol* _tmp74_ = NULL; ValaMethod* slice_method; ValaMethod* _tmp75_; ValaSourceReference* _tmp97_; ValaSourceReference* _tmp98_; ValaExpression* _tmp99_; ValaExpression* _tmp100_; ValaDataType* _tmp101_; ValaDataType* _tmp102_; gchar* _tmp103_ = NULL; gchar* _tmp104_; gchar* _tmp105_ = NULL; gchar* _tmp106_; _tmp70_ = vala_slice_expression_get_container (self); _tmp71_ = _tmp70_; _tmp72_ = vala_expression_get_value_type (_tmp71_); _tmp73_ = _tmp72_; _tmp74_ = vala_data_type_get_member (_tmp73_, "slice"); slice_method = G_TYPE_CHECK_INSTANCE_TYPE (_tmp74_, VALA_TYPE_METHOD) ? ((ValaMethod*) _tmp74_) : NULL; _tmp75_ = slice_method; if (_tmp75_ != NULL) { ValaExpression* _tmp76_; ValaExpression* _tmp77_; ValaMemberAccess* _tmp78_; ValaMemberAccess* _tmp79_; ValaMethodCall* _tmp80_; ValaMethodCall* _tmp81_; ValaMethodCall* slice_call; ValaMethodCall* _tmp82_; ValaExpression* _tmp83_; ValaExpression* _tmp84_; ValaMethodCall* _tmp85_; ValaExpression* _tmp86_; ValaExpression* _tmp87_; ValaMethodCall* _tmp88_; ValaDataType* _tmp89_; ValaDataType* _tmp90_; ValaCodeNode* _tmp91_; ValaCodeNode* _tmp92_; ValaMethodCall* _tmp93_; ValaMethodCall* _tmp94_; ValaCodeContext* _tmp95_; gboolean _tmp96_ = FALSE; _tmp76_ = vala_slice_expression_get_container (self); _tmp77_ = _tmp76_; _tmp78_ = vala_member_access_new (_tmp77_, "slice", NULL); _tmp79_ = _tmp78_; _tmp80_ = vala_method_call_new ((ValaExpression*) _tmp79_, NULL); _tmp81_ = _tmp80_; _vala_code_node_unref0 (_tmp79_); slice_call = _tmp81_; _tmp82_ = slice_call; _tmp83_ = vala_slice_expression_get_start (self); _tmp84_ = _tmp83_; vala_method_call_add_argument (_tmp82_, _tmp84_); _tmp85_ = slice_call; _tmp86_ = vala_slice_expression_get_stop (self); _tmp87_ = _tmp86_; vala_method_call_add_argument (_tmp85_, _tmp87_); _tmp88_ = slice_call; _tmp89_ = vala_expression_get_target_type ((ValaExpression*) self); _tmp90_ = _tmp89_; vala_expression_set_target_type ((ValaExpression*) _tmp88_, _tmp90_); _tmp91_ = vala_code_node_get_parent_node ((ValaCodeNode*) self); _tmp92_ = _tmp91_; _tmp93_ = slice_call; vala_code_node_replace_expression (_tmp92_, (ValaExpression*) self, (ValaExpression*) _tmp93_); _tmp94_ = slice_call; _tmp95_ = context; _tmp96_ = vala_code_node_check ((ValaCodeNode*) _tmp94_, _tmp95_); result = _tmp96_; _vala_code_node_unref0 (slice_call); _vala_code_node_unref0 (slice_method); return result; } vala_code_node_set_error ((ValaCodeNode*) self, TRUE); _tmp97_ = vala_code_node_get_source_reference ((ValaCodeNode*) self); _tmp98_ = _tmp97_; _tmp99_ = vala_slice_expression_get_container (self); _tmp100_ = _tmp99_; _tmp101_ = vala_expression_get_value_type (_tmp100_); _tmp102_ = _tmp101_; _tmp103_ = vala_code_node_to_string ((ValaCodeNode*) _tmp102_); _tmp104_ = _tmp103_; _tmp105_ = g_strdup_printf ("The expression `%s' does not denote an array", _tmp104_); _tmp106_ = _tmp105_; vala_report_error (_tmp98_, _tmp106_); _g_free0 (_tmp106_); _g_free0 (_tmp104_); _vala_code_node_unref0 (slice_method); } _tmp107_ = vala_code_node_get_error ((ValaCodeNode*) self); _tmp108_ = _tmp107_; result = !_tmp108_; return result; }
static gboolean vala_tuple_real_check (ValaCodeNode* base, ValaCodeContext* context) { ValaTuple * self; gboolean result = FALSE; gboolean _tmp0_; gboolean _tmp1_; ValaCodeContext* _tmp4_; ValaProfile _tmp5_; ValaProfile _tmp6_; ValaCodeContext* _tmp9_; ValaNamespace* _tmp10_; ValaNamespace* _tmp11_; ValaScope* _tmp12_; ValaScope* _tmp13_; ValaSymbol* _tmp14_ = NULL; ValaSymbol* _tmp15_; ValaScope* _tmp16_; ValaScope* _tmp17_; ValaSymbol* _tmp18_ = NULL; ValaClass* _tmp19_; ValaObjectType* _tmp20_; ValaObjectType* _tmp21_; ValaDataType* _tmp22_; ValaDataType* _tmp23_; gboolean _tmp45_; gboolean _tmp46_; self = (ValaTuple*) base; g_return_val_if_fail (context != NULL, FALSE); _tmp0_ = vala_code_node_get_checked ((ValaCodeNode*) self); _tmp1_ = _tmp0_; if (_tmp1_) { gboolean _tmp2_; gboolean _tmp3_; _tmp2_ = vala_code_node_get_error ((ValaCodeNode*) self); _tmp3_ = _tmp2_; result = !_tmp3_; return result; } vala_code_node_set_checked ((ValaCodeNode*) self, TRUE); _tmp4_ = context; _tmp5_ = vala_code_context_get_profile (_tmp4_); _tmp6_ = _tmp5_; if (_tmp6_ != VALA_PROFILE_DOVA) { ValaSourceReference* _tmp7_; ValaSourceReference* _tmp8_; _tmp7_ = vala_code_node_get_source_reference ((ValaCodeNode*) self); _tmp8_ = _tmp7_; vala_report_error (_tmp8_, "tuples are not supported"); vala_code_node_set_error ((ValaCodeNode*) self, TRUE); result = FALSE; return result; } _tmp9_ = context; _tmp10_ = vala_code_context_get_root (_tmp9_); _tmp11_ = _tmp10_; _tmp12_ = vala_symbol_get_scope ((ValaSymbol*) _tmp11_); _tmp13_ = _tmp12_; _tmp14_ = vala_scope_lookup (_tmp13_, "Dova"); _tmp15_ = _tmp14_; _tmp16_ = vala_symbol_get_scope (_tmp15_); _tmp17_ = _tmp16_; _tmp18_ = vala_scope_lookup (_tmp17_, "Tuple"); _tmp19_ = VALA_CLASS (_tmp18_); _tmp20_ = vala_object_type_new ((ValaObjectTypeSymbol*) _tmp19_); _tmp21_ = _tmp20_; vala_expression_set_value_type ((ValaExpression*) self, (ValaDataType*) _tmp21_); _vala_code_node_unref0 (_tmp21_); _vala_code_node_unref0 (_tmp19_); _vala_code_node_unref0 (_tmp15_); _tmp22_ = vala_expression_get_value_type ((ValaExpression*) self); _tmp23_ = _tmp22_; vala_data_type_set_value_owned (_tmp23_, TRUE); { ValaList* _tmp24_; ValaList* _tmp25_; ValaList* _expr_list; ValaList* _tmp26_; gint _tmp27_; gint _tmp28_; gint _expr_size; gint _expr_index; _tmp24_ = self->priv->expression_list; _tmp25_ = _vala_iterable_ref0 (_tmp24_); _expr_list = _tmp25_; _tmp26_ = _expr_list; _tmp27_ = vala_collection_get_size ((ValaCollection*) _tmp26_); _tmp28_ = _tmp27_; _expr_size = _tmp28_; _expr_index = -1; while (TRUE) { gint _tmp29_; gint _tmp30_; gint _tmp31_; ValaList* _tmp32_; gint _tmp33_; gpointer _tmp34_ = NULL; ValaExpression* expr; ValaExpression* _tmp35_; ValaCodeContext* _tmp36_; gboolean _tmp37_ = FALSE; ValaDataType* _tmp38_; ValaDataType* _tmp39_; ValaExpression* _tmp40_; ValaDataType* _tmp41_; ValaDataType* _tmp42_; ValaDataType* _tmp43_ = NULL; ValaDataType* _tmp44_; _tmp29_ = _expr_index; _expr_index = _tmp29_ + 1; _tmp30_ = _expr_index; _tmp31_ = _expr_size; if (!(_tmp30_ < _tmp31_)) { break; } _tmp32_ = _expr_list; _tmp33_ = _expr_index; _tmp34_ = vala_list_get (_tmp32_, _tmp33_); expr = (ValaExpression*) _tmp34_; _tmp35_ = expr; _tmp36_ = context; _tmp37_ = vala_code_node_check ((ValaCodeNode*) _tmp35_, _tmp36_); if (!_tmp37_) { result = FALSE; _vala_code_node_unref0 (expr); _vala_iterable_unref0 (_expr_list); return result; } _tmp38_ = vala_expression_get_value_type ((ValaExpression*) self); _tmp39_ = _tmp38_; _tmp40_ = expr; _tmp41_ = vala_expression_get_value_type (_tmp40_); _tmp42_ = _tmp41_; _tmp43_ = vala_data_type_copy (_tmp42_); _tmp44_ = _tmp43_; vala_data_type_add_type_argument (_tmp39_, _tmp44_); _vala_code_node_unref0 (_tmp44_); _vala_code_node_unref0 (expr); } _vala_iterable_unref0 (_expr_list); } _tmp45_ = vala_code_node_get_error ((ValaCodeNode*) self); _tmp46_ = _tmp45_; result = !_tmp46_; return result; }