dlax added a comment.
dlax added a subscriber: yuja.

  In D7296#109683 <https://phab.mercurial-scm.org/D7296#109683>, @durin42 wrote:
  
  > In D7296#109672 <https://phab.mercurial-scm.org/D7296#109672>, @dlax wrote:
  >
  >> Sorry, still not ok afaict :/
  >
  > So, I tried fixing this and it actually made things worse? dagparser.py no 
longer typechecks if I correct the syntax? Try the pytype invocation from the 
test at the end of the series and you'll see what I mean.
  
  Ok, trying `pytype mercurial/dagparser.py` I get a couple of those errors:
  
    File ".../mercurial/dagparser.py", line 172, in parsedag: Function 
bytestr.__init__ was called with the wrong arguments [wrong-arg-types]
      Expected: (self, ints: Iterable[int])
      Actually passed: (self, ints: str)
  
  My point was that we need to keep "mercurial/pycompat.py" passing pytype 
before considering modules it depends on. Once the missing `type: ` is added 
and bytestr <-> _bytestr trick applied, it's okay but the error in dagparser.py 
persists...
  Looking closer at the error above, it mentions `bytestr.__init__`, not 
`__new__` (and there is in fact no type annotation for `__new__` in typeshed 
<https://github.com/python/typeshed/blob/34d68ab0a2117a08fa221d3a10884f35cacf2cdc/stdlib/2and3/builtins.pyi#L559>).
 So I suspect the "Callable" trick is not enough and we'd need a workaround 
similar to da925257 
<https://phab.mercurial-scm.org/rHGda925257a39e5797e5b2e35ce1d68e923ea8ddf2> by 
@yuja .

INLINE COMMENTS

> pycompat.py:305
>  
> +    bytestr = _bytestr  # Callable[[Union[bytes, str]], bytestr]
> +

Now the `type: ` is missing, so the comment is ignored.

Adding it, `pytype mercurial/pycompat.py` gives:

  mercurial/pycompat.py", line 305, in <module>: Invalid type comment: 
Callable[[Union[bytes, str]], bytestr] [invalid-type-comment]
    Name 'bytestr' is not defined

hence the kind of trick I suggested in my first comment on this line.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7296/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D7296

To: durin42, #hg-reviewers, indygreg, dlax
Cc: yuja, mjpieters, dlax, indygreg, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to