The common pattern in the source is to use Debug.Assert() here in lieu of exception throwing. While this is very good defensive practice, this inner code is well designed to behave itself and outside use is restricted, meaning we know exactly what will happen when execution hits this spot. We don't need to defend against ourselves.