When operator delete[] receives a sub-expression of array type, it destroys the array correctly. Even if it's multi-dimensional, simply because in this case it's an array of array-type objects and destroying such array would mean properly destroying each object, where the object itself is an array, so properly destroying it means destroying its objects, etc.
In this case the AST is saying that the destroyed type is an array type - and we weren't prepared for that.
For now there's no actual calling multiple destructors; at least we're trying not to crash.