def get_fn_name(self, expr, compiler_kwargs = {}, attributes = [], inline = True):
    if expr.__class__ is  TypedFn:
      fn = expr 
    elif expr.__class__ is Closure:
      fn = expr.fn 
    else:
      assert isinstance(expr.type, (FnT, ClosureT)), \
        "Expected function or closure, got %s : %s" % (expr, expr.type)
      fn = expr.type.fn

    compiler = self.__class__(module_entry = False, **compiler_kwargs)
    compiled = compiler.compile_flat_source(fn, attributes = attributes, inline = inline)
    
    if compiled.sig not in self.extra_function_signatures:
      # add any declarations it depends on 
      for decl in compiled.declarations:
        self.add_decl(decl)
      
      #add any external objects it wants to be linked against 
      self.extra_objects.update(compiled.extra_objects)
      
      # first add the new function's dependencies
      for extra_sig in compiled.extra_function_signatures:
        if extra_sig not in self.extra_function_signatures:
          self.extra_function_signatures.append(extra_sig)
          self.extra_functions[extra_sig] = compiled.extra_functions[extra_sig] 
      # now add the function itself 
      self.extra_function_signatures.append(compiled.sig)
      self.extra_functions[compiled.sig] = compiled.src
      
    
    for link_flag in compiler.extra_link_flags:
      if self.extra_link_flags not in link_flag:
        self.extra_link_flags.append(link_flag)
    
    for compile_flag in compiler.extra_compile_flags:
      if compile_flag not in self.extra_compile_flags:
        self.extra_compile_flags.append(compile_flag)
  
    return compiled.name
dataset/ETHPy150Open iskandr/parakeet/parakeet/c_backend/fn_compiler.py/FnCompiler.get_fn_name/swapped operands of `not in`