void () { runWithLanguageLevel( LanguageLevel.getLatest(), () -> doTestByText(""" from typing import TypedDict class Movie(TypedDict): name: str year: int class NotPoint(TypedDict): x: int y: str class Point(TypedDict): x: int y: int p1: Point = {'x': 0, 'y': <warning descr="Expected type 'int', got 'str' instead">'a'</warning>} p2: NotPoint = {'x': <warning descr="Expected type 'int', got 'str' instead">'x'</warning>, 'y': <warning descr="Expected type 'str', got 'int' instead">42</warning>} p3: Point = <warning descr="Expected type 'Point', got 'NotPoint' instead">p2</warning> p4: Point = <warning descr="TypedDict 'Point' has missing keys: 'x', 'y'">{}</warning> p5: Point = {'x': 0, 'y': 0, <warning descr="Extra key 'z' for TypedDict 'Point'">'z': 123</warning>, <warning descr="Extra key 'k' for TypedDict 'Point'">'k': 6</warning>} p6: Point = <warning descr="TypedDict 'Point' has missing key: 'x'">{'y': 123}</warning> p7: Movie = dict(name='Alien', year=1979) p8: Movie = dict(name='Alien', year=<warning descr="Expected type 'int', got 'str' instead">'1979'</warning>) p9: Movie = dict(name='Alien', year=1979, <warning descr="Extra key 'director' for TypedDict 'Movie'">director='Ridley Scott'</warning>) p10 = {'x': 'x', 'y': 42, 'z': 42} p11: Point = <warning descr="Expected type 'Point', got 'dict[str, str | int]' instead">p10</warning>""" )); }