/[eiffelstudio]/branches/eth/eve/Src/framework/code_analysis/rules/ca_self_assignment_rule.e
ViewVC logotype

Diff of /branches/eth/eve/Src/framework/code_analysis/rules/ca_self_assignment_rule.e

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 93176 by zurfluhs, Mon Oct 28 21:10:22 2013 UTC revision 93177 by zurfluhs, Mon Oct 28 22:16:38 2013 UTC
# Line 25  feature {NONE} -- Initialization Line 25  feature {NONE} -- Initialization
25                          create violations.make                          create violations.make
26                  end                  end
27    
28  feature -- Activation  feature {NONE} -- Activation
29    
30          prepare_checking (a_checker: CA_ALL_RULES_CHECKER)          register_actions (a_checker: CA_ALL_RULES_CHECKER)
31                  do                  do
32                          a_checker.add_assign_pre_action (agent pre_assign)                          a_checker.add_assign_pre_action (agent pre_assign)
                         violations.wipe_out  
33                  end                  end
34    
35  feature -- Properties  feature -- Properties
# Line 59  feature -- Properties Line 58  feature -- Properties
58                          Result := False                          Result := False
59                  end                  end
60    
61            format_violation_description (a_violation: CA_RULE_VIOLATION; a_formatter: TEXT_FORMATTER)
62                    do
63                            a_formatter.add_string ("Variable '")
64                            if attached {STRING_32} a_violation.long_description_info.first as l_name then
65                                    a_formatter.add_string (l_name)
66                            else
67                                    a_formatter.add_char ('?')
68                            end
69                            a_formatter.add_string ("' is assigned to itself. Assigning a variable to %
70                                                    %itself is a meaningless statement due to a typing%
71                                                    % error. Most probably, one of the two variable %
72                                                    %names was misspelled.")
73                    end
74    
75  feature {NONE} -- Checking the rule  feature {NONE} -- Checking the rule
76          pre_assign (a_assign_as: ASSIGN_AS)          pre_assign (a_assign_as: ASSIGN_AS)
77                  local                  local
# Line 69  feature {NONE} -- Checking the rule Line 82  feature {NONE} -- Checking the rule
82                                          if attached {ACCESS_ID_AS} a_assign_as.target as l_tar                                          if attached {ACCESS_ID_AS} a_assign_as.target as l_tar
83                                          and then l_tar.feature_name.is_equal (l_src_access_id.feature_name) then                                          and then l_tar.feature_name.is_equal (l_src_access_id.feature_name) then
84                                                  create l_violation.make_with_rule (Current)                                                  create l_violation.make_with_rule (Current)
85  --                                              l_violation.set_affected_class (current_class)                                                  l_violation.set_affected_class (checking_class)
86                                                  l_violation.set_location (a_assign_as.start_location)                                                  l_violation.set_location (a_assign_as.start_location)
87                                                  l_violation.set_long_description ("Variable '" + l_src_access_id.feature_name.name_8 + "' is assigned to itself...")                                                  l_violation.long_description_info.extend (l_src_access_id.feature_name.name_32)
88                                                  violations.extend (l_violation)                                                  violations.extend (l_violation)
89                                          end                                          end
90                                  end                                  end

Legend:
Removed from v.93176  
changed lines
  Added in v.93177

  ViewVC Help
Powered by ViewVC 1.1.23