Basic classes are handled by the compiler differently from non-basic ones. In other words, code generated for these classes is different. Adding a feature to such a class usually involves changes to the compiler. This explains why not everything works as expected. In theory, it might be possible to change code generation (including both classic and .NET) and to support arbitrary code in basic classes. However, this functionality is rather niche and is not needed by most customers. Therefore, at the moment there are no plans to extend the compiler to address this limitation.