Details
Description
Allow ".Foo" syntax to express "self.Foo" or "$(CurrentType).Foo" (in a static context).
AST-wise it creates a MemberReferenceExpression (as usual) but with Target an OmittedExpression.
Moreover allowing shorthand notation this allows "HAML-like notation" in macros and also macros that can change the meaning of such omitted expression(s).
E.g:
macro with(replacement):
for mre in OmittedExpressionFinder(with.Body):
mre.Target = replacement
yield
with Context.NameResolutionServices:
.Resolve(typeRef1)
.Resolve(typeRef2)