After some investigation, it appears that for classes with [Bindable], with MXMLC you could get away with having a public getter and private setter. But that is because the MXMLC compiler converts the setter to a public setter, defeating the whole point of making a private setter.
So, I'd like to get ideas on what Falcon should do. Currently Falcon reports an error like MXMLC does when a class isn't [Bindable] but has a public getter and private setter. Should Falcon also convert the setter to public like MXMLC does so existing code will continue to run even though there is a chance you have a bug in your code where you are accidentally setting the property from outside the class? Seems like it is a bug that MXMLC converts the setter to public and so Falcon should not replicate that bug. Thoughts? -Alex On 11/21/16, 12:22 AM, "Harbs" <harbs.li...@gmail.com> wrote: >I changed it to this.regular = font and I’m still getting the same error. > >On Nov 21, 2016, at 10:18 AM, Harbs <harbs.li...@gmail.com> wrote: > >> Huh. >> >> I just did a code review, and it looks like “this” was removed from the >>FlexJS code a number of months ago. Not sure why… >> >> On Nov 21, 2016, at 9:41 AM, Alex Harui <aha...@adobe.com> wrote: >> >>> Please post a small test case I can compile with MXMLC. >>> >>> -Alex >>> >>> On 11/20/16, 11:37 PM, "Harbs" <harbs.li...@gmail.com> wrote: >>> >>>> Yes. This code is about 4 or 5 years old and I’ve had no errors to >>>>date. >>>> >>>> On Nov 21, 2016, at 9:35 AM, Alex Harui <aha...@adobe.com> wrote: >>>> >>>>> Are you sure MXMLC compiles your code without error? MXMLC reported >>>>>the >>>>> "read-only" error for me. >>>>> >>>>> -Alex >>>>> >>>>> On 11/20/16, 10:44 PM, "Harbs" <harbs.li...@gmail.com> wrote: >>>>> >>>>>> The latest Falcon breaks valid existing code patterns. >>>>>> >>>>>> I know there was a recent discussion on related, but I can’t find it >>>>>> right now. >>>>>> >>>>>> I have some code which I migrated from a Flash app: >>>>>> >>>>>> private var _regular:FontVO; >>>>>> public function get regular():FontVO >>>>>> { >>>>>> return _regular; >>>>>> } >>>>>> private function set regular(value:FontVO):void >>>>>> { >>>>>> _regular = value; >>>>>> } >>>>>> >>>>>> >>>>>> Somewhere else in the same class I have the following: >>>>>> >>>>>> if(style.toLowerCase() == "regular" || >>>>>> style.toLowerCase() == >>>>>> "normal"){ >>>>>> regular = font; >>>>>> } >>>>>> >>>>>> This code compiled and worked correctly in Flash as well as in >>>>>>Falcon >>>>>> until today. I’m now getting an error: >>>>>> Property regular is read-only. >>>>>> >>>>>> regular = font; >>>>>> ^ >>>>>> >>>>>> This code is in the same class, but the compiler is not recognizing >>>>>>the >>>>>> private setter. >>>>>> >>>>>> Thanks, >>>>>> Harbs >>>>>> >>>>> >>>> >>> >> >