don't crash on classes without parameters
don't discard an expectation if another with same text exists
add tests for all diagnostics sema can give