protected Expression CreateMemberReferenceTarget(Node sourceNode, IMember member)
{
Expression target = null;
if (member.IsStatic)
{
target = CodeBuilder.CreateReference(sourceNode.LexicalInfo, member.DeclaringType);
}
else
{
//check if found entity can't possibly be a member of self:
if (member.DeclaringType != CurrentType
&& !(CurrentType.IsSubclassOf(member.DeclaringType)))
{
Error(CompilerErrorFactory.InstanceRequired(sourceNode, member));
}
target = new SelfLiteralExpression(sourceNode.LexicalInfo);
}
BindExpressionType(target, member.DeclaringType);
return target;
}