throw meaningful errors if expression is unsupported