diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -72,6 +72,15 @@ stringutil, ) +if not globals(): + from typing import ( + Any, + Dict, + ) + + for t in (Any, Dict): + assert t + table = {} table.update(debugcommandsmod.command._table) @@ -2967,7 +2976,7 @@ if opts.get(b'base'): basectx = scmutil.revsingle(repo, opts[b'base'], None) # a dict of data to be stored in state file - statedata = {} + statedata = {} # type: Dict[bytes, Any] # list of new nodes created by ongoing graft statedata[b'newnodes'] = [] @@ -3237,7 +3246,8 @@ ) # checking that newnodes exist because old state files won't have it elif statedata.get(b'newnodes') is not None: - statedata[b'newnodes'].append(node) + l = statedata[b'newnodes'] + l.append(node) # pytype: disable=attribute-error # remove state when we complete successfully if not opts.get(b'dry_run'): @@ -4725,6 +4735,10 @@ if opts.get(b'copies'): endrev = None if revs: + # If we're here, we know revs is a smartset.baseset + # because we're not possibly in the linerange mode. Sadly, + # pytype isn't convinced, so we have to suppress the + # warning about list not having a max() method. endrev = revs.max() + 1 getcopies = scmutil.getcopiesfn(repo, endrev=endrev) @@ -7175,11 +7189,13 @@ t = [] if incoming: t.append(_(b'1 or more incoming')) - o = outgoing.missing + o = outgoing.missing # pytype: disable=attribute-error if o: t.append(_(b'%d outgoing') % len(o)) other = dother or sother - if b'bookmarks' in other.listkeys(b'namespaces'): + if b'bookmarks' in other.listkeys( # pytype: disable=attribute-error + b'namespaces' + ): counts = bookmarks.summary(repo, other) if counts[0] > 0: t.append(_(b'%d incoming bookmarks') % counts[0])