ruff/crates/red_knot_python_semantic/resources/mdtest/call/function.md
Alex d77480768d
[red-knot] Port type inference tests to new test framework (#13719)
## Summary

Porting infer tests to new markdown tests framework.

Link to the corresponding issue: #13696

---------

Co-authored-by: Carl Meyer <carl@astral.sh>
2024-10-15 11:23:46 -07:00

774 B

Call expression

Simple

def get_int() -> int:
    return 42

x = get_int()
reveal_type(x)  # revealed: int

Async

async def get_int_async() -> int:
    return 42

x = get_int_async()

# TODO: we don't yet support `types.CoroutineType`, should be generic `Coroutine[Any, Any, int]`
reveal_type(x)  # revealed: @Todo

Decorated

from typing import Callable

def foo() -> int:
    return 42

def decorator(func) -> Callable[[], int]:
    return foo

@decorator
def bar() -> str:
    return 'bar'

x = bar()

# TODO: should reveal `int`, as the decorator replaces `bar` with `foo`
reveal_type(x)  # revealed: @Todo

Invalid callable

nonsense = 123
x = nonsense()  # error: "Object of type `Literal[123]` is not callable"