MCPcopy Create free account
hub / github.com/beefytech/Beef / GetCompilerFieldValue

Method GetCompilerFieldValue

IDEHelper/Compiler/BfModule.cpp:15594–15708  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15592}
15593
15594BfTypedValue BfModule::GetCompilerFieldValue(const StringImpl& str)
15595{
15596 if (str == "#IsComptime")
15597 {
15598 return BfTypedValue(mBfIRBuilder->CreateConst(BfTypeCode_Boolean, mIsComptimeModule ? 1 : 0), GetPrimitiveType(BfTypeCode_Boolean));
15599 }
15600 if (str == "#IsBuilding")
15601 {
15602 return BfTypedValue(mBfIRBuilder->CreateConst(BfTypeCode_Boolean, (!mCompiler->mIsResolveOnly) ? 1 : 0), GetPrimitiveType(BfTypeCode_Boolean));
15603 }
15604 if (str == "#IsReified")
15605 {
15606 return BfTypedValue(mBfIRBuilder->CreateConst(BfTypeCode_Boolean, mIsReified ? 1 : 0), GetPrimitiveType(BfTypeCode_Boolean));
15607 }
15608 if (str == "#CompileRev")
15609 {
15610 return BfTypedValue(mBfIRBuilder->CreateConst(BfTypeCode_Int32, mCompiler->mRevision), GetPrimitiveType(BfTypeCode_Int32));
15611 }
15612 if (str == "#NextId")
15613 {
15614 return BfTypedValue(mBfIRBuilder->CreateConst(BfTypeCode_Int64, (uint64)++mCompiler->mUniqueId), GetPrimitiveType(BfTypeCode_Int32));
15615 }
15616 if (str == "#ModuleName")
15617 {
15618 return BfTypedValue(GetStringObjectValue(mModuleName), ResolveTypeDef(mCompiler->mStringTypeDef));
15619 }
15620 if (str == "#ProjectName")
15621 {
15622 if (mProject != NULL)
15623 return BfTypedValue(GetStringObjectValue(mProject->mName), ResolveTypeDef(mCompiler->mStringTypeDef));
15624 }
15625 if (str == "#AllocStackCount")
15626 {
15627 return BfTypedValue(mBfIRBuilder->CreateConst(BfTypeCode_Int32, mCompiler->mOptions.mAllocStackCount), GetPrimitiveType(BfTypeCode_Int32));
15628 }
15629
15630 if ((mCurMethodState != NULL) && (mCurMethodState->mMixinState != NULL))
15631 {
15632 if (str == "#CallerLineNum")
15633 {
15634 return BfTypedValue(GetConstValue(mCurMethodState->mMixinState->mInjectFilePosition.mCurLine + 1), GetPrimitiveType(BfTypeCode_Int32));
15635 }
15636 else if (str == "#CallerFilePath")
15637 {
15638 String filePath = "";
15639 if (mCurMethodState->mMixinState->mInjectFilePosition.mFileInstance != NULL)
15640 filePath = mCurMethodState->mMixinState->mInjectFilePosition.mFileInstance->mParser->mFileName;
15641 return BfTypedValue(GetStringObjectValue(filePath), ResolveTypeDef(mCompiler->mStringTypeDef));
15642 }
15643 else if (str == "#CallerFileName")
15644 {
15645 String filePath = "";
15646 if (mCurMethodState->mMixinState->mInjectFilePosition.mFileInstance != NULL)
15647 filePath = mCurMethodState->mMixinState->mInjectFilePosition.mFileInstance->mParser->mFileName;
15648 return BfTypedValue(GetStringObjectValue(GetFileName(filePath)), ResolveTypeDef(mCompiler->mStringTypeDef));
15649 }
15650 else if (str == "#CallerFileDir")
15651 {

Callers 2

ResolveMethod · 0.80
CreateCallMethod · 0.80

Calls 7

BfTypedValueClass · 0.85
TypeToStringFunction · 0.85
IsAddrMethod · 0.80
CreateConstMethod · 0.45
GetOwnerMethod · 0.45
IsConstMethod · 0.45
GetConstantMethod · 0.45

Tested by

no test coverage detected