def _eval_forward_ref(val: str, ctx: Context, is_typeddict: bool=False) -> Value:
    try:
        tree = ast.parse(val, mode='eval')
    except SyntaxError:
        ctx.show_error(f'Syntax error in type annotation: {val}')
        return AnyValue(AnySource.error)
    else:
        return _type_from_ast(tree.body, ctx, is_typeddict=is_typeddict)
def _eval_forward_ref(val: str, ctx: Context, is_typeddict: bool=False) -> Value:
    try:
        tree = ast.parse(val, mode='eval')
    except SyntaxError:
        ctx.show_error(f'Syntax error in type annotation: {val}')
        return AnyValue(AnySource.error)
    else:
        return _type_from_ast(tree.body, ctx, is_typeddict=is_typeddict)