Sfoglia il codice sorgente

Field deleted type protection

Brian Fiete 7 mesi fa
parent
commit
aaac1470df
1 ha cambiato i file con 6 aggiunte e 1 eliminazioni
  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));