public override void LeaveGenericReferenceExpression(GenericReferenceExpression node)
{
if (node.Target.Entity == null || IsError(node.Target.Entity))
{
BindExpressionType(node, TypeSystemServices.ErrorEntity);
return;
}
IEntity entity = NameResolutionService.ResolveGenericReferenceExpression(node, node.Target.Entity);
Bind(node, entity);
if (entity.EntityType == EntityType.Type)
{
BindTypeReferenceExpressionType(node, (IType)entity);
return;
}
if (entity.EntityType == EntityType.Method)
BindExpressionType(node, ((IMethod)entity).Type);
if (!(node.Target is MemberReferenceExpression)) //no self.
node.Target = CodeBuilder.MemberReferenceForEntity(CreateSelfReference(), entity);
}