code: def do_validate(self):
      if not isinstance(self.base, SearchStrategy):
          raise InvalidArgument(
              "Expected base to be SearchStrategy but got %r"
              % (self.base,)
          )
      extended = self.extend(self.limited_base)
      if not isinstance(extended, SearchStrategy):
          raise InvalidArgument(
              "Expected extend(%r) to be a SearchStrategy but got %r"
              % (self.limited_base, extended)
          )
      self.limited_base.validate()
      self.extend(self.limited_base).validate()
  
imports: from __future__ import absolute_import, division, print_function
  from contextlib import contextmanager
  from hypothesis.errors import InvalidArgument
  from hypothesis.internal.lazyformat import lazyformat
  from hypothesis.internal.reflection import get_pretty_function_description
  from hypothesis.strategies._internal.strategies import OneOfStrategy, SearchStrategy
label_desc: Use image node_id 3 for calling the RecursiveStrategy obj's underlying member method code with example usage: obj.do_validate() without return types