mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-13 05:44:11 +02:00
Fixed empty return with lambda return type inference
This commit is contained in:
parent
c598944f52
commit
97d9a4508d
1 changed files with 8 additions and 16 deletions
|
@ -4941,30 +4941,22 @@ void BfModule::Visit(BfReturnStatement* returnStmt)
|
||||||
if (returnStmt->mExpression == NULL)
|
if (returnStmt->mExpression == NULL)
|
||||||
{
|
{
|
||||||
MarkScopeLeft(&mCurMethodState->mHeadScope);
|
MarkScopeLeft(&mCurMethodState->mHeadScope);
|
||||||
if (retType->IsVoid())
|
|
||||||
|
if ((retType != NULL) && (retType->IsVoid()))
|
||||||
{
|
{
|
||||||
EmitReturn(BfTypedValue());
|
EmitReturn(BfTypedValue());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (retType != NULL)
|
|
||||||
{
|
|
||||||
Fail("Expected return value", returnStmt);
|
Fail("Expected return value", returnStmt);
|
||||||
return;
|
if (retType != NULL)
|
||||||
}
|
|
||||||
|
|
||||||
EmitReturn(GetDefaultTypedValue(retType));
|
EmitReturn(GetDefaultTypedValue(retType));
|
||||||
|
else
|
||||||
|
EmitReturn(BfTypedValue());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
BfType* expectingReturnType = retType;
|
BfType* expectingReturnType = retType;
|
||||||
if ((expectingReturnType != NULL) && (expectingReturnType->IsVar()))
|
|
||||||
{
|
|
||||||
NOP;
|
|
||||||
// expectingReturnType = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
BfType* origType;
|
BfType* origType;
|
||||||
BfExprEvaluator exprEvaluator(this);
|
BfExprEvaluator exprEvaluator(this);
|
||||||
bool alreadyWritten = false;
|
bool alreadyWritten = false;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue