Indexing TypedDict with a non-literal variable

I don’t think that option 1 would resolve this false positive, because key is already inferred as a Literal["b"], and o[key] is inferred as Never (i.e. assignable to anything):

class A(TypedDict):
    a: int

class B(A):
    b: str


def fn(o: A) -> int:
    key = "b"
    if key in o:
        reveal_type(key)  # Type of "key" is "Literal['b']"
        reveal_type(o[key])  # Type of "o[key]" is "Never"
        return o[key]
    return o["a"]