This release broke out projects (again) by introducing a reserved word for a dimension. Because we develop a GIS library across different platforms, “dimension” is a very common term in the code. We now have 500 errors in .NET and 800 in Java projects. In addition, Java has a Dimension class in java.awt library and the new compiler fails for all our Swing based components.
We really don’t want to alter code with & for every property and variable.
Why are such language modifications not declared with a _ prefix?
Why are some reserved words highlighted in blue but don’t break the compiler with :
Because Oxygene is not C++, and using _ for top-level language keywords is ugly AF and not the Oxygene way. Oxygene has always evolved, and has always introduced new keywords where needed. We never do that lightly, but I personally believe the new Units feature is a huge net positive for the language and worth it.
If we had started with the philosophy of using _ 23 years ago, half of Oxygene’s keywords would start with _ ,now.
Note that you only need to escape it with & if it’s used standalone, not e.g. for myClass.Dimension or java.swing.Dimension (or whatever)
I’m afraid dimension is a keyword and here to stay. It is for Units of Measure. I will review whether we can safely demote it to second-level without breaking its use case or introducing ambiguity.