'Looks up a variable like `__getitem__` or `get` but returns an
:class:`Undefined` object with the name of the name looked up.'

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
