mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-09 20:12:21 +02:00
Added CallerType, CallerTypeName
This commit is contained in:
parent
69a597574d
commit
045e706600
2 changed files with 25 additions and 1 deletions
|
@ -217,6 +217,12 @@ namespace System
|
||||||
[LinkName("#CallerFileDir")]
|
[LinkName("#CallerFileDir")]
|
||||||
public static extern String CallerFileDir;
|
public static extern String CallerFileDir;
|
||||||
|
|
||||||
|
[LinkName("#CallerType")]
|
||||||
|
public static extern Type CallerType;
|
||||||
|
|
||||||
|
[LinkName("#CallerTypeName")]
|
||||||
|
public static extern String CallerTypeName;
|
||||||
|
|
||||||
[LinkName("#CallerMemberName")]
|
[LinkName("#CallerMemberName")]
|
||||||
public static extern String CallerMemberName;
|
public static extern String CallerMemberName;
|
||||||
|
|
||||||
|
|
|
@ -6990,6 +6990,24 @@ BfTypedValue BfExprEvaluator::CreateCall(BfAstNode* targetSrc, const BfTypedValu
|
||||||
argValue = BfTypedValue(mModule->GetStringObjectValue(GetFileDir(filePath)),
|
argValue = BfTypedValue(mModule->GetStringObjectValue(GetFileDir(filePath)),
|
||||||
mModule->ResolveTypeDef(mModule->mCompiler->mStringTypeDef));
|
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)
|
else if (strcmp(globalVar->mName, "#CallerMemberName") == 0)
|
||||||
{
|
{
|
||||||
String memberName = "";
|
String memberName = "";
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue