@@ -1432,16 +1432,16 @@ async def identity_async(val: int) -> int:
14321432F = TypeVar("F", bound=Callable[..., Any])
14331433
14341434def wrap(fn: F) -> F:
1435- @wraps(fn)
1436- def wrapper(*args) -> Any:
1437- return fn(*args) + fn(*args)
1435+ if is_coroutine(fn):
1436+ @wraps(fn)
1437+ async def wrapper_async(*args) -> Any:
1438+ return await fn(*args) + await fn(*args)
14381439
1439- return cast(F, wrapper )
1440+ return cast(F, wrapper_async )
14401441
1441- def wrap_async(fn: F) -> F:
14421442 @wraps(fn)
1443- async def wrapper(*args) -> Any:
1444- return await fn(*args) + await fn(*args)
1443+ def wrapper(*args) -> Any:
1444+ return fn(*args) + fn(*args)
14451445
14461446 return cast(F, wrapper)
14471447
@@ -1453,11 +1453,11 @@ def wrapped(val: int) -> int:
14531453def wrapped2(val: int) -> int:
14541454 return val * 2
14551455
1456- @wrap_async
1456+ @wrap
14571457async def wrapped_async(val: int) -> int:
14581458 return val
14591459
1460- @wrap_async
1460+ @wrap
14611461async def wrapped2_async(val: int) -> int:
14621462 return val * 2
14631463
@@ -1472,7 +1472,7 @@ class T:
14721472 def returns_two(self) -> int:
14731473 return 1
14741474
1475- @wrap_async
1475+ @wrap
14761476 async def returns_two_async(self) -> int:
14771477 return 1
14781478
@@ -1569,7 +1569,7 @@ def test_nested() -> None:
15691569 def nested_wrapped() -> int:
15701570 return 2
15711571
1572- @wrap_async
1572+ @wrap
15731573 async def nested_wrapped_async() -> int:
15741574 return 2
15751575
0 commit comments