Error propagation of UnaExp::semantic and BinExp::semantic
optimize UnaExp and BinExp::semantic call
Error propagation of typeCombine
optimize typeCombine call
Directly return the result of incompatibleTypes
Make `UnaExp::semantic` and `BinExp::semantic` abstract.
Merge pull request #3327 from 9rnsr/fix_error

More error propagation