code: def detect_builtin_shadowing_definitions(self, contract):
          
  
          result = []
  
          # Loop through all functions, modifiers, variables (state and local) to detect any built-in symbol keywords.
          for function in contract.functions:
              if function.contract == contract:
                  if self.is_builtin_symbol(function.name):
                      result.append((self.SHADOWING_FUNCTION, function, None))
                  result += self.detect_builtin_shadowing_locals(function)
          for modifier in contract.modifiers:
              if modifier.contract == contract:
                  if self.is_builtin_symbol(modifier.name):
                      result.append((self.SHADOWING_MODIFIER, modifier, None))
                  result += self.detect_builtin_shadowing_locals(modifier)
          for variable in contract.variables:
              if variable.contract == contract:
                  if self.is_builtin_symbol(variable.name):
                      result.append((self.SHADOWING_STATE_VARIABLE, variable, None))
          for event in contract.events:
              if event.contract == contract:
                  if self.is_builtin_symbol(event.name):
                      result.append((self.SHADOWING_EVENT, event, None))
  
          return result
docs: Detects if functions, access modifiers, events, state variables, or local variables are named after built-in
              symbols. Any such definitions are returned in a list.
  
          Returns:
              list of tuple: (type, definition, [local variable parent])