[
https://issues.apache.org/jira/browse/FLEX-34993?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alex Harui reassigned FLEX-34993:
---------------------------------
Assignee: Alex Harui
> implicit super() constructor call receives subclass constructor params
> ----------------------------------------------------------------------
>
> Key: FLEX-34993
> URL: https://issues.apache.org/jira/browse/FLEX-34993
> Project: Apache Flex
> Issue Type: Bug
> Components: Falcon, FlexJS
> Affects Versions: Apache FlexJS 0.5.0
> Reporter: Andy Dufilie
> Assignee: Alex Harui
> Priority: Minor
>
> AS input (2 files):
> {code}
> package foo.bar {
> public class MySuperClass {
> public function MySuperClass(superParam1:String = "Hello",
> superParam2:String = "World")
> {
> this.superString = superParam1 + superParam2;
> }
> public var superString:String;
> }
> }
> package foo.bar {
> public class MyExtendingClass extends MySuperClass {
> public function MyExtendingClass(extendingParam:String)
> {
> this.myExtendingString = extendingParam;
> }
> public var myExtendingString:String;
> }
> }
> {code}
> JS output (relevant part only):
> {code}
> /**
> * @constructor
> * @extends {foo.bar.MySuperClass}
> * @param {string} extendingParam
> */
> foo.bar.MyExtendingClass = function(extendingParam) {
> foo.bar.MyExtendingClass.base(this, 'constructor', extendingParam);
> this.myExtendingString = extendingParam;
> };
> goog.inherits(foo.bar.MyExtendingClass, foo.bar.MySuperClass);
> {code}
> The correct behavior would be to implicitly call the default constructor (no
> params):
> {code}
> foo.bar.MyExtendingClass.base(this, 'constructor');
> {code}
> The current workaround is to explicitly call super() with no params in the
> subclass.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)