variables now remain visible if compiler has an error