works the same as for operators. Also includes some refactoring of render error reporting code to use ReportList.