MSVC fails to compile with the changes made in #10742
The problem is enum types were changed to scoped (enum class) but in some places enum as an unscoped is used.
This is a very simple fix and I've tested it.
Edit: Had to remove enum altogether - enum class doesn't compile on clang.