This is a dump of a simple class which is valid in structure but is overall
invalid. That being said, the system should still have no trouble parsing and
dumping it.

The salient bit of parsing tested here is that the class has a single
simple method with no attributes and with every access flag turned on
(so that the names can be verified in debugging output).
