A field and property with the same name cause the field to become the backing field for the property. This provides a way to override how the default private field that would normally be created, however there are a number of anomalies:
- the initial value, if supplied as part of the property is ignored:
- The @PackageScope AST transform on the backing field used in conjunction with a property doesn't yield a property at all.
- the semantics for copying of annotations onto the field and getters/setters is unclear
- the type of the field is currently used as the type for the getter return type and setter param type, ignoring the type, if given, for the property