After further research, I think there is a problem in the order of checks performed by the compiler.
If I change the code by making value member Shared , I get the correct result: Error BC30059
Constant expression required.
Since nothing but constants can be placed in the default value Optional , check above BC30059 (constant expression is mandatory.) Should be explicitly done "earlier" than checking for BC30369 (shown in the question).
I created in Microsoft Connect .
source share