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?

Yes, please. Thank you.

Done, RemObjects Elements with Water - 13.0.0.3108.exe.