DynamicArrayHandle prunes invalid Value/Storage set before cast and call
By pruning the invalid combinations first we reduce the amount of work the compiler has to do. Additionally it makes for smaller callstacks when the compiler errors out during a CastAndCall.