title: Why does mypy say I have too many arguments
body: <p>I've got a class which has a method that creates instances of the class.</p>
  
  <pre><code>class Bar:
      @classmethod
      def create(cls, foo: int):
          return cls(foo)
  
      def __init__(self, foo: int) -&gt; None:
          pass
  </code></pre>
  
  <p>When I run mypy against it, it says <code>mypytest.py:4: error: Too many arguments for "Bar"</code></p>
  
  <p>It seems like a bug to me, because this works fine</p>
  
  <pre><code>class Bar:
      @classmethod
      def create(cls, foo):
          return cls(foo)
  
      def __init__(self, foo: int) -&gt; None:
          pass
  </code></pre>
  
  <p>I don't understand why a class method which defines the type of a parameter should break the creation of an instance. Am I missing something?</p>