Compare commits

...

1 Commits

Author SHA1 Message Date
Juraj Kirchheim
a77aedb458 Partial workaround for https://github.com/benmerckx/genes/issues/6 2020-01-02 19:44:41 +01:00

View File

@@ -21,7 +21,7 @@ class Constructor {
var afterArgs:Array<FunctionArg>; var afterArgs:Array<FunctionArg>;
var pos:Position; var pos:Position;
var onGenerateHooks:Array<Function->Void>; var onGenerateHooks:Array<Function->Void>;
var superCall:Expr; var superCall:Array<Expr>;
var owner:ClassBuilder; var owner:ClassBuilder;
var meta:Metadata; var meta:Metadata;
public var isPublic:Null<Bool>; public var isPublic:Null<Bool>;
@@ -57,12 +57,17 @@ class Constructor {
default: oldStatements = [f.expr]; default: oldStatements = [f.expr];
} }
} }
superCall =
if (oldStatements.length == 0) [].toBlock(); for (i in 0...oldStatements.length)
else switch oldStatements[0] { switch oldStatements[i] {
case macro super($a{_}): oldStatements.shift(); case macro super($a{_}):
default: [].toBlock(); superCall = oldStatements.splice(0, i + 1);
break;
default:
} }
if (superCall == null)
superCall = [];
} }
public function getArgList():Array<FunctionArg> public function getArgList():Array<FunctionArg>
@@ -148,7 +153,7 @@ class Constructor {
isPublic = true; isPublic = true;
function toBlock() function toBlock()
return [superCall] return superCall
.concat(nuStatements) .concat(nuStatements)
.concat(oldStatements) .concat(oldStatements)
.toBlock(pos); .toBlock(pos);