Perhaps Falcon should have a specific compiler error or warning that says
that setters must be public when using [Bindable]. I assume that the
current error is kind of generic, so something more specific would help
make it clear what's wrong and how to fix it.

- Josh

On Mon, Nov 21, 2016 at 9:48 PM, Alex Harui <aha...@adobe.com> wrote:

> 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
> >>>>>>
> >>>>>
> >>>>
> >>>
> >>
> >
>
>

Reply via email to