| 15592 | } |
| 15593 | |
| 15594 | BfTypedValue 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 | { |
no test coverage detected