class Foo:
    """buzz"""

    pass


if foo:
    """foo"""
    pass


def multi_statement() -> None:
    """This is a function."""
    pass; print("hello")


if foo:
    pass
else:
    """bar"""
    pass


while True:
    pass
else:
    """bar"""
    pass


for _ in range(10):
    pass
else:
    """bar"""
    pass


async for _ in range(10):
    pass
else:
    """bar"""
    pass


def foo() -> None:
    """
    buzz
    """

    pass


async def foo():
    """
    buzz
    """

    pass


try:
    """
    buzz
    """
    pass
except ValueError:
    pass


try:
    bar()
except ValueError:
    """bar"""
    pass


for _ in range(10):
    """buzz"""
    pass

async for _ in range(10):
    """buzz"""
    pass

while cond:
    """buzz"""
    pass


with bar:
    """buzz"""
    pass

async with bar:
    """buzz"""
    pass


def foo() -> None:
    """buzz"""
    pass  # bar


class Foo:
    # bar
    pass


if foo:
    # foo
    pass


class Error(Exception):
    pass


try:
    foo()
except NetworkError:
    pass


def foo() -> None:
    pass


def foo():
    print("foo")
    pass


def foo():
    """A docstring."""
    print("foo")
    pass


for i in range(10):
    pass
    pass

for i in range(10):
    pass

    pass

for i in range(10):
    pass  # comment
    pass


def foo():
    print("foo")
    ...


def foo():
    """A docstring."""
    print("foo")
    ...


for i in range(10):
    ...
    ...

for i in range(10):
    ...

    ...

for i in range(10):
    ...  # comment
    ...

for i in range(10):
    ...
    pass

from typing import Protocol


class Repro(Protocol):
    def func(self) -> str:
        """Docstring"""
        ...

    def impl(self) -> str:
        """Docstring"""
        return self.func()


import abc


class Repro:
    @abc.abstractmethod
    def func(self) -> str:
        """Docstring"""
        ...

    def impl(self) -> str:
        """Docstring"""
        return self.func()

    def stub(self) -> str:
        """Docstring"""
        ...


class Repro(Protocol[int]):
    def func(self) -> str:
        """Docstring"""
        ...

    def impl(self) -> str:
        """Docstring"""
        return self.func()


class Repro[int](Protocol):
    def func(self) -> str:
        """Docstring"""
        ...

    def impl(self) -> str:
        """Docstring"""
        return self.func()


import typing

if typing.TYPE_CHECKING:
    def contains_meaningful_ellipsis() -> list[int]:
        """Allow this in a TYPE_CHECKING block."""
        ...

# https://github.com/astral-sh/ruff/issues/12616
class PotentialDocstring1:
    pass
    """
    Lorem ipsum dolor sit amet.
    """


class PotentialDocstring2:
    ...
    'Lorem ipsum dolor sit amet.'
