Void functions/methods no longer request a value

This commit is contained in:
Sasha Koshka 2024-01-27 09:22:19 +00:00
parent c63e077f9a
commit b6da53afd6
1 changed files with 8 additions and 4 deletions

View File

@ -32,12 +32,14 @@ func (this *generator) generateFunction (
defer this.popBlockManager()
this.blockManager.addFunctionArgumentDeclarations(function)
body, err := this.generateExpressionVal(function.Body)
if err != nil { return nil, err }
if function.Signature.Return == nil {
_, _, err := this.generateExpression(function.Body)
if err != nil { return nil, err }
this.blockManager.NewRet(nil)
} else {
body, err := this.generateExpressionVal(function.Body)
if err != nil { return nil, err }
this.blockManager.NewRet(body)
}
}
@ -76,12 +78,14 @@ func (this *generator) generateMethod (
defer this.popBlockManager()
this.blockManager.addFunctionArgumentDeclarations(method)
body, err := this.generateExpressionVal(method.Body)
if err != nil { return nil, err }
if method.Signature.Return == nil {
_, _, err := this.generateExpression(method.Body)
if err != nil { return nil, err }
this.blockManager.NewRet(nil)
} else {
body, err := this.generateExpressionVal(method.Body)
if err != nil { return nil, err }
this.blockManager.NewRet(body)
}
}