code: def infer_call(self, context=None):
      
      callcontext = contextmod.copy_context(context)
      callcontext.callcontext = contextmod.CallContext(
          args=self.args, keywords=self.keywords
      )
      callcontext.boundnode = None
      if context is not None:
          callcontext.extra_context = _populate_context_lookup(self, context.clone())
  
      for callee in self.func.infer(context):
          if callee is util.Uninferable:
              yield callee
              continue
          try:
              if hasattr(callee, "infer_call_result"):
                  yield from callee.infer_call_result(caller=self, context=callcontext)
          except exceptions.InferenceError:
              continue
      return dict(node=self, context=context)
docs: infer a Call node by trying to guess what the function returns