add more tests for semantic errors