Dimension problem since 13.0.0.3101

Hi

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 :

(E1) identifier expected, got “dimension”:

Is there any chance to restore compatibility with the previous stable 13.0.0.3095?

Regards

Artur

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.

Looks like we’ll be able to do this.

Done. You want an interim build?