[ 
https://issues.apache.org/jira/browse/FLEX-33182?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13443355#comment-13443355
 ] 

Alex Harui commented on FLEX-33182:
-----------------------------------

Sorry, missed the [Bindable] metadata that transforms the vars into get/set 
pairs and generates the backing variable with the random number to prevent 
collisions.

                
> override public in subclass results in public write only property. public 
> override works as expected
> ----------------------------------------------------------------------------------------------------
>
>                 Key: FLEX-33182
>                 URL: https://issues.apache.org/jira/browse/FLEX-33182
>             Project: Apache Flex
>          Issue Type: Bug
>    Affects Versions: Adobe Flex SDK 4.6 (Release)
>         Environment: Flash Builder 4.6
>            Reporter: Michael Grove
>         Attachments: test.zip
>
>
> I'll upload a zip of classes and test cases for flexunit that demonstrate 
> this problem.  Here's the gist:
> We’ve found that the list of accessors is different if a derived class 
> overrides a getter/setter with “public override” vs. “override public”.  
> “override public” introduces an additional write only public property as 
> shown in both describeType output and in Flash Builder.
> Here are some simple classes that demonstrate the problem, text continued 
> below.
> package publicoverridevsoverridepublic
> {
>        [Bindable]
>        public class BaseClass
>        {
>               public var var1:String;
>               public var var2:String;
>        }
> }
> package publicoverridevsoverridepublic
> {
>        [Bindable]
>        public class SubClassOverridePublic extends BaseClass
>        {
>               override public function set var1(value:String):void
>               {
>                      super.var1 = value;
>               }
>               override public function get var1():String
>               {
>                      return super.var1;
>               }
>        }
> }
> package publicoverridevsoverridepublic
> {
>        [Bindable]
>        public class SubClassPublicOverride extends BaseClass
>        {
>               public override function set var1(value:String):void
>               {
>                      super.var1 = value;
>               }
>               public override function get var1():String
>               {
>                      return super.var1;
>               }
>        }
> }
> The attributes of SubClassPublicOverride in Flash Builder include a  
> _3612138var1 property.  It’s a private property that according to Flash 
> Builder is write only (only includes a setter).  I’m not sure what the 
> purpose of this property is, or more generally any of the private properties 
> I’ve seen in Flash Builder with numeric prefixes like this.  And I’m not sure 
> why it is believed only to have a setter.  But as it is private, it is not 
> included in the results from describeType().
> The attributes of SubClassOverridePublic in Flash Builder have the same 
> _3612138var1 property but this time it is public and write only.
> I've never heard of any language treating "public override" and "override 
> public" as semantically different and assume this must be a bug.
> Note that some Flex formatters out there are preconfigured to favor “override 
> public” to “public override” (that’s actually what broke us – formatting the 
> file).  If you’re not using describeType you probably don’t care.  But it’d 
> be interesting to know what else might be different between “override public” 
> and “public override”.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to