code: def resolve(self, key):
          
          if self._legacy_resolve_mode:
              rv = resolve_or_missing(self, key)
          else:
              rv = self.resolve_or_missing(key)
          if rv is missing:
              return self.environment.undefined(name=key)
          return rv
docs: Looks up a variable like `__getitem__` or `get` but returns an
          :class:`Undefined` object with the name of the name looked up.