[ https://issues.apache.org/jira/browse/FLEX-33182?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13443653#comment-13443653 ]
Michael Grove commented on FLEX-33182: -------------------------------------- Switching the base class to be the following had no effect. package publicoverridevsoverridepublic { public class BaseClassNotBindable { private var _var1:String; private var _var2:String; public function set var1(value:String):void { this._var1 = value; } public function get var1():String { return _var1; } public function set var2(value:String):void { this._var2 = value; } public function get var2():String { return _var2; } } } > 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