1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 19:48:20 +02:00

Added CallerType, CallerTypeName

This commit is contained in:
Brian Fiete 2021-12-17 15:45:53 -05:00
parent 69a597574d
commit 045e706600
2 changed files with 25 additions and 1 deletions

View file

@ -6973,7 +6973,7 @@ BfTypedValue BfExprEvaluator::CreateCall(BfAstNode* targetSrc, const BfTypedValu
filePath = mModule->mCurFilePosition.mFileInstance->mParser->mFileName;
argValue = BfTypedValue(mModule->GetStringObjectValue(filePath),
mModule->ResolveTypeDef(mModule->mCompiler->mStringTypeDef));
}
}
else if (strcmp(globalVar->mName, "#CallerFileName") == 0)
{
String filePath = "";
@ -6990,6 +6990,24 @@ BfTypedValue BfExprEvaluator::CreateCall(BfAstNode* targetSrc, const BfTypedValu
argValue = BfTypedValue(mModule->GetStringObjectValue(GetFileDir(filePath)),
mModule->ResolveTypeDef(mModule->mCompiler->mStringTypeDef));
}
else if (strcmp(globalVar->mName, "#CallerTypeName") == 0)
{
String typeName = "";
if (mModule->mCurTypeInstance != NULL)
typeName = mModule->TypeToString(mModule->mCurTypeInstance);
argValue = BfTypedValue(mModule->GetStringObjectValue(typeName),
mModule->ResolveTypeDef(mModule->mCompiler->mStringTypeDef));
}
else if (strcmp(globalVar->mName, "#CallerType") == 0)
{
auto typeType = mModule->ResolveTypeDef(mModule->mCompiler->mTypeTypeDef);
BfType* type = mModule->mCurTypeInstance;
if (type != NULL)
{
mModule->AddDependency(type, mModule->mCurTypeInstance, BfDependencyMap::DependencyFlag_ExprTypeReference);
argValue = BfTypedValue(mModule->CreateTypeDataRef(type), typeType);
}
}
else if (strcmp(globalVar->mName, "#CallerMemberName") == 0)
{
String memberName = "";