# Buggy code
def py__annotations__(self):
    obj = node_classes.Dict(parent=self._instance)

    if not self._instance.returns:
        returns = None
    else:
        returns = self._instance.returns

    args = self._instance.args
    pair_annotations = itertools.chain(
        six.moves.zip(args.args, args.annotations),
        six.moves.zip(args.kwonlyargs, args.kwonlyargs_annotations),
    )

    annotations = {
        arg.name: annotation for (arg, annotation) in pair_annotations if annotation
    }
    if args.varargannotation:
        annotations[args.vararg] = args.varargannotation
    if args.kwargannotation:
        annotations[args.kwarg] = args.kwargannotation
    if returns:
        annotations["return"] = returns

    items = [
        (node_classes.Const(key, parent=obj), value)
        for (key, value) in annotations.items()
    ]

    obj.postinit(items)
    return obj


# Traceback (TypeError)
Traceback (most recent call last):
File "/home/dmytro/.virtualenvs/tmp-e8ba418cce8a54b3/bin/pylint", line 11, in <module>
sys.exit(run_pylint())
File "/home/dmytro/.virtualenvs/tmp-e8ba418cce8a54b3/lib/python3.6/site-packages/pylint/__init__.py", line 16, in run_pylint
Run(sys.argv[1:])
File "/home/dmytro/.virtualenvs/tmp-e8ba418cce8a54b3/lib/python3.6/site-packages/pylint/lint.py", line 1347, in __init__
linter.check(args)
File "/home/dmytro/.virtualenvs/tmp-e8ba418cce8a54b3/lib/python3.6/site-packages/pylint/lint.py", line 768, in check
self._do_check(files_or_modules)
File "/home/dmytro/.virtualenvs/tmp-e8ba418cce8a54b3/lib/python3.6/site-packages/pylint/lint.py", line 901, in _do_check
self.check_astroid_module(ast_node, walker, rawcheckers, tokencheckers)
File "/home/dmytro/.virtualenvs/tmp-e8ba418cce8a54b3/lib/python3.6/site-packages/pylint/lint.py", line 980, in check_astroid_module
walker.walk(ast_node)
File "/home/dmytro/.virtualenvs/tmp-e8ba418cce8a54b3/lib/python3.6/site-packages/pylint/utils.py", line 1014, in walk
self.walk(child)
File "/home/dmytro/.virtualenvs/tmp-e8ba418cce8a54b3/lib/python3.6/site-packages/pylint/utils.py", line 1014, in walk
self.walk(child)
File "/home/dmytro/.virtualenvs/tmp-e8ba418cce8a54b3/lib/python3.6/site-packages/pylint/utils.py", line 1014, in walk
self.walk(child)
File "/home/dmytro/.virtualenvs/tmp-e8ba418cce8a54b3/lib/python3.6/site-packages/pylint/utils.py", line 1011, in walk
cb(astroid)
File "/home/dmytro/.virtualenvs/tmp-e8ba418cce8a54b3/lib/python3.6/site-packages/pylint/checkers/typecheck.py", line 714, in visit_attribute
if not [n for n in owner.getattr(node.attrname)
File "/home/dmytro/.virtualenvs/tmp-e8ba418cce8a54b3/lib/python3.6/site-packages/astroid/bases.py", line 298, in getattr
return self._proxied.getattr(name, context)
File "/home/dmytro/.virtualenvs/tmp-e8ba418cce8a54b3/lib/python3.6/site-packages/astroid/scoped_nodes.py", line 1438, in getattr
return [self.special_attributes.lookup(name)]
File "/home/dmytro/.virtualenvs/tmp-e8ba418cce8a54b3/lib/python3.6/site-packages/astroid/interpreter/objectmodel.py", line 110, in lookup
return getattr(self, "py" + name)
File "/home/dmytro/.virtualenvs/tmp-e8ba418cce8a54b3/lib/python3.6/site-packages/astroid/interpreter/objectmodel.py", line 237, in py__annotations__
six.moves.zip(args.args, args.annotations),
TypeError: zip argument #1 must support iteration

# Fixed code
def py__annotations__(self):
    obj = node_classes.Dict(parent=self._instance)

    if not self._instance.returns:
        returns = None
    else:
        returns = self._instance.returns

    args = self._instance.args
    pair_annotations = itertools.chain(
        six.moves.zip(args.args or [], args.annotations),
        six.moves.zip(args.kwonlyargs, args.kwonlyargs_annotations),
    )

    annotations = {
        arg.name: annotation for (arg, annotation) in pair_annotations if annotation
    }
    if args.varargannotation:
        annotations[args.vararg] = args.varargannotation
    if args.kwargannotation:
        annotations[args.kwarg] = args.kwargannotation
    if returns:
        annotations["return"] = returns

    items = [
        (node_classes.Const(key, parent=obj), value)
        for (key, value) in annotations.items()
    ]

    obj.postinit(items)
    return obj