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

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

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

revision 94864 by apaolo, Wed Apr 16 16:15:49 2014 UTC revision 94865 by apaolo, Wed Apr 16 16:18:27 2014 UTC
# Line 39  feature {NONE} -- Rule checking Line 39  feature {NONE} -- Rule checking
39          process_body (a_body_as: attached BODY_AS)          process_body (a_body_as: attached BODY_AS)
40                  local                  local
41                          l_viol: CA_RULE_VIOLATION                          l_viol: CA_RULE_VIOLATION
42                          i: INTEGER                          l_construct_list: CONSTRUCT_LIST [INTEGER_32]
43                          l_arg_name: STRING                          l_leaf: LEAF_AS
44                            l_argument_name: STRING
45                  do                  do
46                                    -- It's a bit more complicated that one would expect, because retrieving the original
47                                    -- text is the only way for checking the case (otherwise it's always lowercased).
48                                    -- This code is basically copy-pasted in this class and in CA_VARIABLE_NAMING_CONVENTION.
49                                    -- Copy-pasting is bad, but creating a common ancestor just for these two rules is also bad.
50                                    -- Edits here should be also made there.
51                                    -- Whoever copy-pastes this a third time should consider refactoring the code.
52                          if a_body_as.arguments /= Void then                          if a_body_as.arguments /= Void then
53                                  across                                  across
54                                          a_body_as.arguments as args                                          a_body_as.arguments as arguments
55                                  loop                                  loop
56                                          from                                          l_construct_list := arguments.item.id_list.id_list
57                                                  i := 1                                          across
58                                          until                                                  l_construct_list as l_id
                                                 i > args.item.id_list.count  
59                                          loop                                          loop
60                                                  l_arg_name := args.item.item_name (i)                                                  l_leaf := current_context.matchlist.at (l_id.item)
61                                                  if not is_valid_argument_name (l_arg_name) then                                                  l_argument_name := l_leaf.text_32 (current_context.matchlist)
62                                                    if not is_valid_argument_name (l_argument_name) then
63                                                          create l_viol.make_with_rule (Current)                                                          create l_viol.make_with_rule (Current)
64                                                          l_viol.set_location (args.item.start_location)                                                          l_viol.set_location (l_leaf.start_location)
65                                                          l_viol.long_description_info.extend (l_arg_name)                                                          l_viol.long_description_info.extend (l_argument_name)
66                                                          violations.extend (l_viol)                                                          violations.extend (l_viol)
67                                                  end                                                  end
                                                 i := i + 1  
68                                          end                                          end
69                                  end                                  end
70                          end                          end
# Line 78  feature -- Properties Line 84  feature -- Properties
84                          Result := ca_names.argument_naming_convention_title                          Result := ca_names.argument_naming_convention_title
85                  end                  end
86    
                 -- TODO: Add the ID of your rule here. Should be unique!  
   
87          id: STRING_32 = "CA066"          id: STRING_32 = "CA066"
88                          -- <Precursor>                          -- <Precursor>
89    

Legend:
Removed from v.94864  
changed lines
  Added in v.94865

  ViewVC Help
Powered by ViewVC 1.1.23