class_docstr: A strategy for lists which takes a strategy for its elements and the
  allowed lengths, and generates lists with the correct size and contents.
class_docstr_tok: ["A","strategy","for","lists","which","takes","a","strategy","for","its","elements","and","the","allowed","lengths",",","and","generates","lists","with","the","correct","size","and","contents","."]
code: def do_validate(self):
      self.element_strategy.validate()
      if self.is_empty:
          raise InvalidArgument(
              "Cannot create non-empty lists with elements drawn from "
              f"strategy {self.element_strategy!r} because it has no values."
          )
      if self.element_strategy.is_empty and 0 < self.max_size < float(
          "inf"
      ):
          raise InvalidArgument(
              f"Cannot create a collection of max_size={self.max_size!r}, "
              "because no elements can be drawn from the element strategy "
              f"{self.element_strategy!r}"
          )
  
imports: import copy
  from typing import Any, Iterable, Tuple, overload
  from hypothesis.errors import InvalidArgument
  from hypothesis.internal.conjecture import utils
  from hypothesis.internal.conjecture.junkdrawer import LazySequenceCopy
  from hypothesis.internal.conjecture.utils import combine_labels
  from hypothesis.internal.reflection import is_identity_function
  from hypothesis.strategies._internal.strategies import T3, T4, T5, Ex, MappedSearchStrategy, SearchStrategy, T, check_strategy, filter_not_satisfied
  from hypothesis.strategies._internal.utils import cacheable, defines_strategy
label_desc: Use image node_id 3 for calling the ListStrategy obj's underlying member method code with example usage: obj.do_validate() without return types