A bit of JIT type system code motion
Summary:
This diff cleans up a few things in jit::ArraySpec and jit::Type:
- For constant dicts, we were constructing ArraySpec(DictKind), which is not useful. Added logic in Type::arrSpec to avoid it, and a checkInvariants method to ensure that we don't do it accidentally. checkInvariants() obviates other checks on the ArrayKind constructor.
- I got bitten by static initialization order issues with ArraySpec::Top and ArraySpec::Bottom. Changed these to be constexpr methods.
- jit/type.cpp was redefining types instead of using the TypeNames namespace we created for this purpose.
Reviewed By: jjgriego
Differential Revision:
D19745267
fbshipit-source-id:
d649eb86e98277c80dc5dc18e2258dbb59b9fa7c