code: def ANNASSIGN(self, node):
          
          if node.value:
              # Only bind the *target* if the assignment has value.
              # Otherwise it's not really ast.Store and shouldn't silence
              # UndefinedLocal warnings.
              self.handleNode(node.target, node)
          if not isinstance(self.scope, FunctionScope):
              self.deferHandleNode(node.annotation, node)
          if node.value:
              # If the assignment has value, handle the *value*...
              if isinstance(self.scope, ModuleScope):
                  # ...later (if module scope).
                  self.deferHandleNode(node.value, node)
              else:
                  # ...now.
                  self.handleNode(node.value, node)
docs: Annotated assignments don't have annotations evaluated on function
          scope, hence the custom implementation. Compared to the pyflakes
          version, we defer evaluation of the annotations (and values on
          module level).