private void OnCandidatePartialDefinition(TypeDefinition node)
{
if (!node.IsPartial)
return;
var typeName = node.FullName;
TypeDefinition originalDefinition;
if (_partials.TryGetValue(typeName, out originalDefinition))
{
if (node == originalDefinition) // MergePartialTypes can be executed more than once
return;
if (originalDefinition.NodeType != node.NodeType)
{
Errors.Add(CompilerErrorFactory.IncompatiblePartialDefinition(node, typeName, AstUtil.TypeKeywordFor(originalDefinition), AstUtil.TypeKeywordFor(node)));
return;
}
MergeImports(node, originalDefinition);
originalDefinition.Merge(node);
RemoveCurrentNode();
}
else
_partials[typeName] = node;
}