diff --git a/src/nodes/core/OutputStructNode.js b/src/nodes/core/OutputStructNode.js index d4153bc8a19283..f8130ea22899fd 100644 --- a/src/nodes/core/OutputStructNode.js +++ b/src/nodes/core/OutputStructNode.js @@ -42,11 +42,17 @@ class OutputStructNode extends Node { } - getNodeType( builder ) { + getNodeType( /*builder*/ ) { - const properties = builder.getNodeProperties( this ); + return 'OutputType'; - if ( properties.membersLayout === undefined ) { + } + + generate( builder ) { + + const nodeData = builder.getDataFromNode( this ); + + if ( nodeData.membersLayout === undefined ) { const members = this.members; const membersLayout = []; @@ -60,16 +66,12 @@ class OutputStructNode extends Node { } - properties.membersLayout = membersLayout; - properties.structType = builder.getOutputStructTypeFromNode( this, properties.membersLayout ); + nodeData.membersLayout = membersLayout; + nodeData.structType = builder.getOutputStructTypeFromNode( this, nodeData.membersLayout ); } - return properties.structType.name; - - } - - generate( builder ) { + // const propertyName = builder.getOutputStructName(); const members = this.members; diff --git a/src/nodes/core/StackNode.js b/src/nodes/core/StackNode.js index 14419218375065..f2eaae62013173 100644 --- a/src/nodes/core/StackNode.js +++ b/src/nodes/core/StackNode.js @@ -90,19 +90,19 @@ class StackNode extends Node { getElementType( builder ) { - return this.hasOutput ? this.outputNode.getElementType( builder ) : 'void'; + return this.hasOutput( builder ) ? this.outputNode.getElementType( builder ) : 'void'; } getNodeType( builder ) { - return this.hasOutput ? this.outputNode.getNodeType( builder ) : 'void'; + return this.hasOutput( builder ) ? this.outputNode.getNodeType( builder ) : 'void'; } getMemberType( builder, name ) { - return this.hasOutput ? this.outputNode.getMemberType( builder, name ) : 'void'; + return this.hasOutput( builder ) ? this.outputNode.getMemberType( builder, name ) : 'void'; } @@ -311,9 +311,9 @@ class StackNode extends Node { } - get hasOutput() { + hasOutput( builder ) { - return this.outputNode && this.outputNode.isNode; + return this.outputNode && this.outputNode.isNode && this.outputNode.getNodeType( builder ) !== 'void'; } @@ -392,7 +392,7 @@ class StackNode extends Node { let result; - if ( this.hasOutput ) { + if ( this.hasOutput( builder ) ) { result = this.outputNode.build( builder, ...params );