/** Validates that the node is schema compatible */
void FGraphCompilerContext::ValidateNode(const UEdGraphNode* Node) const
{
	if (Node->IsDeprecated() && Node->ShouldWarnOnDeprecation())
	{
		MessageLog.Warning(*Node->GetDeprecationMessage(), Node);
	}

	for (int32 PinIndex = 0; PinIndex < Node->Pins.Num(); ++PinIndex)
	{
		if (const UEdGraphPin* Pin = Node->Pins[PinIndex])
		{
			auto OwningNode = Pin->GetOwningNodeUnchecked();
			if (OwningNode != Node)
			{
				MessageLog.Error(*NSLOCTEXT("EdGraphCompiler", "WrongPinsOwner_Error", "The pin @@ has outer @@, but it's used in @@").ToString(), Pin, OwningNode, Node);
			}
			else
			{
				ValidatePin(Pin);
			}
		}
	}

	Node->ValidateNodeDuringCompilation(MessageLog);
}
/** Validates that the node is schema compatible */
void FGraphCompilerContext::ValidateNode(const UEdGraphNode* Node) const
{
	if (Node->IsDeprecated() && Node->ShouldWarnOnDeprecation())
	{
		MessageLog.Warning(*Node->GetDeprecationMessage(), Node);
	}

	for (int32 PinIndex = 0; PinIndex < Node->Pins.Num(); ++PinIndex)
	{
		if (const UEdGraphPin* Pin = Node->Pins[PinIndex])
		{
			ValidatePin(Pin);
		}
	}

	Node->ValidateNodeDuringCompilation(MessageLog);
}