fix function parameter line info and some error messages
support `typedef ID names` and add more tests