Agreed. It should not do automatic conversions.

Now that you mention it, I’ve been getting Bindable warnings on those classes 
for years. Everything worked, so I ignored it, but I would not be surprised if 
the warnings were related to this issue.

Thanks for looking into this.

Harbs

On Nov 22, 2016, at 7:48 AM, 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