1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-09 03:52:19 +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

@ -217,6 +217,12 @@ namespace System
[LinkName("#CallerFileDir")]
public static extern String CallerFileDir;
[LinkName("#CallerType")]
public static extern Type CallerType;
[LinkName("#CallerTypeName")]
public static extern String CallerTypeName;
[LinkName("#CallerMemberName")]
public static extern String CallerMemberName;

View file

@ -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 = "";