support cast expression