diff --git a/IDEHelper/Compiler/BfConstResolver.cpp b/IDEHelper/Compiler/BfConstResolver.cpp index b85eeffa..6bb58881 100644 --- a/IDEHelper/Compiler/BfConstResolver.cpp +++ b/IDEHelper/Compiler/BfConstResolver.cpp @@ -234,7 +234,10 @@ BfTypedValue BfConstResolver::Resolve(BfExpression* expr, BfType* wantType, BfCo mModule->FixIntUnknown(mResult); if ((flags & BfConstResolveFlag_NoActualizeValues) == 0) + { + prevIgnoreWrites.Restore(); mModule->FixValueActualization(mResult, !prevIgnoreWrites.mPrevVal || ((flags & BfConstResolveFlag_ActualizeValues) != 0)); + } return mResult; } diff --git a/IDEHelper/Compiler/BfModuleTypeUtils.cpp b/IDEHelper/Compiler/BfModuleTypeUtils.cpp index e5d985e6..9fb03ea8 100644 --- a/IDEHelper/Compiler/BfModuleTypeUtils.cpp +++ b/IDEHelper/Compiler/BfModuleTypeUtils.cpp @@ -8499,14 +8499,15 @@ BfType* BfModule::ResolveTypeResult(BfTypeReference* typeRef, BfType* resolvedTy populateModule->PopulateType(resolvedTypeRef, populateType); - if ((typeInstance != NULL) && (typeInstance->mTypeDef != NULL) && (typeInstance->mTypeDef->mProtection == BfProtection_Internal) && (typeInstance->mTypeDef->mOuterType == NULL)) + if ((typeInstance != NULL) && (typeInstance->mTypeDef != NULL) && (typeInstance->mTypeDef->mProtection == BfProtection_Internal) && + (typeInstance->mTypeDef->mOuterType == NULL) && (!typeRef->IsTemporary())) { if (!CheckProtection(typeInstance->mTypeDef->mProtection, typeInstance->mTypeDef, false, false)) Fail(StrFormat("'%s' is inaccessible due to its protection level", TypeToString(typeInstance).c_str()), typeRef); // CS0122 } if ((populateType > BfPopulateType_Identity) && (!ResolveTypeResult_Validate(typeRef, resolvedTypeRef))) - return NULL; + return NULL; if (populateType != BfPopulateType_IdentityNoRemapAlias) { diff --git a/IDEHelper/Tests/src/Reflection2.bf b/IDEHelper/Tests/src/Reflection2.bf new file mode 100644 index 00000000..75be6732 --- /dev/null +++ b/IDEHelper/Tests/src/Reflection2.bf @@ -0,0 +1,16 @@ +#pragma warning disable 168 + +using System; + +namespace Tests +{ + class Reflection2 + { + [Test] + public static void TestBasics() + { + const Type t = typeof(StringView); + int fieldCount = t.FieldCount; + } + } +}