瀏覽代碼

Field deleted type protection

Brian Fiete 7 月之前
父節點
當前提交
aaac1470df
共有 1 個文件被更改,包括 6 次插入1 次删除
  1. 6 1
      IDEHelper/Compiler/BfModule.cpp

+ 6 - 1
IDEHelper/Compiler/BfModule.cpp

@@ -4727,7 +4727,12 @@ BfTypedValue BfModule::GetFieldInitializerValue(BfFieldInstance* fieldInstance,
 			staticVarRef = ReferenceStaticField(fieldInstance);
 			exprEvaluator.mReceivingValue = &staticVarRef;
 		}
-		if (fieldType->IsVar())
+
+		if (fieldType->IsDeleting())
+		{
+			InternalError("Field using deleted type", fieldDef->GetRefNode());
+		}
+		else if (fieldType->IsVar())
 			result = CreateValueFromExpression(exprEvaluator, initializer, NULL, (BfEvalExprFlags)(BfEvalExprFlags_NoValueAddr | BfEvalExprFlags_FieldInitializer));
 		else
 			result = CreateValueFromExpression(exprEvaluator, initializer, fieldType, (BfEvalExprFlags)(BfEvalExprFlags_NoValueAddr | BfEvalExprFlags_FieldInitializer));