static gboolean vala_addressof_expression_real_check (ValaCodeNode* base, ValaCodeContext* context) { ValaAddressofExpression * self; gboolean result = FALSE; gboolean _tmp0_; gboolean _tmp1_; ValaExpression* _tmp4_; ValaExpression* _tmp5_; ValaExpression* _tmp6_; ValaExpression* _tmp7_; ValaCodeContext* _tmp8_; gboolean _tmp9_ = FALSE; ValaExpression* _tmp10_; ValaExpression* _tmp11_; ValaElementAccess* _tmp12_; ValaElementAccess* ea; gboolean _tmp13_ = FALSE; ValaExpression* _tmp14_; ValaExpression* _tmp15_; gboolean _tmp20_; ValaExpression* _tmp38_; ValaExpression* _tmp39_; ValaDataType* _tmp40_; ValaDataType* _tmp41_; gboolean _tmp42_ = FALSE; gboolean _tmp57_; gboolean _tmp58_; self = (ValaAddressofExpression*) 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_addressof_expression_get_inner (self); _tmp5_ = _tmp4_; vala_expression_set_lvalue (_tmp5_, TRUE); _tmp6_ = vala_addressof_expression_get_inner (self); _tmp7_ = _tmp6_; _tmp8_ = context; _tmp9_ = vala_code_node_check ((ValaCodeNode*) _tmp7_, _tmp8_); if (!_tmp9_) { vala_code_node_set_error ((ValaCodeNode*) self, TRUE); result = FALSE; return result; } _tmp10_ = vala_addressof_expression_get_inner (self); _tmp11_ = _tmp10_; _tmp12_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp11_, VALA_TYPE_ELEMENT_ACCESS) ? ((ValaElementAccess*) _tmp11_) : NULL); ea = _tmp12_; _tmp14_ = vala_addressof_expression_get_inner (self); _tmp15_ = _tmp14_; if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp15_, VALA_TYPE_MEMBER_ACCESS)) { ValaExpression* _tmp16_; ValaExpression* _tmp17_; ValaSymbol* _tmp18_; ValaSymbol* _tmp19_; _tmp16_ = vala_addressof_expression_get_inner (self); _tmp17_ = _tmp16_; _tmp18_ = vala_expression_get_symbol_reference (_tmp17_); _tmp19_ = _tmp18_; _tmp13_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp19_, VALA_TYPE_VARIABLE); } else { _tmp13_ = FALSE; } _tmp20_ = _tmp13_; if (_tmp20_) { } else { gboolean _tmp21_ = FALSE; ValaElementAccess* _tmp22_; gboolean _tmp35_; _tmp22_ = ea; if (_tmp22_ != NULL) { gboolean _tmp23_ = FALSE; ValaElementAccess* _tmp24_; ValaExpression* _tmp25_; ValaExpression* _tmp26_; ValaDataType* _tmp27_; ValaDataType* _tmp28_; gboolean _tmp34_; _tmp24_ = ea; _tmp25_ = vala_element_access_get_container (_tmp24_); _tmp26_ = _tmp25_; _tmp27_ = vala_expression_get_value_type (_tmp26_); _tmp28_ = _tmp27_; if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp28_, VALA_TYPE_ARRAY_TYPE)) { _tmp23_ = TRUE; } else { ValaElementAccess* _tmp29_; ValaExpression* _tmp30_; ValaExpression* _tmp31_; ValaDataType* _tmp32_; ValaDataType* _tmp33_; _tmp29_ = ea; _tmp30_ = vala_element_access_get_container (_tmp29_); _tmp31_ = _tmp30_; _tmp32_ = vala_expression_get_value_type (_tmp31_); _tmp33_ = _tmp32_; _tmp23_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp33_, VALA_TYPE_POINTER_TYPE); } _tmp34_ = _tmp23_; _tmp21_ = _tmp34_; } else { _tmp21_ = FALSE; } _tmp35_ = _tmp21_; if (_tmp35_) { } else { ValaSourceReference* _tmp36_; ValaSourceReference* _tmp37_; vala_code_node_set_error ((ValaCodeNode*) self, TRUE); _tmp36_ = vala_code_node_get_source_reference ((ValaCodeNode*) self); _tmp37_ = _tmp36_; vala_report_error (_tmp37_, "Address-of operator not supported for this expression"); result = FALSE; _vala_code_node_unref0 (ea); return result; } } _tmp38_ = vala_addressof_expression_get_inner (self); _tmp39_ = _tmp38_; _tmp40_ = vala_expression_get_value_type (_tmp39_); _tmp41_ = _tmp40_; _tmp42_ = vala_data_type_is_reference_type_or_type_parameter (_tmp41_); if (_tmp42_) { ValaExpression* _tmp43_; ValaExpression* _tmp44_; ValaDataType* _tmp45_; ValaDataType* _tmp46_; ValaPointerType* _tmp47_; ValaPointerType* _tmp48_; ValaPointerType* _tmp49_; ValaPointerType* _tmp50_; _tmp43_ = vala_addressof_expression_get_inner (self); _tmp44_ = _tmp43_; _tmp45_ = vala_expression_get_value_type (_tmp44_); _tmp46_ = _tmp45_; _tmp47_ = vala_pointer_type_new (_tmp46_, NULL); _tmp48_ = _tmp47_; _tmp49_ = vala_pointer_type_new ((ValaDataType*) _tmp48_, NULL); _tmp50_ = _tmp49_; vala_expression_set_value_type ((ValaExpression*) self, (ValaDataType*) _tmp50_); _vala_code_node_unref0 (_tmp50_); _vala_code_node_unref0 (_tmp48_); } else { ValaExpression* _tmp51_; ValaExpression* _tmp52_; ValaDataType* _tmp53_; ValaDataType* _tmp54_; ValaPointerType* _tmp55_; ValaPointerType* _tmp56_; _tmp51_ = vala_addressof_expression_get_inner (self); _tmp52_ = _tmp51_; _tmp53_ = vala_expression_get_value_type (_tmp52_); _tmp54_ = _tmp53_; _tmp55_ = vala_pointer_type_new (_tmp54_, NULL); _tmp56_ = _tmp55_; vala_expression_set_value_type ((ValaExpression*) self, (ValaDataType*) _tmp56_); _vala_code_node_unref0 (_tmp56_); } _tmp57_ = vala_code_node_get_error ((ValaCodeNode*) self); _tmp58_ = _tmp57_; result = !_tmp58_; _vala_code_node_unref0 (ea); return result; }
static gboolean vala_unlock_statement_real_check (ValaCodeNode* base, ValaCodeContext* context) { ValaUnlockStatement * self; gboolean result = FALSE; gboolean _tmp0_; gboolean _tmp1_; ValaExpression* _tmp4_; ValaCodeContext* _tmp5_; gboolean _tmp6_ = FALSE; ValaExpression* _tmp7_; gboolean _tmp11_; ValaExpression* _tmp16_; ValaSymbol* _tmp17_; ValaSymbol* _tmp18_; ValaSymbol* _tmp19_; ValaSymbol* _tmp20_; ValaCodeContext* _tmp21_; ValaSemanticAnalyzer* _tmp22_; ValaSemanticAnalyzer* _tmp23_; ValaClass* _tmp24_; ValaClass* _tmp25_; ValaExpression* _tmp30_; ValaSymbol* _tmp31_; ValaSymbol* _tmp32_; gboolean _tmp33_; gboolean _tmp34_; self = (ValaUnlockStatement*) 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_ = self->priv->_resource; _tmp5_ = context; vala_code_node_check ((ValaCodeNode*) _tmp4_, _tmp5_); _tmp7_ = self->priv->_resource; if (VALA_IS_MEMBER_ACCESS (_tmp7_)) { ValaExpression* _tmp8_; ValaSymbol* _tmp9_; ValaSymbol* _tmp10_; _tmp8_ = self->priv->_resource; _tmp9_ = vala_expression_get_symbol_reference (_tmp8_); _tmp10_ = _tmp9_; _tmp6_ = VALA_IS_LOCKABLE (_tmp10_); } else { _tmp6_ = FALSE; } _tmp11_ = _tmp6_; if (!_tmp11_) { ValaExpression* _tmp12_; ValaExpression* _tmp13_; ValaSourceReference* _tmp14_; ValaSourceReference* _tmp15_; vala_code_node_set_error ((ValaCodeNode*) self, TRUE); _tmp12_ = self->priv->_resource; vala_code_node_set_error ((ValaCodeNode*) _tmp12_, TRUE); _tmp13_ = self->priv->_resource; _tmp14_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp13_); _tmp15_ = _tmp14_; vala_report_error (_tmp15_, "Expression is either not a member access or does not denote a lockable" \ " member"); result = FALSE; return result; } _tmp16_ = self->priv->_resource; _tmp17_ = vala_expression_get_symbol_reference (_tmp16_); _tmp18_ = _tmp17_; _tmp19_ = vala_symbol_get_parent_symbol (_tmp18_); _tmp20_ = _tmp19_; _tmp21_ = context; _tmp22_ = vala_code_context_get_analyzer (_tmp21_); _tmp23_ = _tmp22_; _tmp24_ = vala_semantic_analyzer_get_current_class (_tmp23_); _tmp25_ = _tmp24_; if (_tmp20_ != VALA_SYMBOL (_tmp25_)) { ValaExpression* _tmp26_; ValaExpression* _tmp27_; ValaSourceReference* _tmp28_; ValaSourceReference* _tmp29_; vala_code_node_set_error ((ValaCodeNode*) self, TRUE); _tmp26_ = self->priv->_resource; vala_code_node_set_error ((ValaCodeNode*) _tmp26_, TRUE); _tmp27_ = self->priv->_resource; _tmp28_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp27_); _tmp29_ = _tmp28_; vala_report_error (_tmp29_, "Only members of the current class are lockable"); } _tmp30_ = self->priv->_resource; _tmp31_ = vala_expression_get_symbol_reference (_tmp30_); _tmp32_ = _tmp31_; vala_lockable_set_lock_used (VALA_LOCKABLE (_tmp32_), TRUE); _tmp33_ = vala_code_node_get_error ((ValaCodeNode*) self); _tmp34_ = _tmp33_; result = !_tmp34_; return result; }