Types (i.e., classes, value types, and interfaces) can be defined at the top-level of a module:
Decl ::= |
---|
.class ClassHeader '{' ClassMember* '}' |
| … |
The logical metadata table created by this declaration is specified in §II.22.37.
[Rationale: For historical reasons, many of the syntactic categories used for defining types incorrectly use “class" instead of "type" in their name. All classes are types, but "types" is a broader term encompassing value types, and interfaces as well. end rationale]