Jelajahi Sumber

Fixed issues with failed const type expressions

Brian Fiete 5 tahun lalu
induk
melakukan
ae06346357

+ 3 - 0
IDEHelper/Compiler/BfModuleTypeUtils.cpp

@@ -9303,6 +9303,9 @@ BfType* BfModule::ResolveTypeRef(BfTypeReference* typeRef, BfPopulateType popula
 		}
 
 		constExprType->mType = GetPrimitiveType(result.mTypeCode);
+		BF_ASSERT(constExprType->mType != NULL);
+		if (constExprType->mType == NULL)
+			constExprType->mType = GetPrimitiveType(BfTypeCode_IntPtr);
 		constExprType->mValue = result;
 
 		resolvedEntry->mValue = constExprType;

+ 2 - 3
IDEHelper/Compiler/BfResolvedTypeUtils.cpp

@@ -2519,10 +2519,9 @@ BfVariant BfResolvedTypeSet::EvaluateToVariant(LookupContext* ctx, BfExpression*
 {
 	BfConstResolver constResolver(ctx->mModule);
 	BfVariant variant = { BfTypeCode_None };	
-	constResolver.Evaluate(expr);
-	if (constResolver.mResult)	
+	auto result = constResolver.Resolve(expr);
+	if (result)
 	{
-		auto result = constResolver.mResult;
 		if (result.mKind == BfTypedValueKind_GenericConstValue)
 		{				
 			constGenericParam = result.mType;