if (foo := 0):
    pass

if (foo := 1):
    pass

if (y := 5 + 5):
    pass

y = (x := 0)

y += (x := 0)

(y := 5 + 5)

test: int = (test2 := 2)

a, b = (test := (1, 2))

# see also https://github.com/psf/black/issues/2139
assert (foo := 42 - 12)

foo(x=(y := f(x)))


def foo(answer=(p := 42)):
    ...


def foo2(answer: (p := 42) = 5):
    ...


lambda: (x := 1)

a[(x := 12)]
a[:(x := 13)]

# we don't touch expressions in f-strings but if we do one day, don't break 'em
f'{(x:=10)}'


def a():
    return (x := 3)
    await (b := 1)
    yield (a := 2)
    raise (c := 3)

def this_is_so_dumb() -> (please := no):
    pass


# output
if foo := 0:
    pass

if foo := 1:
    pass

if y := 5 + 5:
    pass

y = (x := 0)

y += (x := 0)

(y := 5 + 5)

test: int = (test2 := 2)

a, b = (test := (1, 2))

# see also https://github.com/psf/black/issues/2139
assert (foo := 42 - 12)

foo(x=(y := f(x)))


def foo(answer=(p := 42)):
    ...


def foo2(answer: (p := 42) = 5):
    ...


lambda: (x := 1)

a[(x := 12)]
a[:(x := 13)]

# we don't touch expressions in f-strings but if we do one day, don't break 'em
f"{(x:=10)}"


def a():
    return (x := 3)
    await (b := 1)
    yield (a := 2)
    raise (c := 3)


def this_is_so_dumb() -> (please := no):
    pass

