def shape(self):
        """Shape of :py:`self`.

        Returns
        -------
        :ref:`shape-like object <lang-shapelike>`
        """
        # TODO: while this is documented as returning a shape-like object, in practice we
        # guarantee that this is a concrete Shape. it's unclear whether we will ever want to
        # return a shape-catable object here, but there is not much harm in stating a relaxed
        # contract, as it can always be tightened later, but not vice-versa
        pass # :nocov:
Shape of :py:`self`.

        Returns
        -------
        :ref:`shape-like object <lang-shapelike>`
        
amaranth/hdl/_ast.py