|
|
|
The most recently attached (Nov 15) patch and other files are the most recent fixes to this problem. Enum operations now implement the ECMA standard.
http://www.ecma-international.org/publications/standards/Ecma-334.htm The only caveat is that all enums defined in boo are of type Int32, while enums defined outside of boo can be any integer type. Therefore, when boo supports inspecting the underlying type of the enums, the standard can be more strictly adhered to (in the case of enum addition and subtraction). |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Also, while (unary ~) | & return an appropriate Enum, + -, etc return type Int32. This is the incorrect return type (it should be an enum, even if it is an invalid value for that enum). This will be my next objective.
I've posted the unified diff and the two current source files I've modified. I still need to understand more on how the expression type is determined, and how to make the appropriate modification.